Wysiwyg モジュールを介して含まれる TinyMCE を備えた Drupal 7。Wysiwygの設定画面で「貼り付け」が可能になりました。エディターは一般的に問題なく動作していますが、現在、TinyMCE の貼り付け機能を変更して、HTML タグからすべての属性を削除しようとしています。(クライアントの要件、質問しないでください。)
モジュールファイルに以下を追加しました。
function MYMODULE_wysiwyg_editor_settings_alter(&$settings, $context) {
if ($context['profile']->editor == 'tinymce') {
drupal_add_js(drupal_get_path('module', 'MYMODULE').'/js/tinymce_callbacks.js');
$settings['paste_preprocess'] = 'MYMODULE_tinymce_paste_preprocess_callback';
}
}
次の内容でtinymce_callbacks.jsを作成しました。
function MYMODULE_tinymce_paste_preprocess_callback(pl, o) {
alert(o.content);
o.content = "-: CLEANED :-\n" + o.content;
}
実際の TinyMCE 貼り付けボタンは IE でのみ機能しますが、ctrl-V ショートカットはすべてのブラウザーで機能します。ただし、コールバックは呼び出されません。
私はいくつかの掘り出し物をしました。paste_preprocess 設定は間違いなく正しい JavaScript オブジェクトに追加されていますが、それを参照する唯一のコード (TinyMCE Paste プラグイン) は読み込まれていません。問題は TinyMCE ではなく Drupal にあるようです。
Drupal が TinyMCE プラグインを正しくロードするための助けをいただければ幸いです。