Категория:
Опубликовано:

Скрываем заголовок материала

Если нужно скрыть заголовок определенного типа материала из вывода.

В файле page.tpl.php в месте, где выводится заголовок, заменяем строки, например:

 if ($title): 
<h1 class="page-title"><?php print $title; ?></h1><?php endif; ?>

Вместо неё устанавливаем следующее значение:

 <?php if ($title && $node->type !== 'тип_материала') : ?>
  <h1><?php print $title; ?></h1>
 <?php endif; ?>

тип_материала заменяем на машинное название типа материала, в котором нужно заголовок убрать.

Так же можно указать несколько типов материалов:

 <?php if ($title && $node->type !== 'тип1' && $node->type !== 'тип2' && $node->type !== 'тип3') : ?>
Если у Вас возникли вопросы, замечания, предложения или просто благодарность - пишите в комментариях.
Делитесь полезными материалами в социальных сетях.

Комментарии

Я вставил :
<?php if ($title &amp;&amp; $node-&gt;type != &#039;blog&#039;): if ($is_front){ print '<h2 class="title">'. $title .'</h2>'; } else { print '<h1 class="title">'. $title .'</h1>'; } endif; ?>
<?php print render($title_suffix); ?>
Получил:
Parse error: syntax error, unexpected ';' in ...\page.tpl.php on line 94
Что не так?

Во превых, исправьте HTML-значения амперсанда, стрелы и кавычек. Вы скопировали их вместе с ошибкой формата (в посте исправил отображение).

Во вторых, используйте правильный синтаксис.

Похоже у Вас должно получится что то вроде этого:

 <?php if ($title && $node->type !== 'blog'): ?>
   <?php if($is_front): ?>
     <?php print '<h2 class="title">'. $title .'</h2>'; ?>
   <?php else: ?>
     <?php  print '<h1 class="title">'. $title .'</h1>'; ?>
   <?php endif; ?>
 <?php endif; ?>

Не забудьте учесть Ваш тип содержимого в этой строке

$node->type !=='blog'

Вот более правильный синтаксис:

 <?php if ($title && $node->type !== 'blog'): ?>
   <?php if($is_front): ?>
     <h2 class="title"><?php print $title; ?></h2>
   <?php else: ?>
     <h1 class="title"><?php print $title; ?></h1>
   <?php endif; ?>
 <?php endif; ?>

Фокус не удался...
ошибка пропала, а заголовок блога остался...

заголовок блога остался...

Ну, так проверка идет на материалы отличные от типа 'blog'.

Он и не должен пропасть, он должен вывестись как первый или 2-й заголовок. И то, на главной странице.

<blockquote>Ну, так проверка идет на материалы отличные от типа 'blog'.</blockquote>
это как в Вашем примере, дальше проходят материалы кроме 'blog', они (оставшиеся) сортируются : если на главной , то выводим с тегом H2.. иначе H1.
<blockquote>Он и не должен пропасть,</blockquote>
тогда и Вашем примере не должен пропадать!

P.S. как вставлять цитаты без <blockquote></blockquote>, может добавьте этот тег к разрешенным в формате ввода

В моем примере title выводится если страница не является материалом типа "Блог". Иначе не выводится (я вывожу title отдельно, в шаблоне материала).

Да спасибо понял, работает.
А как еще убрать с главной title "blog"?

Друпал выдает: "Notice : Trying to get property of non-object dans include() (ligne 94 dans ...\sites\all\themes\zeropoint\templates\page.tpl.php)."
Это именно строка "if ($title && $node->type !== 'blog')", почему?

Добавьте проверку на наличие $node:

<?php if(!empty($node)): ?>
Добавить комментарий