Thanks for post (Rating edition)

Все моды, созданные нашим сообществом для phpBB 3.0.x, будут анонсированы тут. Вся техническая поддержка по этим модам оказывается в этом форуме.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Thanks for post (Rating edition)

Сообщение Палыч »

Наименование модификации: Thanks for post
Описание::
Открыть 
Мод добавляет возможность поблагодарить автора сообщения (отменить благодарность).
  • Опции реализованы включением добавленного права доступа к форумам. При установке право добавлено в роли Стандартный доступ, Ограниченный доступ, Стандартный доступ с опросами, Ограниченный доступ с опросами и Полный доступ. (Если вы хотите установить другие настройки: перейдите в Администраторский раздел - Права доступа - Локальные права - Права доступа к форумам и выберите форумы, где вы хотите иметь функцию благодарностей за сообщения. Разрешите право "Может благодарить за сообщения" на вкладке Разное).
  • Переключатели выбора опций получения уведомлений о благодарностях (в ЛС и по email) в Личном разделе - Личные настройки.
  • Настройки опций, в том числе обновление счётчиков после массового удаления сообщений/тем/пользователей, слияния учетных записей, смены автора сообщения, разделения/слияния тем и т.п. - в Администраторском разделе - Модули - Благодарности - Обновление счётчиков.
  • Для просмотра списка благодарностей нужно разрешить глобальное пользовательское право - "Может просматривать лист благодарностей" на вкладке Разное. При установке право добавлено в роли Стандартные возможности, Ограниченные возможности, Все возможности, Без личных сообщений, Без аватары и членам группы Зарегистрированные пользователи.
  • Для просмотра топлиста нужно разрешить глобальное пользовательское право - "Может просматривать топлист" на вкладке Разное. При установке право добавлено в роли Стандартные возможности, Ограниченные возможности, Все возможности, Без личных сообщений, Без аватары и членам группы Зарегистрированные пользователи.
  • Для возможности очистки списков благодарностей нужно разрешить глобальное модераторское право - "Может очищать список благодарностей" на вкладке Разное. При установке право добавлено в роль Супермодератор и членам группы Супермодераторы.
  • В папке contrib вы можете найти файлы reput_star_.psd и thanks.psd для разработки собственных изображений под используемый вами стиль.
  • Система рейтинга для сообщений, тем и форумов, основанная на системе СПАСИБО.
    Каждый объект (сообщение, тема или форум), набравший максимальное число СПАСИБО, принимается за 100% рейтинга (лидер). Остальные - как % от рейтинга лидера.
    Например: Сообщение получило 10 СПАСИБО (100% or 10/10), другое сообщение 4 СПАСИБО (40% or 4 / 10), третье сообщение 1 СПАСИБО (10% or 1 / 10). Если первое сообщение получит ещё одно СПАСИБО (10 +1 = 11), рейтинг второго сообщения будет 36.36% или 4 / 11, у третьего сообщения - 9,09% или 1 / 11 и т.д.
    Позиция рейтинга определяется числом СПАСИБО.
    Рейтинг тем - суммой количества СПАСИБО у сообщений в теме.
    Рейтинг форума - суммой количества СПАСИБО у сообщений в форуме.
    Включение\выключение рейтинга для сообщений, тем и форумов - через административный раздел.
    Возможно только цифровое или цифровое + графическое отображение рейтинга.
    Есть топлист рейтинга. Число отображаемых позиций в топлисте устанавливается в административном разделе.
  • Важно! Для корректной работы системы рейтинга в базе данных не должно быть записей о благодарностях по отношению к удалённым, перемещённым сообщениям, или сообщениям от гостей (если ранее они были зарегистрированными пользователями). Вам необходимо использовать средство обновления счетчиков благодарностей после массового удаления постов, тем, пользователей или иных действий модераторов или администраторов (например, замена автора сообщения или объединение аккаунтов). Для корректной работы функции обновления счётчиков требуется MySQL версии 4.1 или выше.
Версия:: 1.3.5

Скриншоты: Можно посмотреть здесь

Скачать: http://www.phpbbguru.net/files/mods/spa ... -rejtinga/
Темы мода на оффсайте:
http://www.phpbb.com/community/viewtopic.php?t=1690905
http://www.phpbb.com/community/viewtopi ... &t=2093007

Fix для правильного склонения слов: раза/раз 
Примечания для более ранних версий МОДа: 
Внимание для версии 1.3.2! В связи с обнаружением некорректной работы функции пересчета счетчиков МОДа в административном разделе следует использовать файл includes/acp/acp_thanks_refresh.php от версии 1.3.1
acp_thanks_refresh 1.3.1.rar
Для устранения предупреждения (версия 1.3.2): 

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

[phpBB Debug] PHP Warning: in file /includes/db/dbal.php on line 223: Illegal offset type in isset or empty

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

== OPEN ==
includes/functions_thanks.php
== FIND (line 570) ==
    $allow_thanks_pm = (int) $db->sql_fetchfield($result);
== REPLACE ==
    $allow_thanks_pm = (int) $db->sql_fetchfield('user_allow_thanks_pm');
== FIND (line 613) ==
        $allow_thanks_email = (int) $db->sql_fetchfield($result);
== REPLACE ==
        $allow_thanks_email = (int) $db->sql_fetchfield('user_allow_thanks_email'); 
Для устранения ошибки при удалении сообщения из темы (версия 1.3.2): 

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

Call to undefined function delete_post_thanks()

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

== OPEN ==
posting.php
== FIND ==
if (!function_exists('get_max_forum_thanks'))
    {
        include($phpbb_root_path . 'includes/functions_thanks_forum.' . $phpEx);
    }
== REPLACE ==
if (!function_exists('get_thanks'))
    {
        include($phpbb_root_path . 'includes/functions_thanks.' . $phpEx);
    }  
FIX для исправления проблем с личными сообщениями в версии 1.3.1 
файл includes/functions_thanks.php

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

== НАЙТИ ==
	if (!isset($user_cache[$to_id]['allow_thanks_pm']))
== ЗАМЕНИТЬ ==
	if (!($user_cache[$to_id]['allow_thanks_pm']))
FIX для исправления проблем с отображением рейтинга при ограничении доступа к подфорумам в версии 1.2.9 

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

== open == 
includes/functions_display.php
== find ==
    get_max_forum_thanks();
== after-add ==
    $forum_thanks_rating = array();  
FIX для исправления проблем с большим количеством запросов на индексе в версии 1.2.8 
Фикс для версии 1.2.5 - устранение неправильного отображения числа благодарностей при удалении пользователя 
Замените три файла из архива (если необходимо, воспользуйтесь кнопкой Обновить в админке на вкладке Благодарности для пересчёта числа благодарностей)
fix_bug_thanks.zip
Если вы не видите кнопки "Спасибо"
Скрытый текст
  1. Убедитесь, что вы скопировали файлы-изображения в папку используемого вами стиля
  2. Убедитесь, что вы отредактировали файлы используемого вами стиля
  3. Обновите набор изображений вашего стиля (на вкладке Стили в админке)
  4. Обновите тему вашего стиля (на вкладке Стили в админке)
  5. Обновите кеш
  6. Установите опции мода (вкладка Модули - Спасибо за сообщение)
  7. Убедитесь, что правильно выставлены права доступа
    1. Установите права доступа к форуму в котором вы хотите иметь опцию благодарностей

      При установке право добавлено в роль Стандартный доступ. (Если вы хотите установить другие настройки: перейдите в Администраторский раздел - Права доступа - Локальные права - Права доступа к форумам и выберите форумы, где вы хотите иметь функцию благодарностей за сообщения. Разрешите право "Может благодарить за сообщения" на вкладке Разное).
    2. Установите права доступа к просмотру листа благодарностей

      Для просмотра списка благодарностей нужно разрешить глобальное пользовательское право - "Может просматривать лист благодарностей" на вкладке Разное. При установке право добавлено в роль Стандартные возможности и членам группы Зарегистрированные пользователи.

      Если вы хотите иметь другие настройки (у вас другая роль у зарегистрированных пользователей):
      Админка -> Права доступа -> Прав групп -> Выбор группы:Зарегистрированные пользователи -> Расширенные права -> Разное -> Может просматривать список благодарностей (Может видеть топлист) -> Применить все права
      Пошаговая инструкция в картинках (на английском)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Татьяна5 11.07.2014 8:16, всего редактировалось 12 раз.
Причина: Вынесла ссылки из-под спойлера
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
misterleks
phpBB 2.0.9
Сообщения: 715
Стаж: 16 лет 1 месяц
Откуда: Великий Новгород
Благодарил (а): 103 раза
Поблагодарили: 38 раз

Re: Thanks for post (Rating edition)

Сообщение misterleks »

Подскажите, тут ссылки на какие картинки должны быть?

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

/* Profile & navigation icons */
.thanks-icon, .thanks-icon a		{ background-image: url("{IMG_THANKPOSTS_SRC}"); }
.removethanks-icon, .removethanks-icon a	{ background-image: url("{IMG_REMOVETHANKS_SRC}"); }
Продаю комиксы, продаю инструмент, продаю товары для охоты и рыбаков... и администрирую форум!
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: Thanks for post (Rating edition)

Сообщение Палыч »

FomenkoAndrey писал(а):надо еще что-то обновлять?
Вообще-то вы выполнили только обновление РУССКОГО пакета (то есть языка). Это дополнительная инструкция к основной.

Добавлено спустя 37 секунд:
misterleks писал(а):Подскажите, тут ссылки на какие картинки должны быть?
Пальцы.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Thanks for post (Rating edition)

Сообщение Alecto »

скопировал все файлы локализации согласно инструкции ru.xml, кэш почистил.
результат тот же - версия в админке 1.3.3
напрашивается вопрос: где хранится значение версии? если только в файлах - значит что-то недокопировано.
если же в базе - то напрашивается еще одно действие: может быть надо копировать и выполнять install_thanks_mod.php, обновляя версию таким образом? в последнем варианте надо уточнить инструкцию по обновлению версии, поскольку там такого действия указано не было.
Последний раз редактировалось Alecto 01.09.2012 7:10, всего редактировалось 2 раза.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Thanks for post (Rating edition)

Сообщение Пчелкин »

Как это не было?

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

Для завершения установки запустите через браузер файл install_thanks_mod.php (например, набрав в адресной строке: адрес_форума/install_thanks_mod.php). После установки МОДа удалите файл install_thanks_mod.php и обновите кеш, тему и шаблоны стиля.
Добавлено спустя 2 минуты 5 секунд:
snap289.jpg
Добавлено спустя 2 минуты 19 секунд:
FomenkoAndrey писал(а):install_update_from_v133_to_v134_ru.xml
Причем тут этот файл инструкции, когда есть основной - install_update_from_v133_to_v134.xml ?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Thanks for post (Rating edition)

Сообщение Alecto »

сам виноват. ослеп совсем.
ошибку нашел, разберусь - напишу.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Thanks for post (Rating edition)

Сообщение Пчелкин »

Палыч писал(а): Это дополнительная инструкция к основной.
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Thanks for post (Rating edition)

Сообщение Alecto »

не совсем понял вот эту часть
Find
Tip: This may be a partial find and not the whole line.
'user_allow_thanks_pm' => $data['allowthankspm'],
'user_allow_thanks_email'=> $data['allowthanksemail'],
Replace with
Tip: Replace the preceding line(s) to find with the following lines.
эти две строки надо удалить?

Добавлено спустя 26 минут 32 секунды:
по инструкции этого не нашел

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

<script type="text/JavaScript">
function getElement(iElementId)
{
   if (document.all) 
   {
      return document.all[iElementId];
   }
   if (document.getElementById)
   {
      return document.getElementById(iElementId);
   }
}

