Опубликовано: 24 июля 20169 г Добрый вечер!Есть хук, позволяющий вывести в боковой блок топ авторов по темам. Хотелось бы его доработать (добавить настройку), чтобы можно было указать, из каких форумов учитываются созданные темы. Можно ли это реализовать? https://invisionpower.com/files/file/5433-raw33-top-topic-starters/ RAW33_Top_Topic_Starters.xml
Опубликовано: 24 июля 20169 г Автор Настройку мне удалось добавить (даже две, еще исключенные форумы). Но функция почему-то не работает... В чем проблема?
Опубликовано: 25 июля 20169 г Довольно коряво Рау написал этот хук... Найти: '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 и указать через запятую ид форумов.
Опубликовано: 25 июля 20169 г Автор А как эту настройку добавить в АЦ? Я в хук добавил такую настройку: <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; }Вроде заработало :) Правда, не знаю, насколько это решение правильное. Изменено 25 июля 20169 г пользователем Strategius
Добрый вечер!
Есть хук, позволяющий вывести в боковой блок топ авторов по темам. Хотелось бы его доработать (добавить настройку), чтобы можно было указать, из каких форумов учитываются созданные темы.
Можно ли это реализовать?
https://invisionpower.com/files/file/5433-raw33-top-topic-starters/
RAW33_Top_Topic_Starters.xml