OrphoMan - чистим сайт от очепяток
Представляю свой новый компонент для борьбы с орфографическими ошибками и опечатками на сайте. Для людей вроде меня, которые еще помнят школу без ЕГЭ, ошибки в статье или инструкции вызывают дискомфорт, а у особо впечатлительных, и физическую боль. Обнаружив ошибку, рука чешется её исправить. OrphoMan может в этом помочь.
В принципе, есть Orphus и кто-то им пользуется. Но я постарался сделать OrphoMan чуть удобнее — он умеет выделять ошибки на страничке для наглядности плюс всегда можно настроить под себя.

Компонент не большой и не сложный. После установки нужно в системных настройках указать email администратора, которому будет высылаться уведомление. Нет email — нет уведомления. Это самая важная настройка. Остальное можно не менять. Но познакомится поближе нужно.
Параметр highlight отвечает за выделение слов в тексте. По умолчанию он включен. Но выделение будет работать только, если пользователь авторизован в контексте mgr.
Параметр tpl — оборачивает слово для выделения в тег
Параметр auto_delete разрешает автоматическое удаление ошибок, если они не найдены на странице. Т.е. ошибку исправили, страничку обновили в фронт-энде, ошибка из таблички удалилась автоматом. По умолчанию он включен. Но иногда требуется отключать. Например, когда страница подгружается через ajax.
Также в настройках можно указать свои шаблоны темы и самого сообщения.
Чтобы компонент заработал, нужно куда-нибудь пристроить сниппет Orphoman. Можно в конкретный ресурс, тогда только в нем можно править ошибки. А можно в шаблон, тогда работать будет во всех ресурсах, у которых используется данный шаблон.
У сниппета есть 2 параметра: min и max, которые отвечают за минимально и максимально допустимое количество символов. По умолчанию, 5 и 100 соответственно.
Работает компонент очень просто. Нашли ошибку, выделили и нажали Ctrl+Enter. Для пользователей Orphus переучиваться не нужно. :)

Список всех ошибок можно посмотреть в админке. Посмотреть и, если нужно, удалить.

Для удобства сделал автоматическое удаление, если ошибка исправлена, т.е. не встречается в контенте. А используя дополнение AdminPanel, можно ускорить процесс исправления ошибки сразу открывая нужный ресурс.
Вроде все. Надеюсь, пригодится.
В репозитории modstore.pro.
Проект на GitHub
В принципе, есть Orphus и кто-то им пользуется. Но я постарался сделать OrphoMan чуть удобнее — он умеет выделять ошибки на страничке для наглядности плюс всегда можно настроить под себя.

Компонент не большой и не сложный. После установки нужно в системных настройках указать email администратора, которому будет высылаться уведомление. Нет email — нет уведомления. Это самая важная настройка. Остальное можно не менять. Но познакомится поближе нужно.
Параметр highlight отвечает за выделение слов в тексте. По умолчанию он включен. Но выделение будет работать только, если пользователь авторизован в контексте mgr.
Параметр tpl — оборачивает слово для выделения в тег
<span class="error-text">{text}</span>Если нужно изменить вид подсветки, меняем css (класс «error-text»).Параметр auto_delete разрешает автоматическое удаление ошибок, если они не найдены на странице. Т.е. ошибку исправили, страничку обновили в фронт-энде, ошибка из таблички удалилась автоматом. По умолчанию он включен. Но иногда требуется отключать. Например, когда страница подгружается через ajax.
Также в настройках можно указать свои шаблоны темы и самого сообщения.
Чтобы компонент заработал, нужно куда-нибудь пристроить сниппет Orphoman. Можно в конкретный ресурс, тогда только в нем можно править ошибки. А можно в шаблон, тогда работать будет во всех ресурсах, у которых используется данный шаблон.
У сниппета есть 2 параметра: min и max, которые отвечают за минимально и максимально допустимое количество символов. По умолчанию, 5 и 100 соответственно.
[[!Orphoman? &min=`3` &max=`50`]]Работает компонент очень просто. Нашли ошибку, выделили и нажали Ctrl+Enter. Для пользователей Orphus переучиваться не нужно. :)

