You are here

function _assets_in_editor_form_add_default_fields in Asset 7

Adds a fields for an asset tag values to the given form.

2 calls to _assets_in_editor_form_add_default_fields()
assets_override_form in includes/asset.admin.inc
Page callback for asset override form in wysiwyg.
assets_wysiwyg_form in includes/asset.admin.inc
Page callback for wysiwyg form.

File

includes/asset.admin.inc, line 249
Asset admin page callbacks.

Code

function _assets_in_editor_form_add_default_fields(&$form, $asset, $options) {
  $entity_info = $asset
    ->entityInfo();
  $align = isset($options['align']) && in_array($options['align'], array(
    'center',
    'left',
    'right',
    '',
  ), TRUE) ? $options['align'] : '';
  $mode = isset($options['mode']) ? $options['mode'] : '';
  $modes = array();
  $modes_count = 0;

  // To get the human titles.
  $view_modes = $entity_info['view modes'];
  $wysiwyg_modes = _assets_get_wysiwyg_modes($asset->type);
  if (!empty($wysiwyg_modes)) {
    foreach ($wysiwyg_modes as $view_mode_name) {
      $modes[$view_mode_name] = $view_modes[$view_mode_name]['label'];
    }
    $modes_count = count($modes);

    // If default mode is empty or non-existed, use first as default.
    if (!array_key_exists($mode, $modes) && $modes_count) {
      reset($modes);
      $mode = key($modes);
    }
    if ($modes_count > 1) {
      $form['view_mode'] = array(
        '#type' => 'select',
        '#title' => t('Display mode'),
        '#default_value' => $mode,
        '#options' => $modes,
        '#weight' => 29,
      );
    }
    else {
      $form['view_mode'] = array(
        '#type' => 'value',
        '#value' => $mode,
      );
    }
  }

  // A convention that default view mode shouldn't have align options.
  if (1 >= $modes_count && $mode === ASSET_DEFAULT_MODE) {
    $form['align'] = array(
      '#type' => 'value',
      '#value' => '',
    );
  }
  else {
    $form['align'] = array(
      '#type' => 'radios',
      '#title_display' => 'before',
      '#title' => t('Alignment'),
      '#default_value' => $align,
      '#options' => array(
        '' => t('None'),
        'center' => t('Center'),
        'left' => t('Left'),
        'right' => t('Right'),
      ),
      '#weight' => 30,
    );
    if ($modes_count > 1) {
      $form['align']['#states'] = array(
        'visible' => array(
          ':input[name=view_mode]' => array(
            'value' => 'small',
          ),
        ),
      );
    }
  }
  return $form;
}