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

Прислано: Shedko

пт, 13/10/2006 - 22:56

Другие статьи по теме:

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

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

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


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

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Shedko в пт, 13/10/2006 - 23: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 - и наконец то работает. :-)


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

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

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


Опубликовано ˛ в вс, 15/10/2006 - 05:47.

сэнкс, очень юзабельно


Опубликовано Shedko в вс, 15/10/2006 - 15:41.

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

#forum table {
  width: 100%;
} 

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


Опубликовано Nickolyan в вт, 17/10/2006 - 09:01.

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


Опубликовано ˛ в вт, 17/10/2006 - 09:20.

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


Опубликовано Shedko в вт, 17/10/2006 - 16:19.

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


Опубликовано Nickolyan в ср, 18/10/2006 - 02:21.

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

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


Опубликовано krimal в чт, 29/11/2007 - 06:03.

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