プログラムでページコンテンツタイプの本文のテキスト形式を完全なHTMLに変更するにはどうすればよいですか?


8

カスタムインストールプロファイルがあり、プログラムでページコンテンツタイプの本文のテキスト形式を完全なHTMLに変更する必要があります。しかし、どうすればいいかわからなかった。

どうすればできますか?


すべてのコンテンツタイプで変更しますか?
Aboodred1 2013年

@ Aboodred1はページのみ(標準タイプ)
Codium

フルHTML形式を既に作成しましたか?
Aboodred1 2013年

@ Aboodred1はい、私はそうしました
Codium

回答:


6

あなたはそれを使ってそれを行うことができます、これhook_element_info_alterはスニペットです。

<?php
/**
 * Implements hook_element_info_alter().
 *
 * Sets the text format processor to a custom callback function.
 * This code is taken from the Better Formats module.
 */
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';
      }
    }
  }
}

/**
 * Callback for MODULENAME_element_info_alter().
 */
function MODULENAME_filter_process_format($element) {
  $element = filter_process_format($element);
  // Change the default text format of the 'field_company_spotlight' field to
  // 'Media HTML'. 
  if ($element['#bundle'] == 'company' && $element['#field_name'] == 'field_company_spotlight') {
    $element['format']['format']['#default_value'] = 'media_html';
  }
  return $element;
}
?>

以下のようTHISポストが示唆あなたは試みることができます

$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'full_html';
$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'filtered_html';

あなたの中hook_form_alterまたはhook_FORM_ID_alter

また、Better Formatsモジュールもあります

より良いフォーマットは、Drupalのコア入力フォーマットシステムに柔軟性を追加するモジュールです。


2

Nikhil Mの2番目の答えが最適です-

$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'full_html';  

hook_element_infoは必要ありません


これはニキルの答えのコメントに属しています。
timofey.com 2014

-1

あなたはたった1行のコードが必要です

$ result = db_query( 'UPDATE field_data_body SET body_format =' full_html 'WHERE bundle=' page ');


このクエリの何が問題になっていますか?回避策だと思います...
shasi kanth
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.