Установить контекстный фильтр просмотров как request_path () - PullRequest
0 голосов
/ 14 ноября 2018

Тема

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

Я пытался с

1-> добавить поле «Псевдоним» в качестве контекстного фильтра в представлениях.

2-> добавить поле URL

3-> Я такжепробовал с полем URL с PHP-кодом в контекстном фильтре:

if(drupal_is_front_page()) {
    return '<front>';
}else{
    return request_path();
}

3-я точка работает частично только для одного аргумента пути, например, если текущий запрошенный путь равен services/one, и контекстный фильтр представлений принимает только первый компонент пути, как высм. в прикрепленном изображении enter image description here Однако мне нужно установить контекстный фильтр с полным путем, независимо от того, сколько компонентов запрашивается.

Как мне это сделать?

1 Ответ

0 голосов
/ 19 ноября 2018

Я сделал это, внедрив блок views в tlp и передав фильтр поля URL по коду.См. Код ниже:

$path = request_path();

$query = 'SELECT field_url_url FROM {field_data_field_url}
          WHERE bundle = :bundle AND entity_type = :entity_type AND field_url_url =  :field_url_url';

$path = db_query($query, array(
                               ':bundle'=>'page_banner',
                               ':entity_type'=>'node',
                               ':field_url_url'=> $path
                 ))->fetchField();

if (!empty($path)):
  print views_embed_view('page_banner','block', $path);
endif;

Надеюсь, это поможет кому-то, кому нужно добавить контекстный фильтр в качестве URL запроса.

...