Хотела скрыть при выводе полной ноды названия нод типа movie и filmmaker
Нашла вот такие решения:
http://drupal.org/node/138910
http://setegnom.com/node/83#comment-1533
Но почему-то у меня ничего не получается
Вроде прописываю в template.php
вот такое:
или вот такое:
function _phptemplate_variables($hook, $vars = array()) {
switch ($hook) {
case 'page':
//titles are now ignored by specific node type when they are anomalous in the design
$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'] = '';
}
}
break;
}
return $vars;
}
switch ($hook) {
case 'page':
//titles are now ignored by specific node type when they are anomalous in the design
$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'] = '';
}
}
break;
}
return $vars;
}
А все равно заголовки появляются.
Комментарии
не проще ли node.tpl.php (в вашей теме)
при выводе $title проверить переменные
$page: Flag for the full page state.
$type: Node type, i.e. story, page, blog, etc.
т.е. , что то типа
<?php if(!($page && in_array($type,array('movie', 'filmmaker')))) { print $title;} ?>
Я не поняла, это
вместо чего-то надо вписать в node.tpl.php?
Ну вот например стандартный node.tpl.php из темы Zen
<?php if ($page == 0): ?>
<h2 class="title">
<a href="<?php print $node_url; ?>"><?php print $title; ?></a>
</h2>
<?php endif; ?>
<?php if ($unpublished): ?>
<div class="unpublished"><?php print t('Unpublished'); ?></div>
<?php endif; ?>
<?php if ($picture) print $picture; ?>
<?php if ($submitted): ?>
<div class="submitted">
<?php print $submitted; ?>
</div>
<?php endif; ?>
<?php if (count($taxonomy)): ?>
<div class="taxonomy"><?php print t(' in ') . $terms; ?></div>
<?php endif; ?>
<div class="content">
<?php print $content; ?>
</div>
<?php if ($links): ?>
<div class="links">
<?php print $links; ?>
</div>
<?php endif; ?>
</div></div> <!-- /node-inner, /node -->
так вот заменяете строку <?php if ($page == 0): ?> на <?php if ($page == 0 && !in_array($type,array('movie', 'filmmaker'))): ?>
ну а в своей теме ищите, что то похожее, и не забудьте почистить кэш Друпала после изменений
А если у меня для каждого типа документа свои node-movie.tpl.php и node-filmmaker.tpl.php ?
Заменила и в node.tpl.php и в node-movie.tpl.php но заголовок остался
У меня за основу взята тема framework. Там тоже есть <?php if ($page == 0): ?>
drupal_set_title()
Что это?
Функция установки заголовка в теги title... и в H1 по-моему тоже.
А что с ней делать?
Могу предложить решение через node-api, при загрузке нода заданного типа меняйте значение $node->title из текущего на пробел. Если есть свой модуль проекта то пишите в нем функцию:
switch ($op) {
case 'load':
if ($node->type == 'movie' && $page == 1) { //про значение $page не помню надо дебажить))
$node->title = '';
}
break;
}
Какой модуль проекта???
Нашел и проверил комбинированное решение
вариант 1:
если у вас не определен node-ваш_тип.tpl.php
то в node.tpl.php вставлем перед выводом переменной $title следующий код.
<?php if($page==1 && $type=='ваш_тип'){ drupal_set_title('');} ?>
вариант 2:
если у вас под нужные типы есть tpl то просто в этих тпл-ях перед вывод переменной $title
<?php if($page==1){ drupal_set_title('');} ?>
<h2>
<?php if($page==1){ drupal_set_title('');} ?><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a>
</h2>
<?php endif; ?>
Вот так сделала, но ничего не скрывается
Поставте строку выше перед if($page==0),
и соответственно код не отработает
вы же должны понимать, что если $page==1, то условие if($page==0) никогда не выполниться
<?php if($page==1){ drupal_set_title('');} ?>
<?php if ($page == 0): ?>
<h2>
<a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a>
</h2>
<?php endif; ?>
Ой, я сейчас разрыдаюсь. Я искала это решение две недели. И вот... сбылось.
Дайте мне какой-нибудь Ваш счет яндекс-деньгами или в банке. Я Вам перечислю маленькое вознаграждение.
Не стоит
тем более , основную часть решения с подсакзки direqtor-а ...
Давайте-давайте. Это же добровольное преждложение. Тем более, что у direqtor-а ... не хватило терпения довести меня до окончательного решения, а у Вас хватило.
Можно в личку.
А, я уже в профайле нашла.
Зачем плодить условия. Главное – краткость:
if($page){
drupal_set_title('');
} else {
?>
<h2>
<a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a>
</h2>
<?php
}
?>
Спасибо
Честно говоря мне тут несколько некогда экспериментировать с кодом... Отвлекаюсь на пару минут от копипаста, чтоб моск отвлечь... На новый сайт контент заливаю. Много еще.
Все равно спасибо
а для 7ки что в ноде-мойтипматериала.тпл вставлять?