Bonsoir,
@Smiff :
Comme je l'indiquais plus haut, ta méthode m'intéresserait si je pouvais modifier plusieurs variables au même moment.
Si ton procédé consiste à séparer un seul argument (déclarer un lien du menu actif/inactif) du switch complet, je n'en vois pas trop l'intérêt car j'éparpillerais mon code en différents endroits - un bout de code pour ceci et un bout de code pour cela = galère assurée au retour pour modifier le site après 3 mois d'oubli.
Si le bref exemple ci-bas est envisageable ; ton modèle d'array associative appliqué à mes besoins deviendrait une array associative imbriquée. Au point de vue maintenance ça n'avancerait pas le schiimilimiliblick… et, je n'ose même pas imaginer comment écrire la boucle foreach() pour un tel cas. Le peu de cerveau qui me reste risque d'exploser et je ne tiens pas à repeindre le plafond et les murs de mon appartement après chaque surchauffe de l'intellect.
<?php
$linksArray = array
(
$accueil = array (
'page_ID' => 'accueil',
'page_inc' => $url.'pages/accueil.php',
'page_title' => 'le titre de la page dans la balise <title>',
'page_desc' => 'le contenu de la meta-balise description',
'meta_robots'=> '<meta name="robots" content="index, follow">'
),
$fabrication = array (
// etc… même modèle de liste
),
$services = array (
// etc.
),
$photos = array (
// etc.
),
$contact = array (
// etc.
),
);
?>
@Heyoan :
J'ai installé
l'exercice sur le serveur local, coté phpMyAdmin/SQL pas de problème. Les nombreuses variables affichent leurs nouvelles valeurs. Je comprends bien ou tu veux en venir pour m'aider.
J'avais déjà étudié ce tuto il y a… 2 ou 3 ans… mais j'avais vite abandonné car je n'avais pas confiance envers les bases de données. Je trouvais que ce n'était pas assez concret. A cette époque j'aimais bien voir le code en vrai (une vraie page en béton armé de html+php pour les includes). J'avais horreur d'envoyer (ou récupérer) des informations vers (ou depuis) un coin mystérieux de SQL. Je laissais le soin à un gestionnaire de contenu (WordPress) pour régler le problème si le client exigeait un site "super d'enfer". Mais je comprends à l'heure actuelle qu'il est impératif de composer avec les DB et qu'il faut que je cesse de dormir sur mes certitudes dépassées.
Bien apprécié le système pour le "chemin de fer" et j'entrevois mieux comment utiliser la procédure en général.
Entre autres choses, pour ce qui est de démarquer le lien de la page active des autres liens ; la récupération de $idpage me semble "cooler" de source.
@Gaylord.P :
Faudrait tout de même qu'on apporte un peu d'eau à ton moulin sinon tu vas penser qu'on squatte ton post.
La méthode pour modifier l'aspect du lien de la page affichée en CSS pur,
(CSS uniquement), existe mais demande beaucoup de travail (tant de possibilités à écrire et autant de pages que de possibilités que les doigts en sont meurtris)
Sans faire un tuto, je vais essayer d'être précis.
Prenons d'abord un menu en HTML pour bien voir ce que l'on veut faire :
<ul id="accueil" class="menu">
<li><a class="accueil" href="index.html">accueil</a></li>
<li><a class="cuisine" href="cuisine.html">cuisine</a></li>
<li><a class="poterie" href="poterie.html">poterie</a></li>
<li><a class="dessins" href="dessins.html">dessins</a></li>
</ul>
En écrivant une CSS comme celle-ci… tous les liens de la liste seront bleus sur fond blanc sauf "accueil" qui sera rouge sur fond noir :
ul.menu li a {
background: white;
color: blue;
}
#accueil .accueil li a {
background: black;
color: red;
}
Maintenant étendons notre affaire :
ul.menu li a {
background: white;
color: blue;
}
#accueil .accueil li a,
#cuisine .cuisine li a,
#poterie .poterie li a,
#dessins .dessins li a {
background: black;
color: red;
}
Maintenant c'est clair, à chaque fois qu'une ID en amont formera un couple avec une classe du même nom en aval, nous obtiendrons le résultat escompté.
C'est vrai, ce n'est valable que pour les sites statiques "cuits à l'ancienne au feu de bois" comportants "une page par page" et avec peu d'éléments au menu.
Mais ! avec php l'astuce n'a pas dit son dernier mot.
Tout d'abord l'ID qui forme couple avec la classe n'est pas obligatoirement indiquée dans <ul> mais peut aussi être présente dans n'importe quelle autre balise parente une <div> "Cro-Magnon" ou même <body> si l'on aime davantage le coté "Neandertal".
1/ Au lieu "d'une page par page", avec PHP l'ID du body sera changeante pour qu'une même page puisse accueillir toutes les autres et un des éléments de menu (menu identique sur toutes pages) formera toujours un couple (body-ID-Machin >> menu-li-a-class-Machin)
2/ Une autre possibilité est d'utiliser une CSS/PHP dynamique écrite dans l'espace <style> inséré dans <head> pour la simple indication qui nous intéresse, tout le CSS global restant sagement à sa place dans une feuille externe.
======================================
Note : L'astuce CSS est ancienne et proviendrait du site
www.hicksdesign.co.uk (le site de Jon Hicks, le graphiste qui a fait les logos de FireFox, ThunderBird, skEdit et beaucoup d'autres)