[RC] Thanks_mod (Спасибо за сообщение)

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

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

Re: [BETA] Thanks_mod (Спасибо за сообщение)

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

mars1an
Последняя попытка :D
На тестовом форуме (43000 постов, 10000 спасибок) пересчёт после удаления темы (39 постов со спасибками) занял 1,178сек 15 запросов
Time : 1.178s | 15 Queries | GZIP : Off | Memory Usage: 3.98 Мб | Explain
Cчётчики благодарностей обновлены
Всего сообщений: 43537
Было сообщений с благодарностями: 10003
Удалено записей о 39 сообщениях
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
mars1an
phpBB 1.4.2
Сообщения: 64
Стаж: 18 лет 4 месяца
Благодарил (а): 4 раза
Поблагодарили: 5 раз

Re: [BETA] Thanks_mod (Спасибо за сообщение)

Сообщение mars1an »

Палыч
Все замечательно!
Cчётчики благодарностей обновлены
Всего сообщений: 184916
Было сообщений с благодарностями: 2099
Удалено записей о: 62
все прошло примерно за секунду, дебаг не включен точное время не могу сказать.
Крайняя степень глупости с точки зрения админа - объяснять что-либо, если есть документация...
Chance
phpBB 1.4.2
Сообщения: 70
Стаж: 20 лет 1 месяц
Забанен: Бессрочно

Re: [BETA] Thanks_mod (Спасибо за сообщение)

Сообщение Chance »

Оттестировано на форуме phpbb 3.0.4
50000 постов, 10000 записей благодарностей.
Время на viewtopic 0.2 - 0.5c 14-15 запросов
memberlist 0.4 - 0.6c 20 запросов
Подтормаживает при просмотре профиля, если суммарное число благодарностей (получил + раздал) более 1000
А как дела с нагрузкой при миллионе сообщений на форуме и примерно 200 тысяч "спасибо"?
Это не теоретический вопрос, а вполне практический для нашего форума.
То есть интересует рост нагрузки от роста таблиц. Он линейный или нет?

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

Re: [BETA] Thanks_mod (Спасибо за сообщение)

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

Chance писал(а):А как дела с нагрузкой при миллионе сообщений
Поставьте - узнаете, нам расскажите.
В принципе, от общего количества сообщений зависит только функция "пересчёта" - модераторская функция, применяемая после массового удаления тем/сообщений. А так, нагрузка зависит от числа сообщений, выводимых на страницу (по умолчанию - 15).
От числа "благодарностей" зависит нагрузка при просмотре профиля. Там вывод пока не ограничен.
Таблица всего одна.

