2015-08-18 00:00:26 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @file
|
|
|
|
* Contains \Drupal\image\ImageEffectBase.
|
|
|
|
*/
|
|
|
|
|
|
|
|
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}
|
|
|
|
*/
|
2015-09-04 20:20:09 +00:00
|
|
|
public function transformDimensions(array &$dimensions, $uri) {
|
2015-08-18 00:00:26 +00:00
|
|
|
// 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 array(
|
|
|
|
'#markup' => '',
|
|
|
|
'#effect' => array(
|
|
|
|
'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 array(
|
|
|
|
'uuid' => $this->getUuid(),
|
|
|
|
'id' => $this->getPluginId(),
|
|
|
|
'weight' => $this->getWeight(),
|
|
|
|
'data' => $this->configuration,
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* {@inheritdoc}
|
|
|
|
*/
|
|
|
|
public function setConfiguration(array $configuration) {
|
|
|
|
$configuration += array(
|
|
|
|
'data' => array(),
|
|
|
|
'uuid' => '',
|
|
|
|
'weight' => '',
|
|
|
|
);
|
|
|
|
$this->configuration = $configuration['data'] + $this->defaultConfiguration();
|
|
|
|
$this->uuid = $configuration['uuid'];
|
|
|
|
$this->weight = $configuration['weight'];
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* {@inheritdoc}
|
|
|
|
*/
|
|
|
|
public function defaultConfiguration() {
|
|
|
|
return array();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* {@inheritdoc}
|
|
|
|
*/
|
|
|
|
public function calculateDependencies() {
|
|
|
|
return array();
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|