Пропустить

Thanks for post (Rating edition)

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

Thanks for post (Rating edition)

Сообщение Палыч » 13.07.2009 9:49

Наименование модификации: Thanks for post
Описание:: Мод добавляет возможность поблагодарить автора сообщения (отменить благодарность).
  • Опции реализованы включением добавленного права доступа к форумам. При установке право добавлено в роль Стандартный доступ. (Если вы хотите установить другие настройки: перейдите в Администраторский раздел - Права доступа - Локальные права - Права доступа к форумам и выберите форумы, где вы хотите иметь функцию благодарностей за сообщения. Разрешите право "Может благодарить за сообщения" на вкладке Разное).
  • Переключатель выбора опции получения уведомлений о благодарностях в Личном разделе - Личные настройки.
  • Настройки опций, в том числе обновление счётчиков после массового удаления сообщений/тем/пользователей - в Администраторском разделе - Модули - Благодарности.
  • Для просмотра списка благодарностей нужно разрешить глобальное пользовательское право - "Может просматривать лист благодарностей" на вкладке Разное. При установке право добавлено в роль Стандартные возможности и членам группы Зарегистрированные пользователи.
  • Для просмотра топлиста нужно разрешить глобальное пользовательское право - "Может просматривать топлист" на вкладке Разное. При установке право добавлено в роль Стандартные возможности и членам группы Зарегистрированные пользователи.
  • Для возможности очистки списков благодарностей нужно разрешить глобальное модераторское право - "Может очищать список благодарностей" на вкладке Разное. При установке право добавлено в роль Супермодератор и членам группы Супермодераторы.
  • В папке 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.3

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

Скачать: 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

==============================================================================
Примечания для более ранних версий МОДа:

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

acp_thanks_refresh 1.3.1.rar
(2.15 КБ) Скачиваний: 112


Для устранения предупреждения (версия 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
Thanks for post (Rating edition)

Fix для установки версии 1.2.4 на 3.0.6 (viewtopic_body.html) http://www.phpbb.com/community/viewtopi ... #p11255735

Фикс для версии 1.2.5 - устранение неправильного отображения числа благодарностей в постах при удалении пользователя
Замените три файла из архива (если необходимо, воспользуйтесь кнопкой Обновить в админке на вкладке Благодарности для пересчёта числа благодарностей)
fix_bug_thanks.zip
(8.34 КБ) Скачиваний: 539

===========================================================
Если вы не видите кнопки "Спасибо"

  1. Убедитесь, что вы скопировали файлы-изображения в папку используемого вами стиля
  2. Убедитесь, что вы отредактировали файлы используемого вами стиля
  3. Обновите набор изображений вашего стиля (на вкладке Стили в админке)
  4. Обновите тему вашего стиля (на вкладке Стили в админке)
  5. Обновите кеш
  6. Установите опции мода (вкладка Модули - Спасибо за сообщение)
  7. Убедитесь, что правильно выставлены права доступа

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

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

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

      Если вы хотите иметь другие настройки (у вас другая роль у зарегистрированных пользователей):
      Админка -> Права доступа -> Прав групп -> Выбор группы:Зарегистрированные пользователи -> Расширенные права -> Разное -> Может просматривать список благодарностей (Может видеть топлист) -> Применить все права
      Пошаговая инструкция в картинках (на английском)
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
За это сообщение автора Палыч поблагодарили: 83
DennisVV (19.08.2010 9:55), Gisher (02.08.2010 23:30), grika (04.08.2010 0:03), Heldar (20.10.2010 11:04), incubus (06.10.2010 14:27), kaktys (09.06.2011 22:15), MAzZY (10.05.2011 21:54), trooper (15.08.2010 23:23), Warlock75 (06.12.2010 1:14), Поручик (03.08.2010 17:56) и ещё 73
Аватара пользователя
Палыч
Просто Палыч
Просто Палыч
 
Сообщения: 9471
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер
Благодарил (а): 3 раз.
Поблагодарили: 337 раз.

Re: Thanks for post (Rating edition)

Сообщение DennyTX » 27.09.2010 22:02

Есть addon для Thanks for post 1.2.8 по совмещению функций с Ultimate Points 1.0.7 и Medal System mod.
Смотреть здесь Add-on for Thanks for post & Ultimate Points
Рожденный в СССР
Аватара пользователя
DennyTX
phpBB 1.2.1
 
Сообщения: 21
Зарегистрирован: 18.03.2010 18:42
Благодарил (а): 9 раз.
Поблагодарили: 16 раз.

Re: Thanks for post (Rating edition)

Сообщение bmack » 29.09.2010 4:23

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

bmack
phpBB 1.0.0
 
Сообщения: 1
Зарегистрирован: 18.06.2009 22:01
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Thanks for post (Rating edition)

Сообщение Палыч » 29.09.2010 23:55

bmack
Не планировалось, но пожалуй, идея жизнеспособна. Спасибо.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Палыч
Просто Палыч
Просто Палыч
 
Сообщения: 9471
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер
Благодарил (а): 3 раз.
Поблагодарили: 337 раз.

Re: Thanks for post (Rating edition)

Сообщение Maxxi » 30.09.2010 12:57

А можно позанудствовать по поводу оптимальности алгоритмов в данном моде?
это кошмар! :)

Maxxi
phpBB 1.2.1
 
Сообщения: 22
Зарегистрирован: 27.01.2008 1:47
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Thanks for post (Rating edition)

Сообщение MAzZY » 30.09.2010 13:02

Maxxi, конструктивные предложения есть? Или только занудство без примеров?
Аватара пользователя
MAzZY
Former team member
 
Сообщения: 2952
Зарегистрирован: 14.05.2005 23:43
Благодарил (а): 61 раз.
Поблагодарили: 54 раз.
Предупреждения: 1

Re: Thanks for post (Rating edition)

Сообщение Maxxi » 30.09.2010 13:46

MAzZY писал(а):Maxxi, конструктивные предложения есть? Или только занудство без примеров?

Конечно есть. Я пользую версию 1.2.5, но вижу, что в 1.2.8 алгоритм не поменялся.
Начнем с несамого ужасного :)
Мод генерит запросы типа
SELECT DISTINCT t.poster_id, t.post_id, t.user_id 
FROM (phpbb_thanks t, phpbb_posts p) 
WHERE t.poster_id = p.poster_id AND (p.post_id =862693 OR p.post_id =862708 OR p.post_id =862712)

и
SELECT DISTINCT t.user_id, t.post_id, t.poster_id 
FROM (phpbb_thanks t, phpbb_posts p) 
WHERE p.poster_id = t.user_id AND (p.post_id =862693 OR p.post_id =862708 OR p.post_id =862712)

смотрим explain и видим "Using temporary". это плохо, можно переписать запросы.
Посмотрим, зачем же нужны эти запросы. Запросы генерятся в array_all_thanks, а результат используется в get_user_count.
get_user_count вызывается дважды (!) для каждого (!) поста, чтобы посчитать для автора поста кол-во благодарностей и поблагодаривших (не в этом посте, а всего). Причем подсчет этот делается перебором (!) по массиву (array_keys).
И все эти магические действия вместо того, чтобы добавить два поля в таблицу users, рядом с user_posts.
Для конструктива добавлю что функция array_all_thanks съедает практически половину (!) времени генерации всей страницы. Ну и get_user_count отъедает немножко времени, которое можно было бы вообще убрать.

Maxxi
phpBB 1.2.1
 
Сообщения: 22
Зарегистрирован: 27.01.2008 1:47
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Thanks for post (Rating edition)

Сообщение Палыч » 30.09.2010 22:02

Maxxi
По поводу
Maxxi писал(а):get_user_count вызывается дважды (!) для каждого (!) поста,

абсолютно справедливо. Исправлено ещё в июне. Отсюда Thanks for post (Rating edition) и чуть дальше по теме.

Maxxi писал(а):И все эти магические действия вместо того, чтобы добавить два поля в таблицу users, рядом с user_posts.

История мода началась с просьб довести до ума мод Thank Post MOD автора Geoffrey Craft версии 040, который автор забросил. И до версии 1.2.5 была отдельная инструкция для обновления с данного мода. Потом различия стали уже слишком большими.
Поэтому очень много "историзмов" ещё оттуда. Но принцип: минимум добавочных полей в штатные таблицы phpbb - это святое.

Maxxi писал(а):функция array_all_thanks съедает практически половину (!) времени генерации всей страницы.