function toggleElement(oElement)
{
   if (oElement.style.display == "none")
   {
      oElement.style.display = "";
   }
   else
   {
      oElement.style.display = "none";
   }
}
</script>
<!-- IF THANKS_PROFILELIST_VIEW -->
<div class="panel bg1">
	<div class="inner"><span class="corners-top"><span></span></span>
	<h3>{L_GRATITUDES}</h3>
		<!-- IF  S_MOD_THANKS and POSTER_GIVE_COUNT --><ul class="profile-icons"><li class="delete-icon"><a href="{U_CLEAR_LIST_THANKS_GIVE}" title="{L_CLEAR_LIST_THANKS}"><span>{L_CLEAR_LIST_THANKS}</span></a></li></ul><!-- ENDIF -->
		<dl>
			<dt><strong>{L_GIVEN}:</strong> {POSTER_GIVE_COUNT} {L_THANKS}</dt>
			<dd>
			<!-- IF POSTER_GIVE_COUNT -->
			<a href="javascript: toggleElement( getElement('show_thanks'));">{L_THANKS_LIST}</a>
			<div id="show_thanks" style="display: none;">{THANKS}</div>
			<!-- ENDIF -->
			</dd>
		</dl>		
	<span class="corners-bottom"><span></span></span></div>
</div>
<div class="panel bg2">
	<div class="inner"><span class="corners-top"><span></span></span>
		<!-- IF  S_MOD_THANKS and POSTER_RECEIVE_COUNT --><ul class="profile-icons"><li class="delete-icon"><a href="{U_CLEAR_LIST_THANKS_RECEIVE}" title="{L_CLEAR_LIST_THANKS}"><span>{L_CLEAR_LIST_THANKS}</span></a></li></ul><!-- ENDIF -->
		<dl>
			<dt><strong>{L_RECEIVED}:</strong> {POSTER_RECEIVE_COUNT} {L_THANKS}</dt>
			<dd>
			<!-- IF POSTER_RECEIVE_COUNT -->
			<a href="javascript: toggleElement( getElement('show_thanked'));">{L_THANKS_LIST}</a>
			<div id="show_thanked" style="display: none;">{THANKED}</div>
			<!-- ENDIF -->
			</dd>
		</dl>		
	<span class="corners-bottom"><span></span></span></div>
</div>
<!-- ENDIF -->
вместо этого кода был по частям такой

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

<script type="text/JavaScript">
function getElement(iElementId)
{
   if (document.all) 
   {
      return document.all[iElementId];
   }
   if (document.getElementById)
   {
      return document.getElementById(iElementId);
   }
}

function toggleElement(oElement)
{
   if (oElement.style.display == "none")
   {
      oElement.style.display = "";
   }
   else
   {
      oElement.style.display = "none";
   }
}
</script>
и

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

<div class="panel bg1">
	<div class="inner"><span class="corners-top"><span></span></span>
	<h3>{L_GRATITUDES}</h3>
		<!-- IF  S_MOD_THANKS and POSTER_GIVE_COUNT --><ul class="profile-icons"><li class="delete-icon"><a href="{U_CLEAR_LIST_THANKS_GIVE}" title="{L_CLEAR_LIST_THANKS}"><span>{L_CLEAR_LIST_THANKS}</span></a></li></ul><!-- ENDIF -->
		<dl>
			<dt><strong>{L_GIVEN}:</strong> {POSTER_GIVE_COUNT} {L_THANKS}</dt>
			<dd>
			<!-- IF POSTER_GIVE_COUNT and THANKS_PROFILELIST_VIEW -->
			<a href="javascript: toggleElement( getElement('show_thanks'));">{L_THANKS_LIST}</a>
			<div id="show_thanks" style="display: none;">{THANKS}</div>
			<!-- ENDIF -->
			</dd>
		</dl>		
	<span class="corners-bottom"><span></span></span></div>
