Выбрать шаблон через админку? - PullRequest
2 голосов
/ 02 августа 2010

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

Что было бы действительно полезно, если бы был способ выбрать, какой файл tpl использовать, прямо в форме редактирования узла. Это позволит пользователю переключаться между различными макетами страниц по желанию.

Кто-нибудь знает хороший способ решения этой проблемы или однозначное решение?

Ответы [ 3 ]

2 голосов
/ 02 августа 2010

ThemeKey позволит вам загрузить тему на основе пути или других критериев. Вы можете использовать другие методы, такие как preprocesser-функции template.php, подключить его к hook_form_alter и найти способ переключения файлов.

1 голос
/ 06 августа 2010

Я закончил тем, что добавил новый словарь для файлов шаблонов (VID для этого - 2 в моем случае), и затем свернул это в препроцессор страницы в моем шаблоне.

function phptemplate_preprocess_page(&$vars) {                                              

  if (count($vars[node]->taxonomy)>0) 
    foreach ($vars[node]->taxonomy as $term) 
      $template = $term->vid == 2 ? $term->name : NULL; 

  if ($template) $vars['template_files'][] = "template-".preg_replace("/[^a-zA-Z0-9s]/", "", strtolower($template));  

}

Теперь, если у меня есть узел с таксономическим термином, который называется: A Green Page!, он будет искать template-agreenpage.tpl.php в качестве файла шаблона.

0 голосов
/ 26 мая 2013

Я тоже хотел эту функциональность, поэтому я создал модуль, чтобы сделать то же самое для шаблонов узлов.Вы можете найти его здесь: http://drupal.org/project/template-picker

...