Модуль Новое на форуме -> Исключение раздела

 
Посетитель
small user social cms
Сообщений: 11
В стандартном модуле последних сообщений на форуме нет возможности исключить некий форум из вывода последних сообщений, хотя иногда надо — например, у меня есть один раздел в который постят всяку чухню — он открытый — и весь этот шлак идет на главную…
сделал для себя небольшой хак, чтобы исключить некоторые разделы из выдачи в этот модуль, может, кому еще нужно — выложу здесь…
1) В файл /modules/mod_forum/module.php после
Код PHP:
  1. if($cfg['forum_id']){
  2. if($cfg['subs']){
  3. $forum = $model->getForum($cfg['forum_id']);
  4. if(!$forum){ return false; }
  5. $model->whereThisAndNestedForum($forum['NSLeft'], $forum['NSRight']);
  6. } else {
  7. $model->whereForumIs($cfg['forum_id']);
  8. }
  9. }
добавить
Код PHP:
  1. if ( $cfg['forum_id_not'] ) {
  2. $model->whereForumNotIn( $cfg['forum_id_not'] );
  3. }
и в начале файла после
Код PHP:
  1. 'forum_id' => 0,
добавить
Код PHP:
  1. 'forum_id_not' => 0,
2) В файл /components/forum/model.php после
Код PHP:
  1. public function whereForumIs($forum_id) {
  2. $this->inDB->where("t.forum_id = '{$forum_id}'");
  3. }
добавить:
Код PHP:
  1. public function whereForumNotIn($forum_id_not) {
  2. $this->inDB->where("t.forum_id NOT IN ($forum_id_not)");
  3. }
3) В файл /admin/modules/mod_forum/backend.xml после:
Код PHP:
  1. <param type="list_db" name="forum_id" src="cms_forums" src_title="title" src_value="id" tree="1" src_where="NSLevel>0">
  2. <option value="0" />
  3. </param>
добавить
Код PHP:
  1. <param type="string" name="forum_id_not" title="Исключить (ID форумов через запятую)" default="0" />
Все вроде...

UPD: сделал, чтобы можно было скрывать несколько форумов, вводя ID через запятую...
Редактировалось: 7 раз (Последний: 31 января 2014 в 21:47)
Лучший способ рассмешить бога — рассказать ему о своих планах на будущее…
www.synthez.net
Модератор
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форума
Сообщений: 1422
Слишком скупое решение, действующее для одного конкретно взятого форума, даже без подфорумов.
Нормальный хостинг, сервера быстрые - пользуюсь сам.
Реклама
cms
Посетитель
small user social cms
Сообщений: 11
lokanaft, ну проблема сделать вместо выпадающего меню input либо select с возможностью выбора нескольких вариантов очень большая же да?

ладно, сделаю универсальный вариант с возможностью выбора нескольких форумов на досуге joke
Редактировалось: 2 раз (Последний: 31 января 2014 в 18:58)
Лучший способ рассмешить бога — рассказать ему о своих планах на будущее…
www.synthez.net
Модератор
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форума
Сообщений: 1422
kukharski:
сделаю универсальный вариант
smile
Нормальный хостинг, сервера быстрые - пользуюсь сам.
Посетитель
small user social cms
Сообщений: 11
обновил первый пост… теперь можно выбирать через запятую айдишники форумов, которые не отображать
Редактировалось: 1 раз (Последний: 31 января 2014 в 21:24)
Лучший способ рассмешить бога — рассказать ему о своих планах на будущее…
www.synthez.net
Модератор
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форума
Сообщений: 1422
Хм, ну раз всё равно через ид. То можно было прямо в запросе NOT IN({$cfg['forum_id_not']})
Нормальный хостинг, сервера быстрые - пользуюсь сам.
Посетитель
small user social cms
Сообщений: 11
lokanaft, ну я вначале так и делал, но чет ругалась муся... пошел по пути наименьшего сопротивления :)

UPD: исправил
Редактировалось: 1 раз (Последний: 31 января 2014 в 21:45)
Лучший способ рассмешить бога — рассказать ему о своих планах на будущее…
www.synthez.net
Модератор
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форума
Сообщений: 1422
Теперь функциональное, но неюзабительное) Благо нечасто надо настраивать.

Всё равно респект!
Нормальный хостинг, сервера быстрые - пользуюсь сам.
Посетитель
small user social cms
Сообщений: 11
lokanaft, в том-то и дело, что один раз забил пару айдишников и забыл, поэтому мне лень разбираться, как в InstantCms селект с мультивыбором делать laugh
Лучший способ рассмешить бога — рассказать ему о своих планах на будущее…
www.synthez.net
Модератор
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форума
Сообщений: 1422
Можно сделать "мультиселект", но выглядит он весьма удручающе.
Код XML:
  1. <param type="list_db" name="forum_id_not" multiple="1" src="cms_forums" title="Кроме" src_value="id" tree="1" src_where="NSLevel>0">
  2. <option value="0" />
  3. </param>
Товарищи! Наплюсуем kukharski для заведения блога!
Нормальный хостинг, сервера быстрые - пользуюсь сам.
Посетитель
small user social cms
Медаль
Сообщений: 162
Плюсуем
Посетитель
small user social cms
Сообщений: 11
lokanaft:
Можно сделать «мультиселект», но выглядит он весьма удручающе
ну, может в сл. раз в чем-нить пригодится, а тут - один раз настроил и позабыл joke

ПС: спасибо за карму...
Лучший способ рассмешить бога — рассказать ему о своих планах на будущее…
www.synthez.net
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.