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 только на форумах. По найму не работаю.
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: Thanks for post (Rating edition)

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

SCIF-1986 писал(а):Нельзя ли как-нибудь прикрутить кэширование к тем 3-4 запросам функции array_all_thanks()? Ну и может всё-таки стоит превратить OR'ы в один IN?
А вы уверены, что у вас последняя версия МОДа?
Вот функция:

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

// create an array of all thanks info
function array_all_thanks($post_list)
{
	global $db, $post_list, $thankers, $max_post_thanks, $poster_list_count;
	$thankers = array();
	$poster_list = array();
	$poster_list_count = array();	
// max post thanks
	$sql = 'SELECT MAX(tally) AS max_post_thanks
		FROM (SELECT post_id, COUNT(*) AS tally FROM ' . THANKS_TABLE . ' GROUP BY post_id) t';
	$result = $db->sql_query($sql);
	$max_post_thanks = (int) $db->sql_fetchfield('max_post_thanks');
	$db->sql_freeresult($result);

	
//array all user who say thanks on viewtopic page
	$sql_array = array(
		'SELECT'	=> 't.*, u.username, u.username_clean, u.user_colour',
		'FROM'		=> array(THANKS_TABLE => 't', USERS_TABLE => 'u'),
	);
	$sql_array['WHERE'] = 'u.user_id = t.user_id AND ' . $db->sql_in_set('t.post_id', $post_list);
	$sql = $db->sql_build_query('SELECT', $sql_array);
	$result = $db->sql_query($sql);
	$j = 0;
	while ($row = $db->sql_fetchrow($result))
	{
		$thankers[$j] = array(  
			'user_id' 			=> $row['user_id'],
			'poster_id' 		=> $row['poster_id'],
			'post_id' 			=> $row['post_id'],
			'thanks_time'		=> $row['thanks_time'],
			'username'			=> $row['username'],
			'username_clean'	=> $row['username_clean'],
			'user_colour'		=> $row['user_colour'],
		);
		$j++;
	}
	$db->sql_freeresult($result);

//array thanks_count for all poster on viewtopic page

	$sql = 'SELECT DISTINCT poster_id FROM '. POSTS_TABLE . ' WHERE ' . $db->sql_in_set('post_id', $post_list);
	$result = $db->sql_query($sql);
	while ($row = $db->sql_fetchrow($result))
	{
		$poster_list[] = $row['poster_id'];
		$poster_list_count[$row['poster_id']]['R'] = $poster_list_count[$row['poster_id']]['G'] = 0;
	}
	$db->sql_freeresult($result);
	
	$sql = 'SELECT *, COUNT(poster_id) AS poster_count FROM ' . THANKS_TABLE . ' WHERE ' .$db->sql_in_set('poster_id', $poster_list). ' GROUP BY poster_id';
	$result = $db->sql_query($sql);
	while ($row = $db->sql_fetchrow($result))
	{
		$poster_list_count[$row['poster_id']]['R'] = $row['poster_count'];
	}
	$db->sql_freeresult($result);		

	$sql = 'SELECT *, COUNT(user_id) AS user_count FROM ' . THANKS_TABLE . ' WHERE ' .$db->sql_in_set('user_id', $poster_list). ' GROUP BY user_id';
	$result = $db->sql_query($sql);
	while ($row = $db->sql_fetchrow($result))
	{
		$poster_list_count[$row['user_id']]['G'] = $row['user_count'];
	}
	$db->sql_freeresult($result);	
	return;
}
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Inf0
phpBB 1.0.0
Сообщения: 1
Стаж: 15 лет 8 месяцев
Откуда: dp.ua
Благодарил (а): 1 раз

Re: Thanks for post (Rating edition)

Сообщение Inf0 »

Скажите, как отключить рассылку в ЛС/email при выдаче/отмене благодарности? Переключатель в личном разделе не помогает.
Аватара пользователя
Пчелкин
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
SCIF-1986
phpBB 1.4.1
Сообщения: 43
Стаж: 18 лет
Откуда: Vladivostok
Благодарил (а): 1 раз

Re: Thanks for post (Rating edition)

Сообщение SCIF-1986 »

Палыч писал(а): А вы уверены, что у вас последняя версия МОДа?
Интересное кино получается. Уже не уверен :)
Мой functions_thanks.php:

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

* @version $Id: functions_thanks.php,v 131 2011-01-10 10:02:51 Палыч$
А из архива отсюда:

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

@version $Id: functions_thanks.php,v 131 2011-05-05 10:02:51 Палыч$
Причём thanklist.php вообще датирован 2009-ым годом.
Сейчас залил новый. Как народ набежит, буду мониторить, т.к. хоть я и отписался, что всё стало ок, но к вечеру мускуль сожрал всю оперативу, из-за временных таблиц, хранящихся в /dev/shm, и почти завесил сервак.
adept7771
phpBB 1.0.0
Сообщения: 6
Стаж: 15 лет 10 месяцев

Re: Thanks for post (Rating edition)

Сообщение adept7771 »

Здравствуйте! Установил мод на мой форум warkeeper.net/forum/ опции благодарностей появились в профилях людей. Однако кнопки поблагодарить в сообщениях нет. Права дал на благодарность людям. Глобальные роли так же поправил выдав всем способность благодарности.

Чистил кеш, жмакал кнопку обновить в самой теме.
Проверил ассоциированы ли рисунки с самой темой... да, кнопки благодарности значатся для русского языка и пути к картинкам все прописаны верно. В чем может быть ошибка?
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Thanks for post (Rating edition)

Сообщение владимир1983 »

Админ раздел > Стили > Набор Рисунков > [Ваш стиль] > Изменить > Поблагодарить за сообщение [ ru ] Что тут?
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: Thanks for post (Rating edition)

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

adept7771
Если читаете по английски, то тут полный (исчерпывающий) список возможных проблем:
http://www.phpbb.com/customise/db/mod/t ... /faq/f_284

Добавлено спустя 1 минуту 28 секунд:
adept7771 писал(а):Глобальные роли так же поправил выдав всем способность благодарности.
Это право относится к локальным.
Вы настроили его (в правах доступа к форумам)?
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Thanks for post (Rating edition)

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

Сейчас посчитал - 15 сообщений назад писАлось..и в теме раз 12-15 писАлось....
Thanks for post (Rating edition)
Ну например...
А фактически надо ручками пройти по всем форумам.
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
adept7771
phpBB 1.0.0
Сообщения: 6
Стаж: 15 лет 10 месяцев

Re: Thanks for post (Rating edition)

Сообщение adept7771 »

Спасибо за ссылки сейчас буду читать.

Добавлено спустя 16 минут 4 секунды:
Дошло... в гугл хром кнопка не отображается хотя во всех других браузерах работает. Буду смотрет ьв той теме английской. Может что там скажут.

Добавлено спустя 15 минут 16 секунд:
Нашел в чем дело! В стилях везде надо было кеш сбросить. Только после этого и перезагрузки пк хром начал корректно отображать кнопку.

Добавлено спустя 13 минут 36 секунд:
Подскажите если не сложно как включить топлист http://warkeeper.net/forum/toplist.php
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Thanks for post (Rating edition)

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

Это тоже в правах - может просматривать топ лист ..и в личных и в групповых есть...
Последний раз редактировалось Пчелкин 02.08.2011 23:07, всего редактировалось 1 раз.
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
____ROB____
phpBB 1.2.0
Сообщения: 16
Стаж: 15 лет 9 месяцев
Благодарил (а): 10 раз

Re: Thanks for post (Rating edition)

Сообщение ____ROB____ »

Добрый день.
Имеется скромный вопрос.
Как изменить размещение кнопки "Спасибо", и поставить её перед кнопкой "Правка"?
sshot-6.png
Версия мода: 1.2.3
Стиль: prosilver

ПС искал ответ в теме [RC] Thanks_mod (Спасибо за сообщение) - не нашел.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
NiGHt-LEshiY
phpBB 1.2.1
Сообщения: 24
Стаж: 15 лет 1 месяц
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: Thanks for post (Rating edition)

Сообщение NiGHt-LEshiY »

Нужно добавить код кнопки на строке между

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

<ul class="profile-icons">
и

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

<!-- IF postrow.U_EDIT --><li class="edit-icon"><a href="{postrow.U_EDIT}" title="{L_EDIT_POST}"><span>{L_EDIT_POST}</span></a></li><!-- ENDIF -->
В styles/prosilver/viewtopic_body.html
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: Thanks for post (Rating edition)

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

____ROB____
Судя по скрину, у вас довольно старая версия МОДа (1.2.3 или ранее)
Если вы хотите оставить тектовую кнопку, то вырежите код:

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

				<!-- IF  postrow.S_FORUM_THANKS and S_USER_LOGGED_IN and not postrow.S_IS_OWN_POST and (not postrow.S_ALREADY_THANKED or postrow.S_REMOVE_THANKS) -->
				<ul class="profile-icons">
					<li class="{postrow.THANKS_IMG}">
					<a href="{postrow.THANKS_LINK}" title="{postrow.THANK_ALT}{postrow.POST_AUTHOR}"></a>
					</li>
				</ul>
				<!-- ENDIF -->
и вставьте после:

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

				<ul class="profile-icons">
только это фрагмент:

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

				<!-- IF  postrow.S_FORUM_THANKS and S_USER_LOGGED_IN and not postrow.S_IS_OWN_POST and (not postrow.S_ALREADY_THANKED or postrow.S_REMOVE_THANKS) -->
					<li class="{postrow.THANKS_IMG}">
					<a href="{postrow.THANKS_LINK}" title="{postrow.THANK_ALT}{postrow.POST_AUTHOR}"></a>
					</li>
				<!-- ENDIF -->
При этом список благодарностей останется внизу.
Или обновитесь до актуальной версии МОДа, там кнопка уже не текстовая и расположена вверху.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
uncle BOO
phpBB 1.4.2
Сообщения: 72
Стаж: 18 лет 5 месяцев
Благодарил (а): 15 раз
Поблагодарили: 1 раз

Re: Thanks for post (Rating edition)

Сообщение uncle BOO »

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

Re: Thanks for post (Rating edition)

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

Никак...таблицы для помещения в нее спасибки от ЛС нет..Спасибки имеют адрес - автор(ID) - сообщение(ID) - тема(ID) - форум(ID) - время...
А что и куда впихивать при спасибках в ЛС? Фантастика....
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70

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