回答:
Drupal 7では、Simplifyモジュールを使用できます。ノード形式の他の要素と同様に、テキスト形式オプションtextareaを非表示にすることができます。
これを行うには、カスタムモジュールでhook_form_alterを使用できます。
たとえば、drupal 7の場合:
// hook_form_alter function
function CUSTOM_MODULE_form_alter(&$form, &$form_state, $form_id) {
// We want this on a specific node type
if ($form_id == 'NODE_TYPE_node_form') {
$form['#after_build'][] = 'CUSTOM_MODULE_NODE_TYPE_node_form_after_build';
}
}
// afterbuild function
function CUSTOM_MODULE_NODE_TYPE_node_form_after_build($form) {
// We want this on a specific field
$form['YOUR_FIELD']['und']['0']['format']['#access'] = FALSE;
return $form;
}
drupal 6には、Better Formatsというモジュールがあり、これはまさに望みどおりに機能します。7つの開発バージョンがありますが、開発が進行中であるという警告が付いています。サイトがまだ開発中の場合は、試してみる価値があるかもしれません。
実際にフォーマットフォーム項目を強制終了できます。
function MY_THEME_form_comment_form_alter(&$form, &$form_state, &$form_id) {
$form['comment_body']['#after_build'][] = 'MY_THEME_configure_comment_form';
}
function MY_THEME_configure_comment_form(&$form) {
unset($form[LANGUAGE_NONE][0]['format']);
return $form;
}
CUSTOM
カスタムテーマ名として使用されます。次のことを行う必要がありNEVERあなたがアクティブな言語使用が必要な場合は、コード言語ハードglobal $language;
それをつかむために。
LANGUAGE_NONE
は値を持つ定数ですund
...を使用しないでくださいund
。
最善の解決策は、テキスト形式選択要素へのアクセスを許可しないことだと思います。完全に設定を解除すると、WYSIWYGエディターが消えてしまうため、望ましくない副作用が発生します。そこで、次のコードを提案します。
function MY_MODULE_form_comment_form_alter(&$form, &$form_state, &$form_id) {
$form['comment_body']['#after_build'][] = 'MY_MODULE_hide_text_format';
}
function MY_MODULE_hide_text_format(&$form) {
$form[LANGUAGE_NONE][0]['format']['#access'] = false;
return $form;
}
最も簡単な方法であるCSSを使用します。
#body-add-more-wrapper #edit-body-und-0-format {display: none;}
がんばろう。
Drupal 7の場合
function MODULENAME_element_info_alter(&$type) {
if (isset($type['text_format']['#process'])) {
foreach ($type['text_format']['#process'] as &$callback) {
if ($callback === 'filter_process_format') {
$callback = 'MODULENAME_filter_process_format';
}
}
}
}
function MODULENAME_filter_process_format($element) {
$element = filter_process_format($element);
// Change input format to "Filtered HTML" for body fields of NODETYPE_NAME
if ($element['#bundle'] == 'NODETYPE_NAME' && $element['#field_name'] == 'body') {
$element['format']['format']['#default_value'] = 'filtered_html';
$element['format']['format']['#format'] = 'filtered_html';
$element['format']['format']['#value'] = 'filtered_html';
$element['#format'] = 'filtered_html';
}
return $element;
}
CSS Injectorモジュールをインストールします(現在、Drupal 8の動作する開発バージョンのみがあります)。
次に、CSS Injectorの管理ページ(/ admin / config / development / css-injector)に移動します。このコード(または書式設定領域のテキストのクラスに適用されるコード)を使用して、新しいCSSルールを作成します。
.filter-guidelines {
display: none;
}
Sevenテーマ(または使用中の管理テーマ)に適用することを選択します。保存してお楽しみください!
Drupal 8の場合。これにより、2つのフィールドのフォーマット領域が削除されます。
/**
* Implements hook_form_FORM_ID_alter().
*/
function CUSTOM_MODULE_form_FORM_ID_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
$form['#after_build'][] = 'CUSTOM_MODULE_eform_application_after_build';
}
function CUSTOM_MODULE_eform_application_after_build ($form) {
unset($form['field_experience']['widget'][0]['format']);
unset($form['field_miscellaneous']['widget'][0]['format']);
return ($form);
}
Drupal 7の場合:
1)hook_theme_registry_alter(&$theme_registry)
モジュール内から使用してテーマレジストリを変更します。eq。テーマプロセッサの定義。
2)次に、3つのテーマの機能を変えるtheme_filter_tips
、theme_filter_tips_more_info
とtheme_filter_guidelines
、と何も返さないためにそれらを強制します。次のように:
これがターゲット関数です。上記のテーマ機能はすべて、それにリダイレクトされます。
function _mymodule_filter_tips($tips, $long = FALSE, $extra = ''){
return '';
}
/**
* Implements hook_theme_registry_alter
*/
function mymodule_theme_registry_alter(&$theme_registry) {
$theme_registry['filter_tips']['theme path'] = drupal_get_path( 'module', 'mymodule' );
$theme_registry['filter_tips']['function'] = '_mymodule_filter_tips';
$theme_registry['filter_guidelines']['theme path'] = drupal_get_path( 'module', 'mymodule' );
$theme_registry['filter_guidelines']['function'] = '_mymodule_filter_tips';
$theme_registry['filter_tips_more_info']['theme path'] = drupal_get_path( 'module', 'mymodule' );
$theme_registry['filter_tips_more_info']['function'] = '_mymodule_filter_tips';
}
キャッシュをクリアすると、Drupalは選択したモジュールのパスでこれらのフィルター定義を検索し(を参照drupal_get_path
)、各フィルターに対して何も返しません。したがって、テキスト形式の説明はこれ以上ありません。
/ hook_form_alter function
function CUSTOM_MODULE_form_alter(&$form, &$form_state, $form_id) {
// We want this on a specific node type
if ($form_id == 'NODE_TYPE_node_form') {
$form['#after_build'][] = 'CUSTOM_MODULE_NODE_TYPE_node_form_after_build';
}
}
// afterbuild function
function CUSTOM_MODULE_NODE_TYPE_node_form_after_build($form) {
// We want to hide input formats and we can do it like following
$form['body']['und']['0']['format']= '<div style="display:none;">';
$form['body']['und']['0']['format']= '</div>';
return $form;
}
これらの小さな変更で主に私のために働いた。
$form['body'][LANGUAGE_NONE][0]['format']['#prefix']<br>
$form['body'][LANGUAGE_NONE][0]['format']['#suffix']
hook_form_alter
、詳細については