Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. <?php
  2.  
  3. namespace Drupal\hello\Controller;
  4.  
  5. use Drupal\Core\Controller\ControllerBase;
  6.  
  7. class HelloNodeListController extends ControllerBase {
  8.  
  9. public function content($nodetype = NULL) {
  10. $query = $this->entityTypeManager()->getStorage('node')->getQuery();
  11. // Si on a un argument dans l'URL, on ne cible que les noeuds correspondants.
  12. if ($nodetype) {
  13. $query->condition('type', $nodetype);
  14. }
  15. // On construit une requête paginée.
  16. $nids = $query->pager('10')->execute();
  17.  
  18. // Charge les noeuds correspondants au résultat de la requête.
  19. $nodes = $this->entityTypeManager()->getStorage('node')->loadMultiple($nids);
  20.  
  21. // Construit un tableau de liens vers les noeuds.
  22.  
  23. $items = [];
  24. foreach ($nodes as $node) {
  25. $items[] = $node->toLink();
  26. }
  27. $list = [
  28. '#theme' => 'item_list',
  29. '#items' => $items,
  30. '#title' => $this->t('Node list title'),
  31. ];
  32.  
  33. $pager = ['#type' => 'pager'];
  34.  
  35. return [
  36. 'list' => $list,
  37. 'pager' => $pager,
  38. '#cache' => [
  39. 'keys' => ['hello:node_list'],
  40. 'tags' => ['node_list'],
  41. 'contexts' => ['url'],
  42. ],
  43. ];
  44. }
  45.  
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement