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 »

Нет, я надеюсь что у админа у вас выставлены права "давать спасибо", поэтому в исходнике должно хоть что-то быть! Если это нет, значит вы в свем шаблоне (не знаю имя вашего шаблона), что то сделали не так!
Продаю комиксы, продаю инструмент, продаю товары для охоты и рыбаков... и администрирую форум!
Питер
phpBB 1.4.4
Сообщения: 197
Стаж: 15 лет 2 месяца
Откуда: Москва
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: Thanks for post (Rating edition)

Сообщение Питер »

А по подробней можно?
«-Да он не псих, просто детективов начитался.
- Да какая разница...» © Донна Эндрюс «Месть кованых фламинго»
Аватара пользователя
misterleks
phpBB 2.0.9
Сообщения: 715
Стаж: 16 лет 1 месяц
Откуда: Великий Новгород
Благодарил (а): 103 раза
Поблагодарили: 38 раз

Re: Thanks for post (Rating edition)

Сообщение misterleks »

Дело в том, что когда вы прописываете код в шаблон, он должен быть в исходнике отражаемого на дисплее шаблона, то есть, вписанный код кнопки "спасибо" где-то должен быть! И это факт! В противном случае, если кода кнопки нет (а она должна быть в html), проблема во внесённом шаблоне!
Я, иногда, проверяю это простым способом, перед самим кодом (который должен отобажаться, а в вашем случае кнопка), пишу слово "здесь", то есть если слово "здесь" отобразилось у вас на экране, то перед ним или после него (зависит от вас, куда вписали) обязательно должна быть кнопка... если все сделано правильно - пробуйте!
Продаю комиксы, продаю инструмент, продаю товары для охоты и рыбаков... и администрирую форум!
Питер
phpBB 1.4.4
Сообщения: 197
Стаж: 15 лет 2 месяца
Откуда: Москва
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: Thanks for post (Rating edition)

Сообщение Питер »

В viewtopic.php и viewtopic_body.html все проверено уже неизвестно сколько раз. Сама кнопка thankposts.gif, там не прописывается. Только в imageset.cfg

Короче полная.... Целый день и... везде все есть, мод работает в админке, все добавилось - кнопок нет. о_О

Даже, только увидел, "благодарности" в строке FAQ - пользователи появилась
«-Да он не псих, просто детективов начитался.
- Да какая разница...» © Донна Эндрюс «Месть кованых фламинго»
Аватара пользователя
Пчелкин
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
Питер
phpBB 1.4.4
Сообщения: 197
Стаж: 15 лет 2 месяца
Откуда: Москва
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: Thanks for post (Rating edition)

Сообщение Питер »

Пчелкин И гостем и участником и модером. Бесполезно.

Добавлено спустя 1 час 2 минуты 23 секунды:
1.3.1 Это последняя версия? Может нужен абгрейд?
«-Да он не псих, просто детективов начитался.
- Да какая разница...» © Донна Эндрюс «Месть кованых фламинго»
Аватара пользователя
Пчелкин
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
Питер
phpBB 1.4.4
Сообщения: 197
Стаж: 15 лет 2 месяца
Откуда: Москва
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: Thanks for post (Rating edition)

Сообщение Питер »

Пчелкин Медленно происходит чудо))
Палыч писал(а):Опции реализованы включением добавленного права доступа к форумам. При установке право добавлено в роль Стандартный доступ.
А фактически надо ручками пройти по всем форумам. http://impossible-crimes.ru/Forum/viewt ... =190&t=563

Кроме того, мод не совсем... Я если участнику сообщение не нравится. Только плюс? Правда потом он же может убрать свой плюсик. Типа как на днях рождения или поминках. Только хорошее или ни как.
Или я не так что то понял в этом МОДЕ?
Последний раз редактировалось Питер 29.07.2011 5:37, всего редактировалось 1 раз.
«-Да он не псих, просто детективов начитался.
- Да какая разница...» © Донна Эндрюс «Месть кованых фламинго»
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: Thanks for post (Rating edition)

Сообщение Pazh »

Питер писал(а):Только хорошее или ни как.
именно так. Противоположное пытаются сделать в соседней ветке Кнопка "Фу"
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Пчелкин
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 »

