Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

Vous n'êtes pas identifié(e).

#1 08/10/2009 21:43:33

doekia
Membre
Inscription : 08/10/2009
Messages : 18

module pour menu hierarchique

Pour les bûcherons, tout de suite le lien xmenu1.6.zip (zite-xmenu.php.zip (v1.0)).

[message du modérateur on]
Pour utiliser xmenu avec la version ZitePLUS 0.9.0, utiliser la version 1.7.1 de xmenu ici: http://www.zitecms.org/zite/forum/viewt … 4717#p4717
Pour utiliser xmenu avec la version ZitePLUS 0.9.1 utiliser la version 1.8 disponible ici: http://www.giausserand.fr/index.php?per … moduleplus
[message du modérateur off]

Comme j'avais besoin de menus hiérarchique, et plutôt que de simplement bidouiller le code de zite, je me suis construit un petit module.
Normalement c'est tout automatique (ou presque).

* Installez le module dans l'interface admin de Zite
* Activez le module (celà modifie votre index.php)
* Quand et où vous avez besoin du menu, ajoutez dans votre template <?php echo $zite->content['xmenu']; ?>
* C'est fini!!

Enfin maintenant vous pouvez passer au CSS car ce nouveau menu utilise les classes xzulx xzilx xzon xznest.
Parfait pour faire un menu horizontal en pur CSS.

Bon codage.
(d)oekia

EDIT4: la version 1.6 xmenu1.6.zip:
              - href de la page d'acceuil http://serveur/
              - pas de '.html' pour cPageTyp == 5 (?z=sitemap)
              - prise en charge du target=_blank

EDIT3: la version 1.5 xmenu1.5.zip:
             - ajoute un / manquant dans le cas d'un zite en sous-répertoire
             - ajout un </li> manquant
             - mis le correctif de la 1ere page improprement vue comme parent de toutes les autres

EDIT1: la version corrigé officielle de jpg:  cliquez ici pour la télécharger
              les modifications en deux mots:
              - passage du module en code objet (classe Txmenu) et adaptation pour une meilleure intégration dans ziteplus
              - prise en compte de la gestion des droits sur les pages
              - simplification du code pour identifier les pages enfants

EDIT2: j'ai modifié la ligne 43 de la version "jpg" sans quoi le première page semble être le père de toutes les autres (surement un bug de zite+)
43,44c43,44
<      $child = ($key==self::$cms->struct[$key+1][cPagePere])?' xnest':'';         // Nous avons des pages enfants
>      $child = (self::$cms->struct[$key+1][cPageRang] > $pg[cPageRang])?' xnest':'';   // Nous avons des pages enfants FIXME

Dernière modification par jpg (20/09/2010 18:22:44)

Hors ligne

#2 09/10/2009 00:07:32

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : module pour menu hierarchique

Beau boulot, Bravo cool

J'ai modifié un peu ton module et je l'ai passé en classe dérivant de Tmodule.
je mettrai en ligne demain la version modifiée et totalement compatible ziteplus.

Encore merci pour ce superbe travail
smile:):)

a+
jean-paul

Hors ligne

#3 09/10/2009 00:27:38

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : module pour menu hierarchique

une super contrib que j'attendais avec beaucoup d'impatience..
et c'est un 'ti nouveau qui nous l'offre, franchement bravo!
je vais pouvoir avancer plus vite que prévu

un énorme MERCI (d)oekia big_smile

++ vYk

Dernière modification par davyk (09/10/2009 00:28:40)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#4 09/10/2009 08:44:10

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : module pour menu hierarchique

Bonjour,
voici la version modifée: cliquez ici pour la télécharger

