Добрый день.
Никто не может подсказать, где можно найти ликбез по программной работе с модулем field_collection ?
То есть, допустим, есть нода с определенным nid, у неё есть поле типа field_collection с определенным названием, которое, в свою очередь, содержит другие поля и т.д.
И хотелось бы узнать примеры функций, с помощью которых можно было бы проводить стандартные операции с этим полем - получать его значения, изменять его значения, добавлять, удалять и т.д.
По документации, описанной на сайте http://drupalcontrib.org, все-таки сложновато с этим разобраться.
А работать напрямую через SQL-запросы как-то тоже считаю неправильным.
Комментарии
С этим полем можно работать так же как и с любым другим.
Не совсем так.
Вот, например, есть нода с nid=15 и у неё есть поле типа field_collection и с названием field_fc1, это поле содержит свои поля.
следующий код
kpr($nd->field_fc1['ru'][0]['value']);
вернет число - идентификатор сущности entity_id, у которой entity_type будет равным field_collection_item, а bundle будет равен field_fc1.
И с помощью каких функций я могу добраться до полей, из которых состоит данное поле field_fc1 ?
Например, если у данного поля есть вложенное поле с названием field_str, то как я смогу узнать его значение ?
entity_load() и дальше как с любой другой сущностью
Спасибо большое, решил задачу двумя способами
Может быть, кому-нибудь пригодится.
Способ 1.
$nd=node_load($nid);
// Получаем entity_id данной сущности
$ent_id=$nd->field_fc1['ru'][0]['value'];
// Загружаем сущность
$ent=entity_load('field_collection_item',array($ent_id));
// Добираемся до значения поля
print($ent[$ent_id]->field_str[$node->language][0]['value']);
Способ 2.
print($wrapper->field_fc1->value()->field_str[$node->language][0]['value']);
Спасибо направление!
У меня в ноде есть филд колкешн в котром есть еще один филд колекшн и последний имеет неограниченное кол-во значений. там дата и цена. мне нужно выбрать из них только тот который совпадает с сегодняшней датой и вывести его. понимаю что нужен цикл. буду благодарен за подсказку. спасибо)
Разобрался))) спасибо)))
посмотрите здесь Программное создание, изменение и удаление поля field-collection для ноды