</div>
<div class="panel bg2">
	<div class="inner"><span class="corners-top"><span></span></span>
		<!-- IF  S_MOD_THANKS and POSTER_RECEIVE_COUNT --><ul class="profile-icons"><li class="delete-icon"><a href="{U_CLEAR_LIST_THANKS_RECEIVE}" title="{L_CLEAR_LIST_THANKS}"><span>{L_CLEAR_LIST_THANKS}</span></a></li></ul><!-- ENDIF -->
		<dl>
			<dt><strong>{L_RECEIVED}:</strong> {POSTER_RECEIVE_COUNT} {L_THANKS}</dt>
			<dd>
			<!-- IF POSTER_RECEIVE_COUNT and THANKS_PROFILELIST_VIEW -->
			<a href="javascript: toggleElement( getElement('show_thanked'));">{L_THANKS_LIST}</a>
			<div id="show_thanked" style="display: none;">{THANKED}</div>
			<!-- ENDIF -->
			</dd>
		</dl>		
	<span class="corners-bottom"><span></span></span></div>
</div>
Добавлено спустя 7 минут 17 секунд:
наверное что-то потерялось в процессе обновления версий.
по второму вопросу поднял установку версии 1.3.3 и привел все в надлежащий вид.
по первому вопросу, думается, тоже не ошибаюсь?
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: Thanks for post (Rating edition)

Сообщение Палыч »

FomenkoAndrey писал(а):эти две строки надо удалить?
Да, следующая инструкция -

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

						if (isset($user->data['user_allow_thanks_pm']) && isset($user->data['user_allow_thanks_email']))
						{
							$sql_ary = array_merge($sql_ary, array(
								'user_allow_thanks_pm'	=> $data['allowthankspm'],
								'user_allow_thanks_email'=> $data['allowthanksemail'],
							));
Забугорные юзеры часто забывают инсталл запускать и любят проверять ошибки после редактирования каждого файла. Поэтому по просьбе валидаторов пришлось практически всё переделывать под защиту от дурака.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Thanks for post (Rating edition)

Сообщение Alecto »

Таки обновился :)
Палыч, вы где-то в теме выкладывали, как изменить порядок вывода благодаривших, чтобы последние благодарившие пользователя были первыми в списке.
Пролистал 25 страниц назад, таки не нашел.
Ткните плиз в нужную страницу. Может разместить эту инструкцию в первом сообщении?
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Thanks for post (Rating edition)

Сообщение Пчелкин »

NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: Thanks for post (Rating edition)

Сообщение Палыч »

FomenkoAndrey писал(а):чтобы последние благодарившие пользователя были первыми в списке.
Э... По-моему, в версии 1.3.4 так и есть...
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Thanks for post (Rating edition)

Сообщение Alecto »

Палыч писал(а):в версии 1.3.4 так и есть
нет. точно нет.
Пчелкин дал ссылку, я уже все подправил.
еще раз всем спасибо :)
Аватара пользователя
misterleks
phpBB 2.0.9
Сообщения: 715
Стаж: 16 лет 1 месяц
Откуда: Великий Новгород
Благодарил (а): 103 раза
Поблагодарили: 38 раз

Re: Thanks for post (Rating edition)

Сообщение misterleks »

Да, точно да! У меня по крайне мере так: последний, кто поблагодарил, первый!
Продаю комиксы, продаю инструмент, продаю товары для охоты и рыбаков... и администрирую форум!
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Thanks for post (Rating edition)

Сообщение Пчелкин »

FomenkoAndrey а ты файлы-то точно заменял на от 1.3.4 ?
Ротация в 1.3.4 уже сделана так, как тебе надо...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Thanks for post (Rating edition)

Сообщение Alecto »

Пчелкин писал(а):а ты файлы-то точно заменял на от 1.3.4 ?
ТОчно.
Только что специально скачал архив 134 по ссылке из первого поста и проверил еще раз...

если мы говорим об этом Thanks for post (Rating edition) то по умолчанию первый благодаривший выводится первым, в коде файла thankslist.php отсутствует инструкция для иной сортировки.
если же мы говорим о профиле пользователя - да, по-умолчанию последний благодарвший - первый.

Добавлено спустя 2 минуты 45 секунд:
но, это уже нюансы.
мод пашет замечательно.
порадовало вынесение части кода в отдельный файл, что облегчило правку других стилей, подтягивающих почти все шаблоны из основного стиля.

Вернуться в «Анонсы и поддержка модов для phpBB 3.0.x»