abstract class TipPluginBase in Drupal 10
Same name and namespace in other branches
- 8 core/modules/tour/src/TipPluginBase.php \Drupal\tour\TipPluginBase
- 9 core/modules/tour/src/TipPluginBase.php \Drupal\tour\TipPluginBase
Defines a base tour item implementation.
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\tour\TipPluginBase implements TipPluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of TipPluginBase
See also
\Drupal\tour\TipPluginInterface
5 files declare their use of TipPluginBase
- TipPluginBaseTest.php in core/
modules/ tour/ tests/ src/ Unit/ TipPluginBaseTest.php - TipPluginImage.php in core/
modules/ tour/ tests/ tour_test/ src/ Plugin/ tour/ tip/ TipPluginImage.php - TipPluginImageLegacy.php in core/
modules/ tour/ tests/ tour_test/ src/ Plugin/ tour/ tip/ TipPluginImageLegacy.php - TipPluginText.php in core/
modules/ tour/ src/ Plugin/ tour/ tip/ TipPluginText.php - TipPluginTextLegacy.php in core/
modules/ tour/ tests/ tour_test/ src/ Plugin/ tour/ tip/ TipPluginTextLegacy.php
File
- core/
modules/ tour/ src/ TipPluginBase.php, line 15
Namespace
Drupal\tourView source
abstract class TipPluginBase extends PluginBase implements TipPluginInterface {
/**
* The label which is used for render of this tip.
*
* @var string
*/
protected $label;
/**
* Allows tips to take more priority that others.
*
* @var string
*/
protected $weight;
/**
* {@inheritdoc}
*/
public function id() {
return $this
->get('id');
}
/**
* {@inheritdoc}
*/
public function getLabel() {
return $this
->get('label');
}
/**
* {@inheritdoc}
*/
public function getWeight() {
return $this
->get('weight');
}
/**
* {@inheritdoc}
*/
public function get($key) {
if (!empty($this->configuration[$key])) {
return $this->configuration[$key];
}
}
/**
* {@inheritdoc}
*/
public function set($key, $value) {
$this->configuration[$key] = $value;
}
/**
* Determines the placement of the tip relative to the element.
*
* If null, the tip will automatically determine the best position based on
* the element's position in the viewport.
*
* @return string|null
* The tip placement relative to the element.
*
* @see https://shepherdjs.dev/docs/Step.html
*/
public function getLocation() : ?string {
$location = $this
->get('position');
// The location values accepted by PopperJS, the library used for
// positioning the tip.
assert(in_array(trim($location ?? ''), [
'auto',
'auto-start',
'auto-end',
'top',
'top-start',
'top-end',
'bottom',
'bottom-start',
'bottom-end',
'right',
'right-start',
'right-end',
'left',
'left-start',
'left-end',
'',
], TRUE), "{$location} is not a valid Tour Tip position value");
return $location;
}
/**
* The selector the tour tip will attach to.
*
* This is mapped to the `attachTo.element` property of the Shepherd tooltip
* options.
*
* @return null|string
* A selector string, or null for an unattached tip.
*
* @see https://shepherdjs.dev/docs/Step.html
*/
public function getSelector() : ?string {
return $this
->get('selector');
}
}