Темизация страницы модуля

Главные вкладки

Аватар пользователя Armi Armi 7 августа 2019 в 17:02

Добрый день. Не могу понять как создать шаблон для всей страницы по типу page--"type_node".tpl.php в своем модуле.

<?php
function my_module_callback($entity)
{
  
$view_mode 'full';
  
$langcode NULL;

 
 

my_module_build_content($entity);
  
$content $entity->content;

  

$build = array(
    
'#theme' => 'my_module_page',
    
'#entity' => $entity,
    
//'#view_mode' => 'full',
    
'#language' => NULL,
    
'#content' => $content
  
);
 
  return 
$build;
}

function 

my_module_theme()
{
  
$theme_path path_to_theme();
    return array(
        
'my_module_page' =>  array(
          
'render element' => 'page',
          
'path' => $theme_path,
          
'template' => 'templates/entity/page--entity',
        )
    );

?>

В результате возвращает шаблон page.tpl.php а внутри $page['content'] уже шаблон page--entity . Не могу понять почему так происходить шаблон находит но его код не шаблонизирует всю страницу а выводится внутри региона content.

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 7 августа 2019 в 18:32
1

Его не надо создавать, надо добавить нужные суффиксы в 'theme_hook_suggestions' через hook_preprocess_page и нужный шаблон можно будет использовать в теме см. https://api.drupal.org/api/drupal/includes%21theme.inc/function/template...

Аватар пользователя Armi Armi 7 августа 2019 в 19:56

Нашел более простой способ page--1 аргумент.tpl.php, который передан в hook_menu страницы. Теперь бьюсь с MENU_LOCAL_TASK табы не хочет выводить на страницах модуля, хотя на других страницах с таким же шаблоном страницы выводит.