2009-10-28 5 views
4

Есть ли способ создания составного поля, которое может иметь несколько значений, причем каждое значение имеет другую группу составных значений?Drupal Пользовательское поле CCK с несколькими дочерними полями

E.g. мы хотим иметь эту структуру в конце:

  • Группа 1 (неограниченное количество групп)
    • Детское поле (неограниченное количество детей в каждую группу)
    • Детского поля
    • ...
  • Группа 2
    • Детский поле
    • Детского поле
    • ...
  • ...

ли это вообще возможно для пользовательского модуля, который определяет поле CCK? Если да, может кто-то подтолкнет меня в правильном направлении?

ответ

5

Это очень известная и спорная проблема в мире drupal.

Эта функция называется cck «multigroup», и это выглядит довольно сложно. есть много сообщений в Друпал форуме об этом, я предлагаю вам начать здесь:

http://drupal.org/node/494100

это своего рода «скрытые» функции в модуле CCK. глядя в директории модуля, вы найдете инструкцию здесь:

CCK/модули/content_multigroup/README.txt
Edit: Текущую работу на модуле многогрупповом переместилась к экспериментальной CCK 3.0 ветви.

в то же время вы можете попытаться справиться с ней с помощью модуля flexifield (но это своего рода хак, я не буду использовать его в производстве)

+0

Таким образом, нет никакого способа сделать это без использования кода альфа-качества? Даже если бы я написал собственный тип поля CCK? – Karl

+0

Это обычная правда. во всяком случае, по слухам, он выглядит так, что последняя версия cvs-подмодуля cck multigroup несколько стабильна. Слишком много проблем, если вы хотите воспроизвести такое поведение самостоятельно (подумайте о том, что даже разработчикам cck не удалось выполнить эту «простую» задачу!) – gpilotino

+0

В каких конфликтах я столкнулся при использовании CCK 3 .x с другими модулями? Должен ли я просто пойти на это и посмотреть, что произойдет? – Karl

1

Этот вопрос довольно старый, но я только что произошел через него , Я бы подумал, что способ справиться с этим сейчас будет со вторым типом cck для детей, а группы - как поле node_reference.Таким образом, вы должны были бы:

MasterType

  • группа полей
    • неограничен на узел
    • каждого из них, ссылка на ChildType узел

ChildType

  • ребенок поле
    • неограничен на узел
+0

Хотя это будет полностью работать, это было бы абсолютно кошмар, чтобы попытаться обучить пользователей работать таким образом. – Karl

+1

Это определенно не идеально, но модуль [node relations] [1] помогает некоторым. Он предоставляет функции создания и добавления и поиска и добавления в оверлей. [1] http://drupal.org/project/noderelationships – sprugman

3

Я в конечном итоге создать свою собственную «Стоимость/Продукт» ССК соединение поле на основе этого превосходного учебника с примерами модулей: http://poplarware.com/es/articles/cck_field_module

Я еще не понял, как вытащить конкретное подполе, например стоимость, в Views. Я получаю всего соединение «: $».

+0

+1 для ссылки –

+0

Очень удобно по ссылке. –

3

Для Drupal 7+ вы, вероятно, захотите проверить модуль Field collection, или Field group, если нет необходимости в мультипликаторах.