[Решено] Нужен модуль для проверки поля body используя Яндекс.спеллер

Главные вкладки

Аватар пользователя igorek igorek 28 сентября 2011 в 11:38

Кто возьмётся и за сколько написать модуль, желательно и для 6-ки и для 7-ки
Что нужно:
1. После установки модуля, в настройках каждого типа материала появляется галочка - включить автопроверку через Яндекс.спеллер
2. если например для page включено, то при создании ноды, появляется раздел: автопроверку через Яндекс.спеллер и галочка по-умолчанию уже отмечена (если не нужно, то можно отключить)
вообщем типа как page_title, autopach и т.д.
http://api.yandex.ru/speller/doc/dg/concepts/api-overview.xml
http://api.yandex.ru/speller/doc/dg/reference/checkTexts.xml
http://api.yandex.ru/speller/doc/dg/reference/speller-options.xml
с помощью HTTP POST-запроса

Комментарии

Аватар пользователя igorek igorek 28 сентября 2011 в 11:43

Виктор, как вы быстро реагируете, вот бы так у нас все службы экстренной помощи реагировали бы...)))
Да не знаю я что делать... Потом видно будет. По крайней мере он проверяет и хорошо.

Аватар пользователя bsyomov bsyomov 28 сентября 2011 в 12:18

Вы видимо не поняли вопрос - что должно происходить, если есть орфографическая ошибка в ведённом тексте.
Пока нет ответа на этот вопрос, о модуле говорить нет смысла. Smile

Аватар пользователя igorek igorek 10 ноября 2015 в 11:47

Сделал всё гораздо проще и, по-моему эффективнее:
Работает в любой версии друпала!!!
Пошагово:
1. Скачиваем архив с этой страницы: http://api.yandex.ru/speller/doc/dg/tasks/how-to-spellcheck-web.xml (spell-1.0.zip)
2. Распаковываем в корень сайта, в папку "speller"
3. Создаём блок (/admin/build/block/add - 6 или /admin/structure/block/add - 7)
Описание блока: * - Проверить правописание
Заголовок блока: ‹none› - мне нужны только кнопки
Текст блока:
для 6:

<script type="text/javascript" src="/speller/spell.js"></script>
<script type="text/javascript">
var speller = new Speller({ url:"/speller", lang:"ru", options: Speller.IGNORE_LATIN + Speller.IGNORE_URLS });
function spellCheck() {
    var form = document.forms["node-form"];
    speller.check([ form.title, form.body ]);
}
</script>
<button name="cmdSpell" type="button" onclick="spellCheck()">Проверить правописание</button> <button name="cmdOptions" type="button" onclick="speller.optionsDialog()">Параметры...</button>

для 7:

<script type="text/javascript" src="/speller/spell.js"></script>
<script type="text/javascript">
var speller = new Speller({ url:"/speller", lang:"ru", options: Speller.IGNORE_LATIN + Speller.IGNORE_URLS });
function spellCheck() {
    var form = document.forms[0];
    speller.check([ form.title, form["edit-body-und-0-value"] ]);
}
</script>
<button name="cmdSpell" type="button" onclick="spellCheck()">Проверить правописание</button> <button name="cmdOptions" type="button" onclick="speller.optionsDialog()">Параметры...</button>

Показывать блок на определенных страницах: На перечисленных страницах
node/add/*
node/*/edit
Показать блок определенным ролям: administrator, redaktor и т.п.
4. Ну и вывести блок в области - содержимое - под редактируемой нодой (документом).
В 7-ке в id формы добавляется название типа материала (page-node-edit), а так как я использую тему seven для редактирования и администрирования, то форма на этой странице только одна, поэтому это отлично работает - var form = document.forms[0];
А всё это из-за того что я быстро не справился, чтобы сделать кнопку в своём любимом редакторе ckeditor.
Плюсы:
1. Проверяет несколько полей для ввода текста
2. Не зависит от версии drupal
3. Не зависит от используемого редактора
Минусы:
1. Нет кнопки в редакторе
Да и ещё обязательно, перед проверкой не забываем нажать на ссылку - Поменять на простой текстовый редактор - чтобы отключить редактор и проверить именно поле body.