Есть ли аргумент, чтобы узнать, что вы находитесь на странице списка просмотров? - PullRequest
1 голос
/ 17 декабря 2008

Мне пришлось переместить заголовок моей страницы в мой узел, чтобы удовлетворить потребности клиента, но я не могу теперь получить заголовок для отображения на странице просмотра моего списка просмотров. Аргумент, который мне нужно отобразить на страницах редактирования, администрирования и отслеживания:

<?php if ($title && ((arg(2) == 'track') || (arg(2) == 'edit') || 
  (arg(0) == 'admin'))): ?>
    <h1 class="title"><?php echo $title; ?></h1>
<?php endif; ?>

и мне интересно, есть ли общий аргумент для включения всех страниц списка представлений или, наоборот, просто исключить все страницы узлов (примечание: я использую CCK, поэтому у меня много типов контента)?


Перебирая другие возможности ...

Я знаю, что могу создавать разные шаблоны страниц для своих типов контента, но могу ли я создать один другой шаблон страницы для ВСЕХ моих типов контента CCK?

Вот код, который я бы прошел в template.php, чтобы получить возможность добавлять отдельные шаблоны типа контента:

function _phptemplate_variables($hook, $vars) {
  switch ($hook) {
    case 'page':  
      if ($vars['node'] && arg(2) != 'edit') {
        $vars['template_files'][] = 'page-'. $vars['node']->type;
      }
      break;
  }
  return $vars;
}

Приветствия
Стив

Ответы [ 2 ]

3 голосов
/ 17 декабря 2008

ОК - я нашел свое собственное решение, которое не требовало создания более 20 шаблонов страниц. В приведенном выше примере я добавил условие !node->type в свой запрос, поскольку представления не предоставляют тип узла, а затем прошел сайт, убедившись, что заголовки были отключены на уровне просмотра страницы, где это необходимо.

<?php if ($title && ((arg(2) == 'track') || (arg(2) == 'edit') 
  || (arg(0) == 'admin') || !$node->type)): ?>
    <h1 class="title"><?php echo $title; ?></h1>
<?php endif; ?>

Спасибо за внимание :-)
Стив

0 голосов
/ 17 октября 2009

В случае, если кто-то еще исследует некоторые подобные вопросы, можно использовать другой способ предоставления аргумента в файле node.tpl, который будет применяться при отображении узла через представление (модуль):

if ($ page == 0)

Все, что следует, будет проигнорировано для "обычного" отображения одного узла. Это не работает для page.tpl, поэтому, если нужно вернуть заголовок для всех страниц, созданных с помощью Views, его можно добавить в файл views-view.tpl.php и добавить в тему. Или могут быть добавлены другие более специфичные файлы TPL видов для определенных типов просмотров.

...