[3.2][3.3] Thanks for posts

Все расширения, созданные нашим сообществом для phpBB, как находящиеся в разработке, так и прошедшие валидацию на официальном сайте phpbb.com, будут анонсированы тут. Вся техническая поддержка по этим расширениям оказывается в этом форуме.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

[3.2][3.3] Thanks for posts

Сообщение rxu »

Обсуждаем портирование мода Thanks for post (Rating edition) Палыча в расширение для phpBB 3.2/3.3.
Копировать в папку: ext/gfksx/thanksforposts (все символы имени папки в нижнем регистре).

Страница на официальном сайте (версия 2.1.1, прошла валидацию): https://www.phpbb.com/customise/db/exte ... r_posts_2/
Версия для phpBB 3.3 в репозитории: https://github.com/rxu/thanks_for_posts ... elop-3.3.x

Внимание: начиная с версии 2.1.0, AJAX внедрен в ядро расширения, дополнение Addon for thanks for posts не требуется и может привести к его неработоспособности. При обновлении с предыдущих версий дополнение Addon for thanks for posts необходимо предварительно отключить.

Внимание: начиная с версии 2.0.4, имя расширения изменено на gfksx/thanksforposts (ранее - gfksx/ThanksForPosts).
Для обновления с более ранних версий необходимо: 
  • Отключить расширение gfksx/ThanksForPosts
  • Создать резервную копию таблицы базы данных phpbb_thanks (префикс phpbb_ дан для примера)
  • Удалить данные расширения gfksx/ThanksForPosts
  • Удалить папку ext/gfksx/ThanksForPosts с сервера
  • Восстановить таблицу базы данных phpbb_thanks из резервной копии (префикс phpbb_ дан для примера)
  • Загрузить файлы нового расширения версии 2.0.4+ в папку ext/gfksx/thanksforposts (все символы имени папки в нижнем регистре)
  • Включить расширение в администраторском разделе
Для версий Thanks for posts ниже, чем 2.1.0, AJAX дополнение: 
Позволяет выдавать благодарности без перезагрузки страницы: Addon for thanks for posts by Алг.
Исходный код: https://github.com/alg5/addonforthanksforposts
Копировать в папку: /ext/alg/addonforthanksforposts/
Внимание: вышеозначенное дополнение может не работать с основным расширением версии 2.0.4 без следующих правок: Re: [dev] Thanks for posts
Для совместимости с версией 2.0.7 требуются следующие правки:
https://github.com/alg5/addonforthanksf ... l/19/files
------------------------
Вопрос-ответ:
Q. Как сделать так чтобы гости видели список поблагодаривших за сообщение при просмотре темы?
W. Разрешить в форумных правах доступа(Или роль "Доступ только для чтения") гостям благодарить за сообщение. Благодарить не смогут, а видеть список поблагодаривших будут.

Q. Как сделать так чтобы гости смогли благодарить за сообщение?
W. В этом нет практического смысла. В phpBB гость - это один пользователь. Соответственно, если любой один гость поблагодарит, следующий только сможет отозвать благодарность, и так по кругу.

Последний раз редактировалось rxu 20.02.2025 16:29, всего редактировалось 2 раза.
Изображение
Перенесено из форума Бета-версии расширений для phpBB 3.1.x в форум Анонсы и поддержка расширений для phpBB 3.1.x 11.07.2015 12:49 модератором LavIgor

doremyka
phpBB 1.4.4
Сообщения: 159
Стаж: 7 лет 9 месяцев
Благодарил (а): 66 раз
Поблагодарили: 12 раз

Re: [dev] Thanks for posts

Сообщение doremyka »

После этой ошибки есть смысл сохранять таблицу? Или лучше вернуться к нормальной БД и проделать указанные шаги?
Не ожидала подобной проблемы при подключении расширений, поэтому не делала бэкап.
Татьяна5 писал(а): 18.08.2017 19:10Почистить через STK остатки мода
То есть через STK удалить таблицу phpbb_thanks и всё, где упоминается "thanks"?
Удалять ещё в 3.0 или после завершения конвертации в 3.1 тоже можно?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: [dev] Thanks for posts

