Модификация - Репутация. User Reputation Points

CabinetAdmin 02 фев 2013, 16:35 Сообщение

Этот мод добавляет репутацию на форум.
Мод User Reputation Points, это более сложная модификация мода "Спасибо за сообщение".

Внимание!
Если вы не уверены в своих силах, сделайте бэкап всех шаблонов форума. Это можно сделать через "Обслуживание" -> "Резервное копирование". В окне выделяем все таблицы, которые начинаются с вашфорум_phpbb_styles и нажимаем "отправить".

Установка:
Под учетной записью основателя запускаем скрипт по адресу:

Код: Выделить всё

http://АДРЕС_ФОРУМА/rep_install/install.php
Не меняя ничего, нажимаем "Отправить".
В следующем окне соглашаемся с установкой нажимая "ДА".
После этого МОД установлен, появились соответствующие права доступа (вкладка "репутация" в правах) и пункты меню с настройками репутации добавлены во вкладку "Общие".

Изменения для клонов SUBSILVER2:

Открываем шаблон memberlist_view.html находим:

Код: Выделить всё

             <!-- IF S_SHOW_ACTIVITY -->

добавляем ПЕРЕД найденным:

Код: Выделить всё

                         <!-- 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 находим:

Код: Выделить всё

<tr>
   <th colspan="3">{L_YOUR_DETAILS}</th>
</tr>

добавляем ПЕРЕД найденным:

Код: Выделить всё

    <!-- IF .reputation_row -->
    <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_row -->
          <!-- IF reputation_row.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
             <td><span class="genmed">{reputation_row.POINT_IMG}</span></td>
             <td><span class="genmed">{reputation_row.COMMENT}</span></td>
             <td><span class="genmed">{reputation_row.FROM}</span></td>
             <td><span class="genmed"><!-- IF reputation_row.POST_SUBJECT --><a href="{reputation_row.U_POST}">{reputation_row.POST_SUBJECT}</span></a><!-- ELSE -->{L_RP_NA}<!-- ENDIF --></td>
          <!-- END reputation_row -->
          </tr>
          </table>
       </td>
    </tr>
    <!-- ENDIF -->
Открываем шаблон ucp_prefs_personal.html находим:

Код: Выделить всё

<!-- IF S_SELECT_NOTIFY -->

добавляем ПЕРЕД найденным:

Код: Выделить всё

        <!-- 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 находим:

Код: Выделить всё

                   <!-- BEGIN custom_fields -->
                      <br /><b>{postrow.custom_fields.PROFILE_FIELD_NAME}:</b> {postrow.custom_fields.PROFILE_FIELD_VALUE}
                   <!-- END custom_fields -->

добавляем ниже:

Код: Выделить всё

                                      <!-- IF S_REPUTATION and postrow.S_USER_REPUTATION -->
                   <!-- IF S_REP_DISPLAY neq 'block' --><br /><strong>{L_RP_TOTAL_POINTS}:</strong> {postrow.REPUTATION_TEXT}<!-- ENDIF -->
                   <!-- IF S_REP_DISPLAY neq 'text'  --><br /><!-- IF postrow.U_VIEW_REP --><a href="{postrow.U_VIEW_REP}" onclick="popup(this.href, 780, 550); return false;" ><!-- ENDIF -->{postrow.REPUTATION_BLOCK}<!-- IF postrow.U_VIEW_REP --></a><!-- ENDIF --><!-- ENDIF -->
                   <!-- IF postrow.S_GIVE_REPUTATION --><br /><a href="{postrow.U_ADD_POS}"><img src="{T_IMAGES_PATH}reputation/add.png" title="{L_RP_ADD_POINTS} {postrow.POST_AUTHOR}" alt="{L_RP_ADD_POINTS} {postrow.POST_AUTHOR}" /></a><!-- IF postrow.S_GIVE_NEGATIVE--><a href="{postrow.U_ADD_NEG}"><img src="{T_IMAGES_PATH}reputation/subtract.png" title="{L_RP_SUBTRACT_POINTS} {postrow.POST_AUTHOR}" alt="{L_RP_SUBTRACT_POINTS} {postrow.POST_AUTHOR}" /></a><!-- ENDIF --><!-- ENDIF -->
                   <!-- ENDIF -->


Изменения для клонов PROSILVER:

Открываем шаблон memberlist_view.html находим:

Код: Выделить всё

             <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 -->
                   <!-- IF POSTS_IN_QUEUE and U_MCP_QUEUE --><br />(<a href="{U_MCP_QUEUE}">{L_POSTS_IN_QUEUE}</a>)<!-- ELSEIF POSTS_IN_QUEUE --><br />({L_POSTS_IN_QUEUE})<!-- ENDIF -->
                </dd>
Добавляем ниже:

Код: Выделить всё

             <!-- 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 находим:

Код: Выделить всё

       <h3>{L_YOUR_DETAILS}</h3>

добавляем ПЕРЕД найденным:

Код: Выделить всё

    <!-- IF .reputation_row -->
       <h3>{L_RP_RECENT_POINTS}</h3>
       <table class="table1" cellspacing="0">
          <thead>
          <tr>
             <th class="name">{L_RP_POINTS}</th>
             <th class="name">{L_FROM}</th>
             <th class="name">{L_RP_COMMENTS}</th>
             <th class="name">{L_POSTS}</th>
          </tr>
          </thead>
          <tbody>
       <!-- BEGIN reputation_row -->
          <tr class="<!-- IF reputation_row.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
             <td><span>{reputation_row.POINT_IMG}</span></td>
             <td><span>{reputation_row.FROM}</span></td>
             <td><span>{reputation_row.COMMENT}</span></td>
             <td><span><!-- IF reputation_row.POST_SUBJECT --><a href="{reputation_row.U_POST}">{reputation_row.POST_SUBJECT}</a><!-- ELSE -->{L_RP_NA}<!-- ENDIF --></span></td>
          </tr>
       <!-- END reputation_row -->
          </tbody>
       </table>
    <!-- ENDIF -->

Открываем шаблон ucp_prefs_personal.html находим:

Код: Выделить всё

       <!-- IF S_CAN_HIDE_ONLINE -->
          <dl>
             <dt><label for="hideonline0">{L_HIDE_ONLINE}:</label><br /><span>{L_HIDE_ONLINE_EXPLAIN}</span></dt>
             <dd>
                <label for="hideonline1"><input type="radio" name="hideonline" id="hideonline1" value="1"<!-- IF S_HIDE_ONLINE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
                <label for="hideonline0"><input type="radio" name="hideonline" id="hideonline0" value="0"<!-- IF not S_HIDE_ONLINE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
             </dd>
          </dl>
       <!-- ENDIF -->

добавляем ниже:

Код: Выделить всё

       <!-- 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 находим:

Код: Выделить всё

          <!-- BEGIN custom_fields -->
             <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
          <!-- END custom_fields -->

добавляем ниже:

Код: Выделить всё

          <!-- IF S_REPUTATION and postrow.S_USER_REPUTATION -->
          <!-- IF S_REP_DISPLAY neq 'block' --><dd><strong>{L_RP_TOTAL_POINTS}:</strong> {postrow.REPUTATION_TEXT}</dd><!-- ENDIF -->
          <!-- IF S_REP_DISPLAY neq 'text'  --><dd><!-- IF postrow.U_VIEW_REP --><a href="{postrow.U_VIEW_REP}" onclick="popup(this.href, 780, 550); return false;" ><!-- ENDIF -->{postrow.REPUTATION_BLOCK}<!-- IF postrow.U_VIEW_REP --></a><!-- ENDIF --></dd><!-- ENDIF -->
          <!-- IF postrow.S_GIVE_REPUTATION --><dd><a href="{postrow.U_ADD_POS}"><img src="{T_IMAGES_PATH}reputation/add.png" title="{L_RP_ADD_POINTS} {postrow.POST_AUTHOR}" alt="{L_RP_ADD_POINTS} {postrow.POST_AUTHOR}" /></a><!-- IF postrow.S_GIVE_NEGATIVE--><a href="{postrow.U_ADD_NEG}"><img src="{T_IMAGES_PATH}reputation/subtract.png" title="{L_RP_SUBTRACT_POINTS} {postrow.POST_AUTHOR}" alt="{L_RP_SUBTRACT_POINTS} {postrow.POST_AUTHOR}" /></a><!-- ENDIF --></dd><!-- ENDIF -->
          <!-- ENDIF -->


