Come posso modificare a livello di codice il formato del corpo del testo nel tipo di contenuto della pagina in HTML completo?


8

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?


vuoi cambiarlo per tutti i tipi di contenuto?
Aboodred1

@ Aboodred1 solo per pagina (tipo standard)
Codium

hai già creato il formato HTML completo?
Aboodred1

@ Aboodred1 sì, l'ho fatto
Codium

Risposte:


6

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


2

La seconda risposta di Nikhil M è la migliore -

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

non è necessario hook_element_info


Questo appartiene al commento della risposta di Nikhil.
timofey.com,

-1

hai solo bisogno di una riga di codice

$ risultato = db_query ('UPDATE field_data_body SET body_format =' full_html 'WHERE bundle=' page ');


Cosa c'è di sbagliato in questa query? Penso che sia una soluzione alternativa ...
Shasi kanth
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.