dlatr a écrit :
Par contre tout ce php me semble superflu. Les fonctions devraient plutôt être dans mes_fonctions.php et j'ai pas compris où était utilisée la fonction ecrire_menu
Claude
<INCLURE{fond=menu} {id_rubrique}> et {id_article} suivant le contexte
Bonjour,
Ouf,
je viens de mettre a jour les url ou liens que j'avais dans le site (toujours en local) c'est du boulot....
avec la nouvelle syntaxe que tu m'a rappele.
Pour ce qui est du php contenu dans la page meu.html je ne suis pas un crac du genre et je l'ai utilise tel quel avec la 1.8.2g
et il fonctionnait très bien...
Donc j'en suis toujours au meme point, ce satane menu continu d'afficher les rubriques principales et leurs articles
mais pas les sous-rubriques et le reste...
Voici le fichier [.js ] et le [menu.html ] tel que je les ai de la contrib Menu hierarchique, rubriques/articles classés - SPIP-Contrib
+ [rubrique.html] au cas ou je n'aurais pas vu qqchose...
____________________________________________________________________
"deux filtres, pour jouer avec les numéros d’ordre dans les titres des articles et des rubriques" d'apres la contrib dans mes_fonctions.php3
<?php
function denum($texte)
{
$toto=ereg_replace("^[0-9]*\. ","",$texte);
return $toto;
}
function kenum($texte)
{
if (ereg ("^([0-9]*)\. ", $texte, $regs))
return $regs[1];
}
?>
______________________________________________________________________________________
<code de menu.js>
function change(idm) {
idr='rub' + idm;
img= 'plusmoins' + idm;
if (document.getElementById) {
if (document.getElementById(idr)) {
if (document.getElementById(idr).style.display != "block") {
document.getElementById(idr).style.display="block";
document.getElementById(img).style.background="url('./moins.gif')";
} else {
document.getElementById(idr).style.display="none";
document.getElementById(img).style.background="url('./plus.gif')";
}
}
} else if (document.all) {
if (document.all[idr]) {
if (document.all[idr].style.display != "block") {
document.all[idr].style.display="block";
document.all[img].style.background="url('./moins.gif')";
} else {
document.all[idr].style.display="none";
document.all[img].style.background="url('./plus.gif')";
}
}
} else if (document.layers) {
if (document.layers[idr]) {
if (document.all[idr].style.display != "block") {
document.layers[idr].style.display="block";
document.layers[img].style.background="url('./moins.gif')";
} else {
document.layers[idr].style.display="none";
document.layers[img].style.background="url('./plus.gif')";
}
}
}
}
_________________________________________________________________________
< code de menu.html >
<script type="text/javascript" src="menu.js"></script>
<?php
$i=0;
<BOUCLE_menu(RUBRIQUES){racine}{par titre}{inverse}>
<BOUCLE_menu_n(RUBRIQUES){id_rubrique}{par titre}>
$menu[$i]["[(#TITRE|kenum)] -
#ID_RUBRIQUE"]=array("parent"=>"#ID_PARENT","titre"=>"[(#TITRE|denum)]","idrub"=>"#ID_RUBRIQUE","idart"=>"");
$i++;
<BOUCLE_menu_a(ARTICLES){id_rubrique}{par titre}>
$menu[$i]["[(#TITRE|kenum)] -
#ID_ARTICLE"]=array("parent"=>"#ID_RUBRIQUE","titre"=>"[(#TITRE|denum)]","idrub"=>"","idart"=>"#ID_ARTICLE");
</BOUCLE_menu_a>
<BOUCLE_menu_r(RUBRIQUES){id_parent}{par titre}>
<BOUCLE_sous_menu(boucle_menu_n)></BOUCLE_sous_menu>
</BOUCLE_menu_r>
$i--;
</BOUCLE_menu_n>
</BOUCLE_menu>
function ecrire_menu ($i,$parent) {
global $menu;
ksort($menu[$i],SORT_NUMERIC);
foreach($menu[$i] as $menu_o ) {
$largeur=201-(($i-1)*16);
if ($menu_o["parent"]==$parent) {
if ($menu_o["idrub"]!="") {
echo "
<div class=\"lienr\">
<div class=\"plusmoins\" id=\"plusmoins".$menu_o["idrub"]."\"
onclick=\"change(".$menu_o["idrub"].");\" > </div>
<a id=\"tete_rub".$menu_o["idrub"]."\" class=\"alien\"
href=\"rubrique.php3?id_rubrique=".$menu_o["idrub"]."
\">".$menu_o["titre"]."</a>
</div>
<div id=\"rub".$menu_o["idrub"]."\" class=\"niv\" >
";
$prochain_parent=$menu_o["idrub"];
$k=1+$i;
ecrire_menu ($k,$prochain_parent);
echo "
</div>
";
} else {
echo "
<div class=\"lien\"><a id=\"art".$menu_o["idart"]."\"
class=\"alien\"
href=\"article.php3?id_article=".$menu_o["idart"]."\"><img
src='file.gif' width='16' height='16' border='0'
alt='file'>".$menu_o["titre"]."</a></div>
";
}
}
}
}
ecrire_menu(0,0);
?>
<B_menu_ouvre_article>
<BOUCLE_menu_ouvre_article(ARTICLES){id_article}>
<script type="Text/JavaScript">
<BOUCLE_menu_voir_article(HIERARCHIE){id_article}>
change('#ID_RUBRIQUE');
</BOUCLE_menu_voir_article>
document.getElementById('art#ID_ARTICLE');
</script>
</BOUCLE_menu_ouvre_article>
</B_menu_ouvre_article>
<BOUCLE_menu_ouvre_rubrique(RUBRIQUES){id_rubrique}>
<script type="Text/JavaScript">
<BOUCLE_menu_voir_rubrique(HIERARCHIE)>
change('#ID_RUBRIQUE');
</BOUCLE_menu_voir_rubrique>
change('#ID_RUBRIQUE');
document.getElementById('tete_rub#ID_RUBRIQUE');
</script>
</BOUCLE_menu_ouvre_rubrique>
<//B_menu_ouvre_article>
____________________________________________________________________
<code de rubrique.html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<TITLE>#NOM_SITE_SPIP</TITLE>
<style type="text/css" media="screen">
@import url(3col7.css);
</style>
<script type="text/javascript" language="javascript" src="date1.js"></script>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_showHideLayers() { //v6.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
obj.visibility=v; }
}
//-->
</script>
<script type="text/javascript" language="javascript" src="rool.js"></script>
</head>
<body bgcolor ="#d4d0c8" onLoad="MM_preloadImages('IMG/home2.png','IMG/mail2.png','IMG/plan2.png','IMG/admin2.png')">
<BOUCLE_rubrique_principal(RUBRIQUES) {id_rubrique}>
<INCLURE{fond=tete-page}>
<!-- chemin -->
<div class="chemin"><a href="sommaire.php3" style="color: #008040;">Accueil</a> >
<BOUCLE_chemin_rubriques(HIERARCHIE){id_rubrique}{" > "}>
<a href="#URL_RUBRIQUE" style="color: #008040;">[(#TITRE|supprimer_numero)]</a>
</BOUCLE_chemin_rubriques>>[(#TITRE|supprimer_numero)]
</div>
<!-- /fin chemin -->
<br><br>
<div id="prec-suiv" align="left"><!-- prec-suiv -->
<?
$titre_principal = "[(#TITRE|addslashes)]";
$premier_rubrique = true;
?>
<BOUCLE_rub_prec(RUBRIQUES) {meme_parent}{par titre}{inverse}>
<?
$titre_n = "[(#TITRE|addslashes)]";
if ($titre_n < $titre_principal AND $premier_rubrique) {
$premier_rubrique = false;
?>
precedent : <a href="#URL_RUBRIQUE">[(#TITRE|supprimer_numero)]</a>
<?
}
?>
</BOUCLE_rub_prec>
<?
$titre_principal = "[(#TITRE|addslashes)]";
$premier_rubrique = true;
?>
<BOUCLE_rub_suivant(RUBRIQUES) {meme_parent}{par titre}>
<?
$titre_n = "[(#TITRE|addslashes)]";
if ($titre_n > $titre_principal AND $premier_rubrique) {
$premier_rubrique = false;
?>
suivant : <a href="#URL_RUBRIQUE">[(#TITRE|supprimer_numero)]</a>
<?
}
?>
</BOUCLE_rub_suivant>
</div>
<!--/ prec-suiv-->
<br>
<div id="centre-gauche"><!-- centre-gauche -->
<b>[(#TITRE|supprimer_numero)]</b><br><br><br><br><br>
<!-- layer4 --><div id="layer4" align="left" style="width:540px; z-index:1; visibility: visible; background: #c6bbaa; layer-background-color: #3399ff; border: 1px solid #cc9933; padding-bottom: 10px; padding-right: 10px; padding-left: 10px;">
<br><br>
<span class="spip_logo">[(#LOGO_RUBRIQUE|left)]</span> [(#DESCRIPTIF)] [(#TEXTE|||justifier|gerer_ancres)]<br>
</div>
<br>
<div align="left">
<B_sites>
SUR LE WEB:
<br><br>
<!-- layer5 --><div id="layer5" style="width:98%; height: ; z-index:1; visibility: visible; padding-left: 10px; background: transparent; layer-background-color: transparent; border: 1px solid #cc9933; text-indent: 10px">
<br>
<ul>
<BOUCLE_sites(SITES) {id_rubrique} {par nom_site}>
<li>
<a href="#URL_SITE">[(#NOM_SITE|supprimer_numero)]</a>
<br>
<i>(...)</i>[(#DESCRIPTIF)][(#INTRODUCTION|textebrut)]<i>(...)</i>
<br /><br />
<B_syndic>
<ul>
<BOUCLE_syndic(SYNDIC_ARTICLES) {id_syndic} {par date} {inverse} {0,5}>
<li><small><a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a></small></li>
</BOUCLE_syndic><li></li>
</ul>
</B_syndic>
</li>
</BOUCLE_sites>
</ul>
</div>
</B_sites><!--/B_sites -->
<div align="center" class="haut"><a accesskey="h" href="#" title="Ce lien renvoi en haut de la page en cours">Retour haut de page</a></div>
<br><div align="center"><a href="rubrique.html"><small>Squelette de la page</small></a></div><br><br>
</div><!--/ left -->
<br>
</div> <!-- /centre-gauche -->
<!-- menu droite--><div id="droite">
[(#FORMULAIRE_RECHERCHE)]<br>
<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
<h6> [(#TITRE|supprimer_numero)]</h6>
</BOUCLE_rubrique><br>
<INCLURE{fond=menu}{id_rubrique}>
<br>
</div><!-- /menu droite -->
<p> </p>
<INCLURE{fond=pied-page}>
<br><br>
</BOUCLE_rubrique_principal>
</body>
</html>
______________________________________________________________________________________________________
merci encore, je continue a chercher...(j'ai aussi une galerie photo qui ne marche pas bien avec la 1.9.1, mais on verra apres...)
<a> + jmarco