Это как раз последний (практически) "историзм". Но вы не правы в оценках.
Вот viewtopic многостраничной темы (33) с включенным модом
Time : 0.989s | 19 Queries | GZIP : Off | Memory Usage: 5.4 Мб |
Параметры форума
Всего сообщений: 45855 • Тем: 4037 • Пользователей: 1163
учтено благодарностей: 19719
Вот та же страница вообще без мода
Time : 0.692s | 16 Queries | GZIP : Off | Memory Usage: 4.27 Мб |

Maxxi писал(а):это плохо, можно переписать запросы.

Флаг в руки :)
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Палыч
Просто Палыч
Просто Палыч
 
Сообщения: 9471
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер
Благодарил (а): 3 раз.
Поблагодарили: 337 раз.

Re: Thanks for post (Rating edition)

Сообщение Maxxi » 01.10.2010 0:49

Палыч писал(а):абсолютно справедливо. Исправлено ещё в июне. Отсюда Thanks for post (Rating edition) и чуть дальше по теме.

в теме конкретно про get_user_count не нашел, смотрю последнюю версию:
'POSTER_RECEIVE_COUNT'	=> get_user_count($poster_id, true),
'POSTER_GIVE_COUNT'		=> get_user_count($poster_id, false),

Эти строчки вызываются для каждого поста.

Палыч писал(а):Поэтому очень много "историзмов" ещё оттуда. Но принцип: минимум добавочных полей в штатные таблицы phpbb - это святое.

Понятно. Хотя такой принцип не всегда оправдан. Для большинства это наверное сойдет. Но для серьезных проектов не прокатит.
Сразу соглашусь, что для серьезных проектов нужны индивидуальные разработки. Но я идеалист и верю в то что "продукт из коробки" должен подходить под любые требования. :)

Палыч писал(а):Это как раз последний (практически) "историзм". Но вы не правы в оценках.Вот viewtopic многостраничной темы (33) с включенным модомTime : 0.989s | 19 Queries | GZIP : Off | Memory Usage: 5.4 Мб |Параметры форума Всего сообщений: 45855 • Тем: 4037 • Пользователей: 1163 учтено благодарностей: 19719Вот та же страница вообще без модаTime : 0.692s | 16 Queries | GZIP : Off | Memory Usage: 4.27 Мб |

Конечно, результаты тестов зависят от многих параметров и на разных конфигурациях дадут разный результат... Но! даже в Вашем примере имеем 30% добавочного времени налицо. И это для незначительной функциональности.

Палыч писал(а):Флаг в руки

Я уже давно понял основной принцип жизни: хочешь сделать хорошо - сделай это сам! :)
Спасибо за комментарии!

з.ы. вот пример "флага":
SELECT p.post_id, t.poster_id, t.thanked
FROM forum3_posts p 
LEFT JOIN 
(SELECT t.poster_id, count(t.post_id) thanked FROM forum3_thanks t GROUP BY t.poster_id) t
ON (p.poster_id = t.poster_id)
WHERE (
p.post_id =864836
OR p.post_id =864848
OR p.post_id =864911
OR p.post_id =864930
OR p.post_id =864946 )

Запрос получает для всех юзеров темы кол-во благодарностей. И не нужно в каждом сообщении бегать по массиву. Проверено только на мускуле.
Но я скорей всего буду делать по оптимальному варианту.. :)

Maxxi
phpBB 1.2.1
 
Сообщения: 22
Зарегистрирован: 27.01.2008 1:47
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Thanks for post (Rating edition)

Сообщение Di_Mok » 03.10.2010 0:11

Палыч, у каких форумов (по вложенности) должны присутствовать звёздочки рейтинга? Вот, для наглядности вопроса:

Категория1
  • Форум11********
    • Тема111********
  • Форум12 ???
    • Форум121********
      • Тема1211********


У меня рейтинг есть только у Форум11 и Форум121, а Форум12 (родительского для Форум121) нет. Так и должно быть, или я где-то что-то изломал?
Лень - двигатель прогресса.
Аватара пользователя
Di_Mok
Поддержка
Поддержка
 
Сообщения: 700
Зарегистрирован: 13.03.2010 1:36
Откуда: Родной Гондурас ;)
Благодарил (а): 140 раз.
Поблагодарили: 85 раз.

Re: Thanks for post (Rating edition)

Сообщение Пчелкин » 03.10.2010 4:43

