From e73ea91a5999dc2cbadc00dfda18c839ef1a158b Mon Sep 17 00:00:00 2001 From: polo Date: Fri, 24 Oct 2025 16:36:57 +0200 Subject: =?UTF-8?q?hack=20de=20beau=20gosse=20pour=20autoriser=202=20paire?= =?UTF-8?q?s=20node=5Fdata=5Fid/asset=5Fid=20identiques=20dans=20nodedata?= =?UTF-8?q?=5Fasset,=20probl=C3=A8me=20permission=20de=20fichiers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller/HeadFootController.php | 2 +- src/model/entities/NodeDataAsset.php | 10 +++++----- src/view/HeaderBuilder.php | 27 +-------------------------- 3 files changed, 7 insertions(+), 32 deletions(-) (limited to 'src') diff --git a/src/controller/HeadFootController.php b/src/controller/HeadFootController.php index cf3aed0..a739df8 100644 --- a/src/controller/HeadFootController.php +++ b/src/controller/HeadFootController.php @@ -38,7 +38,7 @@ class HeadFootController } else{ if(!is_dir(Asset::USER_PATH)){ - mkdir(Asset::USER_PATH, 0700, true); + mkdir(Asset::USER_PATH, 0755, true); } /* -- téléchargement -- */ diff --git a/src/model/entities/NodeDataAsset.php b/src/model/entities/NodeDataAsset.php index 7f7008e..7f92fd1 100644 --- a/src/model/entities/NodeDataAsset.php +++ b/src/model/entities/NodeDataAsset.php @@ -1,7 +1,8 @@ ressource unique" (paires node_data/role uniques) +// doctrine gère mal les clés primaires triples, j'ai donc choisi une clé primaire double node_data_id/role declare(strict_types=1); @@ -11,7 +12,6 @@ use Doctrine\ORM\Mapping as ORM; #[ORM\Entity] #[ORM\Table(name: TABLE_PREFIX . 'nodedata_asset')] -#[ORM\UniqueConstraint(name: 'unique_role_per_node', columns: ['node_data_id', 'role'])] // un rôle UNIQUE pour chaque node_data_id, excellent! class NodeDataAsset { // clé primaire double @@ -22,13 +22,13 @@ class NodeDataAsset private NodeData $node_data; #[ORM\Id] + #[ORM\Column(type: 'string', length: 50)] + private string $role; + #[ORM\ManyToOne(targetEntity: Asset::class)] #[ORM\JoinColumn(name: 'asset_id', referencedColumnName: 'id_asset', onDelete: 'CASCADE')] private Asset $asset; - #[ORM\Column(type: 'string', length: 50)] - private string $role; - public function __construct(NodeData $node_data, Asset $asset, string $role){ $this->node_data = $node_data; $this->asset = $asset; diff --git a/src/view/HeaderBuilder.php b/src/view/HeaderBuilder.php index 44e244d..1c82368 100644 --- a/src/view/HeaderBuilder.php +++ b/src/view/HeaderBuilder.php @@ -45,34 +45,9 @@ class HeaderBuilder extends AbstractBuilder // réseaux sociaux + logo dans l'entête $header_logo = Asset::USER_PATH . $node_data->getAssetByRole('header_logo')?->getFileName() ?? ''; $header_background = Asset::USER_PATH . $node_data->getAssetByRole('header_background')?->getFileName() ?? ''; + $keys = array_keys($social); $social_networks = ''; - - // nécéssite des entrées dans la table node_asset - /*foreach($node->getNodeData()->getAssets() as $asset) - { - for($i = 0; $i < count($keys); $i++) - { - // réseaux sociaux - if(str_contains($asset->getFileName(), $keys[$i])){ - $social_networks .= ' - ' . $keys[$i] . '_alt'; - break; - } - // logo en-tête - //if(str_contains($asset->getFileName(), 'header_logo')){ - //$header_logo = rtrim($asset->getFilePathMini(), '/'); - //break; - //} - // image de fond - //if(str_contains($asset->getFileName(), 'header_background')){ - //$header_background = rtrim($asset->getFilePath(), '/'); - //break; - //} - } - }*/ - - // réseaux sociaux, chemin du ficher dans node_data à déplacer dans asset foreach($keys as $one_key){ $social_networks .= ' ' . $one_key . '_alt'; -- cgit v1.2.3