You are here

class SchemaItemListElementBase in Schema.org Metatag 8

All Schema.org itemListElement tags should extend this class.

Hierarchy

Expanded class hierarchy of SchemaItemListElementBase

1 file declares its use of SchemaItemListElementBase
SchemaMetatagTestItemListElement.php in tests/modules/schema_metatag_test/src/Plugin/metatag/Tag/SchemaMetatagTestItemListElement.php

File

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

Namespace

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

  /**
   * {@inheritdoc}
   */
  public function form(array $element = []) {
    $form = parent::form($element);
    $form['#description'] = $this
      ->t('To create a list, provide a token for a multiple value field, or a comma-separated list of values.');
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public static function outputValue($input_value) {
    $items = [];
    $values = static::getItems($input_value);
    if (!empty($values) && is_array($values)) {
      foreach ($values as $key => $value) {
        if (is_array($value)) {

          // Maps to Google all-in-one page view.
          if (array_key_exists('@type', $value)) {
            $items[] = [
              '@type' => 'ListItem',
              'position' => $key,
              'item' => $value,
            ];
          }
          elseif (array_key_exists('url', $value)) {
            $items[] = [
              '@type' => 'ListItem',
              'position' => $key,
              'url' => $value['url'],
            ];
          }
          elseif (array_key_exists('name', $value) && array_key_exists('item', $value)) {
            $items[] = [
              '@type' => 'ListItem',
              'position' => $key,
              'name' => $value['name'],
              'item' => $value['item'],
            ];
          }
        }
        else {
          $items[] = $value;
        }
      }
    }
    return $items;
  }

  /**
   * Process the input value into an array of items.
   *
   * Each type of ItemList can extend this to process the input value into a
   * list of items. The default behavior will be a simple array from a
   * comma-separated list.
   */
  public static function getItems($input_value) {
    if (!is_array($input_value)) {
      $input_value = SchemaMetatagManager::explode($input_value);
    }
    return $input_value;
  }

  /**
   * {@inheritdoc}
   */
  public static function testValue() {
    return static::testDefaultValue(3, ',');
  }

}

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.
SchemaItemListElementBase::form public function Generate a form element for this meta tag. Overrides MetaNameBase::form 2
SchemaItemListElementBase::getItems public static function Process the input value into an array of items. 2
SchemaItemListElementBase::outputValue public static function Transform input value to its display output. Overrides SchemaNameBase::outputValue 1
SchemaItemListElementBase::testValue public static function Provide a test input value for the property that will validate. Overrides SchemaNameBase::testValue 2
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.