[РЕШЕНО, но есть вопросик мелкий]Разные страницы page.tpl.php в заисимости от урл и типа материала

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

Аватар пользователя iNFerNo iNFerNo 26 января 2012 в 13:58

имею в папке темы файл Page.tpl.php - шаблон для всех нод, страниц, которые не имеют личные page.tpl.php как типы материала (news -> page-news.tpl.php)

но мне нужно создать вариацию page.tpl.php для урл адресов

например такой адрес site.ru/big-gun-88 (это вьюха), со своей page.tpl.php

адрес site.ru/big-gun-88/news (это другая вьюха), со своей page.tpl.php

адрес site.ru/big-gun-88/news/433.html (это другая это нода(тип news)), со своей page.tpl.php игнорируя общий шаблон page-news.tpl.php

Комментарии

Аватар пользователя iNFerNo iNFerNo 26 января 2012 в 14:24

пол задачи решил кодом

if (!module_exists('path')) {
        return;
  }
  $url_alias = drupal_get_path_alias('node/' . $vars['node']->nid);
  if ($url_alias == ('node/' . $vars['node']->nid)) {
        return;
  }
  $suggestions = array();
  $path_parts = explode('/', $url_alias);
  $template_filename = 'page';
  foreach ($path_parts as $path_part) {
        $template_filename = $template_filename . '_' . $path_part;
        $suggestions[] = $template_filename;
  }
  $vars['template_files'] = $suggestions;

но осталась задача для типа материала по урл выводить разные шаблоны страниц

т.е. тип материала news

на сайте он выводится по двум адресам

сайт.ру/зона1/news.html

и

сайт.ру/зона2/news.html

2 разных шаблона должно получаться...

Аватар пользователя iNFerNo iNFerNo 26 января 2012 в 14:29

типа материала я разделаю скк полем в котором выбираю зона1 или зона2

м.б. в зависимости от значения этого сск поля можно шаблон собрать?

Аватар пользователя iNFerNo iNFerNo 26 января 2012 в 15:03

может как то насильно шаблон присваивать нодам?

если тип материала = новости и имеет скк поле = 1

использовать шаблон пейдж-новость-1.тпл.пхп

или

если тип материала = новости и имеет скк поле = значение

использовать шаблон пейдж-новость-значение.тпл.пхп

как то так можно делать и куда такое пихать?

Аватар пользователя iNFerNo iNFerNo 26 января 2012 в 15:24

если такое вставить

function ИМЯТЕМЫ_preprocess_page(&$variables) {
if (arg(0) == 'node' && ($node->field_noderef_artist[0]['nid'])) {
$node = node_load(0);
$sug[] = 'page-' . $node->field_noderef_artist[0]['nid'];
$variables['template_files'] = $sug;
}
}
?>

Аватар пользователя iNFerNo iNFerNo 26 января 2012 в 15:40

Решил задачу

if (isset($vars['node']) && ($vars['node']->field_noderef_artist[0]['nid'] == значение))
    {
        $vars['template_files'][] = 'page-свойшаблон';
    }

только не получается общий код сделать для всех значений сск поля

чтобы шаблон был типа 'page-field_noderef_artist[0]['nid']';