Делаем шаблоны страниц зависящие от URL алиасов (Different page templates depending on URL aliases)

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

Аватар пользователя NecroHill NecroHill 25 февраля 2008 в 12:52

Набрел на решение которого давно искал.
Может кто и знает уже, но в форуме пару неотвеченных вопросов проскакивало.
Не совсем конкретный например: http://drupal.ru/node/6695

По теме.
Допустим наделали мы нод и спрятали их с помощью path в URL за /rubbish/ и URLы выглядят
www.example.com/rubbish/node111
www.example.com/rubbish/node222

нам захотелось поменять дизайн страниц с адресом после www.example.com/rubbish/ с помощью создания шаблона page-rubbish.tpl.php

для этого прописываем в template.php следущий код:

function _phptemplate_variables($hook, $vars = array()) {
  switch ($hook) {
    case 'page':

      if (module_exists('path')) {
        $alias = drupal_get_path_alias($_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;
      }
      break;
  }
 
  return $vars;
}

источник тут: http://drupal.org/node/139766

Комментарии