Мне необходимо показывать блок только на нодах новостей
т.е. как-то так news/*
news - это вьюха где выводятся новости все
но после создание архива новостей
news/archive
news/* - действует теперь и на страницу news/archive - на которой как бы и не должно показывать
есть ли решение для задачи показывать только на перечисленных, но исключая эти ...
Комментарии
можно. что-то вроде этого
<?php
$a = drupal_get_path_alias($_GET['q']);
$b = explode('/',$a);
if($b[0] == 'news'){
return TRUE;
}else if($b[0] == 'news' && $b[1] == 'archive'){
return FALSE;
}
?>
В работоспособности кода не уверен (
не не показывает
попробуйте так.
<?php
$a = drupal_get_path_alias($_GET['q']);
$b = explode('/',$a);
if($b[0] == 'news' && $b[1] == 'archive'){
return FALSE;
}
if($b[0] == 'news'){
return TRUE;
}
?>
<?php
if(arg(0) == 'news' && arg(1) == ''){
return TRUE;
} else return FALSE;
?>
А так?
нигде не показывает.
а куда ксти вставлять...
у меня вьюшный блок и я а регион его добавляю...
так везде показывает
блоки -> Настройки видимости для страницы -> Показывать, если данный PHP-код возвращает TRUE (PHP-режим, только для экспертов).
все правильно. но чото не рапотает.
проверьте совпадает ли путь news возможно у вас что-то вроде транслитерации novosti или же ваш путь ко всем новостям выглядит не как site.com/news а site.com/catalog/news тогда надо изменить цифорки ($b[0] == 'news')
не у меня news ручками забит ко всем нодам
странно однако. я у себя на локале этот код проверил должен работать выводя блок на всех страницах site.com/news и site.com/news/title но не выводя для адреса site.com/news/archive
site.com/news
по этому адресу тоже не надо вывод ксти. только в новостных нодах...
кажись вспомнил в чем косяк. все время забываю...
у меня вот так вот
site.ru/1/news
site.ru/1/news/archive/*
site.ru/1/news/* - показывать блок только тут
ну вот об этом я и говорил
<?php
$a = drupal_get_path_alias($_GET['q']);
$b = explode('/',$a);
if($b[1] == 'news' && $b[2] == 'archive'){
return FALSE;
}
if($b[1] == 'news'){
return TRUE;
}
?>
попробуйте так
а если только для новостей тогда загляните сюда http://content-management-systems.info/drupal/snippet/299
спасибо что напомнили о http://content-management-systems.info/drupal/snippet/299
я думал что снипеты в темизации можно только использовать нои тут в блоках показах.
а насчет вашего когда он не показывает там где нода кроме... на site.ru/1/news - все равно показывает...
Ну иногда бывает необходимость опираться на путь а не на тип материала.
снипет опирается на тип материала а если на путь тогда вот такой вариант должен работать
<?php
$a = drupal_get_path_alias($_GET['q']);
$b = explode('/',$a);
if($b[1] == 'news' && $b[2] == 'archive'){
return FALSE;
}
if($b[1] == 'news' && $b[2] == FALSE){
return FALSE;
}
if($b[1] == 'news' && $b[2] == TRUE){
return TRUE;
}
?>
Это типа чтоб самому не забыть