annotate vendor/chi-teck/drupal-code-generator/templates/d8/plugin/menu-link.twig @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents c75dbcec494b
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\{{ machine_name }}\Plugin\Menu;
Chris@0 4
Chris@0 5 use Drupal\Core\Database\Connection;
Chris@0 6 use Drupal\Core\Menu\MenuLinkDefault;
Chris@0 7 use Drupal\Core\Menu\StaticMenuLinkOverridesInterface;
Chris@0 8 use Symfony\Component\DependencyInjection\ContainerInterface;
Chris@0 9
Chris@0 10 /**
Chris@0 11 * A menu link that displays count of messages.
Chris@0 12 */
Chris@0 13 class {{ class }} extends MenuLinkDefault {
Chris@0 14
Chris@0 15 /**
Chris@0 16 * The database connection.
Chris@0 17 *
Chris@0 18 * @var \Drupal\Core\Database\Connection
Chris@0 19 */
Chris@0 20 protected $dbConnection;
Chris@0 21
Chris@0 22 /**
Chris@0 23 * Constructs the plugin object.
Chris@0 24 *
Chris@0 25 * @param array $configuration
Chris@0 26 * A configuration array containing information about the plugin instance.
Chris@0 27 * @param string $plugin_id
Chris@0 28 * The plugin_id for the plugin instance.
Chris@0 29 * @param mixed $plugin_definition
Chris@0 30 * The plugin implementation definition.
Chris@0 31 * @param \Drupal\Core\Menu\StaticMenuLinkOverridesInterface $static_override
Chris@0 32 * The static override storage.
Chris@0 33 * @param \Drupal\Core\Database\Connection $db_connection
Chris@0 34 * The database connection.
Chris@0 35 */
Chris@0 36 public function __construct(array $configuration, $plugin_id, $plugin_definition, StaticMenuLinkOverridesInterface $static_override, Connection $db_connection) {
Chris@0 37 parent::__construct($configuration, $plugin_id, $plugin_definition, $static_override);
Chris@0 38 $this->dbConnection = $db_connection;
Chris@0 39 }
Chris@0 40
Chris@0 41 /**
Chris@0 42 * {@inheritdoc}
Chris@0 43 */
Chris@0 44 public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
Chris@0 45 return new static(
Chris@0 46 $configuration,
Chris@0 47 $plugin_id,
Chris@0 48 $plugin_definition,
Chris@0 49 $container->get('menu_link.static.overrides'),
Chris@0 50 $container->get('database')
Chris@0 51 );
Chris@0 52 }
Chris@0 53
Chris@0 54 /**
Chris@0 55 * {@inheritdoc}
Chris@0 56 */
Chris@0 57 public function getTitle() {
Chris@0 58 $count = $this->dbConnection->query('SELECT COUNT(*) FROM {messages}')->fetchField();
Chris@0 59 return $this->t('Messages (@count)', ['@count' => $count]);
Chris@0 60 }
Chris@0 61
Chris@0 62 /**
Chris@0 63 * {@inheritdoc}
Chris@0 64 */
Chris@0 65 public function getRouteName() {
Chris@0 66 return '{{ machine_name }}.messages';
Chris@0 67 }
Chris@0 68
Chris@0 69 /**
Chris@0 70 * {@inheritdoc}
Chris@0 71 */
Chris@0 72 public function getCacheTags() {
Chris@0 73 // @DCG Invalidate this tags when messages are created or removed.
Chris@0 74 return ['{{ machine_name }}.messages_count'];
Chris@0 75 }
Chris@0 76
Chris@0 77 }