From 58d2a7f5f0b8fbb93730ad2332fa484bbfc80d4c Mon Sep 17 00:00:00 2001 From: polo Date: Mon, 29 Sep 2025 15:39:49 +0200 Subject: ordre des news inversables, champ chrono_order dans NodeData --- src/model/entities/Node.php | 2 +- src/model/entities/NodeData.php | 20 +++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) (limited to 'src/model') diff --git a/src/model/entities/Node.php b/src/model/entities/Node.php index c5df8d1..08961e0 100644 --- a/src/model/entities/Node.php +++ b/src/model/entities/Node.php @@ -174,7 +174,7 @@ class Node // cas particulier des news: utilise les dates au lieu des positions (les positions existent mais sont ignorées) if($this->getName() === 'news_block'){ - $this->sortNews($this->getNodeData()->getData()['chrono'] ?? false); // faux = ordre chronologique + $this->sortNews($this->getNodeData()->getChronoOrder() ?? false); // faux = ordre chronologique } else{ $this->sortChildren(false); diff --git a/src/model/entities/NodeData.php b/src/model/entities/NodeData.php index 99dda83..0d42f3a 100644 --- a/src/model/entities/NodeData.php +++ b/src/model/entities/NodeData.php @@ -30,7 +30,10 @@ class NodeData #[ORM\Column(type: "string", length: 255, nullable: true)] private ?string $presentation; - #[ORM\Column(type: "integer", length: 255, nullable: true)] + #[ORM\Column(type: "boolean", length: 255, nullable: true)] + private ?bool $chrono_order = null; + + #[ORM\Column(type: "integer", nullable: true)] private ?int $grid_cols_min_width = null; // pour le mode grille // liaison avec table intermédiaire @@ -42,7 +45,7 @@ class NodeData )] private Collection $images; - public function __construct(array $data, Node $node, Collection $images = new ArrayCollection, string $presentation = null) + public function __construct(array $data, Node $node, Collection $images = new ArrayCollection, ?string $presentation = null, ?bool $chrono_order = null) { $this->data = $data; $this->node = $node; @@ -50,6 +53,7 @@ class NodeData if(!empty($presentation) && $presentation === 'grid'){ $this->grid_cols_min_width = 250; } + $this->chrono_order = $chrono_order ?? null; } public function getId(): int @@ -60,7 +64,7 @@ class NodeData { return $this->data; } - /*public function setData(array $data): void + /*public function setData(array $data): void // entrée = tableau associatif { $this->data = $data; }*/ @@ -74,6 +78,8 @@ class NodeData unset($this->data[$key]); } } + + // spécifique aux blocs contenant des articles public function getPresentation(): ?string { return $this->presentation; @@ -91,6 +97,14 @@ class NodeData { $this->grid_cols_min_width = $columns; } + public function getChronoOrder(): bool + { + return $this->chrono_order ?? false; + } + public function setChronoOrder(bool $reverse_order): void + { + $this->chrono_order = $reverse_order; + } /*public function setNode(Node $node): void { -- cgit v1.2.3