Вы здесь

Почему пропадает Sidebar на странице представления?

0

Добрый день!

Коллеги, прошу помочь разобраться почему при переходе по path во View (тип page), например, http://localhost/test01/articles, пропадает Sidebar (region).
Пытаюсь его смотреть в theme_page_alter($page) - там Sidebar (region) - отсутствует, и только для View (page, path).
При том-же на каких-то View (page) он есть, проходишь в ноду все на месте, на frontpage тоже на месте, а вот по пути View выводятся только данные полученные из представления (меню верхнее, фотер, т.е. другие регионы при этом выводятся.

Тема самописная, на Bartik - Ok.

Версия Drupal: 
7.x
Вопрос задан 26.01.2018 - 10:32

Ответы

0

Может быть в регионе на этой странице нет блоков?

Ответ дан 26.01.2018 - 19:26
Аватар пользователя shu
shu
151

Проверял, в исключениях для вывода блоков страницы с View (page) - нет, пробовал даже отдельные блоки располагать в регионе Sidebar и вывод делать только для страницы с View (page), создавать новые View (creade a page) и новые блоки (т.е. они бы в исключения не попали). В переменной page['sidebar'] - пусто, т.е. нет ни одного значения. Какая-то мистика. Просто пропадает page['sidebar'] или не генерируется page['sidebar'].

Комментарий из page.tpl.php того места где идет вывод <?php print render($page['sidebar']); ?> в разметке есть.

PS Использую модуль DS, представление (page) на котором блоки в Sidebar работают старое, т.е. было создано до того как начал дополнительные модули навешивать, последняя идея начать отключать модули, других идей нет.

Комментарий оставлен 27.01.2018 - 04:36

Делал все в соответствии с уроком https://www.youtube.com/watch?v=FiTpWjgeBik , там на 4 минуте тоже сайд бар не выводился, но я подумал, что в регионе для этой страницы нет блоков.

View (page) выводится в регион [content] ?

Комментарий оставлен 27.01.2018 - 04:41

Перефразирую вопрос, существует ли иной способ настройки блоков для регионов при выводе через View (as a page) ? Кроме стандартных настроек через structure - blocks и необходимо ли это делать, т.к. стандартные настройки не срабатывают это бага или фича.

Смотрю $region = block_get_blocks_by_region('sidebar'), для страницы представления, блоков нет, а в structure - blocks есть.

Комментарий оставлен 27.01.2018 - 09:47

Спасибо всем участвующим!

Проблема оказалась в модуле CTools, файл ctools.module, не любят парни 'sidebar' регион.
Вообще странно, что такой хардкод лежит в продуктовых ветках модулей, но для 8ки все переписали уже.

/**
* Implement hook_block_list_alter() to potentially remove blocks.
*
* This exists in order to replicate Drupal 6's "no blocks" functionality.
*/
function ctools_block_list_alter(&$blocks) {
$check = drupal_static('ctools_set_no_blocks', TRUE);
if (!$check) {
foreach ($blocks as $block_id => $block) {
// @todo -- possibly we can set configuration for this so that users can
// specify which blocks will not get rendered.
if (strpos($block->region, 'sidebar') !== FALSE) {
unset($blocks[$block_id]);
}
}
}
}

Комментарий оставлен 27.01.2018 - 11:19