• урок
  • pantey

Группируем поля типа материала. Модуль field collection

13.06.2013

Иногда при разработке сайтов со сложной структурой, возникает желание объединить несколько полей типа материала так сказать в один пакет, при необходимости который мы смогли в один клик добавить необходимое количество этих пакетов. Сейчас формулировка может показаться запутанной, но на самом деле всё очень просто. Для реализации данной задачи, я как правило использую модуль field_collection, скачать который вы сможете вот отсюда. Установка ни чем не отличается от всех остальных модулей, если же возникли вопросы, то читаем вот эту статью. После активации модуля нам будет доступен новый тип поля для любого типа материала, что бы в этом убедиться переходим по пути «Структура -> Типы материалов -> Статьи -> Управление полями»

И видим, что нам стал доступен новый тип поля для типа материала – Статья.

Теперь, давайте посмотрим как это всё работает на деле. Создадим поле с типом «Field Collection» со следующими настройками

В качестве параметров поля всё оставляем как есть, единственное что, давайте добавим возможность не ограничиваться выводом количества раз данного поля, поэтому в пункте «Количество значений» ставим «Не ограничено»

И далее жмём сохранить настройки. Теперь мы можем наблюдать новое поле в списке всех полей для данного типа материала

С созданием поля мы разобрались, теперь нам стоит разобраться как добавлять в данное новое поле необходимые нам поля. Для этого переходим в раздел «структура» и видим там новый пункт «Field collection»

Переходим в него и видим только, что созданное нами поле

Переходим в пункт «Управление полями» и далее добавляем необходимые нам поля, я для примера добавлю одно поле для изображений и одно поле для текстовой информации. Настройка полей производится, так же, как и для всех типов материалов в Drupal. Мои настройки полей выглядят следующим образом:

Поле для изображения

Для данного поля мы так же выставим пункт «Количество значений» в «Не ограничено»

И сохраняем настройки.

Текстовое поле

И для него так же выставим пункт «Количество значений» в «Не ограничено» и сохраняем настройки. Теперь мы можем наблюдать два наших только что созданных поля

Теперь нам осталось лишь посмотреть, как это всё работает на практике. Для этого давайте создадим новую ноду типа материала «Статья», переходим в раздел «Добавить содержимое» и выбираем «Статья», где в качестве параметров мы можем наблюдать созданную нами группу полей

Теперь при необходимости вы можете добавить сколько нужно необходимых групп полей для данного материала просто кликнув по кнопке «Добавить еще»

Теперь вы знаете как можно просто организовать поля в группы полей, которые при необходимости можно добавлять не ограниченное количество раз.

-->
Узнавай о новых статьях сайта - первым. Просто подпишись на рассылку.

Комментарии (14)

Profile picture for user Артур
Jaan
13.07.2013

Огромное спасибо именно я это и искал как сделать на своем проекте. Еще хорошо бы если все это заработало в выводе табами. Сегодня буду пробовать.

Profile picture for user pantey
pantey
13.07.2013

для форматирования вывода полей из коллекции в виде табов можно использовать вот этот модуль

Profile picture for user Артур
Jaan
14.07.2013

Ваша ссылка ведет на 404 но в строке адреса я понял про что вы говорите. Я использовал модуль field_group он позволяет выводить разные красивые табы даже в виде акардеона. Три дня мучался вопросом как решить задачу группировки полей.

Огромное Вам спасибо еще раз очень выручили. Пишите побольше толковых статей.

Еще хотел спросить как вы сделали автоматическую подборку аватар в комментариях? Очень классно смотрится.

Profile picture for user Артур
jaans
15.07.2013

Помогите пожалуйста разобраться как вывести теперь все что вы описали во вкладках через модуль field_collection_tabs очень нужно

Profile picture for user pantey
pantey
16.07.2013

Насколько я помню необходимо просто активировать модуль, и далее для типа материала, к которому у вас добавлено поле Field_collection в формате вывода поставить Tabs_field_collection.

Profile picture for user Артур
Виктор999
15.04.2015

Здравствуйте
не могу понять работу этого модуля.
Допустим есть коллекция в которой 2 поля: сумма и валюта.
при добавлении материалла ввожу сумму и валюту. жму отправить.
В самом же материале не отображает мне то что я ввел. есть только ссылка добавить. в управлении отображении по разному пробовал результата нету

Profile picture for user Артур
Виктор999
16.04.2015

Вопрос уже решил, если кто-то использует conditional field c field collection, то возможно поможет это решение: https://www.drupal.org/node/1549364#comment-6029654
или патчи.

Profile picture for user Артур
Elenka
18.07.2015

не подскажете как организовать галерею фото с голосованием к каждой фотографии? При этом фото должны загружаться со стороннего ресурса типа фликера или пикасы.

Profile picture for user Артур
Азамат
27.10.2015

Здравствуйте ! я использовал Field collection , а теперь для отображения я могу использовать обычный views?

Profile picture for user pantey
pantey
27.10.2015

да, только понадобится этот модуль

Profile picture for user Артур
Азамат
28.10.2015

Здравствуйте еще раз! вообще надо мне сделать примерно вот такую структуру http://kegoc.kz/zakupki/ Видите с лева в сайдбаре-закупки! Подойдет ли field coolection для этого примера? (Я начал использовать field collection) В начале Думал что на каждый пункт создам материал, но боюсь в вьюсе не могу сделать такую иерархию как в примере, если я не на правильном направлении подскажите пожалуйста как реализовать эту задачу??

Profile picture for user Артур
Денис
02.03.2016

Павел, приветствую. Вопрос к тебе по поводу вывода field collection.
Создал коллекцию (тара, цена). Делаю количество неограниченным. Создаю содержимое нужного типа, в который добавил филд-коллекшн несколько пар (тара, цена). Выводятся эти пары в порядке увеличения (уменьшения) ID элемента коллекции.
Но при создании материала ест очень классная вещь- это возможность менять местами эти коллекции или , но на вывод это никак не отражается,скорее все из-за того, что во вьюхе стоит сортировка по ID.
Есть какие нить мысли, что бы сортировать коллекции по весам, т.е. в порядке, как они расположены? Благодарю за ответ!

Profile picture for user pantey
pantey
02.03.2016

Точно не скажу, но думаю что во вьюхе должна быть из коробки сортировка по весу. Посмотрите.

Profile picture for user Артур
Summersid
22.01.2018

Спасибо за статью!