Опубликовано в чт, 26/07/2018 - 03:35 |
Update 26.07.2018: Нашел решение:
$paragraphs_item->hostEntityType();
$paragraphs_item->hostEntity();
Имея в своем распоряжении сущность 'paragraphs_item' (модуль Paragraphs) понадобилось узнать сущность родителя. Готового варианта не нашел, пришлось придумать свой...
function _paragraph_parent($paragraph_id, $entity = FALSE) { $f_name = db_select('paragraphs_item', 'p') ->fields('p', array('field_name')) ->condition('p.item_id', $paragraph_id) ->execute() ->fetchField(); if ($f_name) { $parent = db_select('field_data_' . $f_name, 'fp') ->fields('fp', array('entity_id', 'entity_type')) ->condition('fp.' . $f_name . '_value', $paragraph_id) ->range(0, 1) ->execute() ->fetchObject(); //dpm($parent); } if ($parent) { if ($entity) { $parents = entity_load($parent->entity_type, array($parent->entity_id)); return count($parents) ? array_shift($parents) : FALSE; } return $parent; } return FALSE; }
Применение:
$parent = _paragraph_parent($paragraphs_item->item_id); $parent = _paragraph_parent($paragraphs_item->item_id, TRUE);
Первый вариант вернет объект:
{ 'entity_type' = ENTITY_TYPE, 'entity_id' = ENTITY_ID, }
Второй вариант вернет полностью загруженную сущность.
В случае неудачи получаем FALSE.
Комментарии
Добавить комментарий