You are here

function linkit_form_field_ui_field_edit_form_alter in Linkit 7.2

Same name and namespace in other branches
  1. 7.3 linkit.field.inc \linkit_form_field_ui_field_edit_form_alter()

Implements hook_form_FIELD_UI_FIELD_EDIT_FORM_alter().

File

./linkit.field.inc, line 118
Implementation for Fields and Linkit.

Code

function linkit_form_field_ui_field_edit_form_alter(&$form, &$form_state) {
  $instance = $form['#instance'];

  // Get allowed field and widget types.
  $allowed_field_types = linkit_allowed_field_types();
  $allowed_field = in_array($form['#field']['type'], $allowed_field_types);
  $allowed_widget_types = linkit_allowed_widget_types();
  $allowed_widget = in_array($form['instance']['widget']['type']['#value'], $allowed_widget_types);

  // Add the linkit settings to the field instance form.
  if ($allowed_field && $allowed_widget) {

    // Fieldset for Linkit settings on this field instance.
    $form['instance']['settings']['linkit'] = array(
      '#type' => 'fieldset',
      '#title' => t('Linkit field settings'),
      '#collapsible' => FALSE,
      '#collapsed' => FALSE,
    );

    // Enable Linkit on this field instance.
    $form['instance']['settings']['linkit']['enable'] = array(
      '#type' => 'checkbox',
      '#title' => t('Enable Linkit support.'),
      '#default_value' => isset($instance['settings']['linkit']['enable']) ? $instance['settings']['linkit']['enable'] : 0,
      '#description' => t('Do not use this for CKeditor and TinyMCE fields.'),
    );
    ctools_include('plugins');

    // Load all insert plugins.
    $plugins = ctools_get_plugins('linkit', 'linkit_insert');
    foreach ($plugins as $name => $plugin) {
      $options[$name] = $plugin['name'];
    }

    // Settings for input plugins.
    $form['instance']['settings']['linkit']['insert_plugin'] = array(
      '#type' => 'select',
      '#title' => t('Insert plugin'),
      '#options' => $options,
      '#empty_option' => t('- Select an insert plugin -'),
      '#default_value' => isset($instance['settings']['linkit']['insert_plugin']) ? $instance['settings']['linkit']['insert_plugin'] : '',
      '#states' => array(
        'invisible' => array(
          'input[name="instance[settings][linkit][enable]"]' => array(
            'checked' => FALSE,
          ),
        ),
        'required' => array(
          'input[name="instance[settings][linkit][enable]"]' => array(
            'checked' => TRUE,
          ),
        ),
      ),
      '#element_validate' => array(
        'linkit_field_insert_pluing_validate',
      ),
    );
  }
}