get('default_pipeline')) { if ($default_pipeline = ImageAPIOptimizePipeline::load($default_pipeline_name)) { $options['__default__'] = t('Sitewide default pipeline: @name', array('@name' => $default_pipeline->label())); } } } foreach ($pipelines as $name => $pipeline) { $options[$name] = $pipeline->label(); } if (empty($options)) { $options[''] = t('No defined pipelines'); } return $options; } /** * Implements hook_entity_type_alter(). */ function imageapi_optimize_entity_type_alter(array &$entity_types) { /** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */ if (isset($entity_types['image_style'])) { $image_style = $entity_types['image_style']; $image_style->setClass('Drupal\imageapi_optimize\Entity\ImageStyleWithPipeline'); $image_style->setHandlerClass('list_builder', 'Drupal\imageapi_optimize\ImageStyleWithPipelineListBuilder'); $config_export = $image_style->get('config_export'); $config_export[] = 'pipeline'; $image_style->set('config_export', $config_export); } } /** * Implements hook_config_schema_info_alter(). */ function imageapi_optimize_config_schema_info_alter(&$definitions) { if (isset($definitions['image.style.*'])) { $definitions['image.style.*']['mapping']['pipeline']['type'] = 'string'; } } /** * Implements hook_form_FORM_ID_alter(). */ function imageapi_optimize_form_image_style_edit_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) { $entity = $form_state->getFormObject()->getEntity(); $form['pipeline'] = [ '#type' => 'select', '#title' => t('Image Optimize Pipeline'), '#options' => imageapi_optimize_pipeline_options(), '#default_value' => $entity->getPipeline(), '#description' => t('Optionally select an Image Optimization pipeline which will be applied after all effects in this image style.'), '#weight' => 10, ]; }