Лучшие авторы по темам (доработка хука) - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

Лучшие авторы по темам (доработка хука)

#1 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 298
  • Регистрация: 27-Март 16
  • Репутация: 18
  • IPB version:3.4.x
 

Отправлено 24 Июль 2016 - 20:22

Добрый вечер!
Есть хук, позволяющий вывести в боковой блок топ авторов по темам. Хотелось бы его доработать (добавить настройку), чтобы можно было указать, из каких форумов учитываются созданные темы.

Можно ли это реализовать?

https://invisionpowe...topic-starters/

Вложение  RAW33_Top_Topic_Starters.xml (13,19К)
Количество загрузок: 4
0

#2 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 298
  • Регистрация: 27-Март 16
  • Репутация: 18
  • IPB version:3.4.x
 

Отправлено 24 Июль 2016 - 21:19

Настройку мне удалось добавить (даже две, еще исключенные форумы). Но функция почему-то не работает... В чем проблема?


0

#3 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 288
  • Регистрация: 20-Март 09
  • Репутация: 2 085
  • IPB version:3.1.x
 

Отправлено 25 Июль 2016 - 10:29

Довольно коряво Рау написал этот хук...

Найти:
							 'from'		=> array( 'topics' => 't' ),		
							 'order'	=> 'topts DESC',

Заменить на:

							 'from'		=> array( 'topics' => 't' ),
							 'where'	=> '1'.( $this->settings['ttS_forums'] ? ' AND t.forum_id IN ('.$this->settings['ttS_forums'].')' : '' ),
							 'order'	=> 'topts DESC',

Найти 3 раза:

'where'  => "t.start_date  > '".$topic_date."'",

Заменить на:

'where'  => "t.start_date  > '".$topic_date."'" . ( $this->settings['ttS_forums'] ? ' AND t.forum_id IN ('.$this->settings['ttS_forums'].')' : '' ),


Создать в АЦ настройку ttS_forums и указать через запятую ид форумов.
1

#4 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 298
  • Регистрация: 27-Март 16
  • Репутация: 18
  • IPB version:3.4.x
 

Отправлено 25 Июль 2016 - 13:51

А как эту настройку добавить в АЦ?

Я в хук добавил такую настройку:

<setting>
      <conf_id>306</conf_id>
      <conf_title>Форумы</conf_title>
      <conf_description><![CDATA[Из каких форумов загружать созданные темы.<br>Используйте CTRL  для выбора нескольких форумов.]]></conf_description>
      <conf_group>34</conf_group>
      <conf_type>multi</conf_type>
      <conf_key>ttS_forums</conf_key>
      <conf_value/>
      <conf_default/>
      <conf_extra>#show_forums#</conf_extra>
      <conf_evalphp><![CDATA[$key = 'ttS_forums';
if($save==1)
{
   $_POST[$key] = is_array($_POST[$key]) ? implode(",",$_POST[$key]) : '';
}
if($show==1)
$key .= '[]';]]></conf_evalphp>
      <conf_protected>0</conf_protected>
      <conf_position>2</conf_position>
      <conf_start_group/>
      <conf_add_cache>1</conf_add_cache>
      <conf_keywords/>
      <conf_title_keyword>ttS</conf_title_keyword>
      <conf_is_title>0</conf_is_title>
    </setting>

И после строки

return $this->registry->output->getTemplate('boards')->hookTopTopicStarters($tts);

Добавил функцию

private function _loadForumIds()
    {
        $forums = $this->registry->getClass('class_forums')->fetchSearchableForumIds();
        
        if(!$this->settings['ttS_forums'])
            return $forums;
		$forumIds = $this->_loadForumIds();
        if(!is_array($forumIds) || !count($forumIds))
            return true;
    }

Вроде заработало :) Правда, не знаю, насколько это решение правильное.

Сообщение изменено: Strategius (25 Июль 2016 - 14:10)

0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна