You are here

class SchemaItemListElementBase in Schema.org Metatag 7

All Schema.org itemListElement tags should extend this class.

Hierarchy

Expanded class hierarchy of SchemaItemListElementBase

File

src/SchemaItemListElementBase.php, line 6

View source
class SchemaItemListElementBase extends SchemaNameBase {

  /**
   * {@inheritdoc}
   */
  public function getForm(array $options = []) {
    $form = parent::getForm($options);
    $form['value']['#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) {

        // Complex arrays of values are displayed as ListItem objects, otherwise
        // values are presented in a simple list.
        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
DrupalDefaultMetaTag::$data protected property The values submitted for this tag.
DrupalDefaultMetaTag::$info protected property All of the basic information about this tag.
DrupalDefaultMetaTag::$weight protected property This item's weight; used for sorting the output.
DrupalDefaultMetaTag::convertUrlToAbsolute protected function Make sure a given URL is absolute.
DrupalDefaultMetaTag::getWeight public function Calculate the weight of this meta tag. Overrides DrupalMetaTagInterface::getWeight
DrupalDefaultMetaTag::maxlength protected function Identify the maximum length of which strings will be allowed.
DrupalDefaultMetaTag::textSummary public static function Copied from text.module with the following changes:. Overrides DrupalMetaTagInterface::textSummary
DrupalDefaultMetaTag::tidyValue protected function Remove unwanted formatting from a meta tag.
DrupalDefaultMetaTag::truncate protected function Shorten a string to a certain length using ::textSummary().
DrupalTextMetaTag::getValue public function Get the string value of this meta tag. Overrides DrupalDefaultMetaTag::getValue 1
SchemaItemListElementBase::getForm public function Build the form for this meta tag. Overrides SchemaNameBase::getForm 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::description public function
SchemaNameBase::getElement public function Get the HTML tag for this meta tag. Overrides DrupalDefaultMetaTag::getElement 1
SchemaNameBase::getPluginId public function
SchemaNameBase::label public function
SchemaNameBase::multiple public function
SchemaNameBase::neverExplode public static function Nested elements that cannot be exploded.
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 Process an individual item.
SchemaNameBase::processTestExplodeValue public static function Explode a test value. Overrides SchemaMetatagTestTagInterface::processTestExplodeValue
SchemaNameBase::randomUrl public static function Random absolute url for testing. Overrides SchemaMetatagTestTagInterface::randomUrl
SchemaNameBase::schemaMetatagManager protected function Return the SchemaMetatagManager.
SchemaNameBase::t public function
SchemaNameBase::testDefaultValue public static function Provide a random test value. Overrides SchemaMetatagTestTagInterface::testDefaultValue
SchemaNameBase::value public function
SchemaNameBase::visibilitySelector protected function The #states visibility selector for this element.
SchemaNameBase::__construct function Constructor. Overrides DrupalDefaultMetaTag::__construct 1