Сообщение rxu »

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

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

ALTER TABLE phpbb_thanks ADD COLUMN user_id mediumint(8) UNSIGNED
Отправлено спустя 1 минуту :
Хотя, вряд ли это что-то даст, ибо поле будет пустым. Неясно, как оно могло у вас пропасть.

Отправлено спустя 31 секунду:
По факту, работать оно как надо всё равно не будет.

Отправлено спустя 36 секунд:
Может помочь синхронизация счетчиков, но не факт.
Изображение
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12752
Стаж: 13 лет 8 месяцев
Благодарил (а): 159 раз
Поблагодарили: 2276 раз

Re: [dev] Thanks for posts

Сообщение Татьяна5 »

doremyka писал(а): 18.08.2017 19:38То есть через STK удалить таблицу phpbb_thanks и всё, где упоминается "thanks"?
Удалять ещё в 3.0 или после завершения конвертации в 3.1 тоже можно?
Что-то вроде того
После конвертации тоже можно (STK подходящий только взять)

Отправлено спустя 1 минуту 18 секунд:
doremyka писал(а): 18.08.2017 18:44ALTER TABLE phpbb_thanks
А вот таблицу лучше взять из старой БД, из 3.0
doremyka
phpBB 1.4.4
Сообщения: 159
Стаж: 7 лет 9 месяцев
Благодарил (а): 66 раз
Поблагодарили: 12 раз

Re: [dev] Thanks for posts

Сообщение doremyka »

rxu

Ответ:

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

MySQL вернула пустой результат (т.е. ноль строк).
Поле создано, там везде стоит "NULL".
Это правильно? Можно снова включить расширение?

Упс.. Сравнила поля таблицы мода из 3.0 и таблицы этого расширения, они разные.

Это из 3.0

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

thanks_id
thanks_from
thanks_to
post_id 
poster_id (тут стоят нули)
topic_id
forum_id
thanks_time (тут стоят нули)
А это из этого расширения, смотрю на тестовом пустом форуме:

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

post_id
poster_id
user_id
topic_id
forum_id
thanks_time
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12752
Стаж: 13 лет 8 месяцев
Благодарил (а): 159 раз
Поблагодарили: 2276 раз

Re: [dev] Thanks for posts

Сообщение Татьяна5 »

doremyka писал(а): 18.08.2017 20:12thanks_id
Этого поля никогда не было. У вас не thanks for posts был установлен, другой мод
doremyka
phpBB 1.4.4
Сообщения: 159
Стаж: 7 лет 9 месяцев
Благодарил (а): 66 раз
Поблагодарили: 12 раз

Re: [dev] Thanks for posts

Сообщение doremyka »

