Я использую Page Manager и Панели , предоставляя настраиваемые панели узлов с правилами выбора по типу (например, один вариант панели для статьи, один вариант панели для типа контента блога). Это работает гладко до сих пор, стиль также аккуратный. Но как я могу получить больше власти над рендерингом элементов?
Существует несколько способов визуализации определенных элементов: добавление полей, использование токена, использование настраиваемого представления, отрисовка только определенных полей, использование визуализированного объекта узла в режиме просмотра. использование пользовательского содержимого панели с заполнителями и т. д.
Каков наилучший подход здесь? Было бы здорово иметь возможность добавить пользовательский (что-то) элемент панели, который можно стилизовать в * .tpl.php.
Мой текущий подход заключается в использовании набора отображения, создании режимов просмотра для различных областей деталей / панелей и использовании подсказок для темы для добавления пользовательского node.tpl.php для каждого режима просмотра. Не нужно вызывать взгляды, что в значительной степени излишне ?! рендеринг, дополнительные запросы ...) и может использовать уже кэшированные объекты.
function mytheme_preprocess_node(&$vars) {
if ($vars['node']->type == 'my_content_type' && $vars['view_mode'] == 'panel_region_left') {
$vars['theme_hook_suggestions'][] = 'node__my_content_type__panel_region_left';
}
if ($vars['node']->type == 'my_content_type' && $vars['view_mode'] == 'panel_region_right') {
$vars['theme_hook_suggestions'][] = 'node__my_content_type__panel_region_right';
}
}
Я не уверен, насколько хорошо это будет кэшироваться и сколько ресурсов он будет потреблять. Любой совет был бы благодарен.