Nous allons creer un lien dynamique permettant d'afficher le lien "Mes commandes" dans le menu utilisateurs.
Pour creer un lien nous avons besoin de creer un fichier : [MODULE MACHINE NAME].links.menu.yml
Dans ce fichier nous allons ajouter :
[MODULE MACHINE NAME].user.orders:
title: 'Mes commandes'
weight: -10
route_name: view.commerce_user_orders.order_page
menu_name: account
view.commerce_user_orders.order_page represente la route à utiliser, cette route a besoin du paramettre user.Pour passer ce paramettre de maniere dynamique, nous allons ajouter une class:
[MODULE MACHINE NAME].user.orders:
title: 'Mes commandes'
weight: -10
route_name: view.commerce_user_orders.order_page
menu_name: account
class: Drupal\[MODULE MACHINE NAME]\Plugin\Menu\OrdersMenuLink
OrdersMenuLink.php
<?php
namespace Drupal\hbk_souscription_pfna\Plugin\Menu;
use Drupal\Core\Menu\MenuLinkBase;
/**
* Defines menu links provided by views.
*
* @see \Drupal\views\Plugin\Derivative\ViewsMenuLink
*/
class OrdersMenuLink extends MenuLinkBase {
/**
*
* {@inheritdoc}
* @see \Drupal\Core\Menu\MenuLinkInterface::getDescription()
*/
public function getDescription() {
return '';
}
/**
*
* {@inheritdoc}
* @see \Drupal\Core\Menu\MenuLinkInterface::getTitle()
*/
public function getTitle() {
return $this->t('My orders');
}
public function getRouteParameters() {
return [
'user' => \Drupal::currentUser()->id()
];
}
/**
*
* {@inheritdoc}
* @see \Drupal\Core\Menu\MenuLinkInterface::updateLink()
*/
public function updateLink(array $new_definition_values, $persist) {
}
}
Dans cette classe la methode getRouteParameters(), permet de renvoyer id de l'utilisateur connecté.Loading ...