Вопрос. Отображение позиции в списке пользователей.

Скачал плагин userhacks, который отображает в whois на каком месте пользователь на сайте. Например: «2ой в списке лайфстрит людей».
Пытался сделать так чтобы, он отображалася не в whois, а в списке всех пользователей.
Не вышло.

мои действия

1) Изминил ЭТО в plugins/userhacks/classes/hooks/HookUserhacks.class.php

class PluginUserhacks_HookUserhacks extends Hook {   
        public function RegisterHook() {
                $this->AddHook('profile_whois_show','SetUserPosition',__CLASS__,-3);
                $this->AddHook('template_userhacks_whois', 'tplWhois', __CLASS__, -10);

        }
        
        public function SetUserPosition($aVars) {
        	$iPos = $this->PluginUserhacks_Userhacks_GetUserPosition($aVars['oUserProfile']);
            $this->Viewer_Assign('iUserPosition',$iPos);
        }

        
        public function tplWhois($aVars) {
            return $this->Viewer_Fetch(Plugin::GetTemplatePath('userhacks').'/inject.whois.tpl');
        }
}


на ЭТО


class PluginUserhacks_HookUserhacks extends Hook {   
        public function RegisterHook() {
                $this->AddHook('people_index_show','SetUserPosition',__CLASS__,-3);
                $this->AddHook('template_userhacks_index', 'tplindex', __CLASS__, -10);

        }
        
        public function SetUserPosition($aVars) {
        	$iPos = $this->PluginUserhacks_Userhacks_GetUserPosition($aVars['oUser']);
            $this->Viewer_Assign('iUserPosition',$iPos);
        }

        
        public function tplWhois($aVars) {
            return $this->Viewer_Fetch(Plugin::GetTemplatePath('userhacks').'/inject.index.tpl');
        }
}


2) Переименовал inject.whois.tpl на inject.index.tpl

3) Вставил {hook run='userhacks_index'} в шаблон templates/skin/grey/actions/ActionPeople/index.tpl

Вылезает ошибка, либо не отображает хук вообще.
Помогите пожалуйста.

10 комментариев

avatar
Надо не {hook run='userhacks_index'} а {hook run='people_index_show'}. Потому как вы регистрируете именно второй хук, а о первом ни слова нет.
avatar
при {hook run='people_index_show'} не отображается хук вообще
avatar
Я точно сказать ничего не могу, т.к. этот плагин не видел. Был где-то на компе, да потер наверное. А на LS не нашел.
avatar
Вот ссылка на плагин: livestreet.ru/addons/102/
avatar
Ребят, откликнитесь кто-нибудь плиз, я не думаю, что надо вписывать килограммы кода отвечая на этот вопрос.
avatar
Завтра. Все завтра. Точнее сегодня… Но позже… Или раньше :)
avatar
хорошо, буду ждать, спасибо, что не бросаете))
avatar
На свежую голову почитал, что требуется… Из прочитанного понял, что вам, в списке людей фактически, надо вывести рядом с пользователем его позицию в рейтинге? Т.е. порядковый номер в этом самом списке? Тогда вам никакие плагины в принципе не нужны.

Делаете что… в файлик templates/skin/grey/actions/ActionPeople/index.tpl после инклюда хедера что-то типа вот этого
{include file='header.tpl' showWhiteBack=true menu='people'}

вставляете
{php}$this->assign('per_page',Config::Get('module.user.per_page'));{/php}

Потом где там начинается таблица пользователей, деаете столбец для номера, скажем из
<thead>
   <tr>
     <td class="user">{$aLang.user}</td>

делаете

<thead>
   <tr>
    <td class="user">##</td>
    <td class="user">{$aLang.user}</td>


потом из
{foreach from=$aUsersRating item=oUser}
   <tr>

делаем
{foreach from=$aUsersRating item=oUser name=frUsers}
  <tr>
   <td class="user">{math equation="(page-1)*perpage+index+1" page=$aPaging.iCurrentPage perpage=$per_page index=$smarty.foreach.frUsers.index}</td>



Ну вот собственно и все. В заключение просто хочется показать вот это. С помощью этого плагина можно творить… всякое. Просто из любопытства описал и получение номера в рейтинге для пользователя.
avatar
Соответственно, реальный дизайн на вашей совести :)
avatar
спасибо большое)не хватает рейтинга чтобы проголосовать…
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.