Всем добрый и снова ребят выручайте
Хотелось бы чтобы в зависимости от url алиаса страницы отображалась в нужном шаблоне
То есть предположим у нас страница site.com/ico/five/title-node
Что необходимо написать в phptemplate_preprocess_page
Чтобы к странице вида */five подключался нужный шаблон?
Комментарии
Немного не понятен вопрос. Five это что, тип ноды? Тогда node--five.tpl.php
не five это алиас ноды полностью который выглядит ico/five
К типу ноды шаблон я использую, но нужно изменить у части страниц нод шаблон одного типа материала и общего у этих нод только кусок алиаса то есть
site.com/ico/five
site.com/ico2/five
site.com/ico3/five
site.com/ico4/five
site.com/ico5/five
вот там где встречается five шаблон должен быть другим
if (...) {...}
return $vars;
}
Вот не знаю что написать ...
Отталкиваться нужно не от алиаса, а от того же условия, из которого генерируется алиас. Если five - это значение поля или термина таксономии для ноды - отталкиваться от них.
Это нода. Алиас генерируется на основе [field_[имя-cck]-path]/[title-raw] первый токен это алиас предыдущей ноды к которой прикреплена текущая. Как от этого условия отталкиваться и за чем ума не приложу, если есть известный результат в виде алиаса.
Результат слетит как только изменится алиас, поэтому нужно отталкиваться от машинных имен.
А почему алиас должен меняться? Как оттолкнуться от nid если он у всех разный?
Используйте my_module_preprocess_node, там получаете request uri делаете ему взрыв (explode) и в зависимости от значения полученного функцией pregmatch делаете шаблон1,2 итд...
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;
}
}