web-dev-qa-db-ja.com

プレーンテキスト形式を使用しているときに改行を取得するにはどうすればよいですか?

これは非常にシンプルなはずですが、気が狂います。

すべてのBody要素に「プレーンテキスト」を選択しました。フォームに入力するときに、誰もHTMLを入力できないようにしたいと思います。

ただし、改行は保持したいです。プレーンの構成ページには確かに「このボックスをチェックして改行をbrとpに変換する」がありますが、何をチェックするか、またはどのようにフィルターの重みを再配置するかに関係なく、改行を保持するようにすることはできません。

これを機能させてテキストのリターンを保持できるようにするための正しい構成は何ですか?

11
blue928

Drupalコアのバグのようです http://drupal.org/node/1019042

8
giorgio79

これはDrupal 7.xのバグのようです。私の場合、フィルタの順序を変更しても機能しません。

私の短期的な解決策は、これを私のテーマのtemplate.php( ref )内にスローすることでした:

<?php
/**
 * Implements template_preprocess_field().
 */
function THEMENAME_preprocess_field(&$vars, $hook) {
  // Add line breaks to plain text textareas.
  if (
    // Make sure this is a text_long field type.
    $vars['element']['#field_type'] == 'text_long'
    // Check that the field's format is set to null, which equates to plain_text.
    && $vars['element']['#items'][0]['format'] == null
  ) {
    $vars['items'][0]['#markup'] = nl2br($vars['items'][0]['#markup']);
  }
}
?>

ビューのフィールドの場合、フィールド設定の「結果の書き換え」セクションでこのオプションを個別に設定する必要があります。

11
Druvision

実際には、「admin/config/content/formats/plain_text」にあるこのフィルター順序設定で動作するはずです。

  1. HTMLをプレーンテキストとして表示する
  2. URLをリンクに変換する
  3. 改行をHTMLに変換します(つまり、<br>と<p>)

「HTMLをプレーンテキストとして表示する」を削除して、以下のフィルターを試してください。

  1. 許可されたHTMLタグを制限する(許可されたHTMLタグリストには<a>と<br>のみを設定)
  2. URLをリンクに変換する
  3. 改行をHTMLに変換します(つまり、<br>と<p>)
3
Sithu

解決策は簡単です。プレーンテキストコンテンツを次のcssで表示するだけです。

white-space: pre-line;
3
Kevin Siji

私は Advanced Text Formatter モジュールを使用して、コードなしでこの問題をすばやく解決しました。

  1. モジュールをインストールして有効にします。
  2. コンテンツタイプの[ディスプレイの管理]をクリックします。
  3. フィールドのフォーマットの「プレーンテキスト」を「アドバンスドテキスト」に変更します
  4. 右側の歯車(またはフォーマット設定へのリンク)をクリックします

    1. トリムの長さを0に設定します
    2. フィルターを「許可されたHTMLタグを制限する」に設定します
    3. 「許可されたHTMLタグ」からすべてのアイテムを削除する
    4. 「改行をHTMLに変換する」にチェックを入れます
    5. [更新]をクリックして、フィールド表示を保存します。

Format Settings of Advanced Text Formatter module to allow only line breaks

1
StackAttack

これは入力フィルタリングではないと思います。おそらくフィールドの表示設定です。 「プレーンテキスト」に設定されている場合は、「デフォルト」に変更します。それ以外の場合、フィールドが表示される前に、入力改行用に生成されたタグが取り除かれます。

明確にするために、これは問題のコンテンツタイプの[ディスプレイの管理]パネルにあります。管理"構造"コンテンツタイプ"MyContentType"ディスプレイの管理。フィールドの「フォーマット」列の下。

0

これはバグではないと思いますが、「フィルターされたテキスト」入力フォーマットが「プレーンテキスト」に設定されたフィールド間の混乱の結果(Drupalが設定されているため助けにはなりません)]および「プレーンテキスト」フィールド。フィールドを作成するときに「フィルターテキスト」を選択すると、ユーザーは「プレーンテキスト」およびその他の利用可能な入力形式から選択するオプションを取得し、ここで「プレーンテキスト」オプションを使用します。コンテンツを作成すると、改行とリンクがそのまま表示されます。ただし、フィールドの作成時に「プレーンテキスト」を選択した場合、「プレーンテキスト」の入力形式をどのように構成しても、タグは使用できないか、まったく表示されません。 。したがって、「プレーンテキスト」が機能しないことにパニックになる前に、まずコンテンツタイプの設定で、フィールドに「フィルターされたテキスト」が選択されていることを確認してください。逆説的で迷惑ですが、Drupal ...;)

0
Thoughtcat

「プレーンテキスト形式」は「テキスト処理」方式であり、HTMLタグはサポートされていないため、改行は正常に機能しません。

「フィルターされたテキスト(ユーザーがテキスト形式を選択)」の「テキスト形式」を作成し、「テキスト形式」を「プレーンテキスト」に設定します。

0
user9616