Для установки поверх старого МОДа есть отдельная инструкция, в папке contrib (в ней есть косметическая ошибка, пропущены два закрывающих тега при оформлении - http://www.phpbbguru.net/community/topi ... ml#p233267 )
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1097
Стаж: 17 лет 8 месяцев
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз

Re: [BETA] Thanks_mod (Спасибо за сообщение)

Сообщение Garret_Dark »

Палыч
Мне толькочто Google Adsense [Bot] поставил "Спасибо" :lol: Хотя в правах в админке четко у него стоит "Может благодарить за сообщения "Нет" . Под постом его ник не отображается :lol:
Не смертельно, но всетаки... К сожалению не отследил добавился ли мне в счетчик его ОК. В списке поблагодарвших нет
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: [BETA] Thanks_mod (Спасибо за сообщение)

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

Garret_Dark
Вы ставили поверх версии 040?
В старом МОДе была такая фишка.

Добавлено спустя 1 минуту 8 секунд:
И какой у вас стиль?
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1097
Стаж: 17 лет 8 месяцев
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз

Re: [BETA] Thanks_mod (Спасибо за сообщение)

Сообщение Garret_Dark »

Палыч
Нет, сразу поставил Version: 1.1.1b.
Предыдущих версий не ставил
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: [BETA] Thanks_mod (Спасибо за сообщение)

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

Garret_Dark
Насколько понял, у вас subsilver2.
Приведите фрагмент кода МОДа из вашего viewtopic_body.html
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1097
Стаж: 17 лет 8 месяцев
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз

Re: [BETA] Thanks_mod (Спасибо за сообщение)

Сообщение Garret_Dark »

Палыч
Да, сабсильвер2

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

<!-- ELSEIF postrow.S_IS_OWN_POST and not postrow.THANKS -->
	<!-- ELSE -->
				<!-- IF S_USER_LOGGED_IN and not postrow.S_IS_OWN_POST and not S_IS_BOT --><a href="{postrow.THANKS_LINK}" alt="{postrow.THANK_ALT}{postrow.POST_AUTHOR}" title="{postrow.THANK_ALT}{postrow.POST_AUTHOR}" />{postrow.THANK_IMG}</a><!-- ENDIF -->
				<!-- IF postrow.THANKS -->
					<table width="100%" cellspacing="0">
						<tr valign="middle">
							<td class="gensmall" align="{S_CONTENT_FLOW_BEGIN}">
				<hr>{postrow.THANK_TEXT}{postrow.POST_AUTHOR_FULL}{postrow.THANK_TEXT_2}: {postrow.THANKS}
							</td>
						</tr>
					</table>
				<!-- ENDIF -->
	<!-- ENDIF -->
							<!-- ENDIF -->
							</td>
						</tr>
						</table>

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

<!-- IF postrow.POSTER_FROM --><br /><b>{L_LOCATION}:</b> {postrow.POSTER_FROM}<!-- ENDIF -->
					<!-- IF not postrow.S_POST_ANONYMOUS and postrow.S_FORUM_THANKS --><br /><b>{L_GIVEN}:</b> {postrow.POSTER_GIVE_COUNT} {L_THANKS}<br /><b>{L_RECEIVED}:</b> {postrow.POSTER_RECEIVE_COUNT} {L_THANKS}<!-- ENDIF -->

					<!-- IF postrow.S_PROFILE_FIELD1 -->
						<!-- Use a construct like this to include admin defined profile fields. Replace FIELD1 with the name of your field. -->
						<br /><b>{postrow.PROFILE_FIELD1_NAME}:</b> {postrow.PROFILE_FIELD1_VALUE}
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: [BETA] Thanks_mod (Спасибо за сообщение)

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

Вот это условие
Garret_Dark писал(а):<!-- IF S_USER_LOGGED_IN and not postrow.S_IS_OWN_POST and not S_IS_BOT -->
Попробуте изменить так (убрать not перед проверкой на бота S_IS_BOT)

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

<!-- IF S_USER_LOGGED_IN and not postrow.S_IS_OWN_POST and S_IS_BOT -->
Если вы не увидите кнопки "Спасибо", то проверка на бота корректна, а следовательно он не может видеть ссылки на вынесение благодарности.
Проверьте в таблице ***_thanks по user_id, есть ли запись?
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
John Smith
phpBB 1.4.2
Сообщения: 62
Стаж: 18 лет 5 месяцев
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: [BETA] Thanks_mod (Спасибо за сообщение)

Сообщение John Smith »

Поставил мод - не могу выставить права.
Если захожу ACP/Права доступа/Локальные права доступа/Форумные права групп, выбираю "Зарегистрированные пользователи", дальше выбираю любой форум, открываю "Расширенные права", то на закладке "Разное" нужной опции нету.
Если захожу ACP/Права доступа/Роли/Форумные роли, выбираю роль "Стандартный доступ", то там на закладке "Разное" есть нужная опция, но при попытке сохранить вываливает ошибку:

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

[phpBB Debug] PHP Notice: in file /includes/acp/auth.php on line 938: Undefined index: f_thanks

Warning: Cannot modify header information - headers already sent by (output started at W:\home\localhost\www\forum\includes\functions.php:3184) in W:\home\localhost\www\forum\adm\index.php on line 150

Warning: Cannot modify header information - headers already sent by (output started at W:\home\localhost\www\forum\includes\functions.php:3184) in W:\home\localhost\www\forum\adm\index.php on line 152

Warning: Cannot modify header information - headers already sent by (output started at W:\home\localhost\www\forum\includes\functions.php:3184) in W:\home\localhost\www\forum\adm\index.php on line 153

Warning: Cannot modify header information - headers already sent by (output started at W:\home\localhost\www\forum\includes\functions.php:3184) in W:\home\localhost\www\forum\adm\index.php on line 154
auth.php (начиная с 936 строки, это функция acl_set_role())

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

foreach ($auth as $auth_option => $setting)
{
    $auth_option_id = (int) $this->acl_options['id'][$auth_option];

    if ($setting != ACL_NO)
    {
        $sql_ary[] = array(
            'role_id'                => (int) $role_id,
            'auth_option_id'    => (int) $auth_option_id,
            'auth_setting'        => (int) $setting
        );
    }
} 
adm\index.php строки 150-154

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

	header('Content-type: text/html; charset=UTF-8');

	header('Cache-Control: private, no-cache="set-cookie"');
	header('Expires: 0');
	header('Pragma: no-cache');
Установку перепроверил - может глаз уже замылен, но вроде-бы все верно.
Открывал explain, и все SQL-запросы повторял вручную на майадмине - без ошибок.

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

Re: [BETA] Thanks_mod (Спасибо за сообщение)

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

John Smith
Посмотрите таблицу phpbb_acl_options
Последнюю запись (или в конце)
f_thanks 0 1 0
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
John Smith
phpBB 1.4.2
Сообщения: 62
Стаж: 18 лет 5 месяцев
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: [BETA] Thanks_mod (Спасибо за сообщение)

Сообщение John Smith »

Палыч
Все на месте - первым делом проверил.
И даже в phpbb_acl_roles_data прописал ее соответствие роли с id 15 (форумные роли/стандартный доступ).
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: [BETA] Thanks_mod (Спасибо за сообщение)

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

файл /language/ru/mods/info_acp_thanks.php на месте?
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
John Smith
phpBB 1.4.2
Сообщения: 62
Стаж: 18 лет 5 месяцев
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: [BETA] Thanks_mod (Спасибо за сообщение)

Сообщение John Smith »

Да. Иначе бы в админке сразу видно было бы. А так в админке все корректно - в ролях опиция подписана как "Может благодарить за сообщения".

Вернуться в «Бета-версии модов для phpBB 3.0.x»