Vous n'êtes pas identifié(e).
je termine ce site : http://www.cd-formation.com/ziteplus/
La colonne de gauche est un Panneau latéral... présent dans toutes les pages... sauf dans la page "Toutes les Formations".
Dans cette page je ne veux pas voir cette colonne mais un sous-menu (ZLI2).
Ca marche avec ce code (allégé) :
switch($mapage[cPageIdent]) {
case 'formations-logiciels-bureautiques':
--> echo $zite->content['menu']
break;
default:
--> echo $zite->content['pnl4']
}
C'est OK quand on est dans la page "formations-logiciels-bureautiques"....
mais comment faire pour les multiples pages-filles de celle-ci (qui actuellement affichent le 'pnl4') ?
Je ne peux pas les mettres toutes dans un "case" !
Je voudrai : IF "case" = "parent" ALORS echo "Sous-menu" ! (je ne suis pas développeur
Stéphane
Webdesign AvantageWeb
Hors ligne
en fin de compte la solution existe en reprenant un vieux post (merci JPG)...
on peut appliquer un style (ou autre chose) à une rubrique... et toutes ses pages-filles par ce code :
$mapage = $zite->struct[$zite->truepage];
if ( ($mapage[cPageIdent]=='formations') || ($zite->struct[$mapage[cPagePere]][cPageIdent]=='formations') ) {
--> look spécifique
} else {
--> look normal
}
Mon problême est résolu, ça marche impec...
Stéphane
Webdesign AvantageWeb
Hors ligne
Question à JPG : est-ce envisageable (d'un point de vue fonctionnel) de mettre
dans un panneau latéral ce code : <?php echo $zite->content['menu'] ?>
(Exemple : je veux afficher les sous-menus dans certaines pages)
Car je l'ai testé mais rien ne s'affiche...
Stéphane
Webdesign AvantageWeb
Hors ligne
Bonsoir Stéphane,
de mémoire, $this->content['menu'] n'a pas encore de valeur a ce moment là
a+
Jean-Paul
ps, pour info: si le module xmenu est activé, la variable $this->content['xmenu'] est disponible a ce moment là
Hors ligne
Ok, je vais tester et donner le résultat.
Stéphane
Webdesign AvantageWeb
Hors ligne
$mapage = $zite->struct[$zite->truepage];
if ( ($mapage[cPageIdent]=='formations') || ($zite->struct[$mapage[cPagePere]][cPageIdent]=='formations') ) {
--> look spécifique
} else {
--> look normal
}
Le code ci-dessus fonctionne pour un sous-niveau (zli2)... mais voilà : j'ai maintenant des sous-sous-niveau (zli3) !... Et ça ne marche plus.
Est-ce envisageable un code du genre: ($zite->struct[$mapage[cPagePere]][cPageIdent][cPageIdent]=='formations') )
Dernière modification par Stefpei (04/02/2011 20:40:42)
Stéphane
Webdesign AvantageWeb
Hors ligne
Bonjour Stéphane,
peut-être faut-il revenir à la logique de fonctionnement intégrée à ZitePLUS 091
Si j'ai compris ce que tu souhaites, tu as une structure de page comme celle-ci
-page1
-pageFormations
--spf1
--spf2
---sspf1
---sspf2
--spf3
-page3
-page4
et tu veux afficher la page de type panneau (monpanneau1 par exemple) sur toutes les pages sauf la page pageFormations et ses sous-pages
et tu veux afficher une autre page de type panneau (monpanneau2) sur la page pageFormations et ses sous pages
Si oui, une solution possible en 091:
1) Adopter comme structure de page:
-page1
-pageFormations
--monpanneau3
--monpanneau2
--spf1
--spf2
---sspf1
---sspf2
--spf3
-page3
-page4
-monpanneau1
2) Dans monpanneau1 (visible partout sauf formations) et monpanneau2 (visible pages formations) tu mets ton code normal pour le panneau, sans te préoccuper de sa visibilité
3) C'est monpanneau3 qui va contrôler automatiquement le non affichage de monpanneau1
Il doit être de type PHP et contenir un code du type:
<?php
$this->content['localcss'].= " #pg_monpanneau1 {display:none}";
?>
Et voilà
Hors ligne
j'ai créé un Panneau dans lequel j'ai mis l'image :
Catalogue des Formations
suivie du code :
<style type="text/css">#ma-colonne1{display:none}</style>
--> tout fonctionne comme espéré !
Question à quoi correspond ton code : $this->content['localcss']
Stéphane
Webdesign AvantageWeb
Hors ligne
--> tout fonctionne comme espéré !
Super
Question à quoi correspond ton code : $this->content['localcss']
Cela permet à ZitePLUS de mettre le code css dans la section <head> de la page.
a+
Jean-Paul
Hors ligne
je viens de tester : $this->content['localcss'].= " #pg_monpanneau1 {display:none}";
effectivement c'est pas mal, ça permet d'envisager de nouvelles personnalisations !
mais, dans HEAD, ce contenu css (#pg_monpanneau1, etc...) apparait avant "cms.css" et "standard.css"...
Je pense qu'il devrait apparaitre en dernier, car c'est un style contextuel (particulier à une page), donc une surcouche des 2 premiers,
il doit donc être appelé en dernier... (mais peut-etre que mon cas est particulier ?)
Dernière modification par Stefpei (07/02/2011 14:43:34)
Stéphane
Webdesign AvantageWeb
Hors ligne
je viens de tester : $this->content['localcss'].= " #pg_monpanneau1 {display:none}";
effectivement c'est pas mal, ça permet d'envisager de nouvelles personnalisations !
Oui, d'autant plus qu'il y a aussi:
- $this->content['css'] : zitePLUS ne rajoute rien, le code css doit-être complet. C'est pour insérer des fichiers css externes comme par exemple le code ci-après
$this->content['css'].='<link href="manews.css" rel="stylesheet" type="text/css" />'
- $this->content['js'] pour rajouter du code javascript, toujours dans le <head> de la page.
Avec tout ça, on devrait pouvoir personnaliser ... avec un code propre qui respecte les standards
mais, dans HEAD, ce contenu css (#pg_monpanneau1, etc...) apparait avant "cms.css" et "standard.css"...
Je pense qu'il devrait apparaitre en dernier, car c'est un style contextuel (particulier à une page), donc une surcouche des 2 premiers,
il doit donc être appelé en dernier... (mais peut-etre que mon cas est particulier ?)
Disons que tu n'est pas le premier à me faire cette remarque
D'ailleurs, si tu regardes le code source, tu verras une remarque:
if (isset($this->content['localcss'])) {//test avant décision et base
J'hésite encore un peu sur la position définitive suite à vos remarques.
Au début, c'était plutôt dans une optique usage "système ziteplus" (et donc moins prioritaire qu'un style utilisateur)
... mais à l'usage ... on a plutôt tendance (moi compris ) à l'utiliser aussi (et surtout) dans les pages et donc il devrait être après ...
On va voir.
a+
Jean-Paul
Hors ligne