Сделать:
Что такое блоки
Зачем они нужны
Как их настроить
Блоки, которые создают модули
Удаление блоков
Создание блоков
Чтобы "включить" блок, нужно:
Почитать:
Показывать или не показывать блок на страницах форума.
Не только по пути: forum/*, но и на страницах просмотре и редактирования тем форума.
В настройках блока ставим галочку напротив "Показать, если данный PHP-код возвращает TRUE (PHP-режим, только для экспертов)." и ниже вводим код:
При этом он будет виден по страницам с адресом forum/*
<?php
$result=true;
if ((arg(0) == 'node') && is_numeric(arg(1))) {
$node = node_load(arg(1));
if ( $node->type == "forum" ) $result=false;
}
return $result;
?>Код возвращает TRUE только, если в данный момент не просматривается документ типа 'forum'.
А раз так - блок выводится всегда, кроме случая просмотра документа типа 'forum'.
Показывает блок ТОЛЬКО на страницах форума (включая просмотр и редактирование нод форума)
<?php
if (arg(0) == 'forum') return TRUE;
if (arg(0) == 'node' && is_numeric(arg(1))) {
$result= db_fetch_object(db_query("SELECT n.type FROM {node} AS n WHERE n.nid=%d LIMIT 1", arg(1)));
if ($result->type == 'forum') return TRUE;
}
return FALSE;
?><?php
//НЕ показать блок на страницах форума (включая просмотр и редактирование нод форума)
if (arg(0)=='node' && is_numeric(arg(1))){
$result= db_fetch_object(db_query("SELECT n.type FROM {node} AS n WHERE n.nid=%d LIMIT 1", arg(1)));
if ($result->type == 'forum') return FALSE;
} elseif (arg(0)=='forum') return FALSE;
return TRUE;
?><?php
if (arg(0) == 'node' && arg(1)){
$result= db_fetch_object(db_query("SELECT n.type FROM {node} AS n WHERE n.nid=%d LIMIT 1", arg(1)));
return ($result->type != 'forum');
}
?>Как показать блок только при просмотре и редактировании ноды типа форум догадайтесь сами...
Решено: включить/выключить блок на форуме
Показывать / НЕ показывать блок на странице профиля пользователя
В настройках блока ставим галочку напротив "Показать, если данный PHP-код возвращает TRUE (PHP-режим, только для экспертов)." и ниже вводим код:
<?php
global $user;
if (arg(0) == 'user' && $user->uid == arg(1)) return TRUE;
return FALSE;
?><?php
global $user;
if (arg(0) == 'user') return TRUE;
return FALSE;
?><?php
global $user;
if (arg(0) == 'user' && $user->uid == arg(1)) return FALSE;
return TRUE;
?><?php
global $user;
if (arg(0) == 'user') return FALSE;
return TRUE;
?>показать в блоке документы определённого типа.
Модуль views потребляет очень много ресурсов. Его мощь и преимущество в том, что он может помочь быстро сделать вывод на страницу опред. материалов (списков, таблиц, анонсов и др.). Именно быстро сделать, но это не работает быстро.
Лично я стараюсь использовать этот модуль тогда, когда на странице с материалами нужно использовать фильтры - с этим модуль справляется превосходно, а повторить своими силами это трудно.
Итак, альтернативное решение - добавить в тело блока PHP-код, который будет выводить эти документы.
<?php
unset ($output);
$nmbr_reklama=3;//Количество сообщений рекламы
if (arg(0) == 'node' && is_numeric(arg(1)) && ! arg(2) ) {
$node = node_load(arg(1));
$sql="SELECT n.title, n.nid FROM {node} AS n WHERE n.status=1 AND n.type='reklama' GROUP BY n.nid LIMIT ".$nmbr_reklama;
$result = db_query($sql);
while ($anode = db_fetch_object($result)) {
$reklama= node_load($anode->nid);
$output .= '
<div class="node"><h3 class="title">'.$reklama->title.'</h3>'. $reklama->body.'</div>';
}
return $output;
}
?>Формат ввода нужно установить в PHP.