Несколько раз за последнюю неделю (три, если быть точным) случайно закрывал вкладку, в которой Создавал Интересный Контент, проще говоря, заметку в блог писал. И так уже слов 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 и т.п.)ю