Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

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

Добрый вечер!

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

 

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

 

https://invisionpower.com/files/file/5433-raw33-top-topic-starters/

 

RAW33_Top_Topic_Starters.xml

Рекомендованные сообщения

  • Автор

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

 

 

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

 

Найти:

						 '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 и указать через запятую ид форумов.

  • Автор

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

 

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

 

<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

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.