Pour l'utiliser, suivez les instructions données par doekia au début de ce thread et pensez à autoriser l'utilisation du module par tout le monde (sinon seul l'admin y a accès)
Ce module est compatible ziteplus à partir de la version 0.8.3

les modifications en deux mots:
- passage du module en code objet (classe Txmenu) et adaptation pour une meilleure intégration dans ziteplus
- prise en compte de la gestion des droits sur les pages
- simplification du code pour identifier les pages enfants
   

a+
jean-paul

Dernière modification par jpg (09/10/2009 11:55:23)

Hors ligne

#5 09/10/2009 10:45:38

doekia
Membre
Inscription : 08/10/2009
Messages : 18

Re : module pour menu hierarchique

Merci pour les félicitation :-) trop d'honneur....

Et je suis super content puisque mon code à reçu comme qui dirait l'agrément du développeur officiel de Zite+ et qu'il va pouvoir perdurer pour le futur... trop trop content.

Alors le message pour tous, faites des modules, postez les et vive Zite+

Par contre dit moi jean-paul si on généralise les modules ... ça va vite devenir le bazar pour l'install et la desinstall (qui patch l'index)... Faudrait peut-etre penser à ce que zite charge automatiquement ces dernier s'ils sont actif ... enfin je dis ça hein... juste mes 2 centimes dans l'édifice ...

a+

Hors ligne

#6 09/10/2009 12:09:01

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : module pour menu hierarchique

doekia a écrit :

Par contre dit moi jean-paul si on généralise les modules ... ça va vite devenir le bazar pour l'install et la desinstall (qui patch l'index)... Faudrait peut-etre penser à ce que zite charge automatiquement ces dernier s'ils sont actif ... enfin je dis ça hein... juste mes 2 centimes dans l'édifice ...

a+

Ziteplus charge déjà les modules actifs mais uniquement lorsqu'ils sont réellement utilisés

tu peux préciser ta pensée ?

a+
jean-paul

Hors ligne

#7 09/10/2009 13:02:29

doekia
Membre
Inscription : 08/10/2009
Messages : 18

Re : module pour menu hierarchique

Humm... chargé automatiquement ... oui c'est exact, mais aucune fonction de ce dernier n'est appelée aussi on doit patcher un élément (index.php)
afin d'appeler la fonction dojob (via page_module).

L'idée se serait d'avoir une fonction (dojob pour l'admin) qui permette de configurer le module si besoin comme celà existe aujourd'hui pour ga, et une autre fonction appelée automatiquement (dojob dans zite::builder()) pour donner une chance  au module de réagir sur les pages comme xmenu. Voire une fonction zite::plugins que nous insérerions systématiquement dans index.php "$zite->builder(); $zite->plugins();" qui énumèrerait les modules actifs et lancerait une fonction du-dit module et dans l'absolue cette fonction devrait pouvoir être différente de dojob() de l'admin.

Peut-être une nouvelle définition de l'interface standard avec Tmodule pour le futur: doAdmin() depuis l'admin et doPage() en mode actif et seulement dojob()  pour maintenir la compatibilité avec le passé. Bon je suis partagé sur la compatibilité avec le passé, c'est comme celà que l'on fait grossir inutilement le code ... passer un module dans le nouveau format ce n'est pas très long d'autant qu'il y a à ce jour assez peu de module ... (enfin publié roll, j'imagine que forum c'est un module  cool)

Et voilà comment fut lancé la version 0.8.4 (ou 1.0)  big_smile big_smile big_smile big_smile

En finissant cette explication, je me rends compte que c 'est un plugin en fait qu'est xmenu, mais doit-on créer une classe Tplugin avec toute sa gestion dans l'admin quand Tmodule pour quelques mineures adaptations nous tend les bras ... tongue

(d)oekia

Dernière modification par doekia (09/10/2009 13:06:57)

Hors ligne

#8 09/10/2009 15:07:44

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : module pour menu hierarchique

salut,
un petit retour sur le module (ou le plugin, comme on veut).
pour la version 1 j'avais un problème (le menu n'apparaissait pas, ni en local, ni en prod chez free) que j'ai résolu en passant l'include du fichier xmenu.php AVANT     $zite->builder();
j'ai le même problème résolu de la même manière.
première question dont on se fout royalement, en fait: pourquoi ce bug?
deuxième question: avez-vous ce même problème (je pense que non) et pouvez-vous "inverser" genre:   
$zite->page_module('xmenu');
$zite->builder();
dans index.php

c'est pas pour moi car je l'ai fait à la main sans encombre

++ vYk

PS: encore bravo pour le boulot les gars

Dernière modification par davyk (09/10/2009 15:08:19)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#9 09/10/2009 15:10:47

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : module pour menu hierarchique

ah oui 2 choses,

le dernier lien du menu est:
<li class="xzli1"><a class="xzli1" href="/zite8.3index.php?perma=index.php?z=sitemap">Plan du site</a></ul>
la balise li n'est pas fermée, est-ce normal?

de plus j'avais oublié le fait que les liens sont faux:
href="/zite8.3index.php?perma=index.php?z=sitemap"
au lieu de
href="/zite8.3/index.php?perma=index.php?z=sitemap" et ce, depuis la première version, du coup, errreur (avec 3 "r") 404 à tous les coups (évidemment)

++ vYk

Dernière modification par davyk (09/10/2009 15:15:33)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#10 09/10/2009 15:25:33

doekia
Membre
Inscription : 08/10/2009
Messages : 18

Re : module pour menu hierarchique

Salut,

Bon le correctif version 1.5
- ajoute un / manquant dans le cas d'un zite en sous-répertoire
- ajout un </li> manquant (il peut en manquer d'autres dans le cas d'un
   dernier élément imbriqué mais ça devient un peu usine à gaz pour qqchose
   que n'importe quel navigateur corrige de lui même, par contre on ne passe
   pas la validation HTML)
- mis le correctif de la 1ere page improprement vue comme parent de toutes les autres

Le nouveau module: ici xmenu1.5.zip

Normalement page_module doit être appelé APRES builder... pour garantir que zite est correctement initialisé.
Je ne vois pas pourquoi ça plante chez vous toi ... pouvez vous peux-tu créer une page debug mode php avec pour contenu:

<pre>
<?php print_r($_SERVER); ?>
<?php print_r($zite); ?>
</pre>

(d)oekia

Dernière modification par doekia (09/10/2009 16:23:49)

Hors ligne

#11 09/10/2009 16:10:59

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : module pour menu hierarchique

doekia a écrit :

Je ne vois pas pourquoi ça plante chez vous

ben moi non plus d'autant plus que les droits sont bons
et puis on peut se tutoyer, ça simplifie la conjugaison wink

++ vYk


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#12 09/10/2009 16:16:00

doekia
Membre
Inscription : 08/10/2009
Messages : 18

Re : module pour menu hierarchique

davyk a écrit :

puis on peut se tutoyer, ça simplifie la conjugaison wink

smile c'est clair ... mon cerveau fatigué ayant vu 2 posts il en a conclu que TU êtiez 2... smile

Dernière modification par doekia (09/10/2009 16:31:42)

Hors ligne

#13 09/10/2009 16:28:43

doekia
Membre
Inscription : 08/10/2009
Messages : 18

Re : module pour menu hierarchique

a tout hazard, tu peux enlever le page compress? et voir ce que ça donne ... bizarre ton content presque vide ...
c'est avec page_module avant ou après builder?
fait un essai de chaque mais ... poste en MP parce que ça 'pourri' un peu le forum smile

Hors ligne

#14 09/10/2009 16:39:21

berticoyote
Membre
Inscription : 15/09/2009
Messages : 175

Re : module pour menu hierarchique

Hello !...

euuuuuuh ça à l'air génial tout ça !.... et je me joins aux félicitations (sincèrement !) mais pour un pauvre infographiste, vous pouvez m'expliquer de manière "moins codée" à quoi sert ce petit module ?....  comment on l'utilise ?... un petit exemple peut être ?...
car "menu hierarchique" à quelque peu éveillé ma curiosité ;-)

