Ho un profilo di installazione personalizzato e devo modificare a livello di codice il formato del corpo del testo nel tipo di contenuto della pagina in HTML completo. Tuttavia, non sono riuscito a trovare il modo di farlo.
Come posso farlo?
Ho un profilo di installazione personalizzato e devo modificare a livello di codice il formato del corpo del testo nel tipo di contenuto della pagina in HTML completo. Tuttavia, non sono riuscito a trovare il modo di farlo.
Come posso farlo?
Risposte:
Puoi farlo con hook_element_info_alter
, ecco uno snippet.
<?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;
}
?>
Come QUESTO post suggerisce che potresti provare
$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'full_html';
$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'filtered_html';
nel tuo hook_form_alter
o dentrohook_FORM_ID_alter
Inoltre c'è il modulo Better Formats
Formati migliori è un modulo per aggiungere maggiore flessibilità al sistema di formati di input core di Drupal.
La seconda risposta di Nikhil M è la migliore -
$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'full_html';
non è necessario hook_element_info
hai solo bisogno di una riga di codice
$ risultato = db_query ('UPDATE field_data_body SET body_format =' full_html 'WHERE bundle
=' page ');