インストールされているモジュール
- WYSIWYG 7.x-2.2
- wysiwyg_imagefield 7.x-1.x-dev
- CKEditor 4.4.38
現象の再現
- コンテンツ(例:node)を作成し、CKEditorでコンテンツを編集する
- wysiwyg_imagefieldを利用して、画像をコンテンツに挿入して、コンテンツを保存する
- コンテンツに挿入された画像が正常に表示される
- 再度コンテンツを編集CKEditorで編集し、wysiwyg_imagefieldを開かずに保存する
- コンテンツに挿入された画像が消えた(表示された場合はキャッシュの原因で、F5を押すと画像が消える)
原因/解決
- wysiwyg_imagefieldが画像挿入画面を開かないと、保存された画像がロードされず、システムがImageフィールドの画像が消されたと見なす
- 解決には、以下のコード(Drupal.wysiwygImageField.focus())を sites\all\modules\wysiwyg_imagefield\puugins\wysiwyg_imagefield\wysiwyg_imagefield.js に追加する
/**
* Create wysiwyg_imagefield dialog window.
*/
attach: function(content, settings, instanceId) {
// @TODO: Use Modal Frame API if available.
$('#wysiwyg_imagefield-wrapper').dialog({
autoOpen: false,
modal: true,
title: Drupal.settings.WysiwygImageField.title
});
Drupal.wysiwygImageField.init();
Drupal.wysiwygImageField.focus();
return content;
},
- 注意点:JSがDrupalにキャッシュされるので、キャッシュクリア(Home » Administration » Configuration » Development)ボタンをクリックして、JSを更新します。