You are here

function editor_note_field_formatter_settings_form in Editor Notes 7

Implements hook_field_formatter_settings_form().

Creates field formatter forms for registered types of formatters.

File

./editor_note.module, line 840
Main functionality for Editor Notes module.

Code

function editor_note_field_formatter_settings_form($field, $instance, $view_mode) {
  $display = $instance['display'][$view_mode];
  $settings = $display['settings'];
  $element = array();
  if ($display['type'] == 'editor_note_field_formatter') {
    $element['notes_display_mode'] = array(
      '#type' => 'radios',
      '#title' => t('Display mode'),
      '#required' => TRUE,
      '#description' => t('"Display list of notes per entity revision" means separate list of notes for each revision while "Display list of notes per entity" displays combined list of notes for all revisions.'),
      '#default_value' => isset($settings['notes_display_mode']) ? $settings['notes_display_mode'] : 'per_revision',
      '#options' => array(
        'per_revision' => t('Display list of notes per entity revision'),
        'per_entity' => t('Display list of notes per entity'),
      ),
    );
    $element['limit'] = array(
      '#type' => 'textfield',
      '#title' => t('Display a specified number of items.'),
      '#default_value' => $settings['limit'],
      '#required' => TRUE,
      '#description' => t('Display a specified number of items in table. Set 0 for no limit.'),
      '#element_validate' => array(
        'editor_note_validate_integer_positive_or_zero',
      ),
    );
    $element['order'] = array(
      '#type' => 'radios',
      '#title' => t('Order notes'),
      '#options' => array(
        'DESC' => t('display recently updated notes first'),
        'ASC' => t('display recently updated notes last'),
      ),
      '#default_value' => $settings['order'],
      '#description' => t('Set order of notes in the table.'),
    );
    $element['pager'] = array(
      '#type' => 'fieldset',
      '#title' => t('Pagination'),
      '#collapsed' => FALSE,
      '#collapsible' => FALSE,
      '#states' => array(
        'invisible' => array(
          'input[name="fields[' . $field['field_name'] . '][settings_edit_form][settings][limit]"]' => array(
            'value' => 0,
          ),
        ),
      ),
    );
    $element['pager']['enabled'] = array(
      '#type' => 'checkbox',
      '#title' => t('Enable pagination'),
      '#default_value' => $settings['pager']['enabled'],
      '#description' => t('Whether to display pagination if number of notes added is greater that can be displayed.'),
    );
    $element['pager']['pager_below'] = array(
      '#type' => 'checkbox',
      '#title' => t('Pagination below notes table'),
      '#default_value' => $settings['pager']['pager_below'],
      '#description' => t('Displays pagination below the notes table, if unchecked pagination displays above the table.'),
      '#states' => array(
        'invisible' => array(
          'input[name="fields[' . $field['field_name'] . '][settings_edit_form][settings][pager][enabled]"]' => array(
            'checked' => FALSE,
          ),
        ),
      ),
    );
  }
  return $element;
}