Como altero programaticamente o formato do texto do corpo no tipo de conteúdo da página para HTML completo?


8

Eu tenho um perfil de instalação personalizado e devo alterar programaticamente o formato do texto do corpo no tipo de conteúdo da página para HTML completo. No entanto, não consegui descobrir como fazê-lo.

Como eu posso fazer isso?


você deseja alterá-lo para todos os tipos de conteúdo?
precisa saber é o seguinte

@ Aboodred1 apenas para página (tipo padrão)
Codium

você já criou o formato HTML completo?
Aboodred1

@ Aboodred1 sim eu fiz
Codium

Respostas:


6

Você pode fazer isso com hook_element_info_alter, aqui está um trecho.

<?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 publicação sugere, você pode tentar

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

no seu hook_form_alterou emhook_FORM_ID_alter

Também existe o módulo Melhores Formatos

Melhores formatos é um módulo para adicionar mais flexibilidade ao sistema principal de formatos de entrada do Drupal.


2

A segunda resposta de Nikhil M é a melhor -

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

não há necessidade de hook_element_info


Isso pertence ao comentário da resposta de Nikhil.
timofey.com

-1

você só precisa de uma linha de código

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


O que há de errado com esta consulta? Eu acho que é uma solução alternativa ...
Shasi kanth
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.