it-swarm-ja.com

テキスト領域がサイズ変更できないようにするにはどうすればよいですか?

Drupal 7のテキスト領域はデフォルトでサイズ変更可能です。これをオフにしたいのですが、Firebugでテキスト領域をチェックしたところ、サイズ変更可能なCSSが見つかりませんでした。

テキスト領域のサイズが変更されないようにするにはどうすればよいですか?

8
Patrick Kenny

CSSではなく、テキスト領域のサイズを変更できるのはJSです。すべてのテキストエリアでこの動作を無効にする最も簡単な方法は、テーマにTHEMENAME_textarea()を実装してそこから削除することだと思います:

function THEMENAME_textarea($element) {
  $element['element']['#resizable'] = false ;
  return theme_textarea($element) ;
}
17
Clive

CSS3互換性のみが必要な場合は、次のCSSを使用できます。

textarea { resize: none; }

または、特定のテキスト領域のサイズ変更を無効にする必要がある場合は、そのテキスト領域のIDを追加します。

.edit-body-und-0-value { resize:none }
4
Druvision

これをテーマでオーバーライドするのはギリギリの変更であり、モジュールが反応する機会はありません。

これは、モジュールと#processコールバックを使用して簡単に実行できます。

/**
 * Implements hook_element_info_alter()
 */
function custom_element_info_alter(&$types) {
  $types['textarea']['#process'][] = 'custom_process_textarea';
}

/**
 * A custom callback to disable "grippies" on textareas.
 */    
function custom_process_textarea($element) {
  $element['#resizable'] = FALSE;
  return $element;
}

これにより、Wysiwygのようなモジュールは、textareaにグリッピーが含まれてはならないことに気付く機会が与えられるため、エディターを無効にするときにその動作をアタッチすることを回避できます。

1
TwoD

これをテーマに実装します。 #resizableFALSEに強制し、JSとマークアップがレンダリングされないようにします。

/**
 * Implements template_preprocess_textarea().
 */
function THEME_preprocess_textarea(&$variables) {
  // Hide grippie.
  $variables['element']['#resizable'] = FALSE;
}

受け入れられた答えは近いですが、theme_ *関数は、意図せずにプロセス/前処理関数をバイパスする可能性があるため、直接呼び出さないでください。

1
joelpittet

カスタムインラインCSSをフォームに追加して、グリップを非表示にすることができます。

$form['#attached']['css'][] = array(
  'data' => '.resizable-textarea .grippie { display: none; }',
  'type' => 'inline',
);
1
shasi kanth

ノードまたはコメントのフォーム変更を行うことができます。

以下のサンプルコードとコメントを確認してください。

$form['body'][LANGUAGE_NONE][0]['value']['#resizable'] = FALSE;

Mozillaとchromeについては、引き続き問題が発生します。 CSSハックを配置します。

textarea {
 resize: none;
 }
0

Disable Resizable Textarea と呼ばれる新しいモジュールがリリースされました。

これは、textareaフィールドのデフォルトの#resizableプロパティをオーバーライドする機能を追加する単純なモジュールです。デフォルトでは、すべてのテキストエリアはサイズ変更可能です。このモジュールでは、各フィールドでこの機能を無効にすることができます。

セットアップはとても簡単です。目的のフィールドを編集するだけで、「このテキストエリアの#resizableプロパティを無効にする」オプションが表示されます。フィールドのタイプが「要約付きの長いテキスト」の場合は、要約からサイズ変更可能を無効にすることもできます。

0
Thiago Régis