You are here

class SchemaItemListElementBreadcrumbBase in Schema.org Metatag 8

All Schema.org Breadcrumb tags should extend this class.

Hierarchy

Expanded class hierarchy of SchemaItemListElementBreadcrumbBase

1 file declares its use of SchemaItemListElementBreadcrumbBase
SchemaWebPageBreadcrumb.php in schema_web_page/src/Plugin/metatag/Tag/SchemaWebPageBreadcrumb.php

File

src/Plugin/metatag/Tag/SchemaItemListElementBreadcrumbBase.php, line 10

Namespace

Drupal\schema_metatag\Plugin\metatag\Tag
View source
class SchemaItemListElementBreadcrumbBase extends SchemaItemListElementBase {

  /**
   * {@inheritdoc}
   */
  public function form(array $element = []) {
    $form = [
      '#type' => 'select',
      '#title' => $this
        ->label(),
      '#default_value' => $this
        ->value(),
      '#empty_option' => $this
        ->t('No'),
      '#empty_value' => '',
      '#options' => [
        'Yes' => $this
          ->t('Yes'),
      ],
      '#description' => $this
        ->description(),
      '#element_validate' => [
        [
          get_class($this),
          'validateTag',
        ],
      ],
    ];
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public static function testValue() {
    return 'Yes';
  }

  /**
   * {@inheritdoc}
   */
  public static function outputValue($input_value) {
    $output_value = parent::outputValue($input_value);
    $items = [];
    if (!empty($output_value)) {
      $items = [
        "@type" => "BreadcrumbList",
        "itemListElement" => $output_value,
      ];
    }
    return $items;
  }

  /**
   * {@inheritdoc}
   */
  public static function getItems($input_value) {
    $values = [];
    if (!empty($input_value)) {
      $entity_route = \Drupal::service('current_route_match')
        ->getCurrentRouteMatch();
      $breadcrumbs = \Drupal::service('breadcrumb')
        ->build($entity_route)
        ->getLinks();
      $key = 1;
      foreach ($breadcrumbs as $item) {

        // Modules that add the current page to the breadcrumb set it to an
        // empty path, so an empty path is the current path.
        $url = $item
          ->getUrl()
          ->setAbsolute()
          ->toString();
        if (empty($url)) {
          $url = Url::fromRoute('<current>')
            ->setAbsolute()
            ->toString();
        }
        $text = $item
          ->getText();
        $text = is_object($text) ? $text
          ->render() : $text;
        $values[$key] = [
          '@id' => $url,
          'name' => $text,
          'item' => $url,
        ];
        $key++;
      }
    }
    return $values;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
MetaNameBase::$absoluteUrl protected property True if the URL value(s) must be absolute.
MetaNameBase::$description protected property A longer explanation of what the field is for.
MetaNameBase::$group protected property The category this meta tag fits in.
MetaNameBase::$id protected property Machine name of the meta tag plugin.
MetaNameBase::$label protected property The title of the plugin.
MetaNameBase::$long protected property True if the tag should use a text area.
MetaNameBase::$multiple protected property True if more than one is allowed.
MetaNameBase::$name protected property Official metatag name. 1
MetaNameBase::$nameAttribute protected property The attribute this tag uses for the name. 3
MetaNameBase::$request protected property Retrieves the currently active request object.
MetaNameBase::$secure protected property True if URL must use HTTPS.
MetaNameBase::$type protected property Type of the value being stored.
MetaNameBase::$value protected property The value of the metatag in this instance.
MetaNameBase::description public function The meta tag's description.
MetaNameBase::group public function The meta tag group this meta tag belongs to.
MetaNameBase::id public function Obtain the meta tag's internal ID.
MetaNameBase::isActive public function Whether or not this meta tag is active.
MetaNameBase::isLong public function Whether or not this meta tag should use a text area.
MetaNameBase::label public function This meta tag's label.
MetaNameBase::multiple public function Whether or not this meta tag supports multiple values.
MetaNameBase::name public function The meta tag's machine name. 1
MetaNameBase::parseImageUrl protected function Extract any image URLs that might be found in a meta tag.
MetaNameBase::requiresAbsoluteUrl public function Whether or not this meta tag must output required absolute URLs.
MetaNameBase::secure public function Whether or not this meta tag must output secure (HTTPS) URLs.
MetaNameBase::tidy private function Make the string presentable.
MetaNameBase::type public function Obtain this meta tag's type.
MetaNameBase::validateTag public static function Validates the metatag data.
MetaNameBase::weight public function This meta tag's form field's weight.
MetaNameBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase::__construct
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
SchemaItemListElementBreadcrumbBase::form public function Generate a form element for this meta tag. Overrides SchemaItemListElementBase::form
SchemaItemListElementBreadcrumbBase::getItems public static function Process the input value into an array of items. Overrides SchemaItemListElementBase::getItems
SchemaItemListElementBreadcrumbBase::outputValue public static function Transform input value to its display output. Overrides SchemaItemListElementBase::outputValue
SchemaItemListElementBreadcrumbBase::testValue public static function Provide a test input value for the property that will validate. Overrides SchemaItemListElementBase::testValue
SchemaNameBase::$schemaMetatagManager protected property The schemaMetatagManager service.
SchemaNameBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create
SchemaNameBase::neverExplode protected function Nested elements that cannot be exploded.
SchemaNameBase::output public function Generate the HTML tag output for a meta tag. Overrides MetaNameBase::output 1
SchemaNameBase::parseImageUrlValue protected function Parse the image url out of image markup.
SchemaNameBase::pivotItem public static function
SchemaNameBase::processedTestValue public static function Provide a test output value for the input value. Overrides SchemaMetatagTestTagInterface::processedTestValue 17
SchemaNameBase::processItem protected function
SchemaNameBase::processTestExplodeValue public static function Explode a test value. Overrides SchemaMetatagTestTagInterface::processTestExplodeValue
SchemaNameBase::schemaMetatagManager protected function Return the SchemaMetatagManager.
SchemaNameBase::setSchemaMetatagManager public function Sets schemaMetatagManager service.
SchemaNameBase::setValue public function Metatag expects a string value, so serialize any array of values. Overrides MetaNameBase::setValue
SchemaNameBase::testDefaultValue public static function Provide a random test value. Overrides SchemaMetatagTestTagInterface::testDefaultValue
SchemaNameBase::value public function The serialized value for the metatag. Overrides MetaNameBase::value
SchemaNameBase::visibilitySelector protected function The #states base visibility selector for this element.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.