GorYa
Хранитель порядка
- Регистрация
- 11 Ноя 2014
- Сообщения
- 425
- Реакции
- 1.357
- Автор темы
- #1
Proofreader - это компонент для Joomla позволяет посетителям сайта сообщать об обнаруженных на сайте опечатках модератору или администратору сайта.
Первым ее автором (с 2007 года) был Сергей Литвинов, автор проекта Joomlatune.ru, работал он вплоть до Joomla 3
Так как автор перестал поддерживать данный проект, то в 2022 году появился форк данного компонента от Павла Сёмина (Для просмотра ссылки Войди
Последняя версия данного проекта 3.0.4, которая поддерживает Joomla 5, на гитхаб есть и другие версии под старые версии Joomla.
Компонент переведен на множество языков.
К сожалению, проект заглох и со второй половины 2025 года не было никаких обновлений и в Joomla 6, стали проявляться проблемы:
- в письме администратору и в админке приходили сообщения со ссылкой ведущей только на главную страницу, а не на страницу с ошибкой
- пропала подсказка в материалах Joomla
- вероятно еще какие-то, но отмеченные выше считаю ключевыми
Так как необходимость такая существует, то попробовал обновить компонент и адаптировать под работу на Joomla 6.
После адаптации все вышеуказанные функции заработали и некоторые другие, компонент получил версию 6.0.0. Но так как имею крайне малый опыт кодирования, то в коде много подписей в слеше на русском (имейте ввиду, что в правленых файлах они есть, особенно тем кто решить разместить установочный компонент на иностранных ресурсах без правки или транслитерации этого текста).
Тут прикладываю адаптированный код для размещения подсказки по работе с компонентом. Он адаптирован, защищен от копирования, тем самым от намеренного выделения текста в нем и отправки как ошибки. Достаточно вставить в html модуле и выбрать нужную позицию для отображения.
HTML:
<div class="proofreader-badge" style="display: flex; align-items: center; flex-wrap: wrap; gap: 16px; padding: 5px 10px; background-color: #f9f9f9; border: 1px solid #e0e0e0; border-radius: 6px; font-family: sans-serif; font-size: 14px; margin-top: 20px; line-height: 1.6; color: #333; width: 100%; max-width: 100%; box-sizing: border-box; user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none;">
<!-- Иконка -->
<img src="/media/com_proofreader/images/proofreader_icon_48x.png" alt="Опечатка" class="proofreader-custom-icon" style="width: 36px; height: 36px; min-width: 36px; max-width: 36px; object-fit: contain; display: block; flex-shrink: 0;" />
<!-- Текст (теперь его нельзя выделить мышкой) -->
<span style="flex: 1 1 0%; min-width: 0; word-break: break-word; text-align: justify;">
Заметили опечатку? Выделите текст и нажмите
<span style="white-space: nowrap;"><kbd style="background: #ffffff; border: 1px solid #b4b4b4; border-bottom-width: 2px; padding: 2px 5px; border-radius: 3px; font-size: 12px; font-weight: bold; color: #000000 !important; box-shadow: 0 1px 1px rgba(0,0,0,0.15); font-family: monospace; display: inline-block; line-height: 1; vertical-align: middle;">Ctrl</kbd> + <kbd style="background: #ffffff; border: 1px solid #b4b4b4; border-bottom-width: 2px; padding: 2px 5px; border-radius: 3px; font-size: 12px; font-weight: bold; color: #000000 !important; box-shadow: 0 1px 1px rgba(0,0,0,0.15); font-family: monospace; display: inline-block; line-height: 1; vertical-align: middle;">Enter</kbd></span>,
чтобы сообщить нам.
</span>
</div>
Визуально это выглядит так

в подписи к материалу так (он также защищен от копирования)
Что не смог решить:
- интеграция Captcha, для дополнительной защиты от спама
Ориентировался на встроенную капчу Joomla - Proof of Work (PoW). Код добавил в нужные места, поле капчи появляется, а визуализации нет (это касается любой капчи, видимо что-то связанное с api), проверку проходит, так как если нажать на Отправить, то идет ошибка о неудачной проверке.
Перепробовал много вариантов, но не заработало, как писал выше, не имею опыта. Код капчи сохранил и если включить в Общих настройках Joomla капчу, она заработает для компонента. Имейте ввиду, если у вас включена уже капча, то компонент не будет отправлять письма (будет идти проверка капчи, ползунка для отключения в компоненте этой версии нет), пока не будет убран или закомментирован код капчи в нем. Так как у меня капча не включена в настройках, код касающийся капчи не убирал.
Еще как вариант решения рассматривал скрытую проверку по времени, то есть бот как правило заполняет форму доли секунды, человеку же понадобится несколько секунд (минимум 3-4 секунды) от заполнения формы до отправки. То есть большинство спам отправок будут отсечены.
Автору компонента и форка Огромная благодарность, жаль что забросили, так как нужная опция.
Компонент выкладывается in situ, то есть как есть. Пустого кода там наверное хватает, может кто потом возмется за развитие. Правки не планирую вносить или модернизировать, пока не будет личной необходимости (уж простите опыта и знаний нет).
P.S. Архив собрал, но не проверял на установку, если что пишите в тему, гляну, что забыл или не учел при сборке архива. Если у кого получится интегрировать капчу поделитесь в этой теме. Опытных специалистов/программистов прошу тапками не кидать, хотя думаю на это у них времени не будет, они все заняты/в работе.
Вложения
Последнее редактирование: