Есть сайт на Друпал 7. Установил на него Advanced forum. Работает. Но есть одна закавыка - с правой стороны сайта висит блок, и мне бы хотелось, что бы на форуме он не показывался, а на всех остальных страницах - был. В свойства блока "не показывать на страницах" ввожу forum/*
И это работает, когда показывается главная страница форума или подфорумы. А вот когда заходишь в тему, то блок опять возникает, потому что адрес темы - узел node а не forum
как тут быть?
Комментарии
И вот еще непонятка:
на сайте через модуль Wysiwyg установлен CKeditor. Однако, для того, что писать сообщения на форуме.ю он слишком навороченный, поэтому я установил NicEditor и поставил его через Wysiwyg как редактор Filtered HTML.
Далее, захожу в модули, Advanced Forum нажимаю на разрешения ролей Там ставлю галки напротив Filtered HTML зарегистрированным пользователям и себе. А с Full HTML галки всем снимаю.
Однако по умолчанию, если создавать ответ в ветке, грузится CKeditor. Как это побороть?
можно с помощью pathauto "node" заменить на "forum"
У Сетегнома есть отличный набор сниппетов, вам понадобится вот этот, только конечно придется немного изменить. http://content-management-systems.info/drupal/snippet/300 И там еще ошибочка маленькая - вместо последних двух TRUE должно быть FALSE.
Сорри, на версию не глянула - я работала только с шестеркой, так что может и не подойдет вам.![Sad](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/sad.gif)
Благодарю, однако я не программист и строчки кода на меня производят пугающее впечатление.
благодарю, но он еще требует модуль token. Что-то не очень хочется ставить два модуля только для того, что бы убрать блок. Может быть, есть способы попроще?
скорее всего можно в настройках видимости блока поставить
"Показать, если данный PHP-код возвращает TRUE" и сделать проверку по типу материала
но если уж
то вряд ли я еще чего придумаю
а для того, чтобы ссылки были логически понятными - не хотите?
Вы можете попробовать код, который я делала для своего сайта (у меня шестая версия, но думаю будет работать):
<?php
$match = TRUE;
$types = array('forum' => 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;
}
}
if (substr($_SERVER["REQUEST_URI"], 0, 6) == '/forum')
{ $match = FALSE;}
if (substr($_SERVER["REQUEST_URI"], 0) == "/node/add/forum")
{ $match = FALSE;}
return $match;
?>
Его нужно вставить в поле в настройках видимости блока, установив переключатель в нижнее положение "Показать, если данный PHP-код возвращает TRUE".
Виола, благодарю. Однако я так и не нашел, где находятся настройки видимости блока.
Однако нашел другое - в свойствах блока есть галки, устанавливающие, на каких типах документа этот блок должен показываться. Если выключить тип документа "форум", то оно там и не показывается.
Я имела ввиду то поле, куда вы вводили forum/*. Но если у вас в настройках есть такие чудо-галочки, то это именно то, что нужно! У меня такого нет, к сожалению, поэтому использую сниппеты.
Добрый день, я убрал блоки со страниц форума с помощью PHP кода
<?php
if (arg(0) == 'node' && is_numeric(arg(1))){
$node = node_load(arg(1));
return ($node->type != 'forum');
} elseif (arg(0) == 'forum') {
return False;
}
return True;
?>
Но теперь у меня возникла необходимость убрать блоки ещё с одной страницы, как это реализовать?