Татьяна5 писал(а): 18.08.2017 20:15У вас не thanks for posts был установлен, другой мод
Да, я тоже так подумала. Как будто с другой планеты прилетела. (
Меня бы устроило расширение, подобное тому моду, знать бы как называется. Уже искала на phpBB, но не вижу ничего похожего на спасибки.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12752
Стаж: 13 лет 8 месяцев
Благодарил (а): 159 раз
Поблагодарили: 2276 раз

Re: [dev] Thanks for posts

Сообщение Татьяна5 »

Других расширений не видела
В thanks_from и thanks_to стоят числа? Если так, то конвертация возможна и довольно проста
doremyka
phpBB 1.4.4
Сообщения: 159
Стаж: 7 лет 9 месяцев
Благодарил (а): 66 раз
Поблагодарили: 12 раз

Re: [dev] Thanks for posts

Сообщение doremyka »

Возможно, у меня был Thank Post Mod.
Та же песня, что с репутациями. ((((

Отправлено спустя 2 минуты 11 секунд:
Татьяна5 писал(а): 18.08.2017 20:42В thanks_from и thanks_to стоят числа?
Да, там везде стоят цифры. Наверно, можно попробовать перенести данные в идентичные поля.
Вроде тестовая БД, а всё равно страшно. :oops:

Отправлено спустя 18 минут 41 секунду:
У меня в старой таблице есть:

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

thanks_from - ID юзера, который говорит спасибо - это аналог user_id?
thanks_to - ID юзера, за чей пост отправлена благодарность - это аналог poster_id?
post_id - ID сообщения, за которое благодарность
topic_id - ID топика
forum_id - ID форума
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: [dev] Thanks for posts

Сообщение rxu »

doremyka писал(а): 18.08.2017 21:03thanks_from - ID юзера, который говорит спасибо - это аналог user_id?
thanks_to - ID юзера, за чей пост отправлена благодарность - это аналог poster_id?
Видимо, как-то так.
Изображение
doremyka
phpBB 1.4.4
Сообщения: 159
Стаж: 7 лет 9 месяцев
Благодарил (а): 66 раз
Поблагодарили: 12 раз

Re: [dev] Thanks for posts

Сообщение doremyka »

Подскажите, пожалуйста, что я делаю не так.
Нужно скопировать данные из поля thanks_from в поле user_id, оба в таблице phpbb_thanks.
В поле user_id изначально нули.

Запрос:

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

INSERT INTO phpbb_thanks (user_id)
SELECT thanks_from
FROM phpbb_thanks
Выполняется около минуты, появляется сообщение, что вставлено много тысяч строк, но в таблице в поле user_id по-прежнему нули.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12752
Стаж: 13 лет 8 месяцев
Благодарил (а): 159 раз
Поблагодарили: 2276 раз

Re: [dev] Thanks for posts

Сообщение Татьяна5 »

По такой схеме строки добавятся в конец таблицы (все нули, а user_id - заданные значения)
doremyka
phpBB 1.4.4
Сообщения: 159
Стаж: 7 лет 9 месяцев
Благодарил (а): 66 раз
Поблагодарили: 12 раз

Re: [dev] Thanks for posts

Сообщение doremyka »

Татьяна5 писал(а): 21.08.2017 21:57По такой схеме строки добавятся в конец таблицы (все нули, а user_id - заданные значения)
ОЙ.... :lol:

А для моей задачи как нужно сделать?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12752
Стаж: 13 лет 8 месяцев
Благодарил (а): 159 раз
Поблагодарили: 2276 раз

Re: [dev] Thanks for posts

Сообщение Татьяна5 »

Проще очистить новую таблицу и переносить все данные сразу на свои места из старой

Отправлено спустя 33 секунды:
Старую можно с другим названием восстановить в БД (переименовать ещё в бекапе и восстановить)
doremyka
phpBB 1.4.4
Сообщения: 159
Стаж: 7 лет 9 месяцев
Благодарил (а): 66 раз
Поблагодарили: 12 раз

Re: [dev] Thanks for posts

Сообщение doremyka »

Татьяна5, ок, поняла.
В бэкапе переименовать для меня пока сложновато. )
Можно отключить модуль, потом восстановить БД, переименовать имеющуюся таблицу, а потом переносить поля?

Второй вопрос: переносить поля таким же оператором, только поменять название таблицы? Например, так:

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

INSERT INTO phpbb_thanks (user_id)
SELECT thanks_from
FROM phpbb_thanksold
И можно ли сразу все поля переносить или по одному? В таблице около миллиона строк.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12752
Стаж: 13 лет 8 месяцев
Благодарил (а): 159 раз
Поблагодарили: 2276 раз

Re: [dev] Thanks for posts

Сообщение Татьяна5 »

doremyka писал(а): 21.08.2017 22:24Можно отключить модуль
Не модуль, расширение
В таком случае удалить полностью, с данными (файлы можно оставить)
doremyka писал(а): 21.08.2017 22:24И можно ли сразу все поля переносить или по одному?
Только все сразу

Вернуться в «Анонсы и поддержка расширений для phpBB»