Loading CHANGELOG.txt +1 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ Metatag 8.x-1.x-dev, xxxx-xx-xx #3080314 by matteodem, DamienMcKenna: Load metatag defaults based on entity language. #3072165 by vuil, DamienMcKenna: Coding standards improvements. #3074350 by jrockowitz, DamienMcKenna: Create Meta plugin report. Metatag 8.x-1.10, 2019-08-29 Loading README.txt +4 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,10 @@ The primary features include: * Integration with DrupalConsole [1] to provide a quick method of generating new meta tags. * A report page at /admin/reports/metatag-plugins which shows all of the meta tag plugins provided on the site, and indication as to which module provides them. Standard usage scenario -------------------------------------------------------------------------------- Loading metatag.links.menu.yml +5 −0 Original line number Diff line number Diff line Loading @@ -9,3 +9,8 @@ metatag.settings: route_name: metatag.settings description: 'Configure Metatag defaults.' parent: entity.metatag_defaults.collection metatag.reports_plugins: title: 'Metatag plugins' parent: system.admin_reports description: 'Overview of plugins used in metatag.' route_name: metatag.reports_plugins metatag.routing.yml +9 −0 Original line number Diff line number Diff line Loading @@ -58,3 +58,12 @@ metatag.settings: _permission: 'administer meta tags' options: _admin_route: TRUE # A custom report that shows all meta tags and what module they come from. metatag.reports_plugins: path: '/admin/reports/metatag-plugins' defaults: _controller: '\Drupal\metatag\Controller\MetatagController::reportPlugins' _title: 'Metatag plugins' requirements: _permission: 'administer meta tags' src/Controller/MetatagController.php 0 → 100644 +145 −0 Original line number Diff line number Diff line <?php namespace Drupal\metatag\Controller; use Drupal\Core\Controller\ControllerBase; use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\metatag\MetatagTagPluginManager; use Drupal\metatag\MetatagGroupPluginManager; use Symfony\Component\DependencyInjection\ContainerInterface; /** * Returns responses for Metatag routes. */ class MetatagController extends ControllerBase { use StringTranslationTrait; /** * Metatag tag plugin manager. * * @var \Drupal\metatag\MetatagTagPluginManager. */ protected $tagManager; /** * Metatag group plugin manager. * * @var \Drupal\metatag\MetatagGroupPluginManager. */ protected $groupManager; /** * Constructs a new \Drupal\views_ui\Controller\ViewsUIController object. * * @param \Drupal\views\ViewsData $tag * The Views data cache object. */ public function __construct(MetatagTagPluginManager $tag_manaager, MetatagGroupPluginManager $group_manager) { $this->tagManager = $tag_manaager; $this->groupManager = $group_manager; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container) { return new static( $container->get('plugin.manager.metatag.tag'), $container->get('plugin.manager.metatag.group') ); } /** * Lists all plugins. * * @return array * The Metatag plugins report page. */ public function reportPlugins() { // Get tags. $tag_definitions = $this->tagManager->getDefinitions(); uasort($tag_definitions, ['Drupal\Component\Utility\SortArray', 'sortByWeightElement']); $tags = []; foreach ($tag_definitions as $tag_name => $tag_definition) { $tags[$tag_definition['group']][$tag_name] = $tag_definition; } // Get groups. $group_definitions = $this->groupManager->getDefinitions(); uasort($group_definitions, ['Drupal\Component\Utility\SortArray', 'sortByWeightElement']); // Build plugin by group. $build = []; foreach ($group_definitions as $group_name => $group_definition) { $build[$group_name] = []; // Group title. $build[$group_name]['title'] = [ '#markup' => $group_definition['label'] . ' (' . $group_name . ')', '#prefix' => '<h2>', '#suffix' => '</h2>', ]; // Group description. $build[$group_name]['description'] = [ '#markup' => $group_definition['description'], '#prefix' => '<p>', '#suffix' => '</p>', ]; $rows = []; foreach ($tags[$group_name] as $definition) { $row = []; $row['label'] = [ 'data' => [ 'label' => [ '#markup' => $definition['label'], '#prefix' => '<h3>', '#suffix' => '</h3>', ], ], ]; $row['name'] = [ 'data' => $definition['name'], 'nowrap' => 'nowrap', ]; $row['id'] = $definition['id']; $row['type'] = $definition['type']; $row['weight'] = $definition['weight']; $row['secure'] = $definition['secure'] ? $this->t('Yes') : $this->t('No'); $row['multiple'] = $definition['multiple'] ? $this->t('Yes') : $this->t('No'); $row['provider'] = $definition['provider']; $key = $definition['group'] . '.' . $definition['id']; $rows[$key] = $row; $row = []; $row['description'] = [ 'data' => [ '#markup' => $definition['description'], ], 'colspan' => 8, ]; $rows[$key . '_desc'] = $row; } ksort($rows); $build[$group_name]['tags'] = [ '#type' => 'table', '#header' => [ ['data' => $this->t('Label / Description')], ['data' => $this->t('Name')], ['data' => $this->t('ID'), 'class' => [RESPONSIVE_PRIORITY_LOW]], ['data' => $this->t('Type'), 'class' => [RESPONSIVE_PRIORITY_LOW]], ['data' => $this->t('Weight'), 'class' => [RESPONSIVE_PRIORITY_LOW]], ['data' => $this->t('Secure'), 'class' => [RESPONSIVE_PRIORITY_LOW]], ['data' => $this->t('Multiple'), 'class' => [RESPONSIVE_PRIORITY_LOW]], ['data' => $this->t('Provided by')], ], '#rows' => $rows, '#suffix' => '<br /><br />', '#caption' => $this->t('All meta tags in the "@group" group.', ['@group' => $group_definition['label']]), '#sticky' => TRUE, ]; } return $build; } } Loading
CHANGELOG.txt +1 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ Metatag 8.x-1.x-dev, xxxx-xx-xx #3080314 by matteodem, DamienMcKenna: Load metatag defaults based on entity language. #3072165 by vuil, DamienMcKenna: Coding standards improvements. #3074350 by jrockowitz, DamienMcKenna: Create Meta plugin report. Metatag 8.x-1.10, 2019-08-29 Loading
README.txt +4 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,10 @@ The primary features include: * Integration with DrupalConsole [1] to provide a quick method of generating new meta tags. * A report page at /admin/reports/metatag-plugins which shows all of the meta tag plugins provided on the site, and indication as to which module provides them. Standard usage scenario -------------------------------------------------------------------------------- Loading
metatag.links.menu.yml +5 −0 Original line number Diff line number Diff line Loading @@ -9,3 +9,8 @@ metatag.settings: route_name: metatag.settings description: 'Configure Metatag defaults.' parent: entity.metatag_defaults.collection metatag.reports_plugins: title: 'Metatag plugins' parent: system.admin_reports description: 'Overview of plugins used in metatag.' route_name: metatag.reports_plugins
metatag.routing.yml +9 −0 Original line number Diff line number Diff line Loading @@ -58,3 +58,12 @@ metatag.settings: _permission: 'administer meta tags' options: _admin_route: TRUE # A custom report that shows all meta tags and what module they come from. metatag.reports_plugins: path: '/admin/reports/metatag-plugins' defaults: _controller: '\Drupal\metatag\Controller\MetatagController::reportPlugins' _title: 'Metatag plugins' requirements: _permission: 'administer meta tags'
src/Controller/MetatagController.php 0 → 100644 +145 −0 Original line number Diff line number Diff line <?php namespace Drupal\metatag\Controller; use Drupal\Core\Controller\ControllerBase; use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\metatag\MetatagTagPluginManager; use Drupal\metatag\MetatagGroupPluginManager; use Symfony\Component\DependencyInjection\ContainerInterface; /** * Returns responses for Metatag routes. */ class MetatagController extends ControllerBase { use StringTranslationTrait; /** * Metatag tag plugin manager. * * @var \Drupal\metatag\MetatagTagPluginManager. */ protected $tagManager; /** * Metatag group plugin manager. * * @var \Drupal\metatag\MetatagGroupPluginManager. */ protected $groupManager; /** * Constructs a new \Drupal\views_ui\Controller\ViewsUIController object. * * @param \Drupal\views\ViewsData $tag * The Views data cache object. */ public function __construct(MetatagTagPluginManager $tag_manaager, MetatagGroupPluginManager $group_manager) { $this->tagManager = $tag_manaager; $this->groupManager = $group_manager; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container) { return new static( $container->get('plugin.manager.metatag.tag'), $container->get('plugin.manager.metatag.group') ); } /** * Lists all plugins. * * @return array * The Metatag plugins report page. */ public function reportPlugins() { // Get tags. $tag_definitions = $this->tagManager->getDefinitions(); uasort($tag_definitions, ['Drupal\Component\Utility\SortArray', 'sortByWeightElement']); $tags = []; foreach ($tag_definitions as $tag_name => $tag_definition) { $tags[$tag_definition['group']][$tag_name] = $tag_definition; } // Get groups. $group_definitions = $this->groupManager->getDefinitions(); uasort($group_definitions, ['Drupal\Component\Utility\SortArray', 'sortByWeightElement']); // Build plugin by group. $build = []; foreach ($group_definitions as $group_name => $group_definition) { $build[$group_name] = []; // Group title. $build[$group_name]['title'] = [ '#markup' => $group_definition['label'] . ' (' . $group_name . ')', '#prefix' => '<h2>', '#suffix' => '</h2>', ]; // Group description. $build[$group_name]['description'] = [ '#markup' => $group_definition['description'], '#prefix' => '<p>', '#suffix' => '</p>', ]; $rows = []; foreach ($tags[$group_name] as $definition) { $row = []; $row['label'] = [ 'data' => [ 'label' => [ '#markup' => $definition['label'], '#prefix' => '<h3>', '#suffix' => '</h3>', ], ], ]; $row['name'] = [ 'data' => $definition['name'], 'nowrap' => 'nowrap', ]; $row['id'] = $definition['id']; $row['type'] = $definition['type']; $row['weight'] = $definition['weight']; $row['secure'] = $definition['secure'] ? $this->t('Yes') : $this->t('No'); $row['multiple'] = $definition['multiple'] ? $this->t('Yes') : $this->t('No'); $row['provider'] = $definition['provider']; $key = $definition['group'] . '.' . $definition['id']; $rows[$key] = $row; $row = []; $row['description'] = [ 'data' => [ '#markup' => $definition['description'], ], 'colspan' => 8, ]; $rows[$key . '_desc'] = $row; } ksort($rows); $build[$group_name]['tags'] = [ '#type' => 'table', '#header' => [ ['data' => $this->t('Label / Description')], ['data' => $this->t('Name')], ['data' => $this->t('ID'), 'class' => [RESPONSIVE_PRIORITY_LOW]], ['data' => $this->t('Type'), 'class' => [RESPONSIVE_PRIORITY_LOW]], ['data' => $this->t('Weight'), 'class' => [RESPONSIVE_PRIORITY_LOW]], ['data' => $this->t('Secure'), 'class' => [RESPONSIVE_PRIORITY_LOW]], ['data' => $this->t('Multiple'), 'class' => [RESPONSIVE_PRIORITY_LOW]], ['data' => $this->t('Provided by')], ], '#rows' => $rows, '#suffix' => '<br /><br />', '#caption' => $this->t('All meta tags in the "@group" group.', ['@group' => $group_definition['label']]), '#sticky' => TRUE, ]; } return $build; } }