Vous n'êtes pas identifié(e).
j'ai bien essayé évidement mais il semple (semple? a heu non, semble) que c'est codé de la même manière.
standard:
<a href="'.(($s[cPageType]&pgbitType)!=5?$base.$f:$s[cPageIdent].(isset($s[cPageOpt]['target'])?'" target="'.$s[cPageOpt]['target']:'')).'">'.$s[cPageTitre].'</a>
déroulé:
<a href="'.(($s[cPageType]&pgbitType)!=5?$base.$f:$s[cPageIdent].(isset($s[cPageOpt]['target'])?'" target="'.$s[cPageOpt]['target']:'')).'">'.$s[cPageTitre].'</a>
standard, le premier:
<a href="'.$base.($rewrite ? $s[cPageIdent].'.html' : $s[cPageIdent]).'" '.((($s[cPageType]&pgbitType)==5)&&(isset($s[cPageOpt]['target']))?'target="_blank"':'').'>
tous "fonctionnent" dans le sens où, si l'on renseigne un nom à la page (dans la source) on a un lien du type perma=ma-page.
si on enlève le nom, on a un lien du type perma= (comme avant) mais qui fonctionne, lui
donc, pour l'instant les cocos, je vais vous poster ce que j'ai mais ATTENTION AU DUPLICATE CONTENT!
en ce qui me concerne, je vais créer mon menu à la main, à l'ancienne, roulé sous les aisselles, bien sûr
Dernière modification par davyk (16/02/2010 18:35:28)
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
pour que ce soit simple, éditez xmenu.php, remplacez la fonction dojob() de doekia par celle-ci:
function dojob()
{
parent::dojob();
$xmnu = '';
$isadmin = (int)$_SESSION['zite_admin']>0;
$rewrite = self::$cms->rewrite && !$isadmin;
$uri = dirname($_SERVER['REQUEST_URI']);
$uri .= ($uri[strlen($uri)-1]!='/')?'/':'';
$uri .= $rewrite ? '' : self::$cms->basep;
$sufx = $rewrite ? '.html' : '';
for($count=0, reset(self::$cms->struct), $level=0; list($key, $pg) = each(self::$cms->struct); $count++)
{
$base = self::$cms->rewrite ? ($isadmin ? self::$cms->basep.self::$cms->get_data('navig_admin') : (self::$cms->rewrite===2?self::$cms->config['files_index']:' ')) : self::$cms->basep;
$f = $rewrite ? $pg[cPageIdent].'.html' : $pg[cPageIdent];
$s = self::$cms->struct[$i];
$noli = '</li>';
$activ = (self::$cms->truepage == $key)?' xzon':''; // Nous sommes sur cette page
$child = (@self::$cms->struct[$key+1][cPageRang] > @$pg[cPageRang])?' xnest':''; // Nous avons des pages enfants - FIXME
if ($pg[cPageType]>pgbitType) continue; // La page est un panneau lateral - FIXME à voir
if (!($pg[cPageOn] || $isadmin)) continue; // La page est désactivée
$tgt = ((($pg[cPageType]&pgbitType)==5)&&(isset($pg[cPageOpt]['target']))?' target="_blank"':'');
if ($pg[cPageRang]!=$level) // Testons le niveau et (dés)imbriquons si besoin
{
while($level > ($pg[cPageRang]+0)) { $xmnu .=$noli.'</ul>'; $level--; }
while($level < ($pg[cPageRang]+0)) { $xmnu .='<ul class="xzul'.++$level.'">'; $noli = ''; }
}
if (self::$cms->isPageAuth($key))
{
$xmnu .= $noli.'<li class="xzli'.$level.$activ.$child.'"><a class="xzli'.$level.$activ.$child.'" href="'.$base.($rewrite ? $pg[cPageIdent].'.html' : $pg[cPageIdent]).'" '.((($pg[cPageType]&pgbitType)==5)&&(isset($pg[cPageOpt]['target']))?'target="_blank"':'').'>'.$pg[cPageTitre].'</a>';
}
}
for($noli = '</li>';$level > 0; $level--) { $xmnu .=$noli.'</ul>'; $noli=''; }
self::$cms->content['xmenu']=$xmnu;
}
essayez aussi le rewriting, sur un malentendu, ça peut marcher
++ vYk
Dernière modification par davyk (16/02/2010 18:45:51)
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
j'ai bien essayé évidement mais il semple (semple? a heu non, semble) que c'est codé de la même manière.
Tu as lu trop vite le code du menu standard
la, j'ai pas le temps ... mais je regarderais le code du module xmenu de doekia pour voir comment le modifier pour appliquer la même gestion que le menu standard de ziteplus
a+
jean-paul
Hors ligne
davyk a écrit :j'ai bien essayé évidement mais il semple (semple? a heu non, semble) que c'est codé de la même manière.
Tu as lu trop vite le code du menu standard
la, j'ai pas le temps ... mais je regarderais le code du module xmenu de doekia pour voir comment le modifier pour appliquer la même gestion que le menu standard de ziteplus
a+
jean-paul
en fin une bonne nouvelle, ça c'est génial !
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
par contre tu crois que ça serait possible de créer une arborescence "standard" genre:
<ul>
<li>
<li>
<ul>
<li>
<li>
<li>
</ul>
<li>
<li>
</ul>
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
Bonjour tout le monde
(d)oekia a trouvé le bug de l'index qui buggait !
il faut dans xmenu.php :
Remplacer la ligne 44
$uri = dirname($_SERVER['REQUEST_URI']);
par
$uri = dirname($_SERVER['REQUEST_URI'].'x');
et là ça roule !!
A essayer pour vous si ça marche..
Merci (d)oekia !
Hors ligne
en tout cas, pas pour moi (en local)
++
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
en tout cas, pas pour moi (en local)
++
Peut-être avec ce code.
la modification est en ligne 66, la ligne:
$xmnu .= $noli.'<li class="xzli'.$level.$activ.$child.'"><a class="xzli'.$level.$activ.$child.'" href="'.($count?($uri.$pg[cPageIdent].((($pg[cPageType]&pgbitType)==5)?'':$sufx)):preg_replace('/\/[^\/]*$/','',$_SERVER['REQUEST_URI']).'/').'"'.$tgt.'>'.$pg[cPageTitre].'</a>';
Soit le code complet du module en version 1.7:
<?php
/*
* module: xmenu - extended menu
* Extra Menu for Ziteplus
*
* Ce module permet la génération de menu hierarchique
* dans ziteplus
*
* Copyright - (d)oekia 2009
* Licence : CeCILL-B, http://www.cecill.info
v1.6 14/10/2009 FIXUP: href de la page d'acceuil http://serveur/
v1.6 14/10/2009 FIXUP: pas de '.html' pour cPageTyp == 5
v1.6 14/10/2009 FIXUP: prise en charge du target=_blank
v1.5 09/10/2009 FIXUP: manque un </li> à la fin du menu
v1.5 09/10/2009 FIXUP: manque un / dans l'url quand l'install est en sous-répetoire
v1.5 09/10/2009 FIXUP: 1ere page parent de toutes les autres (=>? bug zite)
v1.0 08/10/2009 version initiale
Copyright Jean-Paul GIAUSSRAND 2009
Site: http://www.giausserand.fr/index.php?perma=ziteplus
Licence : CeCILL-B, http://www.cecill.info
v1.7 17/02/2010 Correction adressage 1ère page (suppression ?perma=)
v1.4 09/10/2009 simplification du code (identification des pages enfants)
v1.3 09/10/2009 prise en compte des droits sur les pages
v1.2 08/10/2009 Adaptation pour meilleure intégration dans ziteplus
v1.1 08/10/2009 Passage du module en code objet
*/
define('XMENU_LOCATOR', '$zite->builder();');
define('XMENU_ENGINE','$zite->page_module(\'xmenu\');');
class Txmenu extends Tmodule {
function xmenu_isOn(&$indexfile) {
$indexfile = file_get_contents(self::$cms->ipath.'/'.self::$cms->config['files_index']);
return strpos($indexfile,XMENU_ENGINE) !== false;
}
function dojob()
{
parent::dojob();
$xmnu = '';
$isadmin = (int)$_SESSION['zite_admin']>0;
$rewrite = self::$cms->rewrite && !$isadmin;
$uri = dirname($_SERVER['REQUEST_URI']);
$uri .= ($uri[strlen($uri)-1]!='/')?'/':'';
$uri .= $rewrite ? '' : self::$cms->basep;
$sufx = $rewrite ? '.html' : '';
for( $count = 0, reset(self::$cms->struct), $level=0; list($key, $pg) = each(self::$cms->struct); $count++)
{
$noli = '</li>';
$activ = (self::$cms->truepage == $key)?' xzon':''; // Nous sommes sur cette page
$child = (@self::$cms->struct[$key+1][cPageRang] > @$pg[cPageRang])?' xnest':''; // Nous avons des pages enfants - FIXME
if ($pg[cPageType]>pgbitType) continue; // La page est un panneau lateral - FIXME à voir
if (!($pg[cPageOn] || $isadmin)) continue; // La page est désactivée
$tgt = ((($pg[cPageType]&pgbitType)==5)&&(isset($pg[cPageOpt]['target']))?' target="_blank"':'');
if ($pg[cPageRang]!=$level) // Testons le niveau et (dés)imbriquons si besoin
{
while($level > ($pg[cPageRang]+0)) { $xmnu .=$noli.'</ul>'; $level--; }
while($level < ($pg[cPageRang]+0)) { $xmnu .='<ul class="xzul'.++$level.'">'; $noli = ''; }
}
if (self::$cms->isPageAuth($key))
{
$xmnu .= $noli.'<li class="xzli'.$level.$activ.$child.'"><a class="xzli'.$level.$activ.$child.'" href="'.($count?($uri.$pg[cPageIdent].((($pg[cPageType]&pgbitType)==5)?'':$sufx)):preg_replace('/\/[^\/]*$/','',$_SERVER['REQUEST_URI']).'/').'"'.$tgt.'>'.$pg[cPageTitre].'</a>';
}
}
for($noli = '</li>';$level > 0; $level--) { $xmnu .=$noli.'</ul>'; $noli=''; }
self::$cms->content['xmenu']=$xmnu;
}
function On() {
parent::On();
if (!$this->xmenu_isOn($indexfile)) {
$indexfile=str_replace(XMENU_LOCATOR,XMENU_LOCATOR.XMENU_ENGINE,$indexfile);
file_put_contents(self::$cms->ipath.'/'.self::$cms->config['files_index'],$indexfile);
}
}
function Off() {
parent::off();
if ($this->xmenu_isOn($indexfile)) {
$indexfile=str_replace(XMENU_ENGINE,'',$indexfile);
file_put_contents(self::$cms->ipath.'/'.self::$cms->config['files_index'],$indexfile);
}
}
}
?>
a+
jean-paul
Hors ligne
bonne nouvelle: pour la page d'accueil, ça fonctionne
mauvaise nouvelle: pour toutes les autres pages, on recule d'un répertoire
un mix des 2?
Dernière modification par davyk (17/02/2010 22:22:09)
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
Bon j'ai trouvé (en fin pas vraiment puisque j'ai effectivement fait un mix des 2
(d'où le copywrite tout le monde peut le faire )
<?php
/*
* module: xmenu - extended menu
* Extra Menu for Ziteplus
*
* Ce module permet la génération de menu hierarchique
* dans ziteplus
*
* Copyright - (d)oekia 2009
* Licence : CeCILL-B, http://www.cecill.info
v1.6 14/10/2009 FIXUP: href de la page d'acceuil http://serveur/
v1.6 14/10/2009 FIXUP: pas de '.html' pour cPageTyp == 5
v1.6 14/10/2009 FIXUP: prise en charge du target=_blank
v1.5 09/10/2009 FIXUP: manque un </li> à la fin du menu
v1.5 09/10/2009 FIXUP: manque un / dans l'url quand l'install est en sous-répetoire
v1.5 09/10/2009 FIXUP: 1ere page parent de toutes les autres (=>? bug zite)
v1.0 08/10/2009 version initiale
Copyright Jean-Paul GIAUSSRAND 2009
Site: http://www.giausserand.fr/index.php?perma=ziteplus
Licence : CeCILL-B, http://www.cecill.info
v1.7 17/02/2010 Correction adressage 1ère page (suppression ?perma=)
v1.4 09/10/2009 simplification du code (identification des pages enfants)
v1.3 09/10/2009 prise en compte des droits sur les pages
v1.2 08/10/2009 Adaptation pour meilleure intégration dans ziteplus
v1.1 08/10/2009 Passage du module en code objet
Copyright tout le monde peut le faire 2010
Licence : CeCILL-B, http://www.cecill.info
v1.8 17/02/2010 Correction adressage 1ère page (suppression ?perma=)qui fonctionne, en fin j'espère
*/
define('XMENU_LOCATOR', '$zite->builder();');
define('XMENU_ENGINE','$zite->page_module(\'xmenu\');');
class Txmenu extends Tmodule {
function xmenu_isOn(&$indexfile) {
$indexfile = file_get_contents(self::$cms->ipath.'/'.self::$cms->config['files_index']);
return strpos($indexfile,XMENU_ENGINE) !== false;
}
function dojob()
{
parent::dojob();
$xmnu = '';
$isadmin = (int)$_SESSION['zite_admin']>0;
$rewrite = self::$cms->rewrite && !$isadmin;
$uri = dirname($_SERVER['REQUEST_URI'].'x');
$uri .= ($uri[strlen($uri)-1]!='/')?'/':'';
$uri .= $rewrite ? '' : self::$cms->basep;
$sufx = $rewrite ? '.html' : '';
for( $count = 0, reset(self::$cms->struct), $level=0; list($key, $pg) = each(self::$cms->struct); $count++)
{
$noli = '</li>';
$activ = (self::$cms->truepage == $key)?' xzon':''; // Nous sommes sur cette page
$child = (@self::$cms->struct[$key+1][cPageRang] > @$pg[cPageRang])?' xnest':''; // Nous avons des pages enfants - FIXME
if ($pg[cPageType]>pgbitType) continue; // La page est un panneau lateral - FIXME à voir
if (!($pg[cPageOn] || $isadmin)) continue; // La page est désactivée
$tgt = ((($pg[cPageType]&pgbitType)==5)&&(isset($pg[cPageOpt]['target']))?' target="_blank"':'');
if ($pg[cPageRang]!=$level) // Testons le niveau et (dés)imbriquons si besoin
{
while($level > ($pg[cPageRang]+0)) { $xmnu .=$noli.'</ul>'; $level--; }
while($level < ($pg[cPageRang]+0)) { $xmnu .='<ul class="xzul'.++$level.'">'; $noli = ''; }
}
if (self::$cms->isPageAuth($key))
{
$xmnu .= $noli.'<li class="xzli'.$level.$activ.$child.'"><a class="xzli'.$level.$activ.$child.'" href="'.($count?($uri.$pg[cPageIdent].((($pg[cPageType]&pgbitType)==5)?'':$sufx)):preg_replace('/\/[^\/]*$/','',$_SERVER['REQUEST_URI']).'/').'"'.$tgt.'>'.$pg[cPageTitre].'</a>';
}
}
for($noli = '</li>';$level > 0; $level--) { $xmnu .=$noli.'</ul>'; $noli=''; }
self::$cms->content['xmenu']=$xmnu;
}
function On() {
parent::On();
if (!$this->xmenu_isOn($indexfile)) {
$indexfile=str_replace(XMENU_LOCATOR,XMENU_LOCATOR.XMENU_ENGINE,$indexfile);
file_put_contents(self::$cms->ipath.'/'.self::$cms->config['files_index'],$indexfile);
}
}
function Off() {
parent::off();
if ($this->xmenu_isOn($indexfile)) {
$indexfile=str_replace(XMENU_ENGINE,'',$indexfile);
file_put_contents(self::$cms->ipath.'/'.self::$cms->config['files_index'],$indexfile);
}
}
}
?>
++ vYk
Dernière modification par davyk (17/02/2010 22:33:34)
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
Si tu veux essayer cette version
Normalement elle règle les différents cas: le code de génération de l'url du menu est quasiment repris de la fonction navbuilder de ziteplus
<?php
/*
* module: xmenu - extended menu
* Extra Menu for Ziteplus
*
* Ce module permet la génération de menu hierarchique
* dans ziteplus
*
* Copyright - (d)oekia 2009
* Licence : CeCILL-B, http://www.cecill.info
v1.6 14/10/2009 FIXUP: href de la page d'acceuil http://serveur/
v1.6 14/10/2009 FIXUP: pas de '.html' pour cPageTyp == 5
v1.6 14/10/2009 FIXUP: prise en charge du target=_blank
v1.5 09/10/2009 FIXUP: manque un </li> à la fin du menu
v1.5 09/10/2009 FIXUP: manque un / dans l'url quand l'install est en sous-répetoire
v1.5 09/10/2009 FIXUP: 1ere page parent de toutes les autres (=>? bug zite)
v1.0 08/10/2009 version initiale
Copyright Jean-Paul GIAUSSRAND 2009
Site: http://www.giausserand.fr/index.php?perma=ziteplus
Licence : CeCILL-B, http://www.cecill.info
v1.7.1 17/02/2010 Correction adressage 1ère page (suppression ?perma=)
v1.4 09/10/2009 simplification du code (identification des pages enfants)
v1.3 09/10/2009 prise en compte des droits sur les pages
v1.2 08/10/2009 Adaptation pour meilleure intégration dans ziteplus
v1.1 08/10/2009 Passage du module en code objet
*/
define('XMENU_LOCATOR', '$zite->builder();');
define('XMENU_ENGINE','$zite->page_module(\'xmenu\');');
class Txmenu extends Tmodule {
function xmenu_isOn(&$indexfile) {
$indexfile = file_get_contents(self::$cms->ipath.'/'.self::$cms->config['files_index']);
return strpos($indexfile,XMENU_ENGINE) !== false;
}
function dojob()
{
parent::dojob();
$xmnu = '';
$isadmin = (int)$_SESSION['zite_admin']>0;
$rewrite = self::$cms->rewrite && !$isadmin;
$base = self::$cms->rewrite ? ($isadmin ? self::$cms->basep.self::$cms->get_data('navig_admin') : (self::$cms->rewrite===2?self::$cms->config['files_index']:' ')) : self::$cms->basep;
for( $count = 0, reset(self::$cms->struct), $level=0; list($key, $pg) = each(self::$cms->struct); $count++)
{
$noli = '</li>';
$activ = (self::$cms->truepage == $key)?' xzon':''; // Nous sommes sur cette page
$child = (@self::$cms->struct[$key+1][cPageRang] > @$pg[cPageRang])?' xnest':''; // Nous avons des pages enfants - FIXME
if ($pg[cPageType]>pgbitType) continue; // La page est un panneau lateral - FIXME à voir
if (!($pg[cPageOn] || $isadmin)) continue; // La page est désactivée
$tgt = ((($pg[cPageType]&pgbitType)==5)&&(isset($pg[cPageOpt]['target']))?' target="_blank"':'');
if ($pg[cPageRang]!=$level) // Testons le niveau et (dés)imbriquons si besoin
{
while($level > ($pg[cPageRang]+0)) { $xmnu .=$noli.'</ul>'; $level--; }
while($level < ($pg[cPageRang]+0)) { $xmnu .='<ul class="xzul'.++$level.'">'; $noli = ''; }
}
if (self::$cms->isPageAuth($key))
{
$f = $rewrite ? $pg[cPageIdent].'.html' : $pg[cPageIdent];
$xmnu .= $noli.'<li class="xzli'.$level.$activ.$child.'"><a class="xzli'.$level.$activ.$child.'" href="'.($count?(($pg[cPageType]&pgbitType)!=5?$base.$f:$pg[cPageIdent].(isset($pg[cPageOpt]['target'])?'" target="'.$s[cPageOpt]['target']:'')):preg_replace('/\/[^\/]*$/','',$_SERVER['REQUEST_URI']).'/').'"'.$tgt.'>'.$pg[cPageTitre].'</a>';
}
}
for($noli = '</li>';$level > 0; $level--) { $xmnu .=$noli.'</ul>'; $noli=''; }
self::$cms->content['xmenu']=$xmnu;
}
function On() {
parent::On();
if (!$this->xmenu_isOn($indexfile)) {
$indexfile=str_replace(XMENU_LOCATOR,XMENU_LOCATOR.XMENU_ENGINE,$indexfile);
file_put_contents(self::$cms->ipath.'/'.self::$cms->config['files_index'],$indexfile);
}
}
function Off() {
parent::off();
if ($this->xmenu_isOn($indexfile)) {
$indexfile=str_replace(XMENU_ENGINE,'',$indexfile);
file_put_contents(self::$cms->ipath.'/'.self::$cms->config['files_index'],$indexfile);
}
}
}
?>
Hors ligne
merci
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne