Вы здесь

Скрытие названия документа

Ниже предлагается код, который скрывает названия документов для указанных в нём типов документов. Приведённый код нужно добавить в файл template.php своей темы. Если в вашей теме уже используется функция _phptemplate_variables(), то исключите из этого скрипта её название.

function _phptemplate_variables($hook, $vars = array()) {
  switch ($hook) {
    case 'page':
    $vars['breadcrumb_title'] = $vars['title'];
    if (arg(0) == 'node' && is_numeric(arg(1))) {
      $node = node_load(arg(1));
      if (in_array($node->type, array('page', 'story'))) {
        $vars['title'] = '';
      }
    }
    break;
  }
  return $vars;
}

В данном примере скрываются названия документов типа page и story.

Комментарии

Изображение пользователя Анонимно

Что-то не заработала эта штука.. (( может быть из-за ПатчАвто...?

Изображение пользователя KF

А... вернее заработала, но только для основного материала, а тизер как был с заголовком, так и остался

Изображение пользователя drupal.org.ru

В Гарланде в node.tpl.php вот такой код названия документов выводит:

<?php if ($page == 0): ?>
  <h1><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h1>
<?php endif; ?>

можно в него кроме проверки типа страницы, добавить проверку типа документа:

<?php if ($page == 0 && in_array($node->type, array('blog', 'poll', 'forum'))): ?>
  <h1><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h1>
<?php endif; ?>

node.tpl.php.

Изображение пользователя Lera

А у меня почему-то не работает.

У меня в двух типах материалов movie и filmmaker надо скрыть заголовки.

Добавила:

function ($hook, $vars = array()) {
  switch ($hook) {
    case 'movie':
    $vars['breadcrumb_title'] = $vars['title'];
    if (arg(0) == 'node' && is_numeric(arg(1))) {
      $node = node_load(arg(1));
      if (in_array($node->type, array('movie'))) {
        $vars['title'] = '';
      }
    }
    break;
  }
  return $vars;
}

А заголовок все равно высвечивается.

Изображение пользователя drupal.org.ru

Добавила: function ($hook, $vars = array()) {

Наверное это из-за текста :(

Если в вашей теме уже используется функция _phptemplate_variables, то исключите из этого скрипта её название.

Тут имеется ввиду, что если в теме уже есть function _phptemplate_variables, то нужно вставить код с этой страницы в существующую функцию убрав из него лишнее. Если стандартный Гарланд выглядит:

<?php
function _phptemplate_variables($hook, $vars) {
  if (
$hook == 'page') {

    if (
$secondary = menu_secondary_local_tasks()) {
     
$output = '<span class="clear"></span>';
     
$output .= "<ul class="tabs secondary">\n". $secondary ."</ul>\n";
     
$vars['tabs2'] = $output;
    }

   
// Hook into color.module
   
if (module_exists('color')) {
     
_color_page_alter($vars);
    }
    return
$vars;
  }
  return array();
}
?>

То вставив в эту function _phptemplate_variables и убрав верхние и нижние строчки у этого кода, для movie и filmmaker будет:

<?php
function _phptemplate_variables($hook, $vars) {
  if (
$hook == 'page') {

    if (
$secondary = menu_secondary_local_tasks()) {
     
$output = '<span class="clear"></span>';
     
$output .= "<ul class="tabs secondary">\n". $secondary ."</ul>\n";
     
$vars['tabs2'] = $output;
    }

   
// Hook into color.module
   
if (module_exists('color')) {
     
_color_page_alter($vars);
    }

   
$vars['breadcrumb_title'] = $vars['title'];
    if (
arg(0) == 'node' && is_numeric(arg(1))) {
     
$node = node_load(arg(1));
      if (
in_array($node->type, array('movie', 'filmmaker'))) {
       
$vars['title'] = '';
      }
    }
    return
$vars;
  }
  return array();
}
?>

Изображение пользователя Che

У меня не хочет скрывать заголовки. Скрыть нужно тип материала recept. Я вписал такой код:

<?php
function _phptemplate_variables($hook, $vars = array()) {
  switch (
$hook) {
    case
'recept':
   
$vars['breadcrumb_title'] = $vars['title'];
    if (
arg(0) == 'node' && is_numeric(arg(1))) {
     
$node = node_load(arg(1));
      if (
in_array($node->type, array('recept', 'page'))) {
       
$vars['title'] = '';
      }
    }
    return
$vars;
  }
  return array();
  }
?>

Кстати это под какой друпал? У меня 6-й.