Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Thanks Mod

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Аватара пользователя
ValeryL
phpBB 1.2.1
Сообщения: 20
Стаж: 18 лет 6 месяцев
Откуда: Khabarovsk
Контактная информация:

Сообщение ValeryL »

-US- писал(а): А по моему лучше при установке

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

ALTER TABLE `phpbb_forums` ADD `forum_thank` TINYINT(1) DEFAULT '0' NOT NULL;
вместо DEFAULT '0' поставить DEFAULT '1'. Тогда "Разрешить благодарность" будет по умолчанию включен для всех новых форумов...
Дельная мысль!
kingdom
phpBB 1.4.3
Сообщения: 76
Стаж: 18 лет

Сообщение kingdom »

-US-, сделано, см версию 1.0.3

http://www.phpbbguru.net/community/view ... 8227#88227
service
phpBB 1.2.1
Сообщения: 25
Стаж: 17 лет 7 месяцев
Откуда: Киев
Контактная информация:

Сообщение service »

kingdom
А можно сделать что в там где пишется
Благодарности 45/34
45 и 34 выводилсь ссылки при нажатии на которые высвечиало за какие посты чел получил и какие посты чел поблагодарил??
Вот и все, теперь ипебешнег! :(
Upd. 21.06.2012 вернулся в семью ;)
Gisher
phpBB 2.0.12
Сообщения: 857
Стаж: 17 лет 6 месяцев
Благодарил (а): 11 раз
Поблагодарили: 13 раз

Сообщение Gisher »

переделал всё как написано, никаких ошибок нету, но в топиках ничего не появилось, плагодаря генератору Поручика создал даже update файл для этих строк

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

UPDATE phpbb_users AS u SET u.user_thanks = (SELECT COUNT(*) FROM phpbb_thanks AS t WHERE t.user_id = u.user_id)
UPDATE phpbb_users AS u SET u.user_thanked = (SELECT COUNT(*) FROM phpbb_thanks AS t, phpbb_posts AS p WHERE t.post_id = p.post_id AND p.poster_id = u.user_id)
, можете смотреть в прикреплённом файле

Добавлено спустя 4 часа 16 минут 4 секунды:

переустановил адд-он, теперь только у админов в топиках есть благодарностей 0/1 у одного админа, и благодарностей 1/0 у второго админа, в чём проблема?
Вложения
db_update.rar
(1.49 КБ) 428 скачиваний
Gisher
phpBB 2.0.12
Сообщения: 857
Стаж: 17 лет 6 месяцев
Благодарил (а): 11 раз
Поблагодарили: 13 раз

Сообщение Gisher »

заного установил мод, появляются только новые благодарности, подскажите пожалуйста, как правильно сделать этот запрос? как я понял это добавляет уже старые благодарности?

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

UPDATE phpbb_users AS u SET u.user_thanks = (SELECT COUNT(*) FROM phpbb_thanks AS t WHERE t.user_id = u.user_id)
UPDATE phpbb_users AS u SET u.user_thanked = (SELECT COUNT(*) FROM phpbb_thanks AS t, phpbb_posts AS p WHERE t.post_id = p.post_id AND p.poster_id = u.user_id)
kingdom
phpBB 1.4.3
Сообщения: 76
Стаж: 18 лет

Сообщение kingdom »

Gisher писал(а):как правильно сделать этот запрос?
просто запустите его, как любой другой SQL запрос

он целиком обновит статистику благодарностей
Gisher
phpBB 2.0.12
Сообщения: 857
Стаж: 17 лет 6 месяцев
Благодарил (а): 11 раз
Поблагодарили: 13 раз

Сообщение Gisher »

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

Ошибка
SQL-запрос:  

UPDATE phpbb_users AS u SET u.user_thanks = ( SELECT COUNT( * ) 
FROM phpbb_thanks AS t
WHERE t.user_id = u.user_id ) 
UPDATE phpbb_users AS u SET u.user_thanked = ( SELECT COUNT( * ) 
FROM phpbb_thanks AS t, phpbb_posts AS p
WHERE t.post_id = p.post_id
AND p.poster_id = u.user_id ) 

Ответ MySQL:  

#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT COUNT(*) FROM phpbb_thanks AS t WHERE t.user_id = u.user 

kingdom
phpBB 1.4.3
Сообщения: 76
Стаж: 18 лет

Сообщение kingdom »

Gisher запрос правильный. Попробуй пускать раздельно

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

UPDATE phpbb_users AS u SET u.user_thanks = (SELECT COUNT(*) FROM phpbb_thanks AS t WHERE t.user_id = u.user_id);
и

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

UPDATE phpbb_users AS u SET u.user_thanked = (SELECT COUNT(*) FROM phpbb_thanks AS t, phpbb_posts AS p WHERE t.post_id = p.post_id AND p.poster_id = u.user_id);
и точку с запятой в конце не забудь
Gisher
phpBB 2.0.12
Сообщения: 857
Стаж: 17 лет 6 месяцев
Благодарил (а): 11 раз
Поблагодарили: 13 раз

Сообщение Gisher »

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

Ошибка
SQL-запрос:  

UPDATE phpbb_users AS u SET u.user_thanks = ( SELECT COUNT( * ) 
FROM phpbb_thanks AS t
WHERE t.user_id = u.user_id ) ;



Ответ MySQL:  

#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT COUNT(*) FROM phpbb_thanks AS t WHERE t.user_id = u.user 

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

Ошибка
SQL-запрос:  

UPDATE phpbb_users AS u SET u.user_thanked = ( SELECT COUNT( * ) 
FROM phpbb_thanks AS t, phpbb_posts AS p
WHERE t.post_id = p.post_id
AND p.poster_id = u.user_id ) ;



Ответ MySQL:  

#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT COUNT(*) FROM phpbb_thanks AS t, phpbb_posts AS p WHERE 

Lektor
phpBB 2.0.7
Сообщения: 574
Стаж: 17 лет 11 месяцев

Сообщение Lektor »

У меня вопросик по инструкции..
#
#-----[ OPEN ]---------------------------------
#
posting.php

#
#-----[ FIND ]---------------------------------
#
$s_hidden_fields .= ( $delete || $mode == "delete" ) ? '<input type="hidden" name="mode" value="delete" />' : '<input type="hidden" name="mode" value="poll_delete" />';

$l_confirm = ( $delete || $mode == 'delete' ) ? $lang['Confirm_delete'] : $lang['Confirm_delete_poll'];

#
#-----[REPLACE WITH ]------------------------------------------
#
if ($delete || $mode == 'delete') {
$s_hidden_fields .= '<input type="hidden" name="mode" value="delete" />';
$l_confirm = $lang['Confirm_delete'];
} else
if ($mode == 'thank') {
$s_hidden_fields .= '<input type="hidden" name="mode" value="thank" />';
$l_confirm = $lang['Confirm_thanks'];
} else {
$s_hidden_fields .= '<input type="hidden" name="mode" value="poll_delete" />';
$l_confirm = $lang['Confirm_delete_poll'];
}

Но в оригинальном файле (2.0.22 версия форума)

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

$s_hidden_fields .= ( $delete || $mode == "delete" ) ? '<input type="hidden" name="mode" value="delete" />' : '<input type="hidden" name="mode" value="poll_delete" />';

>> эта строка между ними (куда ее девать?):
$s_hidden_fields .= '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" />';

$l_confirm = ( $delete || $mode == 'delete' ) ? $lang['Confirm_delete'] : $lang['Confirm_delete_poll'];
Это я так понимаю проверка сесии.. которая появилась в 2.0.22 версии.. Как тут тогд ареплейс делать ...
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16353
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 535 раз
Поблагодарили: 2134 раза
Контактная информация:

Сообщение rxu »

Lektor
Добавьте эту строку в каждое из условий if/else как есть, перед каждым из $l_confirm.
Изображение
Lektor
phpBB 2.0.7
Сообщения: 574
Стаж: 17 лет 11 месяцев

Сообщение Lektor »

Ту строку я переместил на вверх... перед єтими двумя..
С СКл запросами у меня точно такая же ситуация ..kingdom помоги плиз разобраться...
После этого когда я жму либо поблагодарить кого-то либо просто отправить месагу то получаю:
Parse error: parse error, unexpected T_ELSE in D:\HTTP\www\forum\posting.php on line 487

487 стркоа в єтом файле єто: else if ( $mode == 'thank' )

У меня вопрос как выполнить ту replace инструкцию.. и что же все такое с мускул запросами.. почему они так себя ведут..

Добавлено спустя 42 секунды:

rxu
пасиб щас сделаю..

Добавлено спустя 2 часа 48 минут 26 секунд:

По поводу ошибки в posting.php .. решил ее - просто еще раз проверил мод, немного со скобкой не правильно сделал ..

И щас все пашет .. жму благодарить все как надо.. и не смотря на проблемы с СКЛ запросом:

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

UPDATE phpbb_users AS u SET u.user_thanks = (SELECT COUNT(*) FROM phpbb_thanks AS t WHERE t.user_id = u.user_id);
UPDATE phpbb_users AS u SET u.user_thanked = (SELECT COUNT(*) FROM phpbb_thanks AS t, phpbb_posts AS p WHERE t.post_id = p.post_id AND p.poster_id = u.user_id);
я юзера ведется учет благодарностей под аватаркой т.е. вроде все как положено ..

У меня теперь правда вопрос .. под аватарой выводится инфа сколько человек выразило благодарность юзеру .. с этим согласен т.к. инфа полезная и определенно показывает полезность данного человека на ресурсе.. но вот что касается того скольких человек поблагодарил юзер считаю это лишнее так как никакой информативности это не несет т.к. ни о чем не говорит ..

Поэтому я для себя решил убрать этот показатель ну я это сделал просто.. подредактил в языковых переменных )) $lang['Thanks_info'] = 'Благодарности: %d';
Но хотел спросить как правильно это отключить.. чтоб никаких запросов в базу нн выполнялось лишних ..
Gisher
phpBB 2.0.12
Сообщения: 857
Стаж: 17 лет 6 месяцев
Благодарил (а): 11 раз
Поблагодарили: 13 раз

Сообщение Gisher »

может кто нибудь скажет как правильно оформить этот запрос?

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

UPDATE phpbb_users AS u SET u.user_thanks = (SELECT COUNT(*) FROM phpbb_thanks AS t WHERE t.user_id = u.user_id); 
UPDATE phpbb_users AS u SET u.user_thanked = (SELECT COUNT(*) FROM phpbb_thanks AS t, phpbb_posts AS p WHERE t.post_id = p.post_id AND p.poster_id = u.user_id);
Lektor
phpBB 2.0.7
Сообщения: 574
Стаж: 17 лет 11 месяцев

Сообщение Lektor »

Gisher
так kingdom сказал же что запрос правильный ... у тебя идет подсчет благодарнгстей юзера? если да о все не мучайся.. (если шо поправте)
у меня тож с этими запросами напряг получился.. но мод пашет норм ...
Gisher
phpBB 2.0.12
Сообщения: 857
Стаж: 17 лет 6 месяцев
Благодарил (а): 11 раз
Поблагодарили: 13 раз

Сообщение Gisher »

Lektor
мод пашет нормально, подсчёт идёт, только ведётся он с момента установки add-on а, хотелось бы обновить счётчики с момента установки самого мода, а не с момента установки подсчёта...
Закрыто

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