Index: trunk/spip/esqueleto-redcta/plugins/magusine/arty_affichegauche.php
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/arty_affichegauche.php	(revision 79)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/arty_affichegauche.php	(revision 79)
@@ -0,0 +1,517 @@
+<?php
+// importe la fonction creer_repertoire_documents, qui retourne le chemin vers un dossier donnÃ© dans le rÃ©pertoire img, et le crÃ©e si nÃ©cessaire
+include_spip('inc/getdocument');
+include_spip('inc/layer');
+include_spip('inc/upload-image');
+include_spip('inc/xml-parser');
+
+include_spip('inc/arty_upload_bandeau');
+
+function arty_ajouterfonctionnalites($flux) {
+
+global $connect_statut;
+//print_r($flux);
+  if ($connect_statut == "0minirezo" ) {
+  	
+  	
+    if (isset($flux['args']['id_groupe']) && $flux['args']['exec'] == "mots_types"){
+    	
+  		$flux['data'] .= formulaire_logo($flux['args']['id_groupe']);
+  		$flux['data'] .= bloc_formulaire_themes('groupe', $flux['args']['id_groupe'], "?exec=mots_type&id_groupe=".$flux['args']['id_groupe']);
+  		$flux['data'] .= formulaire_bloc_libre('groupe', $flux['args']['id_groupe'],"?exec=mots_type&id_groupe=".$flux['args']['id_groupe']);
+  		$flux['data'] .= bloc_gabarit('groupe-mots', $flux['args']['id_groupe'],"?exec=mots_type&id_groupe=".$flux['args']['id_groupe']);
+  	      
+    }
+ 
+    if (isset($flux['args']['id_article']) && $flux['args']['exec'] == "articles"){
+      $flux['data'] .= bloc_formulaire_themes('article', $flux['args']['id_article'], "?exec=articles&id_article=".$flux['args']['id_article']);
+  		$flux['data'] .= formulaire_bloc_libre('article', $flux['args']['id_article'],"?exec=articles&id_article=".$flux['args']['id_article']);
+  		$flux['data'] .= bloc_gabarit('article', $flux['args']['id_article'],"?exec=articles&id_article=".$flux['args']['id_article']);
+  	      
+    }
+    
+    if (isset($flux['args']['id_rubrique']) && $flux['args']['exec'] == "naviguer"){
+    	$flux['data'] .= formulaire_bandeau($flux['args']['id_rubrique']);
+    	$flux['data'] .= bloc_formulaire_themes('rubrique', $flux['args']['id_rubrique'], "?exec=naviguer&id_rubrique=".$flux['args']['id_rubrique']);
+		  $flux['data'] .= formulaire_bloc_libre('rubrique', $flux['args']['id_rubrique'],"?exec=naviguer&id_rubrique=".$flux['args']['id_rubrique']);
+		  if ($flux['args']['id_rubrique']) {
+        $flux['data'] .= bloc_gabarit('rubrique', $flux['args']['id_rubrique'],"?exec=naviguer&id_rubrique=".$flux['args']['id_rubrique']);
+		  }
+    }
+    
+    if (isset($flux['args']['id_mot']) && $flux['args']['exec'] == "mots_edit"){
+    	$flux['data'] .= bloc_gabarit('mot', $flux['args']['id_mot'],"?exec=mots_edit&id_mot=".$flux['args']['id_mot']);
+    	$flux['data'] .= bloc_formulaire_themes('mot', $flux['args']['id_mot'], "?exec=mots_edit&id_mot=".$flux['args']['id_mot']);
+    }
+    
+  }
+
+$flux['data'] .= "";
+
+
+return $flux;
+
+}
+
+function formulaire_bloc_libre($type, $id, $url_retour) {
+	if (isset($_POST['action']) && isset($_POST['bloclibre'])) {
+		if($_POST['action'] == 'associer_bloc_libre' && !is_nan($_POST['bloclibre'])) {
+				//on peut sauver
+				if ($type == "rubrique" && $id == 0 && isset($_POST['lang'])) {
+				  $resultat = spip_query("SELECT * FROM spip_arty_bloclibreassoc WHERE lang='".addslashes($_POST['lang'])."' AND type='$type' AND id=$id AND id_bloc_libre=".$_POST['bloclibre']);
+  				if (!spip_num_rows($resultat)) {
+            spip_query("INSERT INTO spip_arty_bloclibreassoc (id_bloc_libre, type, id, lang) VALUES (".$_POST['bloclibre'].",'$type',$id, '".addslashes($_POST['lang'])."')");
+          }
+ 				} else {
+  				$resultat = spip_query("SELECT * FROM spip_arty_bloclibreassoc WHERE type='$type' AND id=$id AND id_bloc_libre=".$_POST['bloclibre']);
+  				if (!spip_num_rows($resultat)) {
+            spip_query("INSERT INTO spip_arty_bloclibreassoc (id_bloc_libre, type, id) VALUES (".$_POST['bloclibre'].",'$type',$id)");         
+  				}
+	     }
+	  }
+	}
+	
+	if (isset($_POST['action']) && isset($_POST['bloclibre'])) {
+		if($_POST['action'] == 'dissocier_bloclibre' && !is_nan($_POST['bloclibre'])) {
+	    if (isset($_POST["lang"])) {
+			  spip_query("DELETE FROM spip_arty_bloclibreassoc WHERE lang='".addslashes($_POST["lang"])."' AND type='$type' AND id=$id AND id_bloc_libre=".$_POST['bloclibre']);
+			} else {
+        spip_query("DELETE FROM spip_arty_bloclibreassoc WHERE type='$type' AND id=$id AND id_bloc_libre=".$_POST['bloclibre']);
+      }
+		}	
+	}
+	
+		if ($_POST['action']=='nouveaubloc' && isset($_POST['titre']) && isset($_POST['texte']) ) {
+		
+  		$titre=trim(addslashes($_POST['titre']));
+  		$texte=trim(addslashes($_POST['texte']));
+  		$lien=trim(addslashes($_POST['lien']));
+  		
+  		if($lien=="http://") { $lien=""; }
+  
+  		if ($titre!="" ) {//&& $texte!="") {
+  			spip_query("INSERT INTO spip_arty_bloclibre(titre, contenu,lien) VALUES('$titre', '$texte', '$lien')");
+  			 $result = spip_query("SELECT LAST_INSERT_ID();");
+  			 if ($result){
+    				$arr = spip_fetch_array($result);
+    				$id_last = (int) current($arr);
+      				
+    			if (!is_nan($id_last)){
+      				echo traiter_upload_image('illu_bloc_libre','illu-bloc-libre',$id_last);
+      				
+      				$resultat = spip_query("SELECT * FROM spip_arty_bloclibreassoc WHERE type='$type' AND id=$id AND id_bloc_libre=".$id_last);
+      				if (!spip_num_rows($resultat)) {
+      				
+      				if ($type == "rubrique" && $id == 0 && isset($_POST['lang'])) {
+     					  spip_query("INSERT INTO spip_arty_bloclibreassoc (id_bloc_libre, type, id, lang) VALUES (".$id_last.",'$type',$id, '".addslashes($_POST['lang'])."')");
+     					} else {      				
+       					spip_query("INSERT INTO spip_arty_bloclibreassoc (id_bloc_libre, type, id) VALUES (".$id_last.",'$type',$id)");
+       				}
+      			}
+					}
+			 }		 
+		}
+	}
+	
+	$result=spip_query("SELECT * FROM spip_arty_bloclibre");
+	$balancemoica ="";
+	if (spip_num_rows($result)) {
+		$balancemoica = debut_cadre_trait_couleur(_DIR_PLUGIN_ARTY."/images/config.png", true, "", _T('arty:associer_un_bloc_libre'));
+		$balancemoica .= ""._T('arty:intro_associer_bloc_libre')."<br />";
+    $balancemoica .= "<form action='$url_retour' method='post'>";
+		$balancemoica .= "<select name='bloclibre' class='forml'>";
+		while ($row=spip_fetch_array($result)) {
+			$balancemoica .= "<option value='".$row['id_bloc_libre']."'>".htmlspecialchars($row['titre'])."</option>";
+		}
+		$balancemoica .= "</select>";
+		$balancemoica .= "<input type='hidden' name='action' value='associer_bloc_libre'>";	
+	
+	
+  	if ($type == "rubrique" && $id == 0) {
+    
+       $leslangues_menu=explode(",",$GLOBALS['meta']['langues_utilisees']);
+       $def = $GLOBALS['meta']['langue_site'];
+       
+      $balancemoica .= "<br /><br />"._T('arty:langue_bloc_assoc');
+      $balancemoica .= '<br /><select name="lang" class="forml">';
+      
+      foreach($leslangues_menu as $fullname) {
+      	$balancemoica .= "<option value='$fullname' ".(($def==$fullname)?'selected="selected"':'').">".$GLOBALS['codes_langues'][$fullname]."</option>";
+      }
+        $balancemoica .= "</select><br />";
+      
+    }
+	
+		$balancemoica .= "<input type='submit' class='fondo' value='"._T('arty:ajouter')."' /></form>";
+		
+		$resultat=spip_query("SELECT * FROM spip_arty_bloclibreassoc WHERE  type='$type' AND id=$id");
+		if (spip_num_rows($resultat)) {
+		$balancemoica .= "<br />"._T('arty:blocs_libres_deja_associes');
+		$balancemoica .= "<ul style='padding-left:0px;'>";
+			while ($row=spip_fetch_array($resultat)) {
+				$lebloc=spip_query("SELECT * FROM spip_arty_bloclibre WHERE id_bloc_libre =".$row['id_bloc_libre']);
+				$lebloc=spip_fetch_array($lebloc);
+				$balancemoica .= "<li style='font-size:10px;'>&mdash; ".htmlspecialchars($lebloc['titre']);
+				$balancemoica .= $row['lang'] ? " <span style='color:#888'>[".$row['lang']."]</span>" : '';
+				$balancemoica .= "<form style='display:inline;' action='".generer_url_ecrire('avance')."#".$row['id_bloc_libre']."' method='post'>";
+				$balancemoica .= "<input type='hidden' name='retour' value='$url_retour' />";
+				$balancemoica .= "<input type='hidden' name='bloc' value='".$row['id_bloc_libre']."' />";
+        if (_SPIP_AJAX) {
+			    $balancemoica .= "<img src='"._DIR_PLUGIN_ARTY."/images/mod.png' alt='M' title='"._T('arty:modifier_ce_bloc')."' class='bouton-modifier' style='margin-left:3px; cursor: pointer;' />";
+  			} else {
+				  $balancemoica .= "<input type='submit' value='"._T('arty:modifier_ce_bloc')."' />";
+				}
+				$balancemoica .= "</form>";
+				$balancemoica .= "<form style='display:inline;' action='$url_retour' method='post' style='display:inline;'>";
+				$balancemoica .= "<input type='hidden' name='action' value='dissocier_bloclibre'>";
+				if ($row['lang']) {
+          $balancemoica .= "<input type='hidden' name='lang' value='".$row["lang"]."'>";  
+        }
+				$balancemoica .= "<input type='hidden' name='bloclibre' value='".$row['id_bloc_libre']."'>";
+		  	if (_SPIP_AJAX) {
+			    $balancemoica .= "<img src='"._DIR_IMG_PACK."/croix-rouge.gif' alt='X' title='"._T("arty:supprimer")."' style='margin-left:2px; cursor: pointer;' class='bouton-supprimer' />";
+  			} else {
+  				$balancemoica .= "<input type='submit' value='X'/>";
+  			}
+  				$balancemoica .= "</form></li>";
+			}
+		$balancemoica .= "</ul>";
+		if (_SPIP_AJAX) {
+		$balancemoica .= "<script type='text/javascript'>
+		jQuery('.bouton-supprimer').each(function(){
+			jQuery(this).click(function(){
+				jQuery(this).parent().submit();
+				})
+			})
+		jQuery('.bouton-modifier').each(function(){
+			jQuery(this).click(function(){
+				jQuery(this).parent().submit();
+				})
+			})
+		</script>";
+			}
+		
+		}
+		$balancemoica .= fin_cadre_trait_couleur(TRUE);
+	}
+	
+	$balancemoica .= debut_cadre_trait_couleur(_DIR_PLUGIN_ARTY."/images/config.png", true, "", _T('arty:creer_bloc_et_associer'));
+  $texte .= _T('arty:entrez_donnees_nouveau_bloc');
+  $texte .= "<form action='".$url_retour."' method='post' enctype=\"multipart/form-data\">\n";
+  $texte .= "<input type='hidden' name='action' value='nouveaubloc' />";
+  $texte .= "<input type='text' name='titre' value='"._T('arty:titre')."' onfocus='this.value=&#34;&#34;;' maxlength='255' size='27' />";
+  $texte .= "<textarea name='texte' cols='20' rows='4'></textarea>"; 
+  $texte .= "<br /><br />"._T('arty:bloc_lien')."<br />";
+  $texte .= "<input type='text' name='lien' value='http://' maxlength='255' size='27' />";
+  $texte .= "<br /><br />"._T('arty:bloc_image')."<br />";
+  $texte .= "<input type=\"file\" name=\"illu_bloc_libre\" size=\"13\" /><br />";
+  
+    	if ($type == "rubrique" && $id == 0) {
+    
+       $leslangues_menu=explode(",",$GLOBALS['meta']['langues_utilisees']);
+       $def = $GLOBALS['meta']['langue_site'];
+       
+      $texte .= _T('arty:langue_bloc');
+      $texte .= '<br /><select name="lang" class="forml">';
+      
+      foreach($leslangues_menu as $fullname) {
+      	$texte .= "<option value='$fullname' ".(($def==$fullname)?'selected="selected"':'').">".$GLOBALS['codes_langues'][$fullname]."</option>";
+      }
+        $texte .= "</select>";
+    }
+  
+  $texte .= "<br /><input type='submit' value='"._T("arty:enregistrer")."' class='fondo' />";
+  $texte .= "</form>";
+  
+  $balancemoica .= block_parfois_visible("creer_bloc", _T("arty:intro_creer_bloc"), $texte, '', false);
+  $balancemoica .= fin_cadre_trait_couleur(TRUE);
+	
+	
+	return $balancemoica;
+}
+
+// formulaire d'ajout/remplacement/suppression d'un bandeau Ã  la rubrique
+function formulaire_logo($id_groupe)
+{
+  $texte = "<p>"._T('arty:intro_up_logo')."</p>";
+  traiter_suppression_logo($id_groupe);
+  $message = _T(traiter_upload_image('logo','logo-groupe',$id_groupe));
+  $texte .= ($message) ? "<p style=\"font-weight:bold;\">".$message."</p>" : "";
+  
+  $visible = false;
+  
+  $chem = creer_repertoire_documents("logo-groupe");
+  $handle = @opendir($chem); 
+  while($fichier = @readdir($handle)) {
+    if (ereg("^logo-$id_groupe\.(jpg|png|gif)$", $fichier)) {
+      $logo = $fichier;
+    }
+  }
+  if (!isset($logo)){
+    $texte .= "<p>"._T("arty:aucun_logo_rub")."</p>";
+  } else {
+    $visible = true;
+    $result = _T("arty:logo_actuel").":<br /><img width=\"190\" src=\""._DIR_DOC."logo-groupe/$logo?".uniqid(rand())."\" />"; // le nombre alÃ©atoire permet d'Ã©viter que le navigateur affiche la version en cache de l'image.
+    $result .= "<p>[<a href=\"?exec=mots_type&id_groupe=$id_groupe&action=supprimer_logo&id_check=".$_SESSION['id_check']."\">"._T('arty:supprimer_logo')."</a>]</p>";
+    $texte .= $result;
+  }
+  $texte .= "<form action=\"?exec=mots_type&amp;id_groupe=$id_groupe\" method=\"post\" enctype=\"multipart/form-data\">";
+  $texte .= "<input type=\"file\" name=\"logo\" id=\"logo\" size=\"13\" /><br />";
+  $texte .= "<div style=\"text-align:right;\"><input class=\"fondo\" name=\"filesubmit\" type=\"submit\" value=\""._T('arty:enregistrer')."\" /></div>";
+  $texte .= "</form>";
+  $data = debut_cadre_couleur("vignette-24.png", true, "", _T('arty:titre_up_rub_logo'));
+  $data .= block_parfois_visible("logo", _T("arty:invit_up_rub_logo"), $texte, '', $visible);
+	$data .= fin_cadre_couleur(true);
+
+	return $data;
+}
+
+
+function bloc_gabarit($type, $id, $url_retour) 
+{
+	
+	if (isset($_POST['action']) && isset($_POST['gabarit'])) {
+		if($_POST['action'] == 'changer_gabarit' && trim($_POST['gabarit'])!="") {
+				//on peut sauver
+				spip_query("DELETE FROM spip_arty_gabaritassoc WHERE type='$type' AND id=$id");
+				if ($_POST['gabarit'] !='gabarit_default') {
+				spip_query("INSERT INTO spip_arty_gabaritassoc (gabarit, type, id) VALUES ('".addslashes(trim($_POST['gabarit']))."','$type',$id)");
+				}
+		}	
+	}
+	
+	$resultat = spip_query("SELECT * FROM spip_arty_gabaritassoc WHERE type='$type' AND id=$id");
+	if (spip_num_rows($resultat)) {
+		$row=spip_fetch_array($resultat);
+		$gabarit_actuel=$row['gabarit'];
+	} else { $gabarit_actuel='gabarit_default'; }
+	
+  $ignore_liste = Array(".svn", ".", "..");
+  $rep = _DIR_PLUGIN_ARTY."definitions-gabarits";
+  $handle = opendir($rep);
+  
+  $balancemoica = debut_cadre_trait_couleur(_DIR_PLUGIN_ARTY."/images/config.png", true, "", _T('arty:associer_un_gabarit'));
+  $balancemoica .= _T('arty:intro_associer_gabarit')."<br /><br />";
+  $balancemoica .= _T('arty:choisissez_un_gabarit').":<br />";
+  $balancemoica .="<form action='$url_retour' method='post'>";
+  
+  $gabarits=array();
+  $gabaritpardefaut=array("sommaire","rubrique","article");
+  $ignore_liste=array(".","..",".DS_Store");
+	$rep = _DIR_PLUGIN_ARTY."definitions-gabarits";
+  $handle = opendir($rep);
+  while($fichier = readdir($handle)) {
+  
+    if (!in_array($fichier, $ignore_liste) && eregi('^[a-zA-Z0-9_-]*\.xml$',$fichier)) {
+      $p =& new xmlParser();
+ 		  $p->parse($rep.'/'.$fichier);
+ 		  if (!in_array(ereg_replace("\.xml$","",$fichier),$gabaritpardefaut)) {
+ 		    $gabarits[$p->output[0]['attrs']['TYPE']][] = ereg_replace("\.xml$","",$fichier);
+ 		  }
+ 		  $liste_gabarit[]=ereg_replace("\.xml$","",$fichier);
+      } 
+  }
+  
+  //gabarits du dossier "pages-custom" (surclassage)
+  $rep_custom = _DIR_RACINE."pages-custom/gabarits";
+  if (file_exists($rep_custom)) {
+    $handle = opendir($rep_custom);
+    while($fichier = readdir($handle)) {
+      if (!in_array($fichier, $ignore_liste) && eregi('^[a-zA-Z0-9_-]*\.xml$',$fichier) && !in_array($fichier, $liste_gabarit)) {
+        $p =& new xmlParser();
+     		$p->parse($rep_custom.'/'.$fichier);
+     		$nom_gabarit = ereg_replace("\.xml$","",$fichier);
+     		$type_gabarit = $p->output[0]['attrs']['TYPE'];
+     		if (!in_array($nom_gabarit, $gabaritpardefaut) && !in_array($nom_gabarit, $gabarits[$type_gabarit])) {
+     		 $gabarits[$type_gabarit][] = ereg_replace("\.xml$","",$fichier);
+     		}
+        $liste_gabarit[] = ereg_replace("\.xml$","",$fichier);
+      }
+     }
+  }
+  //gabarits de la base de donnÃ©es
+  $query = spip_query('SELECT * FROM spip_arty_gabarit_perso');
+  while ($row = spip_fetch_array($query)) {
+    if (!in_array($row['nom'], $liste_gabarit)) {
+      $liste_gabarit[] = $row['nom'];
+      $donnees = $row['type'];
+      $gabarits[$donnees][] = $row['nom'];
+    }
+  }
+  // faire le menu deroulant
+  $leselect="";
+  $leselect .="<select name='gabarit' class='forml'>";
+  $leselect .="<option value='gabarit_default'>"._T('arty:gabarit_par_defaut')."</option>";
+  foreach($gabarits as $nom => $typegabarit) {
+  	if ($type == $nom) {
+  	 foreach($typegabarit as $cegabarit) {
+  	   $leselect .="<option class='$type' value='$cegabarit' ".(($cegabarit ==$gabarit_actuel)?"selected='selected' " : "").">"._T("arty:$cegabarit")."</option>";
+  	 }
+  	}
+  }
+  
+  $leselect .="</select>";
+  
+  $balancemoica .= $leselect;
+   
+  $balancemoica .="<input type='hidden' name='action' value='changer_gabarit' />";	 
+  $balancemoica .= "<br /><input class='fondo' type='submit' value='"._T('arty:bouton_changer_gabarit')."' /><br />";
+  $balancemoica .="</form>";
+  
+  // bouton de modification du gabarit + retour
+  $balancemoica .= "<form action='?exec=gabarit&amp;gabarit=";
+  if ($gabarit_actuel=="gabarit_default"){
+  $balancemoica .= "$type";
+  } else {
+  $balancemoica .= "$gabarit_actuel";
+  }
+  $balancemoica .= "' method='post'>";
+  $balancemoica .= "<input name='retour' value='$url_retour' type='hidden'>";
+  $balancemoica .= "<br /><input class='fondo' type='submit' value='"._T('arty:editer_ce_gabarit')."' />";
+  $balancemoica .= "</form>";
+$balancemoica .= fin_cadre_couleur(true);
+
+// formulaire de creation d'un gabarit Ã  partir de la page
+  $balancemoica .= debut_cadre_trait_couleur(_DIR_PLUGIN_ARTY."/images/config.png", true, "", _T('arty:creer_gabarit_et_associer'));
+
+	$balancemoica .= "<form action='".generer_url_ecrire('gabarit')."' method='post'>\n";
+	$balancemoica .= "<input name='retour' value='$url_retour' type='hidden'>";
+	$balancemoica .= "<p style='margin-top:0px; margin-bottom:2px;'>"._T("arty:deriver_gabarit")."</p>";
+$balancemoica .= "<input type='hidden' name='associer' value='". $id ."'/>";
+  $balancemoica .= "<input type='hidden' name='action' value='deriver'/>";
+  $balancemoica .= "<input type='text' name='nom_gabarit' value='"._T('arty:nom_du_gabarit')."' /><br />";
+  
+  $balancemoica .= "<p style='margin-top:8px; margin-bottom:2px;'>"._T("arty:baser_gabarit_sur")."</p>";
+  $balancemoica .= "<select id='source' name='source' class='forml'>";
+  
+  foreach($gabaritpardefaut as $un_gabarit) {
+    if ($un_gabarit == $type) {
+      $balancemoica .= '<option name="'.$un_gabarit.'" value="'.$un_gabarit.'">'.$un_gabarit.'</option>';
+    }
+  }
+  foreach($gabarits as $nom_type => $types_gabarits) {
+      foreach($types_gabarits as $un_gabarit) {
+        if ($nom_type == $type){
+        $balancemoica .= '<option name="'.$un_gabarit.'" value="'.$un_gabarit.'">'.$un_gabarit.' '.$nom_type.'</option>';
+        }
+    }
+  }
+  $balancemoica .= "</select>";
+  $balancemoica .= "<br /><input type='submit' value='"._T("arty:enregistrer")."' class='fondo' />";
+  $balancemoica .= "</form>";
+  
+$balancemoica .= "</form>";	
+
+
+
+  $balancemoica .= fin_cadre_couleur(true);
+  
+  closedir($handle);
+  
+  return $balancemoica;
+}
+
+function bloc_formulaire_themes($type, $id, $url_retour) {
+	
+	if (isset($_POST['action']) && isset($_POST['theme'])) {
+		if($_POST['action'] == 'changer_theme' && trim($_POST['theme'])!="") {
+			//print_r($_POST);
+				//on peut sauver
+				spip_query("DELETE FROM spip_arty_themeassoc WHERE type='$type' AND id=$id");
+				if ($_POST['theme'] !='theme_default') {
+				spip_query("INSERT INTO spip_arty_themeassoc (theme, type, id) VALUES ('".addslashes(trim($_POST['theme']))."','$type',$id)");
+				}
+				
+		}	
+	}
+	
+	$resultat = spip_query("SELECT * FROM spip_arty_themeassoc WHERE type='$type' AND id=$id");
+	if (spip_num_rows($resultat)) {
+		$row=spip_fetch_array($resultat);
+		$theme=$row['theme'];
+	} else { $theme='theme_default'; }
+	
+  $ignore_liste = Array(".svn", ".", "..",".DS_Store");
+  $rep = _DIR_PLUGIN_ARTY."themes";
+  $handle = opendir($rep);
+  
+  $balancemoica = debut_cadre_trait_couleur(_DIR_PLUGIN_ARTY."/images/config.png", true, "", _T('arty:associer_un_theme'));
+  $balancemoica .="<form action='$url_retour' method='post'>";
+  $balancemoica .="<select name='theme' class='forml'>";
+  $balancemoica .="<option value='theme_default'>"._T('arty:theme_par_defaut')."</option>";
+  while($fichier = readdir($handle)) {
+    
+      if (in_array($fichier, $ignore_liste)) {
+      } else if (is_dir($rep.'/'.$fichier)) {
+               
+        if (file_exists($rep.'/'.$fichier.'/theme.xml')) {
+        	        	
+ $p =& new xmlParser();
+ $p->parse($rep.'/'.$fichier.'/theme.xml');
+ //print_r($p->output);
+ 
+ foreach($p->output[0]['child'] as $id => $tag) {
+ 	if ($tag['name'] == "TITRE") {
+ 		$balancemoica .="<option value='".$fichier."' ".(($fichier==$theme)?"selected='selected' ": '').">".$tag["content"]."</option>";
+ 	}
+ 	
+ 	if ($tag['name'] == "DECLINAISON") {
+ 		$balancemoica .="<option value='".$fichier."|".$tag["attrs"]["CHEMIN"]."' ".(($fichier."|".$tag["attrs"]["CHEMIN"]==$theme)?"selected='selected' ": '')."> - ".$tag["attrs"]["TITRE"]."</option>";
+ 		}
+ 		
+ 	}
+        }}}
+  
+  $balancemoica .="</select>"; 
+  $balancemoica .="<input type='hidden' name='action' value='changer_theme' />";	 
+  $balancemoica .= "<input class='fondo' type='submit' value='"._T('arty:bouton_changer_theme')."' />";
+  $balancemoica .= fin_cadre_couleur(true);
+  $balancemoica .="</form>";
+  
+  closedir($handle);
+  
+  return $balancemoica;
+}
+
+// formulaire d'ajout/remplacement/suppression d'un bandeau Ã  la rubrique
+function formulaire_bandeau($id_rubrique)
+{
+  $texte = "<p>"._T('arty:intro_up_rub_bandeau')."</p>";
+  traiter_suppression_bandeau($id_rubrique);
+  $message = _T(traiter_upload_bandeau($id_rubrique));
+  $texte .= ($message) ? "<p style=\"font-weight:bold;\">".$message."</p>" : "";
+  
+  $visible = false;
+  
+  $chem = creer_repertoire_documents("bandeau");
+  $handle = @opendir($chem); 
+  while($fichier = @readdir($handle)) {
+    if (ereg("^bandeau-$id_rubrique\.(jpg|png|gif)$", $fichier)) {
+      $bandeau = $fichier;
+    } 
+    
+    if (ereg("^bandeau\.(jpg|png|gif)$", $fichier) && !$id_rubrique) {
+      $bandeau = $fichier;
+    }
+  }
+  
+  if (!isset($bandeau)){
+    $texte .= "<p>"._T("arty:aucun_bandeau_rub")."</p>";
+  } else {
+    $visible = true;
+    $result = _T("arty:bandeau_actuel").":<br /><img width=\"190\" src=\""._DIR_DOC."bandeau/$bandeau?".uniqid(rand())."\" />"; // le nombre alÃ©atoire permet d'Ã©viter que le navigateur affiche la version en cache de l'image.
+    $result .= "<p>[<a href=\"?exec=naviguer&id_rubrique=$id_rubrique&action=supprimer_bandeau&id_check=".$_SESSION['id_check']."\">"._T('arty:supprimer_bandeau')."</a>]</p>";
+    $texte .= $result;
+  }
+  $texte .= "<form action=\"?exec=naviguer&amp;id_rubrique=$id_rubrique\" method=\"post\" enctype=\"multipart/form-data\">";
+  $texte .= "<input type=\"file\" name=\"bandeau\" id=\"bandeau\" size=\"13\" /><br />";
+  $texte .= "<div style=\"text-align:right;\"><input class=\"fondo\" name=\"filesubmit\" type=\"submit\" value=\""._T('arty:enregistrer')."\" /></div>";
+  $texte .= "</form>";
+  $data = debut_cadre_couleur("vignette-24.png", true, "", _T('arty:titre_up_rub_bandeau'));
+  $data .= block_parfois_visible("bandeau", _T("arty:invit_up_rub_bandeau"), $texte, '', $visible);
+	$data .= fin_cadre_couleur(true);
+
+	return $data;
+}
+
+?>
Index: trunk/spip/esqueleto-redcta/plugins/magusine/arty_boutons.php
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/arty_boutons.php	(revision 79)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/arty_boutons.php	(revision 79)
@@ -0,0 +1,10 @@
+<?php
+
+function arty_ajouterBoutons($boutons_admin) {
+			$boutons_admin['configuration']->sousmenu['theme'] = new Bouton(
+      "../"._DIR_PLUGIN_ARTY."images/bouton-magusine-24.png",  // icone
+			_T('arty:options_arty')	// titre
+      );
+			return $boutons_admin;
+}
+?>
Index: trunk/spip/esqueleto-redcta/plugins/magusine/arty_fonctions.php
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/arty_fonctions.php	(revision 79)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/arty_fonctions.php	(revision 79)
@@ -0,0 +1,366 @@
+<?php
+
+function modif_inserhead($texte){
+$texte=str_replace("spip.php?page=jquery.js","spip.php?page=jquery-public.js",$texte);
+return $texte;
+}
+
+function chercheid($texte,$queltype="article") {
+if (ereg ("($queltype=[a-zA-Z0-9' _-]{1,255})", $texte, $regs)) {
+    return ereg_replace("$queltype=","",$regs[0]);
+} else { return ""; }
+}
+
+function chercheextension($texte){
+$texte = strtolower(end(explode(".", $texte)));	
+return $texte;
+}
+
+function addghost($texte) {
+	if (ereg("article.php3",$texte)) {
+		$texte = $texte. "&fond=ghost";
+		$texte = ereg_replace("article.php3", "page.php3", $texte);
+	}
+	
+	if (ereg("spip.php", $texte)) {
+		$texte=ereg_replace("article", "page=ghost&id_article=",$texte);
+		
+	}
+	return $texte;
+}	
+
+function trouvepage($texte){
+	if (ereg ("(page=[a-zA-Z0-9' _-]{1,255})", $texte, $regs)) {
+	return $regs[0];
+	} else if (ereg ("article[0-9]{1,5}|rubrique[0-9]{1,5}|mot[0-9]{1,5}|groupe[0-9]{1,5}", $texte, $regs)) {
+	// c'est une page type
+	return $regs[0];
+} else { return ""; }
+}
+
+function envpart($texte,$lequel=0){
+$texte=explode("|",$texte);
+if($lequel <= count($texte)) {  
+return $texte[$lequel];
+} else {
+return "";
+}
+}
+
+function tableau2in($texte){
+$texte=explode("|",$texte);
+return $texte;
+}
+
+function tableau2invirgule($texte){
+$texte=explode(",",$texte);
+return $texte;
+}
+
+function tableau2array($texte,$split){
+$texte=explode($split,$texte);
+return $texte;
+}
+
+function element($texte,$element) {
+$result="rien";
+	foreach($texte as $elem => $param){
+		if ($elem == $element){
+		$result=$param;
+		}
+	}
+return $result;
+}
+
+function taille_img_diaporama($largeur,$hauteur,$destlargeur=600,$desthauteur=500) {
+	
+	$neolargeur=0;
+	$neohauteur=0;
+	// calcule la largeur sur base du rapport hauteurlargeur
+	if ($largeur > $destlargeur) { 
+	$neolargeur=$destlargeur;
+	$neohauteur=($hauteur/($largeur/$destlargeur));
+	}
+	
+	if (($neohauteur > $desthauteur) or ($neohauteur==0 and ($hauteur > $desthauteur))) {
+	//on reduit donc sur base de desthauteur
+		$neohauteur=$desthauteur;
+		$neolargeur=$largeur/($hauteur/$desthauteur);
+	}
+	
+	// si ni neohauteur ni neolargeur ne sont definis, c'est qu'ils sont corrects
+	if ($neohauteur == 0) { $neohauteur=$hauteur; }
+	if ($neolargeur == 0) { $neolargeur=$largeur; }
+	
+
+return array($neolargeur,$neohauteur);
+}
+
+// remonte l'arborescence et retourne le premier thÃšme trouvÃ© pour une rubrique donnÃ©e 
+function premier_theme($id_rubrique){
+  $id_parent = $id_rubrique;
+  while($id_parent != 0) {
+    // un thÃšme est-il prÃ©sent pour cette rubrique?
+    $result = spip_query("SELECT id_theme FROM spip_magu_themes_rubriques WHERE id_rubrique=$id_rubrique");
+    if (spip_num_rows($result) == 1) {
+      $row = spip_fetch_array($result);
+      return $row['id_theme'];
+    }
+    // sinon, continuer et vÃ©rifier pour le parent
+    $result = spip_query("SELECT id_parent FROM spip_rubriques WHERE id_rubrique=$id_rubrique");
+    $row = spip_fetch_array($result);
+    $id_parent = $row['id_parent'];
+    $id_rubrique = $id_parent;
+  }
+  // aucun thÃšme n'a Ã©tÃ© trouvÃ©, on prend le thÃšme par dÃ©faut
+  $result = spip_query("SELECT id_theme FROM spip_magu_themes_rubriques WHERE id_rubrique=0");
+  $row = spip_fetch_array($result);
+  return $row['id_theme'];  
+}
+
+// retourne le logo d'un bloc libre si il existe
+function logo_bloc($id_bloc){
+  $handle = @opendir("IMG/illu-bloc-libre/"); 
+  while($fichier = @readdir($handle)) {
+    if (ereg("^illu_bloc_libre-$id_bloc\.(jpg|png|gif)$", $fichier)) {
+      $logo = $fichier;
+    }
+  }
+  if (!isset($logo)){
+    return false;
+  } else {
+    return "IMG/illu-bloc-libre/$logo";
+  }
+}
+
+// retourne le logo d'un groupe si il existe
+function logo_groupe($id_groupe){
+  $handle = @opendir("IMG/logo-groupe/"); 
+  while($fichier = @readdir($handle)) {
+    if (ereg("^logo-$id_groupe\.(jpg|png|gif)$", $fichier)) {
+      $logo = $fichier;
+    }
+  }
+  if (!isset($logo)){
+    return false;
+  } else {
+    return "IMG/logo-groupe/$logo";
+  }
+}
+
+function controlelargeur($texte) {
+if ($texte==0) { $texte= 160; };
+return $texte;
+}
+
+function controlehauteur($texte) {
+if ($texte==0) { $texte = 120; };
+return $texte;
+}
+
+function nospace($texte) {
+$texte = ereg_replace("&nbsp;", "", $texte);
+$texte = ereg_replace(" ", "", $texte);
+return $texte;
+}
+
+function no_accent($chaine){ 
+   $chaine = strtr
+// La ligne suivante entre parenthÃšse doit Ãªtre sur une seule ligne, sinon erreur php
+($chaine,  "ÃÃÃÃÃÃ
+Ã Ã¡Ã¢Ã£Ã€Ã¥ÃÃÃÃÃÃÃ²Ã³ÃŽÃµÃ¶ÃžÃÃÃÃÃšÃ©ÃªÃ«ÃÃ§ÃÃÃÃÃ¬Ã­Ã®Ã¯ÃÃÃÃÃ¹ÃºÃ»ÃŒÃ¿ÃÃ±", "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
+ $chaine = str_replace("\"", "&quot;", $chaine);
+ return $chaine;
+  }
+  
+
+
+/*
+*   +-------------------------------------+
+*    Nom du Filtre : Conversion des ancres
+*   +-------------------------------------+
+*    Date : vendredi 18 juin 2004
+*    Auteur :  AliGator (aligator@macfr.com)
+*   +-------------------------------------+
+*    Fonctions de ce filtre :
+*      Ce script permet de gÃ©rer les ancres insÃ©rÃ©es dans un
+*      article sous la forme [nomancre<-] ou [#nomancre<-]
+*      pour les remplacer par une ancre HTML (<a name="#nomancre"></a>)
+*      Ceci vous permet d'autoriser les auteurs des articles sur votre site
+*                Ã  utiliser ce nouveau "raccourci typographique"
+*   +-------------------------------------+ 
+*/
+
+function gerer_ancres($texte)
+{
+        $res = preg_replace("|\[\#?([A-Za-z0-9_]*)<-\]|U" ,
+                "<a name=\"\$1\"></a>" , $texte);
+        return $res;
+}
+
+function vignettewebmaton($texte) {
+$texte= ereg_replace("/mp4/","/webmaton-vignettes/",$texte);
+$texte = ereg_replace("\.mp4$", ".png", $texte);
+if (file_exists($texte)) {
+return $texte;
+} 
+}
+
+function transguillemet ($texte) {
+$texte = ereg_replace("\"", "''", $texte);
+$texte = ereg_replace("\n", "", $texte);
+$texte = ereg_replace("\t", " ", $texte);
+return $texte;
+}
+
+function lienitunes($texte){
+$texte = ereg_replace("^http://", "itpc://", $texte);
+return $texte;
+}
+
+function nomfichier($texte) {
+  $texte = explode('/', trim($texte, "/"));
+  return end($texte);
+}
+
+function sans_newline($texte){
+  $texte = ereg_replace("\n", "", $texte);
+  return $texte;
+}
+
+function premiere_lettre($texte){
+  $premiere = $texte{0};
+  if (eregi("^[a-z]$",$premiere)) {
+    return strtoupper($premiere);
+  } else {
+    return "#";
+  }
+}
+
+function balise_THEME($params) {
+	include_spip('inc/cherche-theme');	
+	$theme=theme_actuel();	
+	$morceaux=explode("|",$theme);
+	$params->code = "$morceaux[0]";
+	$params->type = 'html';  
+  return $params;
+}
+
+function balise_LARGEUR_CORPS($params) {
+	$largeur=trouveintheme('LARGEURCORPS', '480');
+	$params->code = "'$largeur'";
+	$params->type = 'html';  
+  	return $params;
+}
+
+function balise_LARGEUR_CONTEXTE1($params) {
+	$largeur=trouveintheme('LARGEURCONTEXTE1', '150');
+	$params->code = "'$largeur'";
+	$params->type = 'html';  
+  	return $params;
+}
+
+function balise_LARGEUR_CONTEXTE2($params) {
+	$largeur=trouveintheme('LARGEURCONTEXTE2', '120');
+	$params->code = "'$largeur'";
+	$params->type = 'html';  
+  	return $params;
+}
+
+function trouveintheme($quoi, $defaut) {
+	include_spip('inc/cherche-theme');
+	include_spip('inc/xml-parser');
+
+	$letruc=$defaut;
+	$quoi=strtoupper($quoi);
+
+	$theme=theme_actuel();	
+	$morceaux=explode("|",$theme);
+	if (count($morceaux)==1) {
+		
+	$declinaison=FALSE;	
+	} else {
+		$declinaison=$morceaux[1];
+		}
+		
+	$theme=$morceaux[0];
+	
+	$p =& new xmlParser();
+ 	$p->parse(_DIR_PLUGIN_ARTY.'themes/'.$theme.'/theme.xml');
+	foreach($p->output[0]['child'] as $tag) {
+	if ($tag['name']==$quoi) {
+		$letruc=$tag['content'];
+	}
+	
+	if ($tag['name']=='DECLINAISON' && $tag['attrs']['CHEMIN']==$declinaison) {
+		foreach($tag['child'] as $tagchild) {
+			if ($tagchild['name']==$quoi) {
+			$letruc=$tagchild['content'];
+			}
+		}
+	}
+		
+	}
+
+	return $letruc;
+}
+
+function parametres($texte){
+// fabrique un array associatif des parametres du site, une seule lecture xml donc.
+	include_spip('inc/cherche-theme');
+	include_spip('inc/xml-parser');
+
+	$theme=theme_actuel();	
+	$morceaux=explode("|",$theme);
+	if (count($morceaux)==1) {
+		
+	$declinaison=FALSE;	
+	} else {
+		$declinaison=$morceaux[1];
+		}
+	$theme=$morceaux[0];
+	
+	$params_acceptes =array("separateur","titre");
+
+	if($texte == "theme") {
+		$letruc=$theme;
+	} else if (in_array($texte,$params_acceptes))  {
+		$p =& new xmlParser();
+ 		$p->parse(_DIR_PLUGIN_ARTY.'themes/'.$theme.'/theme.xml');
+		$texte=strtoupper($texte);
+	 	$letruc=trouvelem($p->output[0]['child'],$declinaison,$texte,"");
+	} else {
+	$p =& new xmlParser();
+ 	$p->parse(_DIR_PLUGIN_ARTY.'themes/'.$theme.'/theme.xml');
+ 	
+ 	$navigation=trouvelem($p->output[0]['child'],$declinaison,"NAVIGATION","general");
+ 	$chemin=trouvelem($p->output[0]['child'],$declinaison,"CHEMIN_PAGE","general");
+ 	$footer=trouvelem($p->output[0]['child'],$declinaison,"FOOTER","general");
+	$contenus=trouvelem($p->output[0]['child'],$declinaison,"DIV_CONTENUS","non");
+	
+	$letruc=array("theme" => $theme,"navigation" => $navigation,"footer" => $footer, "chemin" => $chemin,"contenus" => $contenus);
+	} 
+	
+	return $letruc;
+}
+
+function trouvelem($tableau,$declinaison,$elem,$defaut){
+$elemtrouve=$defaut;
+foreach($tableau as $tag) {
+	if ($tag['name']==$elem) {
+		$elemtrouve=$tag['content'];
+	}
+	
+	if ($tag['name']=='DECLINAISON' && $tag['attrs']['CHEMIN']==$declinaison) {
+		foreach($tag['child'] as $tagchild) {
+			if ($tagchild['name']==$elem) {
+			$elemtrouve=$tagchild['content'];
+			}
+		}
+	}
+		
+	}
+	return $elemtrouve;
+}
+
+?>
Index: trunk/spip/esqueleto-redcta/plugins/magusine/arty_header.php
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/arty_header.php	(revision 79)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/arty_header.php	(revision 79)
@@ -0,0 +1,129 @@
+<?php
+include_spip('inc/xml-parser');
+include_spip('inc/cherche-theme');
+
+function arty_ajouterHeader($flux) {
+	$theme=theme_actuel();
+	$head = generer_head($theme);
+	return $flux.=$head;
+}
+	
+function generer_head($theme) {
+	$morceaux=explode("|", $theme);
+	if (count($morceaux)==1) {
+		//le theme est un theme plein, pas de declinaison
+		$dossier=$morceaux[0];
+		$declinaison=FALSE;
+	} else {
+		// le theme est une declinaison
+			$dossier=$morceaux[0];
+			$declinaison=$morceaux[1];
+	}
+	
+	// scripts ie7
+	$inclusion_theme ="<!-- plugin magusine developpe par les corsaires asbl http://www.magusine.net-->\n";
+	$inclusion_theme .="<!-- compliance patch for microsoft browsers -->\n";
+	$inclusion_theme .="<!--[if lt IE 7]><script src='ie7/ie7-standard-p.js' type='text/javascript'></script><![endif]-->\n";
+
+	// fichier javascript de base
+	$print="";
+	$inclusion_theme .="\n";
+	$inclusion_theme .="<script src='"._DIR_PLUGIN_ARTY."javascript/javascript-public.js' type='text/javascript' language='javascript'></script>\n";
+	$inclusion_theme .="<script src='"._DIR_PLUGIN_ARTY."javascript/thickbox.js' type='text/javascript' language='javascript'></script>\n";
+	
+	// dans le theme
+	$inclusion_theme .=generejavacss(_DIR_PLUGIN_ARTY."themes/".$dossier);
+	// ajouter la declinaison
+	if ($declinaison) {
+	$inclusion_theme .= "<link href='"._DIR_PLUGIN_ARTY."themes/".$dossier."/declinaisons/".$declinaison."' rel='stylesheet' type='text/css' media='screen' />\n";
+	}
+	//dans le dossier pages-custom
+	$inclusion_theme .=generejavacss("pages-custom");
+	
+    if(!ereg("media='print'",$inclusion_theme)){
+	$inclusion_theme .="<link href='"._DIR_PLUGIN_ARTY."css/print.css' rel='stylesheet' type='text/css' media='print' />\n";
+	}
+  
+	$larubbandeau=trouvelarub();
+	$lebandeau=trouver_bandeau($larubbandeau);
+	if($lebandeau){
+		$lebandeau ="<style type='text/css'> 
+  <!-- 
+  #bandeau { background-image: url(.$lebandeau); } 
+  --> 
+  </style>";
+		
+	$inclusion_theme .=$lebandeau;
+	}
+	return $inclusion_theme;
+	}
+	
+function trouver_bandeau($id_rubrique){
+  $url_bandeau = false;
+  $extensions = Array("jpg","png","gif");
+  $id_parent = $id_rubrique;
+  while($id_parent != 0) {
+    // un bandeau est-il prÃ©sent pour cette rubrique?
+    foreach($extensions as $ext){
+      if (file_exists(_DIR_DOC."bandeau/bandeau-$id_rubrique.$ext")){
+        $url_bandeau = "/"._DIR_DOC."bandeau/bandeau-$id_rubrique.$ext";
+        return $url_bandeau;
+      }
+    }
+    // sinon, continuer et vÃ©rifier pour le parent
+    $result = spip_query("SELECT id_parent FROM spip_rubriques WHERE id_rubrique=$id_rubrique");
+    $row = spip_fetch_array($result);
+    $id_parent = $row['id_parent'];
+    $id_rubrique = $id_parent;
+  }
+  // aucun bandeau spÃ©cifique n'a Ã©tÃ© trouvÃ©
+  foreach($extensions as $ext){
+    if (file_exists(_DIR_DOC."bandeau/bandeau.".$ext)){
+      $url_bandeau = "/"._DIR_DOC."bandeau/bandeau.".$ext;
+    }
+  }
+  return $url_bandeau;
+}
+
+function trouvelarub() {
+if (isset($GLOBALS['id_rubrique'])) {
+    // si c'est une page rubrique, trouver le thÃšme de la rubrique ou des rubriques parentes
+    $id_rubrique = $GLOBALS['id_rubrique'];
+  } else if (isset($GLOBALS['id_article'])) {
+    // si c'est un article, trouver sa rubrique et ensuite son thÃšme, ou le thÃšme des rubriques parentes 
+    $result = spip_query("SELECT id_rubrique FROM spip_articles WHERE id_article='".addslashes($GLOBALS['id_article'])."'");
+    $row = spip_fetch_array($result);
+    $id_rubrique = $row['id_rubrique'];
+  } else {
+  	$id_rubrique=0;
+  }
+  
+  return $id_rubrique;
+}
+
+// lire le dossier, en extraire css et javascript
+function generejavacss($dossiertheme) {
+$inclusion_theme="";
+	if(is_dir($dossiertheme)){
+		$liste_ignore = Array(".","..",".DS_Store");
+		$handle = opendir($dossiertheme);
+  		while ($fichier=readdir($handle)){ 
+    		if (!in_array($fichier, $liste_ignore)){
+      		if (eregi("^[a-zA-Z0-9_-]*\.css$",$fichier)) {
+      		if ($fichier=="print.css") {
+      		$inclusion_theme .="<link href='".$dossiertheme."/".$fichier."' rel='stylesheet' type='text/css' media='print' />\n";
+      		} else {
+      		$inclusion_theme .= "<link href='".$dossiertheme."/".$fichier."' rel='stylesheet' type='text/css' media='screen' />\n";
+      		}
+      		} elseif (eregi("\.js$",$fichier)) {
+			$inclusion_theme .="<script src='".$dossiertheme."/".$fichier."' type='text/javascript' language='javascript'></script>\n";
+      		} elseif (eregi("\.ico$",$fichier)) {
+			$inclusion_theme .="<link rel='shortcut icon' href='".$dossiertheme."/".$fichier."' />\n";
+      		}
+    	}
+  	}
+  }
+	return $inclusion_theme;
+}
+
+?>
Index: trunk/spip/esqueleto-redcta/plugins/magusine/arty_header_prive.php
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/arty_header_prive.php	(revision 79)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/arty_header_prive.php	(revision 79)
@@ -0,0 +1,30 @@
+<?php
+
+function arty_ajouterHeaderPrive($flux){
+	$liste=array("arty","theme","gabarit","menu");
+	 if (in_array($_GET['exec'], $liste)) {
+	$flux.="<!-- ici css privee-->\n";
+	$flux.= "<link rel=\"stylesheet\" type=\"text/css\" href=\""._DIR_PLUGIN_ARTY."/css/privee.css\" />\n";
+	$flux.= "<link rel=\"stylesheet\" type=\"text/css\" href=\""._DIR_PLUGIN_ARTY."/css/selecteur_priv.css\" />\n";
+	$flux.= "<link rel=\"stylesheet\" type=\"text/css\" href=\""._DIR_PLUGIN_ARTY."/css/gabarits.css\" />\n";
+	$flux.= "<link rel=\"stylesheet\" type=\"text/css\" href=\""._DIR_PLUGIN_ARTY."/css/menu.css\" />\n";
+	$flux.= "<script type=\"text/javascript\" src=\""._DIR_PLUGIN_ARTY."/javascript/selecteur_priv.js\"></script>\n";
+	$flux.= "<script type=\"text/javascript\" src=\""._DIR_PLUGIN_ARTY."/javascript/interface.js\"></script>\n";
+  $flux.= "<script type=\"text/javascript\" src=\""._DIR_PLUGIN_ARTY."/javascript/manip_gabarit.js\"></script>\n";
+  $flux.= "<!--[if lt IE 7.]><script defer type=\"text/javascript\" src=\""._DIR_PLUGIN_ARTY."/javascript/pngfix.js\"></script><![endif]-->\n";
+  if ($_GET['exec'] == 'menu') {
+  	$flux.= "<script type=\"text/javascript\" src=\""._DIR_PLUGIN_ARTY."/javascript/manip_menu.js\"></script>\n";
+  	$flux.= "<script type=\"text/javascript\" src=\""._DIR_PLUGIN_ARTY."/javascript/inestedsortable.js\"></script>\n";
+  }
+  
+  if ($_GET['exec'] == 'theme') {
+  	$flux.= "<script type=\"text/javascript\" src=\""._DIR_PLUGIN_ARTY."/javascript/theme.js\"></script>\n";
+  }
+  
+	 }
+	 
+	return $flux;
+	
+}
+
+?>
Index: trunk/spip/esqueleto-redcta/plugins/magusine/arty_onglets.php
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/arty_onglets.php	(revision 79)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/arty_onglets.php	(revision 79)
@@ -0,0 +1,14 @@
+<?php
+function arty_ajouter_onglets($flux){
+	$page=array('arty', 'theme');
+  if(in_array($flux['args'],$page)){
+    $flux['data']['theme']= new Bouton(_DIR_PLUGIN_ARTY."/images/themechoisi.png", _T('arty:onglet_themes'), generer_url_ecrire("theme"));
+    $flux['data']['menu']= new Bouton(_DIR_PLUGIN_ARTY."/images/menu.png", _T('arty:onglet_menu'), generer_url_ecrire("menu"));
+	  $flux['data']['base']= new Bouton(_DIR_PLUGIN_ARTY."/images/options.png", _T('arty:onglet_base'), generer_url_ecrire("arty"));
+    $flux['data']['avance']= new Bouton(_DIR_PLUGIN_ARTY."/images/blocs_libres_2.png", _T('arty:onglet_avance'), generer_url_ecrire("avance"));
+    $flux['data']['gabarit']= new Bouton(_DIR_PLUGIN_ARTY."/images/agencement.png", _T('arty:onglet_gabarit'), generer_url_ecrire("gabarit"));
+    $flux['data']['about']= new Bouton(_DIR_PLUGIN_ARTY."/images/bouton-arty.png", _T('arty:onglet_a_propos'), generer_url_ecrire("about"));
+  }			  
+  return $flux;
+}
+?>
Index: trunk/spip/esqueleto-redcta/plugins/magusine/arty_options.php
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/arty_options.php	(revision 79)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/arty_options.php	(revision 79)
@@ -0,0 +1,33 @@
+<?php
+session_start(); 
+if (!isset($_SESSION['id_check'])) {
+  $_SESSION['id_check'] = uniqid(rand());
+}
+
+$p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(__FILE__))));
+define('_DIR_PLUGIN_ARTY',(_DIR_PLUGINS.end($p)));
+
+$forcer_lang = true;
+// pour free : tester si on est en admin privee ou publique
+if (!ereg("^\.\.", _DIR_PLUGIN_ARTY)) {
+$GLOBALS['dossier_squelettes'] = implode(":", Array(
+'pages-custom',
+  _DIR_PLUGIN_ARTY.'/squelettes',
+  _DIR_PLUGIN_ARTY.'/squelettes/blocs',
+  _DIR_PLUGIN_ARTY.'/squelettes/blocs/logos',
+  _DIR_PLUGIN_ARTY.'/squelettes/blocs/galeries',
+  _DIR_PLUGIN_ARTY.'/squelettes/blocs/article',
+  _DIR_PLUGIN_ARTY.'/squelettes/blocs/rubrique',
+  _DIR_PLUGIN_ARTY.'/squelettes/blocs/sommaire',
+  _DIR_PLUGIN_ARTY.'/squelettes/blocs/404',
+  _DIR_PLUGIN_ARTY.'/squelettes/blocs/mot',
+  _DIR_PLUGIN_ARTY.'/squelettes/blocs/recherche',
+  _DIR_PLUGIN_ARTY.'/squelettes/blocs/login',
+  _DIR_PLUGIN_ARTY.'/squelettes/blocs/groupe'
+));
+}
+// structure des tables
+
+include_spip("base/tables_magusine");
+
+?>
Index: trunk/spip/esqueleto-redcta/plugins/magusine/jquery-public.js.html
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/jquery-public.js.html	(revision 79)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/jquery-public.js.html	(revision 79)
@@ -0,0 +1,19 @@
+[(#REM)
+
+	Charger la librairie jQuery et ses plugins
+
+]#CACHE{7*24*3600,cache-client}
+#HTTP_HEADER{'Content-Type: text/javascript'}
+/*
+ * jQuery 1.2.6 - New Wave Javascript
+ *
+ * Copyright (c) 2007 John Resig (jquery.com)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * + form.js (plugins @ jQuery.com)
+ * + ajaxCallback.js (www.spip.net)
+ */
+[(#INCLURE{javascript/jquery-1.2.6.pack.js})]
+[(#INCLURE{javascript/form.js}|compacte_js)]
+[(#INCLURE{javascript/ajaxCallback.js}|compacte_js)]
Index: trunk/spip/esqueleto-redcta/plugins/magusine/jquery.js.html
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/jquery.js.html	(revision 79)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/jquery.js.html	(revision 79)
@@ -0,0 +1,19 @@
+[(#REM)
+
+	Charger la librairie jQuery et ses plugins
+
+]#CACHE{7*24*3600,cache-client}
+#HTTP_HEADER{'Content-Type: text/javascript'}
+/*
+ * jQuery 1.1 - New Wave Javascript
+ *
+ * Copyright (c) 2007 John Resig (jquery.com)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * + form.js (plugins @ jQuery.com)
+ * + ajaxCallback.js (www.spip.net)
+ */
+[(#INCLURE{javascript/jquery-1.1.1.3.js})]
+[(#INCLURE{javascript/form.js}|compacte_js)]
+[(#INCLURE{javascript/ajaxCallback.js}|compacte_js)]
Index: trunk/spip/esqueleto-redcta/plugins/magusine/plugin.xml
===================================================================
--- trunk/spip/esqueleto-redcta/plugins/magusine/plugin.xml	(revision 79)
+++ trunk/spip/esqueleto-redcta/plugins/magusine/plugin.xml	(revision 79)
@@ -0,0 +1,51 @@
+<plugin>
+ <nom>Magusine</nom>
+ <auteur><a href="http://www.lescorsaires.be/">Les Corsaires asbl</a>, StÃ©phane NoÃ«l, Philippe Vanderlinden</auteur>
+ <description>
+ Magusine est un plugin comportant principalement un sÃ©lecteur de thÃšme, un systÃšme de crÃ©ation et de configuration des gabarits, un systÃšme de personnalisation de la navigation, et des options de personnalisation de squelettes.
+ 
+ <ul><strong>CrÃ©dits</strong><br />
+ <li>Interface.js : <a href="http://interface.eyecon.ro/">Interface elements for jQuery</a></li>
+ <li>Pngfix.js : <a href="http://homepage.ntlworld.com/bobosola">http://homepage.ntlworld.com/bobosola</a></li>
+  <li>Correction css : <a href="http://dean.edwards.name/IE7/">Ie7 par Dean Edwards</a></li>
+ <li>IcÃŽnes: <a href="http://tango.freedesktop.org/">Tango Desktop Project</a></li>
+ <li>Podcast logo : <a href="http://www.podcastlogo.com/">http://www.podcastlogo.com/</a></li>
+ <li>Lecteurs flash: <a href="http://www.erational.org/">eraplayer</a>, <a href="http://www.estvideo.com/dew/index/2005/12/03/603-dewplayer-reloaded">dewplayer</a>, <a href="http://www.jeroenwijering.com/?item=Flash_MP3_Player">Flash mp3 player et video</a>, <a href="http://www.netdeveloppeur.com/spip-video-flash-player-article63.html">Flash Video Player</a></li>
+ </ul>
+ 
+ </description>
+ <version>1.7.3.6 (11 aout 2008)</version>
+ <etat>stable</etat>
+ <prefix>arty</prefix>
+ 
+ <install>base/arty_init.php</install>
+ <fonctions>arty_fonctions.php</fonctions>
+ <options>arty_options.php</options>
+ <pipeline>
+		<nom>ajouter_boutons</nom>
+		<action>ajouterBoutons</action>
+		<inclure>arty_boutons.php</inclure>
+	</pipeline>
+	
+	<pipeline>
+		<nom>insert_head</nom>
+		<action>ajouterHeader</action>
+		<inclure>arty_header.php</inclure>
+	</pipeline>
+<pipeline>
+		<nom>header_prive</nom>
+		<action>ajouterHeaderPrive</action>
+		<inclure>arty_header_prive.php</inclure>
+	</pipeline>	
+	<pipeline>
+    <nom>affiche_gauche</nom>
+    <action>ajouterfonctionnalites</action>
+    <inclure>arty_affichegauche.php</inclure>
+  </pipeline>
+  	<pipeline>
+		<nom>ajouter_onglets</nom>
+		<action>ajouter_onglets</action>
+		<inclure>arty_onglets.php</inclure>
+	</pipeline>
+  
+</plugin>
