私は CKEditor モジュールを満足して使用していますが、1つのケースで本当にイライラします:textareasを空のままにすると、<br />
タグが生成されますCKEditorのインターフェースをレンダリングした後。
これは、たとえば "Summary or trimmed" 表示を使用し、ノード作成フォームでを使用する場合に問題になる可能性がありますSummaryフィールドは空のままですが、実際にはnotです。これは、<br />
が含まれているためです(ティーザーは単一の<br />
)も含まれます。
ソースビュー に移動して<br />
タグを常に削除することで、この問題を回避できますが、それは解決策ではありません(他のユーザーはその方法を知らないでしょう)。
この動作を停止する方法について何かアイデアはありますか?
Drupal.org- http://drupal.org/node/550428 にこの問題を追跡する問題があります。コメント番号49にパッチがあります。役立つことを願っています。
_sites/all/modules/ckeditor/ckeditor.config.js
_で、11行目のCKEDITOR.editorConfig = function(config) {
のすぐ下に次の行を追加します。
_config.fillEmptyBlocks = false;
_
この関数のより高度な使用法については CKsourceのドキュメント を参照してください。しかし、なぜ_config.ignoreEmptyParagraph = true;
_では不十分なのかは、私の理解を超えています。
fillEmptyBlocks
CKEditor設定をfalse
に設定してみましたか? WYSIWYGでは、これをフックで行います。
function base_wysiwyg_extras_wysiwyg_editor_settings_alter(&$settings, $context) {
if ($context['profile']->editor == 'ckeditor') {
$settings['fillEmptyBlocks'] = FALSE;
}
}
おそらくCKEditorモジュールの方法もあるでしょう。ない場合は、カスタムCKEditor設定のjsファイルを使用して、いつでも直接設定を追加できます。
おそらく hook_field_presave を使用できます:
function mymodule_field_presave ($entity_type, $entity, $field, $instance, $langcode, &$items)
{
if ($field[...] == ...) { // update for your case
foreach ($items as $delta => $item) {
if (isset($item['value'])) {
$pattern = '/^\s*\<br\s*\/?\>\s*$/i';
if (preg_match($pattern, $items[$delta]['value'] === 1) {
$items[$delta]['value'] = '';
}
}
}
}
}
これはテストされていません(特に正規表現)。  
だけ、空の段落だけなどを処理するために、追加のケースを追加することもできます。