Текущее время: 20 янв 2017, 09:48


 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Мод РЕПУТАЦИИ

Выпущено : 25 авг 2008, 04:07
из: Beholder
Просмотров:: 19128

Мод является более сложной альтернативой МОДа "Спасибо за сообщения".

ВНИМАНИЕ:
Установка МОДа потребует модификации шаблонов, поэтому Обязательно сделайте БЭКАП всех шаблонов форума. Это можно сделать через "Обслуживание"->"Резервное копирование". В окне выделяем все таблицы, которые начинаются с вашфорум_phpbb_styles и нажимаем "отправить".


1. Установка модулей административного раздела
Идем "Админ.Раздел->СИСТЕМА->Управление модулями->Администраторский раздел
Заходим в категорию "Модули".
Возле кнопки "Создать новый модуль" пишем "Репутация", нажимаем "Создать новый модуль"
Проверяем тип модуля "Категория".
"Модуль доступен:" ставим "Да"
Заходим в созданную категорию "Репутация",
возле кнопки "Добавить модуль" выбираем модуль "Репутация" (acp_rep_settings) и нажимаем "добавить модуль". Включаем этот модуль.
возле кнопки "Добавить модуль" выбираем модуль "Reputation ranks management" (acp_rep_ranks) и нажимаем "добавить модуль". Включаем этот модуль.
Очищаем кэш во вкладке "ОБЩИЕ". Во вкладке "МОДУЛИ" должны появится настройки репутации.

Изначально модуль поддерживает только стиль SUBSILVER2-MODDED
Для других стилей необходимо в шаблонах проделать изменения.
Как определить тип вашего стиля: knowledge/kb_show.php?id=28


2. Изменения в шаблонах


Изменения для стилей-клонов SUBSILVER2


открываем шаблон
memberlist_view.html

Находим:
Code:
         <!-- IF S_SHOW_ACTIVITY -->

ПЕРЕД этим добавляем:
Code:
         <!-- IF S_REPUTATION -->
         <tr>
            <td class="gen" align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap">{L_RP_TOTAL_POINTS}: </td>
            <td><b class="gen">{REPUTATION}</b></td>
         </tr>
         <tr>
            <td class="gen" align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap">{L_RP_POWER}: </td>
            <td><b class="gen">{REP_POWER}</b></td>
         </tr>
         <!-- ENDIF -->   


открываем шаблон
ucp_main_front.html

Находим:
Code:
<tr>
   <th colspan="3">{L_YOUR_DETAILS}</th>
</tr>

ПЕРЕД этим добавляем:
Code:
<!-- IF .reputation -->
<tr>
   <th colspan="3">{L_RP_RECENT_POINTS}</th>
</tr>
<tr>
   <td class="row1" colspan="3">
      <table width="100%" cellspacing="1" cellpadding="4">
      <tr class="row3">
         <td><b class="genmed">{L_RP_POINTS}</b></td>
         <td><b class="genmed">{L_RP_COMMENTS}</b></td>
         <td><b class="genmed">{L_RP_FROM}</b></td>
         <td><b class="genmed">{L_POSTS}</b></td>
      </tr>
      <!-- BEGIN reputation -->
      <!-- IF reputation.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
         <td><span class="genmed">{reputation.POINT}</span></td>
         <td><span class="genmed">{reputation.COMMENT}</span></td>
         <td><span class="genmed">{reputation.FROM}</span></td>
         <td><span class="genmed"><a href="{reputation.U_POST}">{reputation.POST_SUBJECT}</span></a></td>
      <!-- END reputation -->
      </tr>
      </table>
   </td>
</tr>   
<!-- ENDIF -->


Находим:
Code:
      <tr>
         <td align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><b class="genmed">{L_TOTAL_POSTS}: </b></td>
         <td><!-- IF POSTS_PCT --><b class="gen">{POSTS}</b><br /><span class="genmed">[{POSTS_PCT} / {POSTS_DAY}]<br /><a href="{U_SEARCH_SELF}">{L_SEARCH_YOUR_POSTS}</a></span><!-- ELSE --><b class="gen">{POSTS}<b><!-- ENDIF --></td>
      </tr>

ПОСЛЕ этого добавляем:
Code:
      <!-- IF REPUTATION_POINTS -->
         <tr>
            <td align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><b class="genmed">{L_RP_TOTAL_POINTS}: </b></td>
            <td><b class="gen">{REPUTATION_POINTS}</b></td>
         </tr>         
      <!-- ENDIF -->



открываем шаблон
ucp_prefs_personal.html

Находим:
Code:
<!-- IF S_SELECT_NOTIFY -->

