Tengo un perfil de instalación personalizado y debo cambiar mediante programación el formato del texto del cuerpo del tipo de contenido de la página a HTML completo. Sin embargo, no pude encontrar cómo hacerlo.
¿Cómo puedo hacerlo?
Tengo un perfil de instalación personalizado y debo cambiar mediante programación el formato del texto del cuerpo del tipo de contenido de la página a HTML completo. Sin embargo, no pude encontrar cómo hacerlo.
¿Cómo puedo hacerlo?
Respuestas:
Puedes hacerlo hook_element_info_alter
, aquí hay un fragmento.
<?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;
}
?>
Como esta publicación sugiere que podrías intentar
$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'full_html';
$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'filtered_html';
en tu hook_form_alter
o enhook_FORM_ID_alter
También hay un módulo de Mejores Formatos
Mejores formatos es un módulo para agregar más flexibilidad al sistema de formato de entrada principal de Drupal.
La segunda respuesta de Nikhil M es la mejor:
$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'full_html';
sin necesidad de hook_element_info
solo necesitas una línea de código
$ result = db_query ('ACTUALIZAR field_data_body SET body_format =' full_html 'WHERE bundle
=' página ');