Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

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

#1 24/05/2009 14:44:04

duddy67
Membre
Inscription : 24/05/2009
Messages : 36

Plugin pour le menu

Bonjour,

Je viens de découvrir Zite et c'est vraiment le cms qui manquait pour les
petits sites perso. C'est très bien pensé, bravo.

Toutefois en développant mon site j'ai fais quelques petits rajouts (plugins ?) pour
répondre à mes besoins.
Par exemple j'ai l'habitude de mettre un petit menu horizontal en bas de page (le menu principal en petit),
mais je n'ai pas vu de plugin prévu à cet effet.
J'ai donc codé une petite fonction qui permet de faire ça:

dans le fichier zite.php:

function get_bottom_menu() {
  $bottom_menu = $this->content['menu'];
  $bottom_menu = preg_replace('#="zul#', '="bottommenu', $bottom_menu);
  $bottom_menu = preg_replace('#="zli1#', '="bmli', $bottom_menu);
  $bottom_menu = preg_replace('#<li class="zli.+?</li>#', '', $bottom_menu);
  return $bottom_menu;
}

dans le fichier template.php (dans le pied de page par ex):

<?php echo $zite->get_bottom_menu(); ?>

dans le fichier style.css:

.bottommenu {
  /* Définissez vos préférences ici. */ 
}

.bmli {
  display: inline;
  /* Définissez vos préférences ici. */ ;
}

.bmli a {
  /* Définissez vos préférences ici. */ 
}

Notes: ce menu n'affiche pas les sous menus, c'est juste un menu général que l'utilisateur
peut utiliser lorsqu'il est en bas de page pour éviter de remonter.

Pour ne pas s'arrêter en si bon chemin:

Il peut y avoir problème si on veut un menu horizontal (display: inline) et que le menu contient
des sous menus et sous sous menus.
En effet ceux-ci vont s'afficher n'importe comment car les listes <ul> sont au départ pensées
pour un affichage vertical.
L'idée serait d'avoir un menu horizontal simple (qui n'affiche pas les sous menus) et d'afficher
les sous menus (quand il y en a) quelque part dans la page principale (ou dans un div à gauche par ex).
Rebelotte, j'ai codé 2 fonctions pour faire ça:

dans le fichier zite.php:

function get_nosubmenu() {
  $nosubmenu = $this->content['menu'];
  $nosubmenu = preg_replace('#<li class="zli[2-4].+?</li>#', '', $nosubmenu);
  return $nosubmenu;
}

function get_submenu() {
  $submenu = $this->content['menu'];
  $submenu = preg_replace('#="zul#', '="submenu', $submenu);
  $submenu = preg_replace('#<li class="zli1.+?</li>#', '', $submenu);
  $submenu = preg_replace('#="zli#', '="smli', $submenu);
  return $submenu;
}

Attention, dans le backoffice assurez vous que vos sous menus sont bien actifs (voyant vert).

puis dans le fichier template.php à la place de:

<?php echo $zite->content['menu']; ?>

mettez:

<?php echo $zite->get_nosubmenu(); ?>

mettez ensuite cette ligne à l'endroit ou vous voulez voir apparaitre vos sous menus:

<?php echo $zite->get_submenu(); ?>

dans le fichier style.css:

.submenu {
  /* Définissez vos préférences ici. */
}

.smli2, .smli3, .smli4 {
  /* Définissez vos préférences ici. */
}

.smli2 a, .smli3 a, .smli4 a {
  /* Définissez vos préférences ici. */
}

Voilou, apparemment chez moi ça marche bien, je n'ai pas fais de tests poussés
mais je pense que ça devrait fonctionner dans la plupart des cas.
Peut être que le développeur de Zite pourrait jeter un coup d'oeil ?

J'espère ne pas avoir trop codé comme un bourrin. C'est sûr les regex sont
une solution de dépannage, le mieux serait d'intégrer ces fonctions dans le
coeur du moteur (navbuilder) mais il faudrait décortiquer tout le code et
avoir une version du code commentée serait encore mieux.

Je pense aussi à 2 autres plugins:
- Un fil d'ariane
- Un plug permettant de mettre des mots clés et une description différente
  pour chaque page.

Duddy67

Hors ligne

#2 24/05/2009 14:53:16

piemchien
Membre
Inscription : 08/02/2009
Messages : 76
Site Web

Re : Plugin pour le menu

Bonjour,

Bienvenue sur le forum

Tu as mal lu le forum, pour les balises description et mot clef:
http://forum.prositif.com/viewtopic.php?id=389

Pour le menu horizontal:
http://forum.prositif.com/viewtopic.php?id=244
http://forum.prositif.com/viewtopic.php?id=214
http://forum.prositif.com/viewtopic.php?id=104


Pierre

Hors ligne

Pied de page des forums