Merci

Rémi

Hors ligne

#15 09/10/2009 16:39:58

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : module pour menu hierarchique

alors le page_module est après le builder (pour générer l'erreur)
ensuite mon content est forcément presque vide car c'est un site de tests donc cette page contient presque rien
( Nouvelle page

Le contenu de cette page reste a saisir...
et non"), deux fois rien quoi wink

pour le debug sans la compress, je t'envoies ça par mp car c'est vrai que c'est con qu'on ne puisse mettre son contenu entre balises code. m'enfin

++ vYk


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#16 09/10/2009 17:07:57

doekia
Membre
Inscription : 08/10/2009
Messages : 18

Re : module pour menu hierarchique

berticoyote a écrit :

... expliquer ... "menu hierarchique" à quelque peu éveillé ma curiosité ;-)

smile le menu standard de zite+ c'est:

<ul class="zul">
  <li class="zli zli1"><a class="za za1" href="index.php?z=1&perma=presentation">Présentation</a></li>
  <li class="zli zli1"><a class="za za1" href="index.php?z=2&perma=Index">Bienvenue</a></li>
  <li class="zli zli1 zon zon1"><a class="za zaon zaon1" href="index.php?z=3&perma=_Zite">Zite</a></li>
  <li class="zli zli2"><a class="za za2" href="index.php?z=4&perma=_Top">Entête</a></li>
  <li class="zli zli2"><a class="za za2" href="index.php?z=5&perma=_Login">Page de connexion</a></li>
  <li class="zli zli2"><a class="za za2" href="index.php?z=6&perma=_Bot">Pied de page</a></li>
</ul>

avec xmenu ça donne:

<ul class="xzul1">
  <li class="xzli1"><a class="xzli1" href="index.php?z=1&perma=presentation">Présentation</a></li>
  <li class="xzli1"><a class="xzli1" href="index.php?z=2&perma=Index">Bienvenue</a></li>
  <li class="xzli1 xzon xznest"><a class="xzli1 xzon xznest" href="index.php?z=3&perma=_Zite">Zite</a>
    <ul class="xzul2">
      <li class="xzli2"><a class="xzli2" href="index.php?z=4&perma=_Top">Entête</a></li>
      <li class="xzli2"><a class="xzli2" href="index.php?z=5&perma=_Login">Page de connexion</a></li>
      <li class="xzli2"><a class="xzli2" href="index.php?z=6&perma=_Bot">Pied de page</a></li>
    </ul>
  </li>
</ul>

Cette structure rend le html représentatif de la structure du site entre autre, et avec ces classes et éléments imbriqués tu peux faire de jolis menus entièrement piloté par le CSS

Voilà ce que ça donne sur le site sur lequel je travaill en ce moment:
Screenshot-MozillaFirefox.png

J'espère avoir répondu à ta question

(d)oekia

Hors ligne

#17 10/10/2009 14:41:42

snypi
Moderateurs
Inscription : 11/03/2008
Messages : 1 235
Site Web

Re : module pour menu hierarchique

salut à vous !!
je découvre, j'admire, j'ai les yeux qui brillent !!

mais n'y aurais t'il pas un petit fichier css prémaché prédigéré à mettre en ligne pour les novices ou fainéant !!


un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/

Hors ligne

#18 10/10/2009 22:05:34

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : module pour menu hierarchique

salut,

il y a une douzaine de jours, j'ai créé un menu horizontal en css et j'avais fait la demande à jpg de transformer la génération du menu en fonction de mon css ici:
http://www.zitecms.org/zite/forum/viewtopic.php?id=497
puis doekia est arrivé il y a deux jours et a exhaussé mes veux, sans peut-être le savoir.
tu peux te servir de mon css et le transformer à ta guise, faut juste que tu mettes les bonnes classes à la place des miennes, ces dernières sont assez explicites:
j'ai gardé zli1, zli2 etc.. puis j'ai rajouté zsous2 qui est la div qui rassemble les liens de class zli2.
j'ai utilisé des divs, ils ont utilisé des ul et li mais l'essentiel est l'utilisation des class.

++ vYk

Dernière modification par davyk (10/10/2009 22:08:27)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#19 10/10/2009 23:15:55

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : module pour menu hierarchique

ce menu horizontal a le même défaut que le sitemap, on ne peux plus cacher de pages.
il suffisait de ne pas publier une page et de lui créer des pages filles publiées.
c'est pourtant très pratique wink .

++ vYk

Dernière modification par davyk (10/10/2009 23:18:18)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#20 11/10/2009 18:47:35

doekia
Membre
Inscription : 08/10/2009
Messages : 18

Re : module pour menu hierarchique

snypi a écrit :

... ou fainéant !!

Pour les fainéants c'est  par là
smile

Dernière modification par doekia (11/10/2009 21:05:37)

Hors ligne

#21 12/10/2009 08:42:46

a-lex
Membre
Lieu : Ovronnaz
Inscription : 08/10/2009
Messages : 7
Site Web

Re : module pour menu hierarchique

Je découvre, je test, je farfouille, mais!?
oui, il y a un mais...

ce petit module me propose effectivement le type de menu que je souhaite (et que je vais pouvoir habiller à ma guise)
Mais alors le reste du contenu du panneau latéral disparait! snif snif.

Mes pauvres connaissances en code ne m'ont pour l'instant pas encore aidé à faire ré-apparaître ce panneau latéral à cette place.

en fait ce que je souhaite; si c'est facilement possible:
- dissocier le panneau latéral du menu pour avoir un menu horizontal (que je peux disposer et habiller à ma guise) et un panneau latéral (à gauche ou à droite selon l'humeur grâce aux CSS)

Mais bon... au pire je peux me passer de ce panneau,
mais mais... ce serait sympa non? un zouli menu agrémenté d'un beau panneau latéral?

Hors ligne

#22 12/10/2009 10:49:06

doekia
Membre
Inscription : 08/10/2009
Messages : 18

Re : module pour menu hierarchique

a-lex a écrit :

en fait ce que je souhaite; si c'est facilement possible:
- dissocier le panneau latéral du menu pour avoir un menu horizontal (que je peux disposer et habiller à ma guise) et un panneau latéral (à gauche ou à droite selon l'humeur grâce aux CSS)

smile relis bien le premier message de ce post concernat l'installation ...

le panneau latéral est géré par zite via l'appel à $zite->content["menu"];, si tu l'enlèves yikes ... tu n'as plus de panneau latéral ...

Remets le  comme avant et  masque son contenu par un display: none sur la classe zul dans ta CSS

$zite->content['menu'] = fromage
$zite->content['xmenu'] = dessert

prends les deux, c'est le patron qui régale smile

Hors ligne

#23 12/10/2009 18:34:40

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : module pour menu hierarchique

salut a-lex,
essayes ça:
http://www.zitecms.org/zite/forum/viewt … 3072#p3072
mais tu remplaces
<?php echo $zite->content['plbit2'].$zite->content['menu'].$zite->content['plbit4'] ?>
par:
<?php echo $zite->content['plbit2'].$zite->content['xmenu'].$zite->content['plbit4'] ?>
dans le template

++ vYk


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#24 12/10/2009 19:23:50

a-lex
Membre
Lieu : Ovronnaz
Inscription : 08/10/2009
Messages : 7
Site Web

Re : module pour menu hierarchique

merci de vos réponses!

je vais étudier tout ça et viiiiiiiiiiite mettre en pratique.
Houlààà mais c'est que je dos finir ce boulot pour avant-hier!

Hors ligne

#25 12/10/2009 19:48:18

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : module pour menu hierarchique

comme d'hab wink


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

Pied de page des forums