You are here

public function BlazyAdminExtended::fieldableForm in Blazy 8.2

Same name and namespace in other branches
  1. 8 src/Dejavu/BlazyAdminExtended.php \Drupal\blazy\Dejavu\BlazyAdminExtended::fieldableForm()

Returns re-usable fieldable formatter form elements.

File

src/Dejavu/BlazyAdminExtended.php, line 53

Class

BlazyAdminExtended
Provides re-usable admin functions, or form elements.

Namespace

Drupal\blazy\Dejavu

Code

public function fieldableForm(array &$form, $definition = []) {
  if (isset($definition['images'])) {
    $form['image'] = $this
      ->baseForm($definition)['image'];
  }
  if (isset($definition['thumbnails'])) {
    $form['thumbnail'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Thumbnail image'),
      '#options' => is_array($definition['thumbnails']) ? $definition['thumbnails'] : [],
      '#description' => $this
        ->t('Leave empty to not use thumbnail pager.'),
    ];
  }
  if (isset($definition['overlays'])) {
    $form['overlay'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Overlay media'),
      '#options' => is_array($definition['overlays']) ? $definition['overlays'] : [],
      '#description' => $this
        ->t('Overlay is displayed over the main stage.'),
    ];
  }
  if (isset($definition['titles'])) {

    // Ensures to not override Views content/ entity title, just formatters.
    if (!empty($definition['images']) && empty($definition['_views'])) {
      $definition['titles']['title'] = $this
        ->t('Image Title');
    }
    $form['title'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Title'),
      '#options' => is_array($definition['titles']) ? $definition['titles'] : [],
      '#description' => $this
        ->t('If provided, it will be wrapped with H2. Also supported the basic non-field Image title'),
    ];
  }
  if (isset($definition['links'])) {
    $form['link'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Link'),
      '#options' => is_array($definition['links']) ? $definition['links'] : [],
      '#description' => $this
        ->t('Link to content: Read more, View Case Study, etc.'),
    ];
  }
  if (isset($definition['classes'])) {
    $form['class'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Item class'),
      '#options' => is_array($definition['classes']) ? $definition['classes'] : [],
      '#description' => $this
        ->t('If provided, individual item will have this class, e.g.: to have different background with transparent images. Be sure its formatter is Key or Label. Accepted field types: list text, string (e.g.: node title), term/entity reference label.'),
      '#weight' => 6,
    ];
  }
  if (!empty($definition['id'])) {
    $form['id'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('@namespace ID', [
        '@namespace' => $definition['namespace'],
      ]),
      '#size' => 40,
      '#maxlength' => 255,
      '#field_prefix' => '#',
      '#enforced' => TRUE,
      '#description' => $this
        ->t("<b>(Deprecated)</b>. Do not use this! Leave it empty, this option will be removed at future versions. It brings trouble than useful. <br>Old description: Manually define the container ID. <em>This ID is used for the cache identifier, so be sure it is unique</em>. Leave empty to have a guaranteed unique ID managed by the module, or if you see similar views while should be different."),
      '#weight' => 94,
    ];
  }
  if (isset($form['caption'])) {
    $form['caption']['#description'] = $this
      ->t('Enable any of the following fields as captions. These fields are treated and wrapped as captions.');
  }
  if (empty($definition['id'])) {
    if (isset($form['caption'])) {
      $form['caption']['#description'] .= ' ' . $this
        ->t('Be sure to make them visible at their relevant Manage display.');
    }
  }
  else {
    if (isset($form['overlay'])) {
      $form['overlay']['#description'] .= ' ' . $this
        ->t('Be sure to CHECK "Use field template" under its formatter if using Slick field formatter.');
    }
  }
}