intelligencebank-8.x-2.x-dev/modules/ib_dam_media/ib_dam_media.module

modules/ib_dam_media/ib_dam_media.module
<?php

/**
 * @file
 * IntelligenceBank DAM media integration module.
 */

use Drupal\Component\Serialization\Json;
use Drupal\Core\Link;
use Drupal\Core\Url;
use Drupal\Core\Form\FormStateInterface;

/**
 * Implements hook_form_FORM_ID_alter().
 *
 * Add Asset Browser button on media_library_add_form_upload form.
 */
function ib_dam_media_form_media_library_add_form_upload_alter(array &$form, FormStateInterface $formState): void {
  $url = Url::fromRoute('id_dam_media.asset_browser_form');
  $url->setOptions([
    'attributes' => [
      'class' => ['use-ajax', 'button', 'button--primary', 'js-button-add-ib-asset'],
      'data-dialog-type' => 'modal',
      'data-dialog-options' => Json::encode([
        'dialogClass' => 'media-library-widget-modal',
        'width' => '75%',
        'height' => 'window.innerHeight',
        'minHeight' => 500,
      ]),
    ],
    'query' => $formState->get('media_library_state')->all(),
  ]);

  $link = Link::fromTextAndUrl(t('Open IntelligenceBank Browser'), $url);

  $renderable_link = $link->toRenderable();

  $form['ib_dam_container'] = [
    "#type" => "container",
  ];
  $form['ib_dam_container']['asset_browser'] = $renderable_link;

  $form['ib_dam_container']['asset_browser']['#attached']['library'][] = 'core/drupal.dialog.ajax';
  $form['ib_dam_container']['asset_browser']['#attached']['library'][] = 'ib_dam/ckeditor';
  $dialogMode = 'regular';
  if ($dialogMode === 'stacked') {
    $form['ib_dam_container']['asset_browser']['#attached']['library'][] = 'ib_dam/dialog';
  }
}

/**
 * Implements hook_preprocess_HOOK().
 */
function ib_dam_media_preprocess_links__media_library_menu(&$variables) {
  if (!\Drupal::config('ib_dam.settings')->get('allow_embedding')) {
    unset($variables['links']['media-library-menu-ib_dam_embed']);
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc