Подставление шаблона страницы в зависимости от алиаса

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

Аватар пользователя NightL NightL 18 марта 2012 в 19:08

Всем добрый и снова ребят выручайте Smile

Хотелось бы чтобы в зависимости от url алиаса страницы отображалась в нужном шаблоне
То есть предположим у нас страница site.com/ico/five/title-node

Что необходимо написать в phptemplate_preprocess_page
Чтобы к странице вида */five подключался нужный шаблон?

Комментарии

Аватар пользователя NightL NightL 18 марта 2012 в 19:55

не five это алиас ноды полностью который выглядит ico/five
К типу ноды шаблон я использую, но нужно изменить у части страниц нод шаблон одного типа материала и общего у этих нод только кусок алиаса то есть

site.com/ico/five
site.com/ico2/five
site.com/ico3/five
site.com/ico4/five
site.com/ico5/five

вот там где встречается five шаблон должен быть другим

function phptemplate_preprocess_page(&$vars) {
        if (...) {...}
        return $vars;
}

Вот не знаю что написать ...

Аватар пользователя boneg boneg 18 марта 2012 в 20:55

Отталкиваться нужно не от алиаса, а от того же условия, из которого генерируется алиас. Если five - это значение поля или термина таксономии для ноды - отталкиваться от них.

Аватар пользователя NightL NightL 18 марта 2012 в 21:32

Это нода. Алиас генерируется на основе [field_[имя-cck]-path]/[title-raw] первый токен это алиас предыдущей ноды к которой прикреплена текущая. Как от этого условия отталкиваться и за чем ума не приложу, если есть известный результат в виде алиаса.

Аватар пользователя enemis enemis 19 марта 2012 в 0:51

Используйте my_module_preprocess_node, там получаете request uri делаете ему взрыв (explode) и в зависимости от значения полученного функцией pregmatch делаете шаблон1,2 итд...

Аватар пользователя Semantics Semantics 19 марта 2012 в 0:56
function phptemplate_preprocess_page(&$vars) {
          if (module_exists('path')) {
        $alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q']));
        if ($alias != $_GET['q']) {
          $suggestions = array();
          $template_filename = 'page';
          foreach (explode('/', $alias) as $path_part) {
            $template_filename = $template_filename . '-' . $path_part;
            $suggestions[] = $template_filename;
          }
        }
        $vars['template_files'] = $suggestions;
      }
 
 }