¿Cómo cambio programáticamente el formato del texto del cuerpo en el tipo de contenido de la página a HTML completo?

8

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?

Codium
fuente
¿Quieres cambiarlo para todos los tipos de contenido?
Aboodred1
@ Aboodred1 solo para página (tipo estándar)
Codium
¿Ya creaste el formato HTML completo?
Aboodred1
@ Aboodred1 sí, lo hice
Codium

Respuestas:

6

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_altero 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.

niksmac
fuente
2

La segunda respuesta de Nikhil M es la mejor:

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

sin necesidad de hook_element_info

Druvision
fuente
Esto pertenece en el comentario de la respuesta de Nikhil.
timofey.com
-1

solo necesitas una línea de código

$ result = db_query ('ACTUALIZAR field_data_body SET body_format =' full_html 'WHERE bundle=' página ');

Ramsesiden
fuente
¿Qué hay de malo en esta consulta? Creo que es una solución ...
shasi kanth