Posted 14 октября, 201311 yr comment_46110 Просмотр файла (SOS34) Monthly Top Posters 1.0.0 (SOS34) Monthly Top Posters 1.0.0 - хук отображает топ постеров за месяц в боковом блоке. Добавил Respected Добавлено 14.10.2013 Категория Хуки, Модификации для IP.Board Название по-русски {value} Версия IP.Board
29 августа, 20159 yr comment_92393 Поставил этот хук, но он учитывает сообщения пользователей даже из тем с отключенным счетчиком. Каким образом сделать так, чтобы количество сообщений в хуке было равно количеству сообщений в профиле? IPB 3.4.6
29 августа, 20159 yr comment_92394 Каким образом сделать так, чтобы количество сообщений в хуке было равно количеству сообщений в профиле? IPB 3.4.6 Покажите мне, где в профиле есть статистика постов по месяцам.
29 августа, 20159 yr comment_92395 извините, неправильно выразился. имелась ввиду логика подсчета как профиле, т.е. исключая посты в темах с отключенным счетчиком. P.S. может быть есть другой аналогичный хук, где учтен этот момент? Edited 29 августа, 20159 yr by ss11
29 августа, 20159 yr comment_92397 Есть за все время http://ipbmafia.ru/files/file/1132-sos34-members-stats-on-board-index-sidebar-100/ Если нужен именно этот, то можете открыть xml-файл, найти $where = array( "EXTRACT(MONTH FROM FROM_UNIXTIME(p.post_date)) = {$month}", "EXTRACT(YEAR FROM FROM_UNIXTIME(p.post_date)) = {$year}" ); и ниже добавить $where[] = "f.inc_postcount=1"; Посты из форумов, где отключен счетчик, не будут входить в статистику.
11 сентября, 20177 yr comment_136180 помогите. Как убрать форматирование в этом хуке? подробно на скриншоте что нужно изменить в коде хука чтоб ники были без форматирования? заранее спасибо. код хука вот Спойлер <?xml version="1.0" encoding="utf-8"?> <hookexport> <hookdata> <config> <hook_name>(SOS34) Monthly Top Posters</hook_name> <hook_desc>Will show top monthly posters on sidebar</hook_desc> <hook_author>Adriano Faria</hook_author> <hook_email>[email protected]</hook_email> <hook_website>http://www.sosinvision.com.br</hook_website> <hook_update_check/> <hook_requirements><![CDATA[a:3:{s:21:"required_applications";a:1:{s:6:"forums";a:3:{s:8:"app_name";s:6:"Forums";s:11:"min_version";i:34006;s:11:"max_version";i:0;}}s:20:"hook_php_version_min";s:0:"";s:20:"hook_php_version_max";s:0:"";}]]></hook_requirements> <hook_version_human>1.0.0</hook_version_human> <hook_version_long>10000</hook_version_long> <hook_extra_data><![CDATA[a:5:{s:7:"display";a:3:{s:8:"language";s:50:"From forums_public_boards: topMonthlyPosters_month";s:9:"templates";s:35:"From skin_boards: topMonthlyPosters";s:8:"settings";s:90:"Setting groups: (SOS34) Monthly Top Posters<br />Settings: EXCLUDE Groups, Number of Users";}s:13:"settingGroups";a:1:{i:0;s:17:"topMonthlyPosters";}s:8:"settings";a:2:{i:0;s:24:"topMonthlyPosters_groups";i:1;s:20:"topMonthlyPosters_nr";}s:8:"language";a:1:{s:20:"forums_public_boards";a:1:{i:0;s:23:"topMonthlyPosters_month";}}s:9:"templates";a:1:{s:11:"skin_boards";a:1:{i:0;s:17:"topMonthlyPosters";}}}]]></hook_extra_data> <hook_key>topMonthlyPosters</hook_key> <hook_global_caches/> </config> </hookdata> <hookfiles> <file> <hook_file_real>topMonthlyPosters.php</hook_file_real> <hook_type>templateHooks</hook_type> <hook_classname>topMonthlyPosters</hook_classname> <hook_data><![CDATA[a:8:{s:12:"dataLocation";s:0:"";s:14:"libApplication";s:0:"";s:15:"classToOverload";s:0:"";s:9:"skinGroup";s:11:"skin_boards";s:12:"skinFunction";s:18:"boardIndexTemplate";s:4:"type";s:7:"foreach";s:2:"id";s:11:"side_blocks";s:8:"position";s:9:"outer.pre";}]]></hook_data> <hooks_source><![CDATA[<?php class topMonthlyPosters { public $registry; public $member; public $cache; public function __construct() { $this->registry = ipsRegistry::instance(); $this->DB = $this->registry->DB(); $this->settings =& $this->registry->fetchSettings(); $this->cache = $this->registry->cache(); $this->caches =& $this->registry->cache()->fetchCaches(); $this->member = $this->registry->member(); $this->memberData =& $this->registry->member()->fetchMemberData(); $this->registry->class_localization->loadLanguageFile( array( 'public_boards', 'forums' ) ); } public function getOutput() { if ( IPSMember::isInGroup( $this->memberData, explode( ',', IPSText::cleanPermString( $this->settings['topMonthlyPosters_groups'] ) ) ) ) { return false; } $month = date('m'); $year = date('Y'); $monthname = gmstrftime( '%B', time() ); $where = array( "EXTRACT(MONTH FROM FROM_UNIXTIME(p.post_date)) = {$month}", "EXTRACT(YEAR FROM FROM_UNIXTIME(p.post_date)) = {$year}" ); $this->DB->build( array( 'select' => 'm.member_id, m.members_display_name, m.member_group_id, m.members_seo_name, COUNT(*) AS posts', 'from' => array( 'members' => 'm' ), 'where' => implode( ' AND ', $where ), 'add_join' => array( 0 => array( 'select' => 'pp.*', 'from' => array( 'profile_portal' => 'pp' ), 'where' => 'pp.pp_member_id=m.member_id', 'type' => 'left' ), 1 => array( 'from' => array( 'posts' => 'p' ), 'where' => 'p.author_id=m.member_id', 'type' => 'left' ), 2 => array( 'from' => array( 'topics' => 't' ), 'where' => 't.tid=p.topic_id', 'type' => 'left' ), 3 => array( 'from' => array( 'forums' => 'f' ), 'where' => 'f.id=t.forum_id', 'type' => 'left' ) ), 'group' => 'p.author_id', 'order' => 'posts DESC', 'limit' => array( 0, $this->settings['topMonthlyPosters_nr'] ), ) ); $q = $this->DB->execute(); if ( $this->DB->getTotalRows( $q ) ) { $top_posters = array(); while( $r = $this->DB->fetch( $q ) ) { $r = IPSMember::buildDisplayData( $r ); $top_posters[ $r['member_id'] ] = $r; } return $this->registry->output->getTemplate( 'boards' )->topMonthlyPosters( $top_posters, $monthname ); } } }]]></hooks_source> </file> </hookfiles> <hookextras_settings> <setting> <conf_is_title>1</conf_is_title> <conf_title_title>(SOS34) Monthly Top Posters</conf_title_title> <conf_title_desc>Settings for this hook</conf_title_desc> <conf_title_noshow>0</conf_title_noshow> <conf_title_keyword>topMonthlyPosters</conf_title_keyword> <conf_title_app>forums</conf_title_app> <conf_title_tab>Hooks</conf_title_tab> </setting> <setting> <conf_id>1505</conf_id> <conf_title>EXCLUDE Groups</conf_title> <conf_description><![CDATA[Select which user groups YOU DON'T WANT to show the sidebar block]]></conf_description> <conf_group>201</conf_group> <conf_type>multi</conf_type> <conf_key>topMonthlyPosters_groups</conf_key> <conf_value/> <conf_default/> <conf_extra>#show_groups#</conf_extra> <conf_evalphp><![CDATA[$key = 'topMonthlyPosters_groups'; if ( $save == 1) { if ( is_array($_POST[ $key ]) ) { $_POST[ $key ] = implode(",",$_POST[ $key ]); } else { $_POST[ $key ] = ""; } } if ( $show == 1 ) { $key .= '[]'; }]]></conf_evalphp> <conf_protected>1</conf_protected> <conf_position>2</conf_position> <conf_start_group/> <conf_add_cache>1</conf_add_cache> <conf_keywords/> <conf_title_keyword>topMonthlyPosters</conf_title_keyword> <conf_is_title>0</conf_is_title> </setting> <setting> <conf_id>1504</conf_id> <conf_title>Number of Users</conf_title> <conf_description/> <conf_group>201</conf_group> <conf_type>input</conf_type> <conf_key>topMonthlyPosters_nr</conf_key> <conf_value/> <conf_default>5</conf_default> <conf_extra/> <conf_evalphp/> <conf_protected>1</conf_protected> <conf_position>1</conf_position> <conf_start_group/> <conf_add_cache>1</conf_add_cache> <conf_keywords/> <conf_title_keyword>topMonthlyPosters</conf_title_keyword> <conf_is_title>0</conf_is_title> </setting> </hookextras_settings> <hookextras_language> <language> <word_app>forums</word_app> <word_pack>public_boards</word_pack> <word_key>topMonthlyPosters_month</word_key> <word_default>Top Poster</word_default> </language> </hookextras_language> <hookextras_modules/> <hookextras_help/> <hookextras_templates> <templates> <template_group>skin_boards</template_group> <template_content><![CDATA[<div class='ipsSideBlock clearfix'> <h3>{$this->lang->words['topMonthlyPosters_month']} ({$monthname})</h3> <div class='_sbcollapsable'> <ul class='ipsList_withminiphoto'> <if test="top_posters:|:is_array( $top_posters ) && count( $top_posters )"> {parse striping="top_posters" classes="row1,row2 altrow"} <foreach loop="top_posters:$top_posters as $r"> <li class='clearfix'> <a href='{parse url="showuser={$r['member_id']}" seotitle="{$r['members_seo_name']}" template="showuser" base="public"}' title='{$this->lang->words['view_profile']}' class='ipsUserPhotoLink left'><img src='{$r['pp_mini_photo']}' alt="{$r['members_display_name']}{$this->lang->words['users_photo']}" class='ipsUserPhoto ipsUserPhoto_mini' /></a> <div class='list_content'> {IPSMember::makeProfileLink(IPSMember::makeNameFormatted( $r['members_display_name'], $r['member_group_id']), $r['member_id'])} <p class='desc ipsType_smaller'> {parse format_number="$r['posts']"} {$this->lang->words['posts']} </p> </div> </li> </foreach> </if> </ul> </div> </div>]]></template_content> <template_name>topMonthlyPosters</template_name> <template_data>$top_posters, $monthname</template_data> <template_updated>1235666400</template_updated> <template_removable>0</template_removable> <template_added_to>1</template_added_to> <template_user_added>1</template_user_added> <template_user_edited>0</template_user_edited> <template_master_key>root</template_master_key> </templates> </hookextras_templates> <hookextras_css/> <hookextras_replacements/> <hookextras_tasks/> <hookextras_database_create/> <hookextras_database_alter/> <hookextras_database_update/> <hookextras_database_insert/> </hookexport>
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.