Обычная таблица "один ко многим" в CCK

Главные вкладки

Аватар пользователя VolCh VolCh 24 августа 2009 в 7:53

Здравствуйте!

Стоит задача сделать что-то вроде бланка заказа или накладной, то есть "шапка" документа и таблица (в терминах реляционных БД, внешний вид пока не интересует) "товары" ("товар"-"количество", товар также имеет атрибуты, то есть обычная связь "один-ко-многим", но не типа "словарь")
Пока сделал вот что:
1. Создал тип материала "товар", добавил нужные поля, вроде все ок
2. Создал тип материала "заказ", добавил поля шапки - тоже проблем нет
3. Создал группу "товары" (standart group)
4. Создал поля "товар" (node reference) и количество (integer), внес их в группу (оказалось нетривиально, только драг-н-дропом смог)
Дальше начались проблемы, получил практически то, что нужно, но нет кнопки "add another group" или что-то вроде этого, да и вообще нет в свойствах группы допустимого количества ее повторений, как в полях, от 1 до unlimited (установка этих свойств для полей не приводит к образованию однозначной связи товар-количество, действуют независимо), то есть добавить могу только один товар

Не пойму куда рыть, не создавать же для каждой строки таблицы отдельную ноду типа "скрепки 1 шт", "скрепки 2шт" и т. д. Да даже если так, то непонятно как ее создавать из страницы создания документа.

Подскажите, пожалуйста, задача-то в принципе тривиально должна решаться, но что-то где-то упустил или недопонял видимо.

Комментарии

Аватар пользователя Ромка Ромка 24 августа 2009 в 15:00

А почему бы не воспользоваться Уберакртом? У него как раз есть такая фича: для каждого товара можно задать параметры (например, вес, размер, цвет и т.п.), которые могут влиять на стоимость самого товара и стоимость его доставки.

Аватар пользователя VolCh VolCh 25 августа 2009 в 13:05

2

"smih" wrote:
Для создания товара + кол-ва из документа заказ можно использовать модуль Node Reference Create.

То есть все-таки отдельная нода для каждой строки таблицы и выбор из уже созданных нод? Как-то не красиво, имхо, уж слишком избыточно, поскольку строки таблицы сами по себе никого не интересуют

"Ромка" wrote:
А почему бы не воспользоваться Уберакртом? У него как раз есть такая фича: для каждого товара можно задать параметры (например, вес, размер, цвет и т.п.), которые могут влиять на стоимость самого товара и стоимость его доставки.

Насколько я понял он ориентирован на электронную торговлю, для моих задач это из пушки по воробьям стрелять - пример с товаром я привел чтобы понятнее было, вообще задача просто некое описание объектов типа комплектация товара в упаковке "сервиз чайный - материал: фарфор, цвет: белый, производство: Россия, комплектация: чашки - 6 шт, блюдца - 6 шт", при этом фарфор, белый и Россия - термины соответсвующих категорий таксономии, а чашки и блюдца - материалы типа "предмет посуды". Все вводится (и очень редко редактируется) админом (то есть мной), никакой последующей обработки требоваться не будет, только вывод страниц и "наборов", и "предметов посуды" через навигацию или из гугла/яндекса

Пока не додумался ни до чего более простого, чем написание своего модуля для поля CCK типа Countable Node Reference и соответствующего виджета с выбором ссылки на ноду и ввода количества - неужели все так сложно?