Небольшие настройки для обоих клонов.

В профиле пользователя появляется ссылка на страницу с отзывами.

Открываем шаблон memberlist_view.html находим:

Код: Выделить всё

{REPUTATION}
и заменяем на:

Код: Выделить всё

<a href="/viewreputation.php?id={USER_ID}">{REPUTATION}</a>


Замена стандартных картинок репутации.

В шаблоне viewtopic_body.html находим

Код: Выделить всё

{postrow.REPUTATION_BLOCK}
и заменяем на

Код: Выделить всё

<script type="text/javascript">         <!-- Begin            var shag = 10;            var rep = {postrow.REPUTATION_TEXT};            if (rep == 0) document.write('<img src="images/reputation/neutral.gif" title="{postrow.POST_AUTHOR} не имеет очков репутации" />');            for (i = 1; i <= rep; i += shag) {               document.write('<img src="images/reputation/pos.gif" title="{postrow.POST_AUTHOR} имеет {postrow.REPUTATION_TEXT} очков репутации" />');            }            for (j = -1; j >= rep; j -= shag) {               document.write('<img src="images/reputation/neg.gif" title="{postrow.POST_AUTHOR} имеет {postrow.REPUTATION_TEXT} очков репутации" />');            }         // End -->         </script>
images/reputation/neutral.gif, images/reputation/pos.gif, images/reputation/neg.gif - нужно заменить на свои картинки.


Настройки.

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

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

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






Вывод списка пользователей на главную страницу форума у которых самая большая репутация.

Изменения для клонов SUBSILVER2

Открываем шаблон index_body.html, находим:

Код: Выделить всё

   <td class="row1" width="100%" valign="middle"><p class="genmed">{TOTAL_POSTS} | {TOTAL_TOPICS} | {TOTAL_USERS} | {NEWEST_USER}</p></td>
В найденном ПЕРЕД </td> вставляем:

Код: Выделить всё

<!-- IF .reputation --><p>Самые уважаемые пользователи <!-- BEGIN reputation --><!-- IF not reputation.S_FIRST_ROW -->, <!-- ENDIF -->{reputation.USERNAME} ({reputation.POINT})<!-- END reputation --></p><!-- ENDIF -->

Изменения для клонов PROSILVER

Открываем шаблон index_body.html, находим:

Код: Выделить всё

<!-- INCLUDE overall_footer.html -->
ПЕРЕД найденным добавляем:

Код: Выделить всё

<!-- IF .reputation -->
   <h3>Самые уважаемые пользователи</h3>
<p><!-- BEGIN reputation --><!-- IF not reputation.S_FIRST_ROW -->, <!-- ENDIF -->{reputation.USERNAME} ({reputation.POINT})<!-- END reputation --></p>
<!-- ENDIF -->
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

Степ 11 ноя 2013, 19:01 Сообщение

Вот по этому моду вопрос. Установлен, все хорошо работает. но хотелось бы, что бы при изменении репутации, было уведомление как при приходе ЛС. В гугле набирал, но там натыкался только на вопросы, как сделать. На спасибки делали, а вот на репу никак. Тут возможно такое приделать? Просто на других движках оно есть, и тут просят. Вот! :unknown
Может как то от ЛС че нить прикрутить? Эт мысли вслух - тут я полный ноль... в смысле знаний.
  • 0
