Хочу прояснить для себя - на примере, что надо писать в поле "Показать, если данный PHP-код возвращает TRUE (PHP-режим, только для экспертов)." (в настройках видимости блока), если мне например надо чтоб данный блок показывался не только в форуме (forum/*) но и в темах форума, а у них уже ссылка node/*...
я так понимаю что нужно чтоб код проверял, является-ли тип ноды равным ntype-forum, но в какой переменной хранится это значение? $type или $sticky ? и как это написать на РНР чтоб работало?
ADD:
и еще вопрос: с помощью какого модуля сделан такой блок:
Комментарии
Модуль BUEditor.
1) - я тут пару месяцев назад спрашивал, там пара вариантов появилась... было это в форуме... смысл что $node нет когда eval выполняется, там надо её или через хак шаблона делать глобальной, или через свой модуль...
2) - bueditor
ясно, спасибо
Вот: http://drupal.ru/node/7284
<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
$node = $node = node_load(arg(1));
if ($node->nid) {
//Здесь можно писать остальные проверки
?>
дело в том, что блок не знает, что выводится в основной части - поэтому нужно проверять руками
в предыдущем посте был вопрос про нагрузку node_load - так вот друпал кеширует загруженные ноды, а так как эта нода еще и отображается, то она наверняка уже заружена и вы получите просто копию памяти
<?php
$match = TRUE;
$types = array('forum' => 1, 'book' => 1);
if (arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load(array('nid' => $nid));
$type = $node->type;
if (isset($types[$type])) {
$match = FALSE;
}
}
return $match;
?>
Этот код позволяет скрыть блок на нодах типа forum и blog
dm66
спасибо за код.. немного добавил в него -- чтобы и на самих forum и blog исчезал блок, а не только на нодах
<?php
$match = TRUE;
$types = array('forum' => 1, 'blog' => 1, 'image' => 1);
if (arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load(array('nid' => $nid));
$type = $node->type;
if (isset($types[$type])) {
$match = FALSE;
}
}
else
{
if (isset($types[arg(0)])) {
$match = FALSE;
}
}
return $match;
?>