Рубрики
Статьи

Autosave для Drupal 7

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *