Drupal 7 - Создайте пользовательский шаблон, который можно назначить разным страницам


Я хочу иметь собственный шаблон для страниц. В WordPress есть функция выбора шаблонов для страниц или сообщений. Возможно ли это для Drupal?

 4
Author: Chapabu, 2012-04-20

4 answers

Смотрите здесь Предложения по тематическому крючку Drupal 7

Для узлов Вы можете использовать

    node--[type|nodeid].tpl.php
    base template: node.tpl.php
    Theme hook suggestions are made based on these factors, 
listed from the most specific template to the least. 
Drupal will use the most specific template it finds:

    node--nodeid.tpl.php
    node--type.tpl.php
    node.tpl.php

Также Предложения по шаблонам Drupal 6

Чтобы использовать один и тот же tpl для нескольких страниц, вам нужно использовать theme_preprocess_node Как

function theme_preprocess_node(&$vars, $hook) {
  $node = $vars['node'];
  if(in_array($node->nid), $myuids)
   $vars['template_file'] = 'your_template_file';
}
 3
Author: niksmac, 2012-04-20 08:27:03

Взгляните на Панель . Это позволяет использовать панели для типов контента, и вы можете определять различные макеты, контент, контексты и т.д. для каждого узла.

На мой взгляд, этот подход намного проще поддерживать, чем иметь кучу отдельных файлов шаблонов в вашей теме.

 1
Author: dcmouyard, 2013-09-04 15:46:42
  1. Создайте модуль MYMODULE;

Введите следующий код:

function MYMODULE_theme($existing, $type, $theme, $path) {
  $theme = array();
  $theme['TEST_NAME'] = array(
    'template' => 'TEMPLATE-NAME',
    'path' => drupal_get_path('module', 'MYMODULE'),
  );
  return $theme;
}
  1. Создайте файл TEMPLATE-NAME.tpl.php в папке модуля;

  2. Выведите его в нужных местах с помощью кода:

    theme('TEST_NAME', $vars);
    
 1
Author: Henry, 2015-10-08 09:14:42
 0
Author: whitefleaCH, 2012-04-20 07:25:14