ПЕРЕД этим добавляем:
Code:
<!-- IF S_CAN_HIDE_REPUTATION -->   
   <tr>
      <td class="row1" width="50%"><b class="genmed">{L_RP_HIDE}:</b></td>
      <td class="row2"><input type="radio" class="radio" name="hidereputation" value="1"<!-- IF S_HIDE_REPUTATION --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_YES}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="hidereputation" value="0"<!-- IF not S_HIDE_REPUTATION --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NO}</span></td>
   </tr>
<!-- ENDIF -->


открываем шаблон
viewtopic_body.html

Находим:
Code:
               <!-- BEGIN custom_fields -->
                  <br /><b>{postrow.custom_fields.PROFILE_FIELD_NAME}:</b> {postrow.custom_fields.PROFILE_FIELD_VALUE}
               <!-- END custom_fields -->

ПОСЛЕ этого вставляем:
Code:
               
               <!-- IF postrow.POSTER_REPUTATION or postrow.REPUTATION_TEXT --><!-- IF postrow.S_REP_TEXT or postrow.S_REP_BOTH --><br /><strong>{L_RP_TOTAL_POINTS}:</strong> <!-- IF postrow.S_REP_TEXT --><a href="{postrow.U_VIEW_REP}">{postrow.REP_TEXT}</a><!-- ELSE -->{postrow.REP_TEXT}<!-- ENDIF --><!-- ENDIF --><!-- IF postrow.S_REP_BLOCK or postrow.S_REP_BOTH --><br /><a href="{postrow.U_VIEW_REP}">{postrow.POSTER_REPUTATION}</a><!-- ENDIF --><!-- IF S_REPUTATION --><br /><a href="{postrow.U_REPUTATION}"><img src="{T_IMAGES_PATH}reputation/add.png" title="{L_RP_ADD_POINTS}" alt="{L_RP_ADD_POINTS}" /></a><a href="{postrow.U_REP_NEG}"><img src="{T_IMAGES_PATH}reputation/subtract.png" title="{L_RP_SUBTRACT_POINTS}" alt="{L_RP_SUBTRACT_POINTS}" /></a><!-- ENDIF --><!-- ENDIF -->




Изменения для стилей-клонов PROSILVER


открываем шаблон
memberlist_view.html

Находим:
Code:
         <dt>{L_TOTAL_POSTS}:</dt> <dd>{POSTS} | <strong><a href="{U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a></strong><!-- IF POSTS_PCT --><br />({POSTS_PCT} / {POSTS_DAY})<!-- ENDIF --></dd>

Добавляем ПОСЛЕ:
Code:
         <!-- IF S_REPUTATION -->
         <dt>{L_RP_TOTAL_POINTS}:</dt> <dd>{REPUTATION}</dd>
         <dt>{L_RP_POWER}:</dt> <dd>{REP_POWER}</dd>
         <!-- ENDIF -->


открываем шаблон
ucp_main_front.html

Находим:
Code:
   <h3>{L_YOUR_DETAILS}</h3>

ПЕРЕД этим добавляем:
Code:
<!-- IF .reputation -->
   <h3>{L_RP_RECENT_POINTS}</h3>
   <table class="table1" cellspacing="0">
      <thead>
      <tr>
         <th class="name">{L_RP_POINTS}</th>
         <th class="name">{L_RP_COMMENTS}</th>
         <th class="name">{L_FROM}</th>
         <th class="name">{L_POSTS}</th>
      </tr>
      </thead>
      <tbody>
   <!-- BEGIN reputation -->
      <tr class="<!-- IF reputation.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
         <td><span>{reputation.POINT}</span></td>
         <td><span>{reputation.COMMENT}</span></td>
         <td><span>{reputation.FROM}</span></td>
         <td><span><a href="{reputation.U_POST}">{reputation.POST_SUBJECT}</a></span></td>
      </tr>
   <!-- END reputation -->
      </tbody>
   </table>
<!-- ENDIF -->


находим:
Code:
      <dt>{L_TOTAL_POSTS}:</dt> <dd><!-- IF POSTS_PCT -->{POSTS} | <strong><a href="{U_SEARCH_USER}">{L_SEARCH_YOUR_POSTS}</a></strong><br />({POSTS_DAY} / {POSTS_PCT})<!-- ELSE -->{POSTS}<!-- ENDIF --></dd>


ПОСЛЕ этого добавляем:
Code:
      <!-- IF REPUTATION_POINTS --><dt>{L_RP_TOTAL_POINTS}:</dt> <dd>{REPUTATION_POINTS}</dd><!-- ENDIF -->



открываем шаблон
ucp_prefs_personal.html

находим:
Code:
   <!-- IF S_SELECT_NOTIFY -->

