Несколько раз за последнюю неделю (три, если быть точным) случайно закрывал вкладку, в которой Создавал Интересный Контент, проще говоря, заметку в блог писал. И так уже слов 200-300 к тому моменту было написано. Короче - обидно. Захотелось автоматическое сохранение сделать.
Autosave в Drupal Можно встроить с помощью одноименного модуля, но не без приложения рук. По какой-то причине разработка модуля идет менее ударными темпами, чем хотелось бы видеть.
Итак, вводные — Drupal 7.16 и модуль WYSIWYG 7.x-2.2 с редактором CKEditor 3.6.2.7275
# drush rl wysiwyg ------- RELEASES FOR 'WYSIWYG' PROJECT ------- Release Дата Статус 7.x-2.2 2012-Oct-02 Supported, Recommended, Установлено
Потребуется последняя на данный момент -dev версия.
# drush rl autosave ------- RELEASES FOR 'AUTOSAVE' PROJECT ------- Release Дата Статус 7.x-2.x-dev 2012-Jul-12 Development
Этого мало, потребуются патч из этой темы :
diff --git a/autosave.js b/autosave.js index a87c808..853484b 100644 --- a/autosave.js +++ b/autosave.js @@ -64,6 +64,21 @@ Drupal.behaviors.autosave = { }, autosaveSettings.period * 1000); } + // Wire up Ckeditor to autosave. + if (typeof(CKEDITOR) !== "undefined") { + setInterval(function() { + var triggers = Drupal.settings.wysiwyg.triggers; + var id; + var field; + + for (id in triggers) { + field = triggers[id].field; + + $('#' + field).val( CKEDITOR.instances[field].getData() ); + } + }, autosaveSettings.period * 1000); + } + }, save: function (e, o) { Drupal.behaviors.autosave.displayMessage(Drupal.t('Form autosaved.'));
Это для моей конфигурации, для отдельного модуля CKEDITOR — код по ссылке выше.
Ну и последний штрих отсюда, в районе 379 строки в файле autosave.modult нужно привести строку к такому виду:
if (drupal_multilingual() && language_negotiation_get_any(LOCALE_LANGUAGE_NEGOTIATION_URL)) {
Проверил, работает. Сохранять автоматически или нет — это включается для каждого типа материалов (в разделе, где настройки публикации) отдельно, а периодичность задаеся глобально в настройках (где формат ввода, профили wysiwyg и т.п.)ю