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?
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?
Antworten:
Sie können es tun hook_element_info_alter
, 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;
}
?>
Wie DIESER Beitrag andeutet, könnten Sie es versuchen
$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'full_html';
$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'filtered_html';
in deinem hook_form_alter
oder inhook_FORM_ID_alter
Es gibt auch ein Modul für bessere Formate
Bessere Formate sind ein Modul, das dem zentralen Eingabeformatsystem von Drupal mehr Flexibilität verleiht.
Die zweite Antwort von Nikhil M ist die beste -
$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'full_html';
Hook_element_info ist nicht erforderlich
Sie benötigen nur eine Codezeile
$ result = db_query ('UPDATE field_data_body SET body_format =' full_html 'WHERE bundle
=' page ');