class Dropdown in Image Effects 8
Same name in this branch
- 8 src/Plugin/image_effects/FontSelector/Dropdown.php \Drupal\image_effects\Plugin\image_effects\FontSelector\Dropdown
- 8 src/Plugin/image_effects/ImageSelector/Dropdown.php \Drupal\image_effects\Plugin\image_effects\ImageSelector\Dropdown
Same name and namespace in other branches
- 8.3 src/Plugin/image_effects/FontSelector/Dropdown.php \Drupal\image_effects\Plugin\image_effects\FontSelector\Dropdown
- 8.2 src/Plugin/image_effects/FontSelector/Dropdown.php \Drupal\image_effects\Plugin\image_effects\FontSelector\Dropdown
Dropdown font selector plugin.
Provides access to a list of fonts stored in a directory, specified in configuration.
Plugin annotation
@Plugin(
id = "dropdown",
title = @Translation("Dropdown font selector"),
short_title = @Translation("Dropdown"),
help = @Translation("Access a list of fonts stored in the directory specified in configuration.")
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\image_effects\Plugin\ImageEffectsPluginBase implements ImageEffectsPluginBaseInterface
- class \Drupal\image_effects\Plugin\image_effects\FontSelector\Basic implements ImageEffectsFontSelectorPluginInterface
- class \Drupal\image_effects\Plugin\image_effects\FontSelector\Dropdown
- class \Drupal\image_effects\Plugin\image_effects\FontSelector\Basic implements ImageEffectsFontSelectorPluginInterface
- class \Drupal\image_effects\Plugin\ImageEffectsPluginBase implements ImageEffectsPluginBaseInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of Dropdown
1 string reference to 'Dropdown'
- image_effects.schema.yml in config/
schema/ image_effects.schema.yml - config/schema/image_effects.schema.yml
File
- src/
Plugin/ image_effects/ FontSelector/ Dropdown.php, line 21
Namespace
Drupal\image_effects\Plugin\image_effects\FontSelectorView source
class Dropdown extends Basic {
/**
* {@inheritdoc}
*/
public function defaultConfiguration() {
return [
'path' => '',
];
}
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state, array $ajax_settings = []) {
$element['path'] = [
'#type' => 'textfield',
'#title' => $this
->t('Path'),
'#default_value' => $this->configuration['path'],
'#maxlength' => 255,
'#element_validate' => [
[
$this,
'validatePath',
],
],
'#description' => $this
->t('Location of the directory where the fonts are stored.') . ' ' . $this
->t('Relative paths will be resolved relative to the Drupal installation directory.'),
];
return $element;
}
/**
* Validation handler for the 'path' element.
*/
public function validatePath($element, FormStateInterface $form_state, $form) {
if (!is_dir($element['#value'])) {
$form_state
->setErrorByName(implode('][', $element['#parents']), $this
->t('Invalid directory specified.'));
}
}
/**
* {@inheritdoc}
*/
public function selectionElement(array $options = []) {
// Get list of font names.
$fonts_list = $this
->getList();
if (empty($fonts_list)) {
$this->logger
->warning('No fonts available. Make sure at least one font is available in the directory specified in the <a href=":url">configuration page</a>.', [
':url' => Url::fromRoute('image_effects.settings')
->toString(),
]);
return [];
}
// Strip the path from the URI.
$options['#default_value'] = isset($options['#default_value']) ? pathinfo($options['#default_value'], PATHINFO_BASENAME) : '';
// Element.
return array_merge([
'#type' => 'select',
'#title' => $this
->t('Font'),
'#description' => $this
->t('Select a font.'),
'#options' => $fonts_list,
'#limit_validation_errors' => FALSE,
'#required' => TRUE,
'#element_validate' => [
[
$this,
'validateSelectorUri',
],
],
], $options);
}
/**
* Validation handler for the selection element.
*/
public function validateSelectorUri($element, FormStateInterface $form_state, $form) {
if (!empty($element['#value'])) {
if (file_exists($file_path = $this->configuration['path'] . '/' . $element['#value'])) {
$form_state
->setValueForElement($element, $file_path);
}
else {
$form_state
->setErrorByName(implode('][', $element['#parents']), $this
->t('The selected file does not exist.'));
}
}
}
/**
* Return an array of fonts.
*
* Scans through files available in the directory specified through
* configuration.
*
* @return array
* Array of font names.
*/
protected function getList() {
$filelist = [];
if (is_dir($this->configuration['path']) && ($handle = opendir($this->configuration['path']))) {
while ($file_name = readdir($handle)) {
if (preg_match("/\\.[ot]tf\$/i", $file_name) == 1) {
$filelist[$file_name] = trim(substr($file_name, 0, -4));
$font = $this
->getData($this->configuration['path'] . '/' . $file_name);
if (!empty($font['name'])) {
$filelist[$file_name] = $font['name'];
}
}
}
closedir($handle);
}
asort($filelist);
return $filelist;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Basic:: |
protected | function | Convert a dec to a hex. | |
Basic:: |
protected | function | Return the font information. | |
Basic:: |
public | function |
Get the description of a font file. Overrides ImageEffectsFontSelectorPluginInterface:: |
|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
Dropdown:: |
public | function |
Form constructor. Overrides ImageEffectsPluginBase:: |
|
Dropdown:: |
public | function |
Gets default configuration for this plugin. Overrides ImageEffectsPluginBase:: |
|
Dropdown:: |
protected | function | Return an array of fonts. | |
Dropdown:: |
public | function |
Return a form element to select the plugin content. Overrides Basic:: |
|
Dropdown:: |
public | function | Validation handler for the 'path' element. | |
Dropdown:: |
public | function |
Validation handler for the selection element. Overrides Basic:: |
|
ImageEffectsPluginBase:: |
protected | property | Configuration object for image_effects. | |
ImageEffectsPluginBase:: |
protected | property | The image_effects logger. | |
ImageEffectsPluginBase:: |
protected | property | The image_effects plugin type. | |
ImageEffectsPluginBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
|
ImageEffectsPluginBase:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
1 |
ImageEffectsPluginBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurablePluginInterface:: |
|
ImageEffectsPluginBase:: |
public | function |
Get the image_effects plugin type. Overrides ImageEffectsPluginBaseInterface:: |
|
ImageEffectsPluginBase:: |
public static | function |
Determines if plugin can be used. Overrides ImageEffectsPluginBaseInterface:: |
1 |
ImageEffectsPluginBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurablePluginInterface:: |
|
ImageEffectsPluginBase:: |
public | function |
Form submission handler. Overrides PluginFormInterface:: |
|
ImageEffectsPluginBase:: |
public | function |
Form validation handler. Overrides PluginFormInterface:: |
|
ImageEffectsPluginBase:: |
public | function |
Constructs a ImageEffectsPluginBase object. Overrides PluginBase:: |
1 |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |