class AmpCustomStyle in Accelerated Mobile Pages (AMP) 8.3
Provides a render element for the amp-custom style tag.
Properties:
- #tag: The tag name to output.
- #value: (string, optional) A string containing the textual contents of the tag.
Plugin annotation
@RenderElement("amp_custom_style");
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\Core\Render\Element\RenderElement implements ElementInterface
- class \Drupal\Core\Render\Element\HtmlTag
- class \Drupal\amp\Element\AmpCustomStyle
- class \Drupal\Core\Render\Element\HtmlTag
- class \Drupal\Core\Render\Element\RenderElement implements ElementInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of AmpCustomStyle
1 #type use of AmpCustomStyle
- AmpCssCollectionRenderer::render in src/
Asset/ AmpCssCollectionRenderer.php - Renders an asset collection.
File
- src/
Element/ AmpCustomStyle.php, line 21
Namespace
Drupal\amp\ElementView source
class AmpCustomStyle extends HtmlTag {
/**
* {@inheritdoc}
*/
public static function preRenderHtmlTag($element) {
// An HTML tag should not contain any special characters. Escape them to
// ensure this cannot be abused.
$escaped_tag = HtmlUtility::escape($element['#tag']);
// We can't pass amp-custom in as an attribute, a key/value pair will not
// validate, we must force it to be rendered <style amp-custom>...</style>.
$open_tag = '<' . $escaped_tag . ' amp-custom>';
$close_tag = '</' . $escaped_tag . ">\n";
// Avoid escaping valid css attributes.
// For instance '.content > li' would be converted to '.content > li'
$markup = $element['#value'];
$markup = str_replace('>', 'xxxxxxxxxx', $markup);
$markup = $markup instanceof MarkupInterface ? $markup : Xss::filterAdmin($markup);
$markup = str_replace('xxxxxxxxxx', '>', $markup);
$markup = Markup::create($markup);
// Avoid re-escaping valid css attributes in later sanitization if $markup
// is set in #markup by setting the value in #children instead.
$element['#markup'] = "\n";
$element['#children'] = $markup;
$element['#prefix'] = Markup::create($open_tag);
$element['#suffix'] = Markup::create($close_tag);
return $element;
}
/**
* {@inheritdoc}
*/
public static function preRenderConditionalComments($element) {
// Browser-specific comments won't apply or work in AMP inline styles.
return $element;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AmpCustomStyle:: |
public static | function |
Pre-render callback: Renders #browsers into #prefix and #suffix. Overrides HtmlTag:: |
|
AmpCustomStyle:: |
public static | function |
Pre-render callback: Renders a generic HTML tag with attributes. Overrides HtmlTag:: |
|
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 | |
HtmlTag:: |
protected static | property | Void elements do not contain values or closing tags. | |
HtmlTag:: |
public | function |
Returns the element properties for this element. Overrides ElementInterface:: |
|
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 |
RenderElement:: |
public static | function | Adds Ajax information about an element to communicate with JavaScript. | |
RenderElement:: |
public static | function | Adds members of this group as actual elements for rendering. | |
RenderElement:: |
public static | function | Form element processing handler for the #ajax form property. | 1 |
RenderElement:: |
public static | function | Arranges elements into groups. | |
RenderElement:: |
public static | function |
Sets a form element's class attribute. Overrides ElementInterface:: |
|
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. |