Шаблоны страниц для page.tpl.php

Возникла необходимость создать отдельный шаблон страницы для ноды с определённым alias, созданным с помощью pathauto. Ссылки, которые помогли мне разобраться приведены ниже. Хочу обратить внимание на содержание материала https://www.drupal.org/docs/7/theming/template-theme-hook-suggestions. Тут есть важный момент:

page--[front|internal/path].tpl.php

base template: page.tpl.php
The suggestions are numerous. The one that takes precedence is for the front page. The rest is based on the internal path of the current page. Do not confuse the internal path to path aliases which are not accounted for. Keep in mind that the commonly-used Pathauto module uses path aliases.

Мой вольный перевод следующий:

page--[front|internal/path].tpl.php

базовый шаблон: page.tpl.php
Предложения многочесленны. Первое имеет приоритет для главной страницы. Остальные базируются на внутреннем пути текущей страницы. Не путайте внутренний путь с alias-ами, которые не учитываются. Помните, что как правило используемый модуль Pathauto использует alias для путей.

То есть допустим есть нода под названием "Teст". Её nid = 1, а алиасом является test. Если мы хотим создать отдельный шаблон для данной страницы, то конструкция page--node--1.tpl.php сработает(не забудьте почистить кэш), а конструкция page--test.tpl.php не сработает.

Чтобы заработала конструкция page--test.tpl.php нужно в template.php дописать следующий код:

	function mytheme_process_page(&$variables) 
	{   
		if (isset($variables['node'])) 
		{   
			$alias = drupal_lookup_path('alias', 'node/'.$variables['node']->nid); 
			if (!empty($alias)){ 
				$variables['theme_hook_suggestions'][] = 'page__'.$alias; 
			} 
		} 
	}

Подробное объяснение можно получить по указанной выше ссылки в блоке "How Drupal determines page theme hook suggestions based on path"

Полезные ссылки по теме:
http://drupalace.ru/otdelnyi-shablon-stranitsy-dlya-raznykh-tipov-materialov-v-drupal-7
https://vivasart.com/lab/drupal-7-kak-pereopredelit-shablon-dlya-konkretnogo-tipa-materialov
http://xandeadx.ru/blog/drupal/89
https://www.drupal.org/node/223440#custom-suggestions

Тэги:

Тэг в списке: