РЕШЕНО! Показывать только на перечисленных страницах

Главные вкладки

Аватар пользователя iNFerNo iNFerNo 3 мая 2011 в 14:40

Мне необходимо показывать блок только на нодах новостей

т.е. как-то так news/*

news - это вьюха где выводятся новости все

но после создание архива новостей

news/archive

news/* - действует теперь и на страницу news/archive - на которой как бы и не должно показывать

есть ли решение для задачи показывать только на перечисленных, но исключая эти ...

Комментарии

Аватар пользователя oboroten oboroten 3 мая 2011 в 15:05

можно. что-то вроде этого

<?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;
}
?>

В работоспособности кода не уверен (

Аватар пользователя oboroten oboroten 3 мая 2011 в 15:21

попробуйте так.

<?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;
}
?>
Аватар пользователя iNFerNo iNFerNo 3 мая 2011 в 16:08

"oboroten" wrote:
попробуйте так.

нигде не показывает.

а куда ксти вставлять...

у меня вьюшный блок и я а регион его добавляю...

Аватар пользователя oboroten oboroten 3 мая 2011 в 16:26

блоки -> Настройки видимости для страницы -> Показывать, если данный PHP-код возвращает TRUE (PHP-режим, только для экспертов).

Аватар пользователя oboroten oboroten 3 мая 2011 в 20:29

проверьте совпадает ли путь news возможно у вас что-то вроде транслитерации novosti или же ваш путь ко всем новостям выглядит не как site.com/news а site.com/catalog/news тогда надо изменить цифорки Lol ($b[0] == 'news')

Аватар пользователя oboroten oboroten 3 мая 2011 в 21:29

странно однако. я у себя на локале этот код проверил должен работать выводя блок на всех страницах site.com/news и site.com/news/title но не выводя для адреса site.com/news/archive

Аватар пользователя oboroten oboroten 3 мая 2011 в 23:55

ну вот об этом я и говорил Smile

<?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

Аватар пользователя iNFerNo iNFerNo 4 мая 2011 в 8:58

спасибо что напомнили о http://content-management-systems.info/drupal/snippet/299

я думал что снипеты в темизации можно только использовать нои тут в блоках показах.

а насчет вашего когда он не показывает там где нода кроме... на site.ru/1/news - все равно показывает...

Аватар пользователя oboroten oboroten 4 мая 2011 в 18:03

Ну иногда бывает необходимость опираться на путь а не на тип материала.

снипет опирается на тип материала а если на путь тогда вот такой вариант должен работать

<?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;
}
?>

Это типа чтоб самому не забыть