ПЕРЕД этим добавляем:
Code:
   <!-- IF S_CAN_HIDE_REPUTATION -->   
      <dl>
         <dt><label for="hideonline0">{L_RP_HIDE}:</label></dt>
         <dd>
            <label for="hidereputation1"><input type="radio" name="hidereputation" id="hidereputation1" value="1"<!-- IF S_HIDE_REPUTATION --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
            <label for="hidereputation0"><input type="radio" name="hidereputation" id="hidereputation0" value="0"<!-- IF not S_HIDE_REPUTATION --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
         </dd>
      </dl>
   <!-- ENDIF -->


открываем шаблон
viewtopic_body.html

Находим:
Code:
      <!-- BEGIN custom_fields -->
         <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
      <!-- END custom_fields -->

ПОСЛЕ этого добавляем:
Code:
      <!-- IF postrow.POSTER_REPUTATION or postrow.REPUTATION_TEXT --><!-- IF postrow.S_REP_TEXT or postrow.S_REP_BOTH --><dd><strong>{L_RP_TOTAL_POINTS}:</strong> <!-- IF postrow.S_REP_TEXT --><a href="{postrow.U_VIEW_REP}">{postrow.REP_TEXT}</a><!-- ELSE -->{postrow.REP_TEXT}<!-- ENDIF --></dd><!-- ENDIF --><!-- IF postrow.S_REP_BLOCK or postrow.S_REP_BOTH --><dd><a href="{postrow.U_VIEW_REP}">{postrow.POSTER_REPUTATION}</a><dd><!-- ENDIF --><!-- IF S_REPUTATION --><dd><a href="{postrow.U_REPUTATION}"><img src="{T_IMAGES_PATH}reputation/add.png" title="{L_RP_ADD_POINTS}" alt="{L_RP_ADD_POINTS}" /></a><a href="{postrow.U_REP_NEG}"><img src="{T_IMAGES_PATH}reputation/subtract.png" title="{L_RP_SUBTRACT_POINTS}" alt="{L_RP_SUBTRACT_POINTS}" /></a><!-- ENDIF --></dd><!-- ENDIF -->


Все, на этом изменения шаблонов закончены. Как всегда, не выходя из админ.раздела в другом окне браузера проверяем работоспособность форума (если что-то не работает можно восстановить данные стиля из резервной копии, которую вы сделали ранее).

НАСТРОЙКИ:

Настройки репутации осуществляются в МОДУЛИ->Репутация->Репутация.

Права доступа к функциям репутации настраиваются в "ПРАВА ДОСТУПА"->Права групп->(выбираете группу)Расширенные права->Очки репутации. Как минимум, можно поставить для группы "Зарегистрированные пользователи" Разрешение - "Может давать очки репутации (ДА)".
Также имеет смысл для группы "Администраторы" перейти в "Выберите тип"->"Глобальные права модератора" и во вкладке "разное" разрешить для группы "Администраторы" "Может модерировать очки репутации(ДА)"

Обратите внимание, что пользователи кроме самой репутации, могут иметь различную "СИЛУ репутации". СИЛА репутации может расти от количества сообщений, кол-ва дней на форуме, кол-ва очков репутации (это настраивается в настройках репутации).
Так-же различные группы могут иметь различную СИЛУ репутации. В настройках каждой группы теперь появилась настройка "Сила Репутации группы:". Например группе "Администраторы" можно дать силу репутации гораздо больше, чем всем остальным. Групповая сила действует для группы "по-умолчанию".

Есть еще система званий, основанная на репутации. Настройки - "Reputation ranks management"...

АДДОН "Самые уважаемые пользователи":
Есть возможность добавить на главную страницу форума в статистику блок "Десятка самых уважаемых пользователей".
Для клонов SUBSILVER2:
в index_body.html
находим:
Code:
   <td class="row1" width="100%" valign="middle"><p class="genmed">{TOTAL_POSTS} | {TOTAL_TOPICS} | {TOTAL_USERS} | {NEWEST_USER}</p></td>

В найденном ПЕРЕД </td> вставляем:
Code:
<!-- IF .reputation --><p>Самые уважаемые пользователи <!-- BEGIN reputation --><!-- IF not reputation.S_FIRST_ROW -->, <!-- ENDIF -->{reputation.USERNAME} ({reputation.POINT})<!-- END reputation --></p><!-- ENDIF -->


Для клонов PROSILVER:
в index_body.html
находим:
Code:
<!-- INCLUDE overall_footer.html -->

ПЕРЕД эти добавляем:
Code:
<!-- IF .reputation -->
   <h3>Самые уважаемые пользователи</h3>
<p><!-- BEGIN reputation --><!-- IF not reputation.S_FIRST_ROW -->, <!-- ENDIF -->{reputation.USERNAME} ({reputation.POINT})<!-- END reputation --></p>
<!-- ENDIF -->

Вернуться назад к Базе Знаний




 
cron