Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.38 KB | None | 0 0
  1. <?php
  2. /**
  3. * Implements hook_element_info_alter().
  4. *
  5. * Sets the text format processor to a custom callback function.
  6. * This code is taken from the Better Formats module.
  7. */
  8. function default_text_format_element_info_alter(&$type) {
  9. if (isset($type['text_format']['#process'])) {
  10. foreach ($type['text_format']['#process'] as &$callback) {
  11. if ($callback === 'filter_process_format') {
  12. $callback = 'default_text_format_filter_process_format';
  13. }
  14. }
  15. }
  16. }
  17.  
  18. /**
  19. * Callback for MODULENAME_element_info_alter().
  20. */
  21. function default_text_format_filter_process_format($element) {
  22. $element = filter_process_format($element);
  23. // Change input format to "Filtered HTML" for body fields of article nodes
  24. if ($element['#bundle'] == 'article' && $element['#field_name'] == 'body') {
  25. $element['format']['format']['#default_value'] = 'filtered_html';
  26. }
  27. return $element;
  28. }
  29.  
  30. name = Default text format
  31. description = Adapt the module code to set a default format for a content type.
  32. package = Custom modules
  33. core = "7.x"
  34.  
  35. /**
  36. * Implements hook_form_FIELD_UI_FIELD_EDIT_FORM_alter().
  37. */
  38. function MY_MODULE_form_field_ui_field_edit_form_alter(&$form, &$form_state) {
  39. if ($form['#field']['type'] == 'text_long') {
  40. $instance = $form['#instance'];
  41. // Fieldset for Default Formats settings.
  42. $filters = filter_formats();
  43. $options = array('_none' => t('None'));
  44. foreach ($filters as $key => $filter) {
  45. $options[$key] = $filter->name;
  46. }
  47. $form['instance']['settings']['default_filter'] = array(
  48. '#type' => 'fieldset',
  49. '#title' => t('Default Filter Settings'),
  50. '#collapsible' => FALSE,
  51. '#collapsed' => FALSE,
  52. );
  53. $form['instance']['settings']['default_filter']['wysiwyg_profile'] = array(
  54. '#type' => 'select',
  55. '#title' => t('Select a default format for this field'),
  56. '#description' => t('The selected text format will influence the button and plugin configuration of WYSIWYG.'),
  57. '#default_value' => isset($instance['settings']['default_filter']['wysiwyg_profile'])
  58. ? $instance['settings']['default_filter']['wysiwyg_profile'] : '_none',
  59. '#options' => $options,
  60. );
  61. }
  62. }
  63.  
  64. /**
  65. * Implements hook_element_info_alter().
  66. *
  67. * Sets the text format processor to a custom callback function.
  68. * This code is taken from the Better Formats module.
  69. */
  70. function MY_MODULE_element_info_alter(&$type) {
  71. if (isset($type['text_format']['#process'])) {
  72. foreach ($type['text_format']['#process'] as &$callback) {
  73. if ($callback === 'filter_process_format') {
  74. $callback = 'MY_MODULE_filter_process_format';
  75. }
  76. }
  77. }
  78. }
  79.  
  80. /**
  81. * Callback for MY_MODULE_element_info_alter().
  82. *
  83. * Alters the default text format of fields.
  84. */
  85. function MY_MODULE_filter_process_format($element) {
  86. $element = filter_process_format($element);
  87. // Configuration array that specifies the fields that need to be altered.
  88. $field_info = field_info_instance($element['#entity_type'],
  89. $element['#field_name'],
  90. $element['#bundle']);
  91. // Change input format to configured value.
  92. if (isset($field_info['settings']['default_filter']['wysiwyg_profile']) && $field_info['settings']['default_filter']['wysiwyg_profile'] != '_none') {
  93. $element['format']['format']['#default_value'] = $field_info['settings']['default_filter']['wysiwyg_profile'];
  94. }
  95. return $element;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement