Пример #1
0
 /**
  * {@inheritdoc}
  */
 public function form(array $form, FormStateInterface $form_state)
 {
     $user_input = $form_state->getUserInput();
     $form['#title'] = $this->t('Edit style %name', array('%name' => $this->entity->label()));
     $form['#tree'] = TRUE;
     $form['#attached']['library'][] = 'image/admin';
     // Show the thumbnail preview.
     $preview_arguments = array('#theme' => 'image_style_preview', '#style' => $this->entity);
     $form['preview'] = array('#type' => 'item', '#title' => $this->t('Preview'), '#markup' => drupal_render($preview_arguments), '#weight' => -5);
     // Build the list of existing image effects for this image style.
     $form['effects'] = array('#type' => 'table', '#header' => array($this->t('Effect'), $this->t('Weight'), $this->t('Operations')), '#tabledrag' => array(array('action' => 'order', 'relationship' => 'sibling', 'group' => 'image-effect-order-weight')), '#attributes' => array('id' => 'image-style-effects'), '#empty' => t('There are currently no effects in this style. Add one by selecting an option below.'), '#weight' => 5);
     foreach ($this->entity->getEffects() as $effect) {
         $key = $effect->getUuid();
         $form['effects'][$key]['#attributes']['class'][] = 'draggable';
         $form['effects'][$key]['#weight'] = isset($user_input['effects']) ? $user_input['effects'][$key]['weight'] : NULL;
         $form['effects'][$key]['effect'] = array('#tree' => FALSE, 'data' => array('label' => array('#plain_text' => $effect->label())));
         $summary = $effect->getSummary();
         if (!empty($summary)) {
             $summary['#prefix'] = ' ';
             $form['effects'][$key]['effect']['data']['summary'] = $summary;
         }
         $form['effects'][$key]['weight'] = array('#type' => 'weight', '#title' => $this->t('Weight for @title', array('@title' => $effect->label())), '#title_display' => 'invisible', '#default_value' => $effect->getWeight(), '#attributes' => array('class' => array('image-effect-order-weight')));
         $links = array();
         $is_configurable = $effect instanceof ConfigurableImageEffectInterface;
         if ($is_configurable) {
             $links['edit'] = array('title' => $this->t('Edit'), 'url' => Url::fromRoute('image.effect_edit_form', ['image_style' => $this->entity->id(), 'image_effect' => $key]));
         }
         $links['delete'] = array('title' => $this->t('Delete'), 'url' => Url::fromRoute('image.effect_delete', ['image_style' => $this->entity->id(), 'image_effect' => $key]));
         $form['effects'][$key]['operations'] = array('#type' => 'operations', '#links' => $links);
     }
     // Build the new image effect addition form and add it to the effect list.
     $new_effect_options = array();
     $effects = $this->imageEffectManager->getDefinitions();
     uasort($effects, function ($a, $b) {
         return strcasecmp($a['id'], $b['id']);
     });
     foreach ($effects as $effect => $definition) {
         $new_effect_options[$effect] = $definition['label'];
     }
     $form['effects']['new'] = array('#tree' => FALSE, '#weight' => isset($user_input['weight']) ? $user_input['weight'] : NULL, '#attributes' => array('class' => array('draggable')));
     $form['effects']['new']['effect'] = array('data' => array('new' => array('#type' => 'select', '#title' => $this->t('Effect'), '#title_display' => 'invisible', '#options' => $new_effect_options, '#empty_option' => $this->t('Select a new effect')), array('add' => array('#type' => 'submit', '#value' => $this->t('Add'), '#validate' => array('::effectValidate'), '#submit' => array('::submitForm', '::effectSave')))), '#prefix' => '<div class="image-style-new">', '#suffix' => '</div>');
     $form['effects']['new']['weight'] = array('#type' => 'weight', '#title' => $this->t('Weight for new effect'), '#title_display' => 'invisible', '#default_value' => count($this->entity->getEffects()) + 1, '#attributes' => array('class' => array('image-effect-order-weight')));
     $form['effects']['new']['operations'] = array('data' => array());
     return parent::form($form, $form_state);
 }
Пример #2
0
 /**
  * {@inheritdoc}
  */
 public function form(array $form, array &$form_state)
 {
     $form['#title'] = $this->t('Edit style %name', array('%name' => $this->entity->label()));
     $form['#tree'] = TRUE;
     $form['#attached']['css'][drupal_get_path('module', 'image') . '/css/image.admin.css'] = array();
     // Show the thumbnail preview.
     $preview_arguments = array('#theme' => 'image_style_preview', '#style' => $this->entity);
     $form['preview'] = array('#type' => 'item', '#title' => $this->t('Preview'), '#markup' => drupal_render($preview_arguments), '#weight' => -5);
     // Build the list of existing image effects for this image style.
     $form['effects'] = array('#theme' => 'image_style_effects', '#weight' => 5);
     foreach ($this->entity->getEffects() as $effect) {
         $key = $effect->getUuid();
         $form['effects'][$key]['#weight'] = isset($form_state['input']['effects']) ? $form_state['input']['effects'][$key]['weight'] : NULL;
         $form['effects'][$key]['label'] = array('#markup' => String::checkPlain($effect->label()));
         $form['effects'][$key]['summary'] = $effect->getSummary();
         $form['effects'][$key]['weight'] = array('#type' => 'weight', '#title' => $this->t('Weight for @title', array('@title' => $effect->label())), '#title_display' => 'invisible', '#default_value' => $effect->getWeight());
         $links = array();
         $is_configurable = $effect instanceof ConfigurableImageEffectInterface;
         if ($is_configurable) {
             $links['edit'] = array('title' => $this->t('Edit'), 'href' => 'admin/config/media/image-styles/manage/' . $this->entity->id() . '/effects/' . $key);
         }
         $links['delete'] = array('title' => $this->t('Delete'), 'href' => 'admin/config/media/image-styles/manage/' . $this->entity->id() . '/effects/' . $key . '/delete');
         $form['effects'][$key]['operations'] = array('#type' => 'operations', '#links' => $links);
         $form['effects'][$key]['configure'] = array('#type' => 'link', '#title' => $this->t('Edit'), '#href' => 'admin/config/media/image-styles/manage/' . $this->entity->id() . '/effects/' . $key, '#access' => $is_configurable);
         $form['effects'][$key]['remove'] = array('#type' => 'link', '#title' => $this->t('Delete'), '#href' => 'admin/config/media/image-styles/manage/' . $this->entity->id() . '/effects/' . $key . '/delete');
     }
     // Build the new image effect addition form and add it to the effect list.
     $new_effect_options = array();
     $effects = $this->imageEffectManager->getDefinitions();
     uasort($effects, function ($a, $b) {
         return strcasecmp($a['id'], $b['id']);
     });
     foreach ($effects as $effect => $definition) {
         $new_effect_options[$effect] = $definition['label'];
     }
     $form['effects']['new'] = array('#tree' => FALSE, '#weight' => isset($form_state['input']['weight']) ? $form_state['input']['weight'] : NULL);
     $form['effects']['new']['new'] = array('#type' => 'select', '#title' => $this->t('Effect'), '#title_display' => 'invisible', '#options' => $new_effect_options, '#empty_option' => $this->t('Select a new effect'));
     $form['effects']['new']['weight'] = array('#type' => 'weight', '#title' => $this->t('Weight for new effect'), '#title_display' => 'invisible', '#default_value' => count($form['effects']) - 1);
     $form['effects']['new']['add'] = array('#type' => 'submit', '#value' => $this->t('Add'), '#validate' => array(array($this, 'effectValidate')), '#submit' => array(array($this, 'effectSave')));
     return parent::form($form, $form_state);
 }