Как определить, что в данный момент вывожу одну из страниц форума ?

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

Аватар пользователя Shedko Shedko 14 октября 2006 в 2:56

Есть необходимость при выводе страницы знать, а не страничку ли форума в данный момент вывожу. Т.е. банально хочу отключить вывод одного столбца, где навигация сайта, так как на форуме она не нужна + в шапке есть ссылки на основные разделы сайта + есть ниспадающее навигационное меню.
Пыталься использовать:

function _is_forum($arg = NULL) {
  static $is_forum = FALSE;
  if ($arg) {
    $is_forum = $arg;
  }
  return $is_forum;
}

но этот код срабатывает только на темах форума, а на индексных страницках форума (на пример на первой странице форума, где все разднлы видны) не работает этот код Sad


Может кто подскажет, так как же все таки определить что в данный момент вывожу страницу форума, а ?

Комментарии

Аватар пользователя Shedko Shedko 14 октября 2006 в 3:59

полазил на drupal.org и нашел функцию которая определяла, что текущая страница это админ-страница, по аналогии вышло так

function luna_is_forum() {
if (arg(0) == 'forum') {
  return TRUE;
}
if (arg(0) == 'node' && ctype_digit(arg(1))) {
  $node = node_load(arg(1));
  if ($node->type == 'forum') {
    return TRUE;
  }  
}
return FALSE;
}

прописал в template.php - и наконец то работает. Smile


А в page.tpl.php вышел такой кусок,

          <?php if (!luna_is_forum()) { ?>
          <?php if ($sidebar_left) { ?>
            <td class="rightcol" valign="top">
              <?php print $sidebar_left ?>
            </td>
          <?php } ?>
          <?php } ?>

который отрубает левый столбец, где навигация на страницах форума.

Аватар пользователя Shedko Shedko 15 октября 2006 в 19:41

единственное но, не забыть добавить в style.css вашей темы

#forum table {
  width: 100%;
}

чтобы форум растягивался на всю ширину темы/страницы

Аватар пользователя Nickolyan Nickolyan 17 октября 2006 в 13:01

Все делается проще, в свойствах блоков. Если не хотите выводить правую колонку блоков, в свойствах всех правых блоков укажите "Показывать на всех страницах кроме перечисленных." А в поле "Страницы " - forum
--
С приветом, Nickolyan

Аватар пользователя Shedko Shedko 17 октября 2006 в 20:19

Может и проще, но лень мне каждому блоку прописывать настройки, вот и изголялся с отключением вывода столбца на форумах Smile

Аватар пользователя ˛ ˛ 17 октября 2006 в 13:20

Для данного случая стандартный способ - просто находка!
Но все же было интересно узнать немного об архитектуре дрюпала Smile

Аватар пользователя Nickolyan Nickolyan 18 октября 2006 в 6:21

Мда... Любим мы себе трудности создавать... Wink А не проще ли приложить голову и руки к более полезным вещам, которые не решаются стандартными методами?
Я вот например собираюсь разобраться с e-comerce и добавить в него возможность работы с вебмани и яндекс-деньги, ну или на худой конец рупэй. Или вообще свое написать для этих целей.

--
С приветом, Nickolyan

Аватар пользователя krimal krimal 29 ноября 2007 в 9:03

можно так же просто использовать
page-forum.tpl.php
по содержанию такой же как page.tpl.php только лишнее убрать нужное дописать.