Иногда при разработке сайтов со сложной структурой, возникает желание объединить несколько полей типа материала так сказать в один пакет, при необходимости который мы смогли в один клик добавить необходимое количество этих пакетов. Сейчас формулировка может показаться запутанной, но на самом деле всё очень просто. Для реализации данной задачи, я как правило использую модуль field_collection, скачать который вы сможете вот отсюда. Установка ни чем не отличается от всех остальных модулей, если же возникли вопросы, то читаем вот эту статью. После активации модуля нам будет доступен новый тип поля для любого типа материала, что бы в этом убедиться переходим по пути «Структура -> Типы материалов -> Статьи -> Управление полями»
И видим, что нам стал доступен новый тип поля для типа материала – Статья.
Теперь, давайте посмотрим как это всё работает на деле. Создадим поле с типом «Field Collection» со следующими настройками
В качестве параметров поля всё оставляем как есть, единственное что, давайте добавим возможность не ограничиваться выводом количества раз данного поля, поэтому в пункте «Количество значений» ставим «Не ограничено»
И далее жмём сохранить настройки. Теперь мы можем наблюдать новое поле в списке всех полей для данного типа материала
С созданием поля мы разобрались, теперь нам стоит разобраться как добавлять в данное новое поле необходимые нам поля. Для этого переходим в раздел «структура» и видим там новый пункт «Field collection»
Переходим в него и видим только, что созданное нами поле
Переходим в пункт «Управление полями» и далее добавляем необходимые нам поля, я для примера добавлю одно поле для изображений и одно поле для текстовой информации. Настройка полей производится, так же, как и для всех типов материалов в Drupal. Мои настройки полей выглядят следующим образом:
Поле для изображения
Для данного поля мы так же выставим пункт «Количество значений» в «Не ограничено»
И сохраняем настройки.
Текстовое поле
И для него так же выставим пункт «Количество значений» в «Не ограничено» и сохраняем настройки. Теперь мы можем наблюдать два наших только что созданных поля
Теперь нам осталось лишь посмотреть, как это всё работает на практике. Для этого давайте создадим новую ноду типа материала «Статья», переходим в раздел «Добавить содержимое» и выбираем «Статья», где в качестве параметров мы можем наблюдать созданную нами группу полей
Теперь при необходимости вы можете добавить сколько нужно необходимых групп полей для данного материала просто кликнув по кнопке «Добавить еще»
Теперь вы знаете как можно просто организовать поля в группы полей, которые при необходимости можно добавлять не ограниченное количество раз.
Комментарии (14)
Огромное спасибо именно я это и искал как сделать на своем проекте. Еще хорошо бы если все это заработало в выводе табами. Сегодня буду пробовать.
для форматирования вывода полей из коллекции в виде табов можно использовать вот этот модуль
Ваша ссылка ведет на 404 но в строке адреса я понял про что вы говорите. Я использовал модуль field_group он позволяет выводить разные красивые табы даже в виде акардеона. Три дня мучался вопросом как решить задачу группировки полей.
Огромное Вам спасибо еще раз очень выручили. Пишите побольше толковых статей.
Еще хотел спросить как вы сделали автоматическую подборку аватар в комментариях? Очень классно смотрится.
Помогите пожалуйста разобраться как вывести теперь все что вы описали во вкладках через модуль field_collection_tabs очень нужно
Насколько я помню необходимо просто активировать модуль, и далее для типа материала, к которому у вас добавлено поле Field_collection в формате вывода поставить Tabs_field_collection.
Здравствуйте
не могу понять работу этого модуля.
Допустим есть коллекция в которой 2 поля: сумма и валюта.
при добавлении материалла ввожу сумму и валюту. жму отправить.
В самом же материале не отображает мне то что я ввел. есть только ссылка добавить. в управлении отображении по разному пробовал результата нету
Вопрос уже решил, если кто-то использует conditional field c field collection, то возможно поможет это решение: https://www.drupal.org/node/1549364#comment-6029654
или патчи.
не подскажете как организовать галерею фото с голосованием к каждой фотографии? При этом фото должны загружаться со стороннего ресурса типа фликера или пикасы.
Здравствуйте ! я использовал Field collection , а теперь для отображения я могу использовать обычный views?
да, только понадобится этот модуль
Здравствуйте еще раз! вообще надо мне сделать примерно вот такую структуру http://kegoc.kz/zakupki/ Видите с лева в сайдбаре-закупки! Подойдет ли field coolection для этого примера? (Я начал использовать field collection) В начале Думал что на каждый пункт создам материал, но боюсь в вьюсе не могу сделать такую иерархию как в примере, если я не на правильном направлении подскажите пожалуйста как реализовать эту задачу??
Павел, приветствую. Вопрос к тебе по поводу вывода field collection.
Создал коллекцию (тара, цена). Делаю количество неограниченным. Создаю содержимое нужного типа, в который добавил филд-коллекшн несколько пар (тара, цена). Выводятся эти пары в порядке увеличения (уменьшения) ID элемента коллекции.
Но при создании материала ест очень классная вещь- это возможность менять местами эти коллекции или , но на вывод это никак не отражается,скорее все из-за того, что во вьюхе стоит сортировка по ID.
Есть какие нить мысли, что бы сортировать коллекции по весам, т.е. в порядке, как они расположены? Благодарю за ответ!
Точно не скажу, но думаю что во вьюхе должна быть из коробки сортировка по весу. Посмотрите.
Спасибо за статью!