Список всех ошибок можно посмотреть в админке. Посмотреть и, если нужно, удалить.

Для удобства сделал автоматическое удаление, если ошибка исправлена, т.е. не встречается в контенте. А используя дополнение AdminPanel, можно ускорить процесс исправления ошибки сразу открывая нужный ресурс.
Вроде все. Надеюсь, пригодится.
В репозитории modstore.pro.
Проект на GitHub
Комментарии: 40
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Не заметил в описании, а e-mail уведомление присылает?
ID ресурса является ссылкой на редактирование ресурса? или есть кнопка? ручками)?
Правда не представляю как это возможно сделать и на сколько оно будет грузить сайт.
Вывод массива данных и уже js'om неким :contains('ашибка') выделять слово/строку и давать возможность его исправить?
Или использовать задумку hypercomments, ведь как-то позволяют выделять слово и комментировать его.
Вообще, задача нетривиальная — ведь зная id страницы с ошибкой не факт что там ее и найдешь. Например, на главной странице (id=1) выводятся новости сниппетом из других ресурсов и искать ошибку, чтобы исправить, в админке на странице ресурса с id=1 бессмысленно. Тут 2 варианта — или создать мегафункцию, которая будет бегать по ресурсам, или забить на такие сложности. На данный момент я склоняюсь ко второму варианту — для простых страниц.
Вариант 1.
Поиск ошибки по всей базе. Это могут быть тысячи записей и у каждой надо проверить несколько полей. И это только по ресурсам. А если ошибка, например, в комментарии, т.е. в другой таблице?
Вариант 2. Поиск ошибки в конкретном ресурсе.
По твоему первый вариант проще?
Отправил в репозиторий.
Внес небольшие изменения. Новый пакет готов.
Ситуация в следующем. Ошибка возникает из-за нового поля в таблице. Я не знаю как его добавить в таблицу в установщике. В console код работает, а в ресолвере resolve.table нет. А удалять таблицу и создавать новую мне кажется не правильным. А так как пакет скачали единицы, то у большинства таких проблем не будет.
Исправить ошибку можно добавлением поля в таблицу Orphoman или выполнить код
П.С. Кстати, если знаешь как работать с таблицами при установке, подскажи. Спрашивал у Василия, но он видимо очень занят.
жму Ctrl+Enter, на почте пусто в админке тоже. снипет перестанавливал, что не так сделал?
Возможно это и мешает. Попробуй без минифая.
Еще версия — возможно какой-то скрипт перехватывает ctrl-Enter.
П.С.Обрати внимание на ошибки в верстке.
П.П.С. тег переноса строки
, а не .
Если возможно, хотелось бы увидеть подсказку при выделенном тексте «Сообщить об ошибке» и вызывать модальное окно по клику мышки на сообщение. Чтобы облегчить процесс приведу найденный в сети код:
Стили дело настраиваемое, вполне можно применить тот же бутсрап mybootstrap.ru/javascripts/#tooltips
Надеюсь, не слишком сумбурно получилось.
Это не слишком критично, но очень хочется вывод в админку поля с указанием username пользователя, который отправил сообщение об ошибке.
компонент не уведомляет что сообщение отправлено.
а то получается нажал кнопку отправить и все — тишина…
как то не привычно.
хотя бы alert(«отправлено»);
Нужно для минификации.
Это не помогло:
Uncaught ReferenceError: orphoConfig is not defined
at Object.validate (orphoman.js:92)
at Object.run (orphoman.js:55)
at HTMLDocument.(orphoman.js:44)
at HTMLDocument.dispatch (jquery.js:3)
at HTMLDocument.r.handle (jquery.js:3)