From 46d3c239a7ad2b00e86373f2fd0e829fdcba57f7 Mon Sep 17 00:00:00 2001 From: polo Date: Sat, 1 Nov 2025 17:54:22 +0100 Subject: =?UTF-8?q?utilisation=20des=20ic=C3=B4nes=20SVG=20=20du=20d=C3=A9?= =?UTF-8?q?p=C3=B4t=20twbs/bootstrap-icons=20pour=20les=20r=C3=A9seaux=20s?= =?UTF-8?q?ociaux,=20am=C3=A9lioration=20du=20CSS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/model/entities/NodeData.php | 2 +- src/view/AbstractBuilder.php | 17 +++++++++++++++++ src/view/HeadBuilder.php | 6 ++---- src/view/HeaderBuilder.php | 19 ++++++++++--------- src/view/templates/header.php | 3 ++- src/view/templates/new_page.php | 2 +- 6 files changed, 33 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/model/entities/NodeData.php b/src/model/entities/NodeData.php index b0aaef9..85cc0a6 100644 --- a/src/model/entities/NodeData.php +++ b/src/model/entities/NodeData.php @@ -13,7 +13,7 @@ use Doctrine\Common\Collections\Collection; // interface #[ORM\Table(name: TABLE_PREFIX . "node_data")] class NodeData { - static array $social_networks = ['facebook', 'instagram', 'linkedin', 'github']; // à completer + static array $social_networks = ['facebook', 'instagram', 'whatsapp', 'snapchat', 'tiktok', 'linkedin', 'github']; // à completer #[ORM\Id] #[ORM\GeneratedValue] diff --git a/src/view/AbstractBuilder.php b/src/view/AbstractBuilder.php index 3d315b1..b9a1d7f 100644 --- a/src/view/AbstractBuilder.php +++ b/src/view/AbstractBuilder.php @@ -57,4 +57,21 @@ abstract class AbstractBuilder { $this->html .= $html; } + + protected function insertSVG(string $path, array $attributes = []): string + { + $svg = file_get_contents($path); + + // modification des attributs + if(!empty($attributes)){ + $dom = new DOMDocument(); + $dom->loadXML($svg); + $svg_elem = $dom->documentElement; + foreach($attributes as $key => $value){ + $svg_elem->setAttribute($key, $value); + } + $svg = $dom->saveXML($svg_elem); + } + return $svg; + } } \ No newline at end of file diff --git a/src/view/HeadBuilder.php b/src/view/HeadBuilder.php index e3d620c..fa0f063 100644 --- a/src/view/HeadBuilder.php +++ b/src/view/HeadBuilder.php @@ -18,14 +18,12 @@ class HeadBuilder extends AbstractBuilder $page = Model::$page_path->getLast(); $css = ''; - foreach($page->getCSS() as $name) - { + foreach($page->getCSS() as $name){ $css .= '' . "\n"; } $js = ''; - foreach($page->getJS() as $name) - { + foreach($page->getJS() as $name){ $js .= '' . "\n"; } diff --git a/src/view/HeaderBuilder.php b/src/view/HeaderBuilder.php index 1339659..266aab8 100644 --- a/src/view/HeaderBuilder.php +++ b/src/view/HeaderBuilder.php @@ -11,6 +11,7 @@ class HeaderBuilder extends AbstractBuilder { private ?Node $nav = null; private ?Node $breadcrumb = null; + const ICON_PATH = 'icons/'; public function __construct(Node $node) { @@ -55,7 +56,6 @@ class HeaderBuilder extends AbstractBuilder // assets dans classe header_additional_inputs $admin_favicon = ' - '; $admin_background = ' @@ -80,7 +80,6 @@ class HeaderBuilder extends AbstractBuilder '; // icônes réseaux sociaux - $header_social_flex_direction = 'column'; // boucle sur la liste complète de réseaux sociaux foreach(NodeData::$social_networks as $network){ $checked = (isset($social_show[$network]) && $social_show[$network]) ? 'checked' : ''; @@ -88,15 +87,16 @@ class HeaderBuilder extends AbstractBuilder $social_networks .= '
- - '. $network . '_alt - - + ' + . $this->insertSVG(self::ICON_PATH . $network . '.svg', ['id' => 'header_' . $network . '_content', 'class' => ($checked ? 'svg_fill_red' : '')]) + . ' + - +
'; + // {'has_content': false} => InputToggle ne gèrera pas cette balise } } else{ @@ -106,14 +106,15 @@ class HeaderBuilder extends AbstractBuilder $admin_header_title = ''; $admin_header_description = ''; - $header_social_flex_direction = 'row'; if(isset($social_show)){ // boucle sur les réseaux sociaux "activés" foreach(array_keys($social_show) as $network){ if($social_show[$network]){ $href = (isset($social[$network]) && $social[$network] !== '') ? 'href="' . $social[$network] . '"' : ''; $social_networks .= '
- '. $network . '_alt + ' + . $this->insertSVG(self::ICON_PATH . $network . '.svg', ['id' => 'header_' . $network . '_content','class' => 'svg_fill_red']) + . '
'; } } diff --git a/src/view/templates/header.php b/src/view/templates/header.php index 4c39cfd..a2d472d 100644 --- a/src/view/templates/header.php +++ b/src/view/templates/header.php @@ -35,7 +35,7 @@
-
+
@@ -44,6 +44,7 @@