Если хотите узнать глубину души человека, то плюньте ему в душу и считайте до тех пор,
пока не получите по морде.

CabinetAdmin 11 ноя 2013, 19:15 Сообщение

Если честно не в курсе, не работал и не знаком с этим модом. Посмотрю что к чему.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

Степ 11 ноя 2013, 19:25 Сообщение

CabinetAdmin » 9 минут назад писал(а):Если честно не в курсе, не работал и не знаком с этим модом. Посмотрю что к чему.
:drink:
  • 0
Если хотите узнать глубину души человека, то плюньте ему в душу и считайте до тех пор,
пока не получите по морде.

CabinetAdmin 12 ноя 2013, 15:57 Сообщение

Почитав официальную русскую поддержку phpbb, я так понял, что такой функции, по крайней мере встроенной, в данном моде нет. К сожалению.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

Степ 12 ноя 2013, 19:15 Сообщение

CabinetAdmin, вот потому к вам как к спецу и обратился. Можно как то прикрутить всплывашку от ЛС?
Про магазин подарков тоже все говорили, что невозможно. :sorry:
  • 0
Если хотите узнать глубину души человека, то плюньте ему в душу и считайте до тех пор,
пока не получите по морде.

CabinetAdmin 13 ноя 2013, 14:16 Сообщение

Степ » Вчера, 22:15 писал(а):Можно как то прикрутить всплывашку от ЛС?
Нет, тут немного не то, тут нужна модификация на уровне php файлов, это уже может решить только поддержка.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

eska 17 ноя 2014, 08:59 Сообщение

CabinetAdmin
Можно ли как-то это реализовать?
Изображение
Сам мод репутация у меня установлен, ещё на прошлом стиле, я так понимаю, что нужно просто внести правильно html, но не знаю где и какие...
  • 0

CabinetAdmin 17 ноя 2014, 15:59 Сообщение

По инструкции install. Например для viewtopic_body.html, написано найти то и вставить после. Тут тоже самое. Быть может разница в других шаблонах, но там уже по месту.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

eska 17 ноя 2014, 21:53 Сообщение

А это зачем?
  • 0

eska 17 ноя 2014, 22:00 Сообщение

При этом добавление:

Код: Выделить всё

<!-- IF S_REPUTATION and postrow.S_USER_REPUTATION -->
          <!-- IF S_REP_DISPLAY neq 'block' --><dd><strong>{L_RP_TOTAL_POINTS}:</strong> {postrow.REPUTATION_TEXT}</dd><!-- ENDIF -->
          <!-- IF S_REP_DISPLAY neq 'text'  --><dd><!-- IF postrow.U_VIEW_REP --><a href="{postrow.U_VIEW_REP}" onclick="popup(this.href, 780, 550); return false;" ><!-- ENDIF -->{postrow.REPUTATION_BLOCK}<!-- IF postrow.U_VIEW_REP --></a><!-- ENDIF --></dd><!-- ENDIF -->
          <!-- IF postrow.S_GIVE_REPUTATION --><dd><a href="{postrow.U_ADD_POS}"><img src="{T_IMAGES_PATH}reputation/add.png" title="{L_RP_ADD_POINTS} {postrow.POST_AUTHOR}" alt="{L_RP_ADD_POINTS} {postrow.POST_AUTHOR}" /></a><!-- IF postrow.S_GIVE_NEGATIVE--><a href="{postrow.U_ADD_NEG}"><img src="{T_IMAGES_PATH}reputation/subtract.png" title="{L_RP_SUBTRACT_POINTS} {postrow.POST_AUTHOR}" alt="{L_RP_SUBTRACT_POINTS} {postrow.POST_AUTHOR}" /></a><!-- ENDIF --></dd><!-- ENDIF -->
          <!-- ENDIF -->
Он вносит изменения сюда (2):
Изображение
А мне нужно внести изменения в цифру 1 не подскажите шаблон?
  • 0

CabinetAdmin 18 ноя 2014, 15:37 Сообщение

