Jump to content

Проблемы с Таблицей лидеров/Leaderboard

Featured Replies

Posted
comment_138290

Ребят, подскажите, куда копнуть.

Хочу сменить на главной странице Таблице лидеров количество их, сделать вместо стандартных 4-х восемь.

Казалось бы простая задача, в настройках выставляю количество на основной странице - 8 и оставляю только по репутации, что бы мне не показывала публикации.

Screenshot_86.thumb.png.0d8ca6b3066e66d09704fbb9327cea09.png

Настройки применяются, но при этом на самой странице Лидеров не меняется ни чего.

Проверил на двух сайтах, на одном лицензия, на другом мафиевский нуль.

Заранее спасибо.

  • Author
comment_138292

Конечно

На дефолтном скрине тож проверял, результат одинаков

скине :)

Странность в том, что на обоих сайтах как написал такая хрень

  • Author
comment_138294

последняя на лицензии и предпоследняя на нуле

Все, можно закрывать. Сам понял. Это все относится к ТОП пользователей, а не к Лидерам

:( а мне надо как раз лидеров сделать 8 штук а не 4

comment_138295
11 минут назад, VladOr сказал:

последняя на лицензии и предпоследняя на нуле

Все, можно закрывать. Сам понял. Это все относится к ТОП пользователей, а не к Лидерам

:( а мне надо как раз лидеров сделать 8 штук а не 4

Ковырять файл на вывод 8ми лидеров 

  • Author
comment_138332

Видимо, утратил я уже сакральные знания.

Гуру, помогите разобраться.

Код построения строки из 4-х лидеров:

{{if count( $topContributors)}}
			{{$count = 0;}}
			<ol class="ipsPad ipsStream ipsList_reset cStream_members ipsGrid ipsGrid_collapsePhone" data-ipsGrid data-ipsGrid-minItemSize='230' data-ipsGrid-maxItemSize='500' data-ipsGrid-equalHeights='row'>
				{{foreach $topContributors as $memberId => $rep}}
					{{$count++;}}
					{{$member = \IPS\Member::load( $memberId );}}
					{template="memberRow" group="popular" app="core" params="$member, $rep, $count"}
				{{endforeach}}
			</ol>

	{{else}}
		<p class='ipsAreaBackground_light ipsType_center ipsPad ipsType_reset ipsType_light ipsType_normal'>
			{lang="popular_no_member_results"}
		</p>

Собственно, весь код из файла шаблона PopularWrapper:

{{if \IPS\Content\Search\Query::isRebuildRunning()}}
	<div class="ipsMessage ipsMessage_info">{lang="popular_rebuild_is_running"}</div>
{{endif}}
{{$now = \IPS\DateTime::ts( time() );}}
{{$thisUrl = \IPS\Request::i()->url();}}
<div>
    <div class="ipsAreaBackground_light">
        <div class="ipsReputationFilters ipsPad_half ipsClearfix ipsClear">
            {{if count( $dates )}}
            <ul class="ipsButtonRow ipsPos_right ipsClearfix">
                <li>
                    <a href='#elLeaderboard_app_menu' id="elLeaderboard_app" data-ipsMenu>{{if isset( \IPS\Request::i()->in ) and isset( $areas[ \IPS\Request::i()->in ] )}}{lang="leaderboard_in_app" sprintf="$areas[ \IPS\Request::i()->in ][1]"}{{else}}{lang="leaderboard_in_all_apps"}{{endif}} <i class="fa fa-caret-down"></i></a>
                    <ul id="elLeaderboard_app_menu" class="ipsMenu ipsMenu_selectable ipsMenu_normal ipsHide">
                        <li class="ipsMenu_item {{if ! isset( \IPS\Request::i()->in )}}ipsMenu_itemChecked{{endif}}"><a href="{$thisUrl->stripQueryString( 'in' )}">{lang="leaderboard_all_apps"}</a></li>
                        {{foreach $areas as $key => $data}}
                        <li class="ipsMenu_item {{if isset( \IPS\Request::i()->in ) and \IPS\Request::i()->in == $key}}ipsMenu_itemChecked{{endif}}"><a href="{$thisUrl->setQueryString( array( 'in' => $key ) )}">{$data[1]}</a></li>
                        {{endforeach}}
                    </ul>
                </li>
                <li>
                    <a href='#elLeaderboard_time_menu' id="elLeaderboard_time" data-ipsMenu>
                        {{if isset( \IPS\Request::i()->custom_date_start ) or isset( \IPS\Request::i()->custom_date_end )}}
                        {lang="custom_date"}
                        {{elseif isset( \IPS\Request::i()->time ) and isset( $dates[ \IPS\Request::i()->time ] ) and $setTime = \IPS\Request::i()->time}}
                        {lang="leaderboard_time_$setTime"}
                        {{else}}
                        {lang="leaderboard_time_oldest"}
                        {{endif}}
                        <i class="fa fa-caret-down"></i>
                    </a>
                    <ul id="elLeaderboard_time_menu" class="ipsMenu ipsMenu_selectable ipsMenu_normal ipsHide">
                        {{foreach $dates as $human => $timeObject}}
                        <li class="ipsMenu_item {{if ( ! isset( \IPS\Request::i()->time ) and ( ! isset( \IPS\Request::i()->custom_date_start ) and ! isset( \IPS\Request::i()->custom_date_end ) ) and $human == 'oldest' ) or ( ! isset( \IPS\Request::i()->custom_date_start ) and ( isset( \IPS\Request::i()->time ) and \IPS\Request::i()->time == $human ) )}}ipsMenu_itemChecked{{endif}}">
                            <a href="{$thisUrl->stripQueryString( array('custom_date_start', 'custom_date_end') )->setQueryString( array( 'time' => $human ) )}">
                                {lang="leaderboard_time_$human"}
                                <p class="ipsTruncate ipsTruncate_line ipsType_reset ipsType_light">
                                    {$timeObject->dayAndMonth()} {$timeObject->format('Y')}{{if $now->localeDate() != $timeObject->localeDate()}} - {$now->dayAndMonth()} {$now->format('Y')}{{endif}}
                                </p>
                            </a>
                        </li>
                        {{endforeach}}
                        <li class="ipsMenu_item {{if isset( \IPS\Request::i()->custom_date_start ) or isset( \IPS\Request::i()->custom_date_end )}}ipsMenu_itemChecked{{endif}}">
                            <a href="#" data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-content='#elDateForm' data-ipsDialog-title="{lang="custom_date"}">{lang="custom_date"}
                            {{if isset( \IPS\Request::i()->custom_date_start ) or isset( \IPS\Request::i()->custom_date_end )}}
                            <p class="ipsType_reset ipsType_light">
                                {{if isset( \IPS\Request::i()->custom_date_start )}}
                                {datetime="\IPS\Request::i()->custom_date_start" dateonly="true"}
                                {{if isset( \IPS\Request::i()->custom_date_end )}} - {{endif}}
                                {{endif}}
                                {{if isset( \IPS\Request::i()->custom_date_end )}}
                                {datetime="\IPS\Request::i()->custom_date_end" dateonly="true"}
                                {{endif}}
                            </p>
                            {{endif}}
                            </a>
                        </li>
                        <div class="ipsHide" id="elDateForm">
                            {$form|raw}
                        </div>
                    </ul>
                </li>
            </ul>
            {{endif}}
        </div>
	{{if count( $topContributors)}}
			{{$count = 0;}}
			<ol class="ipsPad ipsStream ipsList_reset cStream_members ipsGrid ipsGrid_collapsePhone" data-ipsGrid data-ipsGrid-minItemSize='230' data-ipsGrid-maxItemSize='500' data-ipsGrid-equalHeights='row'>
				{{foreach $topContributors as $memberId => $rep}}
					{{$count++;}}
					{{$member = \IPS\Member::load( $memberId );}}
					{template="memberRow" group="popular" app="core" params="$member, $rep, $count"}
				{{endforeach}}
			</ol>

	{{else}}
		<p class='ipsAreaBackground_light ipsType_center ipsPad ipsType_reset ipsType_light ipsType_normal'>
			{lang="popular_no_member_results"}
		</p>
    </div>
	{{endif}}
</div>
<hr class='ipsHr'>

<section class='ipsSpacer_top' data-controller='core.front.core.ignoredComments'>
	<h2 class='ipsType_sectionTitle ipsType_reset'>{lang="popular_results_title"}</h2>
	<div class='ipsAreaBackground_light ipsPad'>
		<div data-role='popularBody'>
			<p class="ipsType_reset ipsType_medium ipsSpacer_bottom"><i class='fa fa-calendar'></i> {$description}</p>
			<div data-role='popularResults'>
				<ol class='ipsStream ipsList_reset' data-role='popularContent'>
					{template="popularItems" group="popular" app="core" params="$results"}
				</ol>
			</div>
		</div>
	</div>
</section>
{{if $tzOffsetDifference !== NULL}}
	<div class='ipsPad ipsType_center ipsType_light ipsType_small'>
		{lang="popular_timezone" sprintf="\IPS\Member::loggedIn()->language()->addToStack('timezone__' . \IPS\Settings::i()->reputation_timezone), $tzOffsetDifference"}
	</div>
{{endif}}

Есть подозрение, что количество лидеров передается переменной $topContributors и просто правкой шаблона не обойтись. 

Прошу помощи.

comment_138335

Рискну предположить

/applications/core/modules/front/discover/popular.php

434 строка

foreach( \IPS\Db::i()->select( 'member, rep', array( $innerQuery, 'in' ), NULL, 'rep DESC', 4 )->setKeyField('member')->setValueField('rep') as $member => $rep )

замените 'rep DESC', 4 на 'rep DESC', 8

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.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.