You are here

text_summary_options.module in Summary Options 7

Same filename and directory in other branches
  1. 8 text_summary_options.module

Provides options for 'Long Text With Summary' widget.

File

text_summary_options.module
View source
<?php

/**
 * @file
 * Provides options for 'Long Text With Summary' widget.
 */

/**
 * Implements hook_field_info_alter().
 */
function text_summary_options_field_info_alter(&$info) {
  $info['text']['settings'] += array(
    'show_summary' => '0',
    'required_summary' => '0',
  );
}

/**
 * Implements hook_form_alter().
 */
function text_summary_options_form_alter(&$form, &$form_state, $form_id) {
  switch ($form_id) {
    case 'field_ui_field_edit_form':

      // Field settings form.
      if ($form['#field']['type'] == 'text_with_summary') {
        $settings = $form['#instance']['settings'];
        $form['instance']['settings']['show_summary'][] = array(
          '#type' => 'checkbox',
          '#title' => t('Show summary'),
          '#description' => t('Display the summary field by default.'),
          '#default_value' => !empty($settings['show_summary'][0]) ? TRUE : FALSE,
        );
        $form['instance']['settings']['required_summary'][] = array(
          '#type' => 'checkbox',
          '#title' => t('Mark Summary as required'),
          '#description' => t('Should the Summary field be required.'),
          '#default_value' => !empty($settings['required_summary'][0]) ? TRUE : FALSE,
        );
        $form['instance']['settings']['summary_help'][] = array(
          '#type' => 'textarea',
          '#title' => t('Summary help text'),
          '#description' => t('Help text to display for the summary.'),
          '#default_value' => isset($settings['summary_help'][0]) ? $settings['summary_help'][0] : '',
        );
      }
      break;
  }
}

/**
 * Implements hook_field_widget_form_alter().
 */
function text_summary_options_field_widget_form_alter(&$element, &$form_state, $context) {
  if (isset($form_state['node']) || isset($form_state['entityform'])) {
    if (isset($element['summary'])) {

      // Process show summary.
      if (isset($context['instance']['settings']['show_summary']) && $context['instance']['settings']['show_summary'][0]) {
        unset($element['summary']['#attached']);
      }

      // Process required.
      if (isset($context['instance']['settings']['required_summary']) && $context['instance']['settings']['required_summary'][0]) {
        $element['summary']['#required'] = TRUE;
        $element['summary']['#description'] = "Summary for the " . $element['#title'] . " field is required.";
      }

      // Process summary help.
      if (isset($context['instance']['settings']['summary_help']) && $context['instance']['settings']['summary_help'][0]) {
        $element['summary']['#description'] = $context['instance']['settings']['summary_help'][0];
      }
    }
  }
}