it-swarm.com.de

Wie ändere ich programmgesteuert das Textformat des Seiteninhaltstyps in vollständigen HTML-Code?

Ich habe ein benutzerdefiniertes Installationsprofil und muss das Textformat des Seiteninhaltstyps programmgesteuert in vollständigen HTML-Code ändern. Ich habe es jedoch nicht geschafft, herauszufinden, wie es geht.

Wie kann ich es tun?

8
Codium

Sie können es mit hook_element_info_alter Tun, hier ist ein Ausschnitt.

<?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;
}
?>

Als DIESER Beitrag schlägt vor, dass Sie es versuchen könnten

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

in Ihrem hook_form_alter oder in hook_FORM_ID_alter

Es gibt auch das Modul Better Formats

Bessere Formate sind ein Modul, das dem zentralen Eingabeformatsystem von Drupal mehr Flexibilität verleiht.

6
niksmac

Die zweite Antwort von Nikhil M ist die beste -

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

hook_element_info ist nicht erforderlich

2
Druvision