Вы здесь

Как в Path Breadcrumbs отобразить обратные связи в крошках?

0

Добрый день, у меня имеется следующие сущности
Тип материала: Видеокурс
Тип материала: Видео
Словарь таксономии: Категория видеокурса (3 уровня вложенности терминов 1, 1.1, 1.1.1)

Видеокурс имеет поле термин таксономии со связью со словарем Категория видеокурсы
также он имеет поле entity reference со связью с типом материала Видео (неограниченное количество)

Необходимо, когда я открываю ноду Видео, в крошках показать следующее:

Категория 1 > Категория 1.1 > Категория 1.1.1 > Видеокурс > Видео

Т.е. в Path breadcrumbs я за контекст принимаю ID из урла, в виде типа материла - Видео, и вот тут
вопрос, если бы у меня наоборот Видео **связывалось в **Видеокурс, тогда вопросов нет, а если наоборот, как мне получается с обратной стороны построить связь

Версия Drupal: 
7.x
Категория: 
Taxonomy API
Связанные проекты: 
Path Breadcrumbs
Вопрос задан 16.06.2018 - 15:58

Ответы

0

Проще дописать нужные ссылки через hook_path_breadcrumbs_view_alter.

Ответ дан 05.07.2018 - 13:40
0

Есть еще вариант - через hook_entity_property_info_alter() добавить новое свойство для материала. В 'getter callback' возвращать связанный материал. Это и будет связью с обратной стороны.
После этого у Вас в Path Breadcrumbs появится объявленное свойство, сможете выбрать Видеокурс. А дальше по цепочке будут доступны все его свойства.

Пример:

function MYMODULE_entity_property_info_alter(&$info) {
  $info['node']['properties']['video-course-rel'] = array(
    'type' => 'node',
    'label' => t('Relationship with video course'),
    'getter callback' => 'MYMODULE_video_course_rel_callback',
  );
}

function MYMODULE_video_course_rel_callback($item){
//Через EntityFieldQuery находите видеокурс
//$node_video_course = ....
return $node_video_course;
}

Есть аналогичный пример для поля commerce_product_reference - https://frantsuzzz.com/content/drupal-commerce-dobavim-svyaz-commercepro...

Ответ дан 27.02.2019 - 04:26