eska писал(а):А это зачем?
Инструкция жеж...
eska » Сегодня, 00:00 писал(а):А мне нужно
А место там для этой фразы хватит? Что-то мне подсказывает, что надпись будет залезать на текст сообщения.

Изменения всё там же, в viewtopic_body.html. То место, это прямо перед:

Код: Выделить всё

<div id="postprofile{postrow.POST_ID}" class="postprofile" style="display: none;">
Если сюда вставлять тот код, то его хотя бы надо обернуть в <dl> ... </dl>.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

eska 18 ноя 2014, 16:08 Сообщение

CabinetAdmin » 16 минут назад писал(а):Инструкция жеж...
Он у меня уже установлен, я просто внёс изменения в шаблоны и всё
CabinetAdmin » 16 минут назад писал(а):А место там для этой фразы хватит?
Для этого?
Изображение
  • 0

CabinetAdmin 18 ноя 2014, 16:27 Сообщение

eska » 16 минут назад писал(а):Он у меня уже установлен, я просто внёс изменения в шаблоны и всё
Да я знаю, что установлен. Я имел ввиду ту часть, где говорится про правку шаблонов.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

eska 18 ноя 2014, 16:38 Сообщение

А можно вас попросить вырезать и этого кода, то что отвечает за "картинка +" "картинка -" (в моём случае палец вверх и них) и за число репутации.

Код: Выделить всё

<!-- IF S_REPUTATION and postrow.S_USER_REPUTATION -->
					<!-- IF S_REP_DISPLAY neq 'block' --><div class="kenarlik">{L_RP_TOTAL_POINTS}: <!-- IF postrow.S_GIVE_REPUTATION --><a href="{postrow.U_ADD_POS}"><img src="{T_IMAGES_PATH}reputation/add.png" title="{L_RP_ADD_POINTS} {postrow.POST_AUTHOR}" alt="{L_RP_ADD_POINTS} {postrow.POST_AUTHOR}" /></a> <!-- ENDIF --><!-- IF postrow.U_VIEW_REP --><a href="{postrow.U_VIEW_REP}"><!-- ENDIF -->{postrow.REPUTATION_TEXT}<!-- IF postrow.U_VIEW_REP --></a><!-- ENDIF --><!-- IF postrow.S_GIVE_REPUTATION and postrow.S_GIVE_NEGATIVE--> <a href="{postrow.U_ADD_NEG}"><img src="{T_IMAGES_PATH}reputation/subtract.png" title="{L_RP_SUBTRACT_POINTS} {postrow.POST_AUTHOR}" alt="{L_RP_SUBTRACT_POINTS} {postrow.POST_AUTHOR}" /></a><!-- ENDIF --></div><!-- ENDIF -->
					<!-- IF S_REP_DISPLAY neq 'text'  --><br /><!-- IF postrow.U_VIEW_REP --><a href="{postrow.U_VIEW_REP}" onclick="popup(this.href, 780, 550); return false;" ><!-- ENDIF -->{postrow.REPUTATION_BLOCK}<!-- IF postrow.U_VIEW_REP --></a><!-- ENDIF --><!-- ENDIF -->
<!--
					<!-- IF postrow.S_GIVE_REPUTATION --><div class="kenarlik"><a href="{postrow.U_ADD_POS}"><img src="{T_IMAGES_PATH}reputation/add.png" title="{L_RP_ADD_POINTS} {postrow.POST_AUTHOR}" alt="{L_RP_ADD_POINTS} {postrow.POST_AUTHOR}" /></a><!-- IF postrow.S_GIVE_NEGATIVE--><a href="{postrow.U_ADD_NEG}"><img src="{T_IMAGES_PATH}reputation/subtract.png" title="{L_RP_SUBTRACT_POINTS} {postrow.POST_AUTHOR}" alt="{L_RP_SUBTRACT_POINTS} {postrow.POST_AUTHOR}" /></a><!-- ENDIF --></div><!-- ENDIF -->
-->
					<!-- ENDIF -->
  • 0