Drupal закричал мне, что у меня все устарело, нужно срочно апгредиться. Ну, как он любит. Поапгрейдил, в том числе и Comment Notify до версии 1.2, про натягивание которого на Postgresql я уже писал.
Поапгрейдив, имею вопрос: а что, в MySQL у поля написано NOT NULL, то там самостоятельно появится еще и DEFAULT ...? Потому что я не верю, что автор Comment Notify его совсем не тестирует, однако в нем:
В таблице заводится крайне полезное поле, позволяющее не слать повторные нотификации если комментарий редактировался. Но оно NOT NULL и без DEFAULT.
Вставка в эту таблицу делается без инициализации данного поля.
Патчить можно или сам модуль или процедуру инсталляции/апгрейда. Точнее, без правки .install никак не обойтись, поэтому вот минимальный патч, который превращает Comment Notify 1.2 в работающий под Postgresql (про MySQL ничего не знаю, не проверял):
Вместе с тем, количество требуемых изменений очень невелико и патч вполне
компактный. Проблемы обычные: ifnull, concat, "UPDATE table LEFT JOIN table2".
Вместе с тем, количество требуемых изменений очень невелико и патч вполне
компактный. Проблемы обычные: ifnull, concat, "UPDATE table LEFT JOIN table2".
Накладывается поверх чистой установки (или апгрейда) модуля Comment Subscribe версии 6.x-1.2. Исправляются несовместимости с PostgreSQL плюс немножко еще:
Утерянные автором мои патчи к предыдущей версии - восстановлены (автор взял не все.
Правится (внесенная мной же, потом поправленная мной, но не автором модуля) бага с отсылкой многих одинаковых сообщений одному получателю.
Подписка автора ноды на все комментарии к ней может редактироваться (в авторской версии - только ставится в момент создания).
Таблица с подписками на все комментарии заполняется, даже если на сайте нет ни одного комментария.
Патч сейчас засабмичу автору, посмотрим на результат второй итерации....
Мне на Libraw.su понадобилось отселить переходящую на личности дискуссию, дабы в конкретном обсуждении сохранить высокое отношение сигнал/шум.
Удивительно, но готовых средств - нет. Хотя мне казалось, что это востребованная функциональность (флеймеров - в курилку, троллей - в загончик для троллей). В надежде, что часто это делать не придется, обошелся руками:
Заводим топик в нужном форуме, запоминаем его Node ID (пусть оно будет 173414).
Для каждого из комментариев смотрим его comment-id (администратору он виден в URL ссылок edit/delete) и делаем:
DELETE FROM z_commentsubscribe WHERE cid=ID-комментария; -- сносим подписку, это команда для comment-subcribe, для Comment Notify должно быть как-то похоже
UPDATE comments SET nid=Node-ID WHERE cid=ID-комментария; -- переносим куды следует.
Дальше чистим кэши - и все работает.
Кто бы модуль написал, чтобы у комментария/ветки комментариев появился линк "отнести в отстойник"...
В моих правках к модулю Comment Subscribe для его работы с PostgreSQL обнаружилась бага: если кто-то отвечал в треде несколько раз, то он может получить несколько писем-уведомлений, когда ответит кто-то еще.