class Media in GridStack 8.2
Provides the media styles for front-end.
Plugin annotation
@GridStackStylizer(
id = "media",
label = @Translation("Media")
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\gridstack\GridStackPluginBase implements GridStackPluginInterface
- class \Drupal\gridstack\GridStackStylizerPluginBase implements GridStackStylizerPluginInterface
- class \Drupal\gridstack\Plugin\gridstack\stylizer\StyleBase
- class \Drupal\gridstack\Plugin\gridstack\stylizer\Animation
- class \Drupal\gridstack\Plugin\gridstack\stylizer\Range
- class \Drupal\gridstack\Plugin\gridstack\stylizer\Color
- class \Drupal\gridstack\Plugin\gridstack\stylizer\Background
- class \Drupal\gridstack\Plugin\gridstack\stylizer\Media
- class \Drupal\gridstack\Plugin\gridstack\stylizer\Background
- class \Drupal\gridstack\Plugin\gridstack\stylizer\Color
- class \Drupal\gridstack\Plugin\gridstack\stylizer\Range
- class \Drupal\gridstack\Plugin\gridstack\stylizer\Animation
- class \Drupal\gridstack\Plugin\gridstack\stylizer\StyleBase
- class \Drupal\gridstack\GridStackStylizerPluginBase implements GridStackStylizerPluginInterface
- class \Drupal\gridstack\GridStackPluginBase implements GridStackPluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of Media
File
- src/
Plugin/ gridstack/ stylizer/ Media.php, line 18
Namespace
Drupal\gridstack\Plugin\gridstack\stylizerView source
class Media extends Background {
/**
* The field name to store media.
*
* @var string
*/
protected $fieldName;
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
$instance = parent::create($container, $configuration, $plugin_id, $plugin_definition);
if (!empty($configuration['field_name'])) {
$instance
->setFieldName($configuration['field_name']);
}
return $instance;
}
/**
* Returns the selected field name.
*/
public function getFieldName() {
return $this->fieldName;
}
/**
* Sets the field name.
*/
public function setFieldName($name) {
$this->fieldName = $name;
return $this;
}
/**
* Returns the formatted media as Blazy CSS background.
*/
public function buildMedia(array &$attributes, array &$settings) {
$data = $this
->prepareMedia($settings);
$config = $data['settings'];
if (isset($config['media_id']) && ($mid = $config['media_id'])) {
$media = MediaEntity::load($mid);
// @todo remove post blazy:2.1+.
if (isset($config['responsive_image_style']) && ($resimage = $config['responsive_image_style'])) {
$data['settings']['resimage'] = $this->blazyEntity
->blazyManager()
->entityLoad($resimage, 'responsive_image_style');
}
// Pass results to \Drupal\blazy\BlazyEntity.
$settings['has_media'] = TRUE;
$attributes['class'][] = 'is-gs-media';
return $this->blazyEntity
->build($data, $media, $media
->label());
}
return [];
}
/**
* Returns the formatted media as Blazy output.
*/
protected function prepareMedia(array $settings) {
$build = [];
$data = $this
->mediaSettings($settings);
if (!empty($data['media_id'])) {
// Unlike Bootstrap, Foundation wants large-12, etc., not cell-12.
// Specific for this, Foundation is less efficient than Bootstrap.
$build['wrapper_attributes']['class'][] = 'box__bg';
$build['attributes']['class'][] = 'b-noratio b-gs';
$build['attributes']['class'][] = $this
->getStyle('background', $settings) ? 'b-gs--bg' : 'b-gs--media';
if ($animations = $this
->getAnimation($settings, 'all')) {
foreach ($animations as $key => $value) {
$key = str_replace('_', '-', $key);
$key = $key == 'animation' ? $key : 'animation-' . $key;
// @todo pos blazy 2.1:
if ($key == 'animation') {
$data['fx'] = $value;
}
else {
$build['attributes']['data-' . $key] = $value;
}
}
// @todo $build['media_attributes']['class'][] = 'box__animated';
}
// Overlay is only applicable to image, not video, of course.
if ($data['media_source'] == 'image') {
$this
->prepareOverlay($data, $settings);
}
// Image opacity.
if (!empty($data['opacity']) && $data['opacity'] < 1) {
$build['attributes']['style'] = 'opacity: ' . $data['opacity'] . ';';
}
// Disable any effect, we'll toggle by JS till required instead.
// @todo figure out to make multiple animations work.
// @todo if (!empty($settings['_ipe'])) {
// @todo $data['_fx'] = '';
// @todo }
}
$build['settings'] = $data;
return $build;
}
/**
* Returns the media overlay.
*/
protected function prepareOverlay(array &$data, array $settings) {
$bg = $this
->getBackgroundColor($settings, FALSE);
$use_overlay = $this
->getStyle('overlay', $settings);
// Always output for admin for live preview to work.
// @todo use ::pseudo selector for front-end.
$overlay = [
'#theme' => 'container',
'#attributes' => [
'class' => [
'media__overlay',
],
],
];
// Only inline CSS at admin pages, front-end should be cleaner.
if ($use_overlay && $bg && !empty($settings['_ipe'])) {
$overlay['#attributes']['style'] = $bg;
}
// @todo post blazy 2.1
// @todo $build['overlay']['gridstack'] = $overlay;
// @todo $build['overlay']['gridstack']['#weight'] = 100;
$data['icon']['gridstack_overlay'] = $overlay;
$data['icon']['gridstack_overlay']['#weight'] = 100;
// Remove from front-end if not configured so.
if (empty($settings['_ipe'])) {
if ($use_overlay && empty($bg)) {
unset($data['icon']['gridstack_overlay']);
}
}
}
/**
* Returns the data understood by Blazy for CSS background.
*/
protected function mediaSettings(array $settings) {
$styles = empty($settings['styles']) ? [] : $settings['styles'];
$data = empty($styles['metadata']) ? [] : Json::decode($styles['metadata']);
// Hard-code settings for now to limit too many possibilities.
if ($data) {
$data['background'] = $this
->getStyle('background', $settings);
$data['media_switch'] = 'media';
$data['ratio'] = '';
$data['_detached'] = FALSE;
$data = array_merge($styles, $data);
return array_merge(GridStackDefault::entitySettings(), $data);
}
return [];
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Animation:: |
protected | function | Provides animation form elements. | |
Animation:: |
public static | function | Returns utilities settings. | |
Background:: |
protected | function | Returns the background colors grouped by the given key, w/o text colors. | |
Color:: |
protected | function | Provides extras form elements. | |
Color:: |
protected | function | Returns the text colors grouped by the given key. | |
Color:: |
protected | function | Return the color palette element. | |
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 | |
GridStackPluginBase:: |
protected | property | The layout breakpoints. | |
GridStackPluginBase:: |
protected | property | The optionset cell height. | |
GridStackPluginBase:: |
protected | property | The breakpoint columns. | |
GridStackPluginBase:: |
protected | property | The current user. | |
GridStackPluginBase:: |
protected | property | The gridstack manager service. | |
GridStackPluginBase:: |
protected | property | The optionset min-width. | |
GridStackPluginBase:: |
protected | property | The gridstack optionset. | |
GridStackPluginBase:: |
protected | property | The optionset vertical margin. | |
GridStackPluginBase:: |
protected | function | Returns gridstack config shortcut. | |
GridStackPluginBase:: |
public | function |
Gets default configuration for this plugin. Overrides ConfigurableInterface:: |
1 |
GridStackPluginBase:: |
public | function | ||
GridStackPluginBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
GridStackPluginBase:: |
public | function | ||
GridStackPluginBase:: |
public | function | ||
GridStackPluginBase:: |
public | function |
Returns the plugin label. Overrides GridStackPluginInterface:: |
|
GridStackPluginBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
|
GridStackPluginBase:: |
public | function | Sets the optionset. | |
GridStackPluginBase:: |
public | function | ||
GridStackStylizerPluginBase:: |
protected | property | The blazy entity service to support Media Library at Layout Builder pages. | |
GridStackStylizerPluginBase:: |
public | function | Provides gridstack skins and libraries. | 1 |
GridStackStylizerPluginBase:: |
protected | function | Returns unique variant ID. | |
GridStackStylizerPluginBase:: |
public | function | 1 | |
Media:: |
protected | property | The field name to store media. | |
Media:: |
public | function | Returns the formatted media as Blazy CSS background. | |
Media:: |
public static | function |
Creates an instance of the plugin. Overrides GridStackStylizerPluginBase:: |
|
Media:: |
public | function | Returns the selected field name. | |
Media:: |
protected | function | Returns the data understood by Blazy for CSS background. | |
Media:: |
protected | function | Returns the formatted media as Blazy output. | |
Media:: |
protected | function | Returns the media overlay. | |
Media:: |
public | function | Sets the field name. | |
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. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 92 |
Range:: |
protected | function | Returns the range element. | |
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. | |
StyleBase:: |
public | function | Provides both CSS grid and js-driven attributes configurable via UI. | |
StyleBase:: |
protected | function | Returns the CSS rule with a selector and sub selector if available. | |
StyleBase:: |
protected | function | Modifies any attributes relevant to use backgrounds. | |
StyleBase:: |
public | function | Returns an animation. | |
StyleBase:: |
protected | function | Checks for valid color excluding black (#000000) by design. | |
StyleBase:: |
protected | function | Returns available colors. | |
StyleBase:: |
public | function | Returns selectors and sub-selectors with context related to box levels. | |
StyleBase:: |
public | function | Returns a style. | |
StyleBase:: |
public | function | Returns the variant class. | |
StyleBase:: |
protected | function | Checks if it has colors. | |
StyleBase:: |
public | function | Modifies inline style to not nullify others. | |
StyleBase:: |
protected | function | Parses the string attribute: role|navigation,data-something|some value. | |
StyleBase:: |
protected | function | Parses the given string classes. | |
StyleBase:: |
public | function | Builds inline styles if so required with multiple instances on a page. | |
StyleBase:: |
protected | function | Return the style element. |