PavelSyomin / proofreader

Компонент Proofreader для Joomla позволяет посетителям сайта сообщать об обнаруженных на сайте опечатках.
GNU General Public License v2.0
3 stars 0 forks source link

Совместимость с Joomla 5 #7

Open 1inkin opened 5 months ago

1inkin commented 5 months ago

Здравствуйте. После обновления сайта с Joomla 4.4.2 до Joomla 5 на страницах сайта отображается ошибка Event onContentAfterDisplay only accepts String results.

PavelSyomin commented 2 months ago

Здравствуйте! Давненько сюда не залезал… Любопытно, что уведомления тоже почему-то не приходили. Постараюсь посмотреть этот и другие issues в ближайшие пару недель.

GorillaYa commented 2 months ago

Здравствуйте. После обновления сайта с Joomla 4.4.2 до Joomla 5 на страницах сайта отображается ошибка Event onContentAfterDisplay only accepts String results.

Согласен, та же ошибка появилась после обновления до joomla 5.1, пришлось пока отключить компонент

GorillaYa commented 2 months ago

Здравствуйте! Давненько сюда не залезал… Любопытно, что уведомления тоже почему-то не приходили. Постараюсь посмотреть этот и другие issues в ближайшие пару недель.

Удалось ли решить данную проблему?

PavelSyomin commented 2 months ago

К сожалению, пока нет: не нашлось времени. Скорее всего, задача не самая простая, так как исходный компонент сам по себе довольно старый (первоначальный автор делал его под J1.5), и в нём куча легаси-кода, который для нормальной совместимости с J5 придётся переписывать с нуля.

У J5 есть backward compatilibily plugin, который, судя по описанию, возвращает какую-то часть совместимости с J4, а под J4 данная версия Proofreader работает. Можете, пожалуйста, попробовать установить его и проверить, работает ли Proofreader? Если да, то пока помечу его на сайте и здесь как «работающий на J5 с плагином совместимости». Если нет, то придётся, видимо, запланировать серьёзное переписывание кода.

GorillaYa commented 2 months ago

К сожалению, пока нет: не нашлось времени. Скорее всего, задача не самая простая, так как исходный компонент сам по себе довольно старый (первоначальный автор делал его под J1.5), и в нём куча легаси-кода, который для нормальной совместимости с J5 придётся переписывать с нуля.

У J5 есть backward compatilibily plugin, который, судя по описанию, возвращает какую-то часть совместимости с J4, а под J4 данная версия Proofreader работает. Можете, пожалуйста, попробовать установить его и проверить, работает ли Proofreader? Если да, то пока помечу его на сайте и здесь как «работающий на J5 с плагином совместимости». Если нет, то придётся, видимо, запланировать серьёзное переписывание кода.

К сожалению у меня в режиме совместимости, также выдает вышеописанную ошибку (

PavelSyomin commented 2 months ago

Понял, спасибо за тестирование! Тогда, видимо, придётся всё же серьёзно покопаться в коде. По срокам, к сожалению, сориентировать не могу, так как сейчас у меня много других дел.

1inkin commented 1 month ago

Как я понимаю, ошибка заключается в том, что от функции onContentAfterDisplay ожидается ответ строкой, но там при одном из условий стоит return false. Если в файле /plugins/content/proofreader/proofreader.php в строке 92 заменить false на null, то ошибка на страницах сайта пропадает. Но не до конца уверен насколько это корректно. Более знающие люди надеюсь проверят.

PavelSyomin commented 1 month ago

@1inkin Очень похоже на то, что вы правы. Попробуйте, пожалуйста, вот эту версию расширения: proofreader_2_2.zip Предварительно включите Backwards Compatibility Plugin (Поведение - Обратная совместимость), так как без него точно не заработает. С ним же вроде как заработало (у меня). Если и у вас тоже заработает, то выпущу обновление: конечно, это будет не полноценная версия под J5, а просто быстрый фикс бага, но это лучше, чем ничего.

1inkin commented 1 month ago

@PavelSyomin да, вроде бы этот вариант работает

PavelSyomin commented 1 month ago

Отлично! Выпустил обновление, обновил также данные о совместмости на JED.