Drupal → Добавить в мета-тег canonical номер текущей страницы

19.05.2016

Модуль Metatag не позволяет с помощью токенов добавить в canonical номер текущей страницы. Создадим собственный токен [current-page:url:with-current-pager]:

/**
 * Implements hook_token_info().
 */
function modulename_token_info() {
  return array(
    'tokens' => array(
      'url' => array(
        'with-current-pager' => array(
          'name' => t('URL with current page number'),
          'description' => t('URL with current page number'),
        ),
      ),
    ),
  );
}

/**
 * Implements hook_tokens().
 */
function modulename_tokens($type, $tokens, array $data = array(), array $options = array()) {
  $replacements = array();

  if ($type == 'url') {
    /** @see token_tokens() */
    $url_options = array('absolute' => TRUE);
    if (isset($options['language'])) {
      $url_options['language'] = $options['language'];
    }
    if (isset($data['options'])) {
      $url_options = $data['options'] + $url_options;
    }

    foreach ($tokens as $name => $original) {
      if ($name == 'with-current-pager' && !empty($data['path'])) {
        if ($page = pager_find_page()) {
          $url_options['query']['page'] = $page;
        }
        $replacements[$original] = url($data['path'], $url_options);
      }
    }
  }

  return $replacements;
}

Результат:

Написанное актуально для
Drupal 7
Похожие записи

Добавить комментарий