J'ai un profil d'installation personnalisé et je dois modifier par programme le format de texte du corps du type de contenu de la page en HTML complet. Cependant, je n'ai pas réussi à trouver comment le faire.
Comment puis-je le faire?
J'ai un profil d'installation personnalisé et je dois modifier par programme le format de texte du corps du type de contenu de la page en HTML complet. Cependant, je n'ai pas réussi à trouver comment le faire.
Comment puis-je le faire?
Réponses:
Vous pouvez le faire avec hook_element_info_alter
, voici un extrait.
<?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;
}
?>
Comme CE après vous suggère pouvez essayer
$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'full_html';
$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'filtered_html';
dans votre hook_form_alter
ou danshook_FORM_ID_alter
Il existe également un module de meilleurs formats
De meilleurs formats est un module pour ajouter plus de flexibilité au système de format d'entrée principal de Drupal.
La deuxième réponse de Nikhil M est la meilleure -
$form['field_name'][LANGUAGE_NONE][0]['#format'] = 'full_html';
pas besoin de hook_element_info
vous n'avez besoin que d'une seule ligne de code
$ result = db_query ('UPDATE field_data_body SET body_format =' full_html 'WHERE bundle
=' page ');