Уважаемые, всем добрый день.
Подскажите пожалуйста, был ли у кого-нибудь опыт использования данного мода на форумах, хотя бы с 1 млн. постов?
Из шапки все фиксы применял и проверил, чтобы всё было в соответствии с рекомендациями.
Воткнул на форум и в тестовом режиме (тестовой версией форума пользовалось человек 10-20, тестовым он является только файлово, база одна с боевым) он бегал у нас какое-то время. Обновились до 3.0.9, с помощью git'а. Вроде всё было ок и сегодня решили подменить тестовый вариант на место боевого. Собственно SHOW FULL PROCESS LIST; подсказал кто виноват. Виноват запрос вида:

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

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 =8347470 OR p.post_id =8347512 OR…
Полез искать где он растёт в пхп-файликах. Произростал он в includes/function_thanks.php. На скорую модифицировал чтобы запрос составлялся вида:

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

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 IN( 8347470, 8347512,…
Форум моментально отпустило и всё забегало вполне адекватно. В процессе ковыряний предполагал, что я сам где-то не дофиксил и полез в эту тему. Поиск по DISTINCT дал только один пост, на который Палыч ответил, отсылкой к тюнингу самого сервера.
Нельзя ли как-нибудь прикрутить кэширование к тем 3-4 запросам функции array_all_thanks()? Ну и может всё-таки стоит превратить OR'ы в один IN? Для меня странно, что простое изменение условия так сильно повлияло. На форуме в тот момент сидело около 400 человек, что далеко не является рекордом для нас. Уж очень подозрительно всё это сложилось и уж очень страшно запрос выглядел, т.к. в условиях было идов наверно под 150-200.
Аватара пользователя
uncle BOO
phpBB 1.4.2
Сообщения: 72
Стаж: 18 лет 5 месяцев
Благодарил (а): 15 раз
Поблагодарили: 1 раз

Re: Thanks for post (Rating edition)

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

Питер писал(а):Неужели надо пройти по всем форумам?
Я настраивал для каждого форума. Не знаю, может глупо, но делал так:
Админка- Права доступа-Локальные права доступа - Форумные права групп - Выбор группы - галку на Все форумы - и пройтись по всем "Расширенные права" всех форумов - Разное-Может благодарить за сообщения-Да-И сразу Применить права для каждого форума отдельно!. Далее к следующему форуму.
И так со всеми нужными группами.

А мой вопрос такой: как настроить, чтоб в строке
"За это сообщение автора artobstrel поблагодарил:uncle BOO (Пятница 29 Июль 2011 13:32)"
дата была, как на этом форуме (19.08.2010 8:55), а лучше без часа и минут ?
Последний раз редактировалось uncle BOO 29.07.2011 10:37, всего редактировалось 1 раз.
alexkd
phpBB 1.0.0
Сообщения: 5
Стаж: 15 лет 2 месяца

Re: Thanks for post (Rating edition)

Сообщение alexkd »

А права установлены точно для каждого форума, каждого подфорума для каждой группы пользователей (и желательно проверить у конкретных пользователей под которыми заходите).
У меня после установки мода именно в этом проблема была. В одном месте вроде бы установлено, а в других нет.
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: Thanks for post (Rating edition)

Сообщение Pazh »

uncle BOO писал(а):А мой вопрос такой: как настроить, чтоб в строке
"За это сообщение автора artobstrel поблагодарил:uncle BOO (Пятница 29 Июль 2011 13:32)"
дата была, как на этом форуме (19.08.2010 8:55), а лучше без часа и минут ?
в файле includes\functions_thanks.php
найти:

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

$return .= ($value['thanks_time']) ? ' ('.$user->format_date($value['thanks_time'], false, ($view == 'print') ? true : false).')' : '';
заменить на

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

$return .= ($value['thanks_time']) ? ' ('.$user->format_date($value['thanks_time'], "d.m.Y H:i", ($view == 'print') ? true : false).')' : '';
Если из "d.m.Y H:i" сделать "d.m.Y", то будет просто дата без времени
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Thanks for post (Rating edition)

Сообщение Nekstati »

uncle BOO, права обычно лучше настраивать через роли. Вам надо было отредактировать одну-единственную роль, которая у вас присвоена группе «Зарегистрированные пользователи» на большинстве форумов. (Обычно это роль «Стандартный доступ».)

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