class ButtonShortcode in Shortcode 8
Same name and namespace in other branches
- 2.0.x shortcode_basic_tags/src/Plugin/Shortcode/ButtonShortcode.php \Drupal\shortcode_basic_tags\Plugin\Shortcode\ButtonShortcode
The image shortcode.
Plugin annotation
@Shortcode(
id = "button",
title = @Translation("Button"),
description = @Translation("Insert a link formatted like a button.")
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\shortcode\Plugin\ShortcodeBase implements ShortcodeInterface
- class \Drupal\shortcode_basic_tags\Plugin\Shortcode\ButtonShortcode
- class \Drupal\shortcode\Plugin\ShortcodeBase implements ShortcodeInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of ButtonShortcode
File
- shortcode_basic_tags/
src/ Plugin/ Shortcode/ ButtonShortcode.php, line 17
Namespace
Drupal\shortcode_basic_tags\Plugin\ShortcodeView source
class ButtonShortcode extends ShortcodeBase {
/**
* {@inheritdoc}
*/
public function process(array $attributes, $text, $langcode = Language::LANGCODE_NOT_SPECIFIED) {
// Merge with default attributes.
$attributes = $this
->getAttributes([
'path' => '<front>',
'url' => '',
'title' => '',
'class' => '',
'id' => '',
'style' => '',
'media_file_url' => FALSE,
], $attributes);
$url = $attributes['url'];
if (empty($url)) {
$url = $this
->getUrlFromPath($attributes['path'], $attributes['media_file_url']);
}
$title = $this
->getTitleFromAttributes($attributes['title'], $text);
$class = $this
->addClass($attributes['class'], 'button');
// Build element attributes to be used in twig.
$element_attributes = [
'href' => $url,
'class' => $class,
'id' => $attributes['id'],
'style' => $attributes['style'],
'title' => $title,
];
// Filter away empty attributes.
$element_attributes = array_filter($element_attributes);
$output = [
'#theme' => 'shortcode_button',
// Not required for rendering, just for extra context.
'#url' => $url,
'#attributes' => $element_attributes,
'#text' => $text,
];
return $this
->render($output);
}
/**
* {@inheritdoc}
*/
public function tips($long = FALSE) {
$output = [];
$output[] = '<p><strong>' . $this
->t('[button path="path" (class="additional class")]text[/button]') . '</strong> ';
if ($long) {
$output[] = $this
->t('Inserts a link formatted like as a button. The <em>path</em> parameter provides the link target (the default is the front page).
The <em>title</em> will be formatted as a link title (small tooltip over the link - helps for SEO).
Additional class names can be added by the <em>class</em> parameter.') . '</p>';
}
else {
$output[] = $this
->t('Inserts a link formatted as a button. Use the url parameter for the link.') . '</p>';
}
return implode(' ', $output);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ButtonShortcode:: |
public | function |
Performs the shortcode processing. Overrides ShortcodeInterface:: |
|
ButtonShortcode:: |
public | function |
Generates a filter's tip. Overrides ShortcodeBase:: |
|
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 | |
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:: |
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. | |
ShortcodeBase:: |
protected | property |
The plugin ID of this filter. Overrides PluginBase:: |
|
ShortcodeBase:: |
public | property | The name of the provider that owns this filter. | |
ShortcodeBase:: |
public | property | An associative array containing the configured settings of this filter. | |
ShortcodeBase:: |
public | property | A Boolean indicating whether this filter is enabled. | |
ShortcodeBase:: |
public | function | Add a class into a classes string if not already inside. | |
ShortcodeBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
|
ShortcodeBase:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
|
ShortcodeBase:: |
public | function |
Gets default configuration for this plugin. Overrides ConfigurableInterface:: |
|
ShortcodeBase:: |
public | function | Combines user attributes with known attributes. | |
ShortcodeBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
ShortcodeBase:: |
public | function |
Returns the administrative description for this shortcode plugin. Overrides ShortcodeInterface:: |
|
ShortcodeBase:: |
public | function | Returns image properties for a given image media entity id. | |
ShortcodeBase:: |
public | function |
Returns the administrative label for this shortcode plugin. Overrides ShortcodeInterface:: |
|
ShortcodeBase:: |
public | function | Get a media entity field. | |
ShortcodeBase:: |
public | function | Get the file url for a media object. | |
ShortcodeBase:: |
public | function | Extracts the media id from a 'media/x' system path. | |
ShortcodeBase:: |
public | function | Returns a suitable title string given the user provided title and text. | |
ShortcodeBase:: |
public | function | ||
ShortcodeBase:: |
public | function | Returns a url to be used in a link element given path or url. | |
ShortcodeBase:: |
public | function | Wrapper for renderPlain. | |
ShortcodeBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
|
ShortcodeBase:: |
public | function |
Generates a shortcode's settings form. Overrides ShortcodeInterface:: |
|
ShortcodeBase:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: |
|
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. |