aboutsummaryrefslogtreecommitdiff
path: root/src/Model/Menu.php
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2026-10-23 00:47:32 +0200
committerpolo <ordipolo@gmx.fr>2026-10-23 00:47:32 +0200
commitf27cca08ff786ceff1870147f6d6bad14d71117f (patch)
treed36597a72025313d6faf4ed228755fa267ebe2f6 /src/Model/Menu.php
parentc7309f900ef05bd5cb313110ec159b761af394ec (diff)
downloadcms-f27cca08ff786ceff1870147f6d6bad14d71117f.tar.gz
cms-f27cca08ff786ceff1870147f6d6bad14d71117f.tar.bz2
cms-f27cca08ff786ceff1870147f6d6bad14d71117f.zip
dossiers avec majuscule, namespace pour toutes les classes, autoload psr-4, UserDataService::createZip déplacé dans Backup
Diffstat (limited to 'src/Model/Menu.php')
-rw-r--r--src/Model/Menu.php44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/Model/Menu.php b/src/Model/Menu.php
new file mode 100644
index 0000000..6b08950
--- /dev/null
+++ b/src/Model/Menu.php
@@ -0,0 +1,44 @@
1<?php
2// src/Model/Menu.php
3
4declare(strict_types=1);
5
6namespace App\Model;
7
8use Doctrine\ORM\EntityManager;
9use Doctrine\Common\Collections\ArrayCollection;
10use App\Entity\Page;
11
12class Menu extends Page
13{
14 private array $other_pages = []; // pages n'apparaissant pas dans le menu
15
16 public function __construct(EntityManager $entityManager){
17 $this->children = new ArrayCollection();
18
19 $bulk_data = $entityManager
20 ->createQuery('SELECT n FROM App\Entity\Page n WHERE n.parent IS null') // :Doctrine\ORM\Query
21 ->getResult(); // :array de Page
22
23 foreach($bulk_data as $first_level_entries){
24 // dans le menu
25 if($first_level_entries->isInMenu()){
26 $this->addChild($first_level_entries);
27 }
28 // autres pages
29 else{
30 // attention, seul le premier élément du chemin est pris en compte
31 $this->other_pages[] = $first_level_entries;
32 }
33 }
34
35 foreach($this->getChildren() as $page){
36 $page->fillChildrenPagePath();
37 }
38 }
39
40 public function getOtherPages(): array
41 {
42 return $this->other_pages;
43 }
44} \ No newline at end of file