123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- <?php
- namespace Drupal\image;
- use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
- use Drupal\Core\Plugin\PluginBase;
- use Psr\Log\LoggerInterface;
- use Symfony\Component\DependencyInjection\ContainerInterface;
- /**
- * Provides a base class for image effects.
- *
- * @see \Drupal\image\Annotation\ImageEffect
- * @see \Drupal\image\ImageEffectInterface
- * @see \Drupal\image\ConfigurableImageEffectInterface
- * @see \Drupal\image\ConfigurableImageEffectBase
- * @see \Drupal\image\ImageEffectManager
- * @see plugin_api
- */
- abstract class ImageEffectBase extends PluginBase implements ImageEffectInterface, ContainerFactoryPluginInterface {
- /**
- * The image effect ID.
- *
- * @var string
- */
- protected $uuid;
- /**
- * The weight of the image effect.
- *
- * @var int|string
- */
- protected $weight = '';
- /**
- * A logger instance.
- *
- * @var \Psr\Log\LoggerInterface
- */
- protected $logger;
- /**
- * {@inheritdoc}
- */
- public function __construct(array $configuration, $plugin_id, $plugin_definition, LoggerInterface $logger) {
- parent::__construct($configuration, $plugin_id, $plugin_definition);
- $this->setConfiguration($configuration);
- $this->logger = $logger;
- }
- /**
- * {@inheritdoc}
- */
- public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
- return new static(
- $configuration,
- $plugin_id,
- $plugin_definition,
- $container->get('logger.factory')->get('image')
- );
- }
- /**
- * {@inheritdoc}
- */
- public function transformDimensions(array &$dimensions, $uri) {
- // Most image effects will not change the dimensions. This base
- // implementation represents this behavior. Override this method if your
- // image effect does change the dimensions.
- }
- /**
- * {@inheritdoc}
- */
- public function getDerivativeExtension($extension) {
- // Most image effects will not change the extension. This base
- // implementation represents this behavior. Override this method if your
- // image effect does change the extension.
- return $extension;
- }
- /**
- * {@inheritdoc}
- */
- public function getSummary() {
- return [
- '#markup' => '',
- '#effect' => [
- 'id' => $this->pluginDefinition['id'],
- 'label' => $this->label(),
- 'description' => $this->pluginDefinition['description'],
- ],
- ];
- }
- /**
- * {@inheritdoc}
- */
- public function label() {
- return $this->pluginDefinition['label'];
- }
- /**
- * {@inheritdoc}
- */
- public function getUuid() {
- return $this->uuid;
- }
- /**
- * {@inheritdoc}
- */
- public function setWeight($weight) {
- $this->weight = $weight;
- return $this;
- }
- /**
- * {@inheritdoc}
- */
- public function getWeight() {
- return $this->weight;
- }
- /**
- * {@inheritdoc}
- */
- public function getConfiguration() {
- return [
- 'uuid' => $this->getUuid(),
- 'id' => $this->getPluginId(),
- 'weight' => $this->getWeight(),
- 'data' => $this->configuration,
- ];
- }
- /**
- * {@inheritdoc}
- */
- public function setConfiguration(array $configuration) {
- $configuration += [
- 'data' => [],
- 'uuid' => '',
- 'weight' => '',
- ];
- $this->configuration = $configuration['data'] + $this->defaultConfiguration();
- $this->uuid = $configuration['uuid'];
- $this->weight = $configuration['weight'];
- return $this;
- }
- /**
- * {@inheritdoc}
- */
- public function defaultConfiguration() {
- return [];
- }
- /**
- * {@inheritdoc}
- */
- public function calculateDependencies() {
- return [];
- }
- }
|