mzambranaa
10/19/2017 - 8:04 AM

Definir i limitar els formats de text disponibles per a cada camp i tipus de contingut concret.

Definir i limitar els formats de text disponibles per a cada camp i tipus de contingut concret.

<?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 MODULE_element_info_alter(&$type) {
  // add a pre_render callback of our own
  if (isset($type['text_format'])) {
    $type['text_format']['#pre_render'][] = 'MODULE_prerender_text_format';   
  }
}
/**
* Callback for MODULE_element_info_alter().
*/
function MODULE_prerender_text_format($element) {
  if (isset($element['#entity_type']) && $element['#entity_type'] == 'node') {
    switch ($element['#bundle']) {
      case 'techniques':
        if ($element['#field_name'] == 'body' && isset($element['format']['format'])) {
          $element['format']['format']['#options'] = array(
              'techniques_method' => 'Techniques method',
              'plain_text' => 'Plain text'
            );
        }
        break;
      case 'recipe':
        if ($element['#field_name'] == 'body' && isset($element['format']['format'])) {
          $element['format']['format']['#options'] = array(
              'recipe_method' => 'Recipe Method',
              'plain_text' => 'Plain text'
            );
        }
        break;
      default:
        // Your default case, if needed ...
        break;
    }
  }
  return $element;
}
?>