Форум 12 родитель форума 121..тем в нем нет, есть тока форумы..с чего считать рейтинг?
Создай хоть одну тему прямо в форуме 12..(типа обьявы) появится и у него рейтинг..сам пробовал...
Фанат phpBB. В HTML - без проблем, в CSS - так себе, учусь, в php - баран, помогает только дедукция
За это сообщение автора Пчелкин поблагодарил:
Di_Mok (03.10.2010 10:25)
Аватара пользователя
Пчелкин
phpBB 3.0.7-PL1
 
Сообщения: 4899
Зарегистрирован: 15.01.2010 14:57
Откуда: От Москвы 9 часов на Боинге
Благодарил (а): 288 раз.
Поблагодарили: 556 раз.

Re: Thanks for post (Rating edition)

Сообщение Di_Mok » 03.10.2010 10:25

Пчелкин писал(а):тем в нем нет, есть тока форумы

Да, но темы есть во вложенном форуме. Ну, раз это не только у меня, значит ни чего не исковеркал. Хотя, наверное, было бы логично составление рейтинга родительского форума из вложенных.
Лень - двигатель прогресса.
Аватара пользователя
Di_Mok
Поддержка
Поддержка
 
Сообщения: 700
Зарегистрирован: 13.03.2010 1:36
Откуда: Родной Гондурас ;)
Благодарил (а): 140 раз.
Поблагодарили: 85 раз.

Re: Thanks for post (Rating edition)

Сообщение Пчелкин » 03.10.2010 13:37

Di_Mok писал(а):Да, но темы есть во вложенном форуме

Темы во вложеннном относятся к вложенному...а в родителя они не стреляют..в БД ведь ведь нет таблицы о темах в родителе,откуда рейтингу тащить инфу? все справедливо...
Фанат phpBB. В HTML - без проблем, в CSS - так себе, учусь, в php - баран, помогает только дедукция
За это сообщение автора Пчелкин поблагодарил:
Di_Mok (03.10.2010 13:57)
Аватара пользователя
Пчелкин
phpBB 3.0.7-PL1
 
Сообщения: 4899
Зарегистрирован: 15.01.2010 14:57
Откуда: От Москвы 9 часов на Боинге
Благодарил (а): 288 раз.
Поблагодарили: 556 раз.

Re: Thanks for post (Rating edition)

Сообщение Палыч » 03.10.2010 21:26

Di_Mok
Пчёлкин прав, нет тем - нет рейтинга.
Хотя в планах есть мысли о сквозном подсчёте.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
За это сообщение автора Палыч поблагодарил:
Di_Mok (03.10.2010 23:27)
Аватара пользователя
Палыч
Просто Палыч
Просто Палыч
 
Сообщения: 9471
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер
Благодарил (а): 3 раз.
Поблагодарили: 337 раз.

Re: Thanks for post (Rating edition)

Сообщение Di_Mok » 04.10.2010 0:40

Палыч писал(а):Хотя в планах есть мысли о сквозном подсчёте.

Хорошо бы...


Еще хочется задавать для кнопки отмены благодарности "время жизни". Ну, т.е., период времени, после нажатия на кнопку "Спасибо", после которого отмена станет недоступна. Такого в планах нет? )
Лень - двигатель прогресса.
Аватара пользователя
Di_Mok
Поддержка
Поддержка
 
Сообщения: 700
Зарегистрирован: 13.03.2010 1:36
Откуда: Родной Гондурас ;)
Благодарил (а): 140 раз.
Поблагодарили: 85 раз.

Re: Thanks for post (Rating edition)

Сообщение Пчелкин » 04.10.2010 13:18

Да отключи удаление спасибок в админке..делов-то...

Di_Mok писал(а):для кнопки отмены благодарности "время жизни".


Добавлено спустя 21 минуту 47 секунд:
Это получается что в session.php надо будет прописать еще один запрос по приниципу post_time, но с запросом на время проставления спасибки? Да форум встанет, тока на одни запросы таймера спасибок будет работать...а хостер ваш форум пустит в дефолт...
Фанат phpBB. В HTML - без проблем, в CSS - так себе, учусь, в php - баран, помогает только дедукция
Аватара пользователя
Пчелкин
phpBB 3.0.7-PL1
 
Сообщения: 4899
Зарегистрирован: 15.01.2010 14:57
Откуда: От Москвы 9 часов на Боинге
Благодарил (а): 288 раз.
Поблагодарили: 556 раз.

Пред.След.

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

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы