You are here

class Robots in Metatag 8

The basic "Robots" meta tag.

Plugin annotation


@MetatagTag(
  id = "robots",
  label = @Translation("Robots"),
  description = @Translation("Provides search engines with specific directions for what to do when this page is indexed."),
  name = "robots",
  group = "advanced",
  weight = 1,
  type = "string",
  secure = FALSE,
  multiple = FALSE
)

Hierarchy

Expanded class hierarchy of Robots

1 string reference to 'Robots'
metatag.metatag_tag.schema.yml in config/schema/metatag.metatag_tag.schema.yml
config/schema/metatag.metatag_tag.schema.yml

File

src/Plugin/metatag/Tag/Robots.php, line 22

Namespace

Drupal\metatag\Plugin\metatag\Tag
View source
class Robots extends MetaNameBase {
  use StringTranslationTrait;

  /**
   * Sets the value of this tag.
   *
   * @param string|array $value
   *   The value to set to this tag.
   *   It can be an array if it comes from a form submission or from field
   *   defaults, in which case
   *   we transform it to a comma-separated string.
   */
  public function setValue($value) {
    if (is_array($value)) {
      $value = array_filter($value);
      $value = implode(', ', array_keys($value));
    }
    $this->value = $value;
  }

  /**
   * {@inheritdoc}
   */
  public function form(array $element = []) {

    // Prepare the default value as it is stored as a string.
    $default_value = [];
    if (!empty($this->value)) {
      $default_value = explode(', ', $this->value);
    }
    $form = [
      '#type' => 'checkboxes',
      '#title' => $this
        ->label(),
      '#description' => $this
        ->description(),
      '#options' => [
        'index' => $this
          ->t('index - Allow search engines to index this page (assumed).'),
        'follow' => $this
          ->t('follow - Allow search engines to follow links on this page (assumed).'),
        'noindex' => $this
          ->t('noindex - Prevents search engines from indexing this page.'),
        'nofollow' => $this
          ->t('nofollow - Prevents search engines from following links on this page.'),
        'noarchive' => $this
          ->t('noarchive - Prevents cached copies of this page from appearing in search results.'),
        'nosnippet' => $this
          ->t('nosnippet - Prevents descriptions from appearing in search results, and prevents page caching.'),
        'noodp' => $this
          ->t('noodp - Blocks the <a href=":opendirectory">Open Directory Project</a> description from appearing in search results.', [
          ':opendirectory' => 'http://www.dmoz.org/',
        ]),
        'noydir' => $this
          ->t('noydir - Prevents Yahoo! from listing this page in the <a href=":ydir">Yahoo! Directory</a>.', [
          ':ydir' => 'http://dir.yahoo.com/',
        ]),
        'noimageindex' => $this
          ->t('noimageindex - Prevent search engines from indexing images on this page.'),
        'notranslate' => $this
          ->t('notranslate - Prevent search engines from offering to translate this page in search results.'),
      ],
      'index' => [
        '#states' => [
          'disabled' => [
            [
              ':input[name="robots[noindex]"]' => [
                'checked' => TRUE,
              ],
            ],
            'or',
            [
              ':input[name*="[robots][noindex]"]' => [
                'checked' => TRUE,
              ],
            ],
          ],
        ],
      ],
      'noindex' => [
        '#states' => [
          'disabled' => [
            [
              ':input[name="robots[index]"]' => [
                'checked' => TRUE,
              ],
            ],
            'or',
            [
              ':input[name*="[robots][index]"]' => [
                'checked' => TRUE,
              ],
            ],
          ],
        ],
      ],
      'follow' => [
        '#states' => [
          'disabled' => [
            [
              ':input[name="robots[nofollow]"]' => [
                'checked' => TRUE,
              ],
            ],
            'or',
            [
              ':input[name*="[robots][nofollow]"]' => [
                'checked' => TRUE,
              ],
            ],
          ],
        ],
      ],
      'nofollow' => [
        '#states' => [
          'disabled' => [
            [
              ':input[name="robots[follow]"]' => [
                'checked' => TRUE,
              ],
            ],
            'or',
            [
              ':input[name*="[robots][follow]"]' => [
                'checked' => TRUE,
              ],
            ],
          ],
        ],
      ],
      '#default_value' => $default_value,
      '#required' => isset($element['#required']) ? $element['#required'] : FALSE,
      '#element_validate' => [
        [
          get_class($this),
          'validateTag',
        ],
      ],
    ];
    return $form;
  }

}

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::output public function Generate the HTML tag output for a meta tag. 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::value public function Obtain the current meta tag's raw value.
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.
Robots::form public function Generate a form element for this meta tag. Overrides MetaNameBase::form
Robots::setValue public function Sets the value of this tag. Overrides MetaNameBase::setValue
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.