[79] | 1 | <?php |
---|
| 2 | // 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 |
---|
| 3 | include_spip('inc/getdocument'); |
---|
| 4 | include_spip('inc/layer'); |
---|
| 5 | include_spip('inc/upload-image'); |
---|
| 6 | include_spip('inc/xml-parser'); |
---|
| 7 | |
---|
| 8 | include_spip('inc/arty_upload_bandeau'); |
---|
| 9 | |
---|
| 10 | function arty_ajouterfonctionnalites($flux) { |
---|
| 11 | |
---|
| 12 | global $connect_statut; |
---|
| 13 | //print_r($flux); |
---|
| 14 | if ($connect_statut == "0minirezo" ) { |
---|
| 15 | |
---|
| 16 | |
---|
| 17 | if (isset($flux['args']['id_groupe']) && $flux['args']['exec'] == "mots_types"){ |
---|
| 18 | |
---|
| 19 | $flux['data'] .= formulaire_logo($flux['args']['id_groupe']); |
---|
| 20 | $flux['data'] .= bloc_formulaire_themes('groupe', $flux['args']['id_groupe'], "?exec=mots_type&id_groupe=".$flux['args']['id_groupe']); |
---|
| 21 | $flux['data'] .= formulaire_bloc_libre('groupe', $flux['args']['id_groupe'],"?exec=mots_type&id_groupe=".$flux['args']['id_groupe']); |
---|
| 22 | $flux['data'] .= bloc_gabarit('groupe-mots', $flux['args']['id_groupe'],"?exec=mots_type&id_groupe=".$flux['args']['id_groupe']); |
---|
| 23 | |
---|
| 24 | } |
---|
| 25 | |
---|
| 26 | if (isset($flux['args']['id_article']) && $flux['args']['exec'] == "articles"){ |
---|
| 27 | $flux['data'] .= bloc_formulaire_themes('article', $flux['args']['id_article'], "?exec=articles&id_article=".$flux['args']['id_article']); |
---|
| 28 | $flux['data'] .= formulaire_bloc_libre('article', $flux['args']['id_article'],"?exec=articles&id_article=".$flux['args']['id_article']); |
---|
| 29 | $flux['data'] .= bloc_gabarit('article', $flux['args']['id_article'],"?exec=articles&id_article=".$flux['args']['id_article']); |
---|
| 30 | |
---|
| 31 | } |
---|
| 32 | |
---|
| 33 | if (isset($flux['args']['id_rubrique']) && $flux['args']['exec'] == "naviguer"){ |
---|
| 34 | $flux['data'] .= formulaire_bandeau($flux['args']['id_rubrique']); |
---|
| 35 | $flux['data'] .= bloc_formulaire_themes('rubrique', $flux['args']['id_rubrique'], "?exec=naviguer&id_rubrique=".$flux['args']['id_rubrique']); |
---|
| 36 | $flux['data'] .= formulaire_bloc_libre('rubrique', $flux['args']['id_rubrique'],"?exec=naviguer&id_rubrique=".$flux['args']['id_rubrique']); |
---|
| 37 | if ($flux['args']['id_rubrique']) { |
---|
| 38 | $flux['data'] .= bloc_gabarit('rubrique', $flux['args']['id_rubrique'],"?exec=naviguer&id_rubrique=".$flux['args']['id_rubrique']); |
---|
| 39 | } |
---|
| 40 | } |
---|
| 41 | |
---|
| 42 | if (isset($flux['args']['id_mot']) && $flux['args']['exec'] == "mots_edit"){ |
---|
| 43 | $flux['data'] .= bloc_gabarit('mot', $flux['args']['id_mot'],"?exec=mots_edit&id_mot=".$flux['args']['id_mot']); |
---|
| 44 | $flux['data'] .= bloc_formulaire_themes('mot', $flux['args']['id_mot'], "?exec=mots_edit&id_mot=".$flux['args']['id_mot']); |
---|
| 45 | } |
---|
| 46 | |
---|
| 47 | } |
---|
| 48 | |
---|
| 49 | $flux['data'] .= ""; |
---|
| 50 | |
---|
| 51 | |
---|
| 52 | return $flux; |
---|
| 53 | |
---|
| 54 | } |
---|
| 55 | |
---|
| 56 | function formulaire_bloc_libre($type, $id, $url_retour) { |
---|
| 57 | if (isset($_POST['action']) && isset($_POST['bloclibre'])) { |
---|
| 58 | if($_POST['action'] == 'associer_bloc_libre' && !is_nan($_POST['bloclibre'])) { |
---|
| 59 | //on peut sauver |
---|
| 60 | if ($type == "rubrique" && $id == 0 && isset($_POST['lang'])) { |
---|
| 61 | $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']); |
---|
| 62 | if (!spip_num_rows($resultat)) { |
---|
| 63 | spip_query("INSERT INTO spip_arty_bloclibreassoc (id_bloc_libre, type, id, lang) VALUES (".$_POST['bloclibre'].",'$type',$id, '".addslashes($_POST['lang'])."')"); |
---|
| 64 | } |
---|
| 65 | } else { |
---|
| 66 | $resultat = spip_query("SELECT * FROM spip_arty_bloclibreassoc WHERE type='$type' AND id=$id AND id_bloc_libre=".$_POST['bloclibre']); |
---|
| 67 | if (!spip_num_rows($resultat)) { |
---|
| 68 | spip_query("INSERT INTO spip_arty_bloclibreassoc (id_bloc_libre, type, id) VALUES (".$_POST['bloclibre'].",'$type',$id)"); |
---|
| 69 | } |
---|
| 70 | } |
---|
| 71 | } |
---|
| 72 | } |
---|
| 73 | |
---|
| 74 | if (isset($_POST['action']) && isset($_POST['bloclibre'])) { |
---|
| 75 | if($_POST['action'] == 'dissocier_bloclibre' && !is_nan($_POST['bloclibre'])) { |
---|
| 76 | if (isset($_POST["lang"])) { |
---|
| 77 | spip_query("DELETE FROM spip_arty_bloclibreassoc WHERE lang='".addslashes($_POST["lang"])."' AND type='$type' AND id=$id AND id_bloc_libre=".$_POST['bloclibre']); |
---|
| 78 | } else { |
---|
| 79 | spip_query("DELETE FROM spip_arty_bloclibreassoc WHERE type='$type' AND id=$id AND id_bloc_libre=".$_POST['bloclibre']); |
---|
| 80 | } |
---|
| 81 | } |
---|
| 82 | } |
---|
| 83 | |
---|
| 84 | if ($_POST['action']=='nouveaubloc' && isset($_POST['titre']) && isset($_POST['texte']) ) { |
---|
| 85 | |
---|
| 86 | $titre=trim(addslashes($_POST['titre'])); |
---|
| 87 | $texte=trim(addslashes($_POST['texte'])); |
---|
| 88 | $lien=trim(addslashes($_POST['lien'])); |
---|
| 89 | |
---|
| 90 | if($lien=="http://") { $lien=""; } |
---|
| 91 | |
---|
| 92 | if ($titre!="" ) {//&& $texte!="") { |
---|
| 93 | spip_query("INSERT INTO spip_arty_bloclibre(titre, contenu,lien) VALUES('$titre', '$texte', '$lien')"); |
---|
| 94 | $result = spip_query("SELECT LAST_INSERT_ID();"); |
---|
| 95 | if ($result){ |
---|
| 96 | $arr = spip_fetch_array($result); |
---|
| 97 | $id_last = (int) current($arr); |
---|
| 98 | |
---|
| 99 | if (!is_nan($id_last)){ |
---|
| 100 | echo traiter_upload_image('illu_bloc_libre','illu-bloc-libre',$id_last); |
---|
| 101 | |
---|
| 102 | $resultat = spip_query("SELECT * FROM spip_arty_bloclibreassoc WHERE type='$type' AND id=$id AND id_bloc_libre=".$id_last); |
---|
| 103 | if (!spip_num_rows($resultat)) { |
---|
| 104 | |
---|
| 105 | if ($type == "rubrique" && $id == 0 && isset($_POST['lang'])) { |
---|
| 106 | spip_query("INSERT INTO spip_arty_bloclibreassoc (id_bloc_libre, type, id, lang) VALUES (".$id_last.",'$type',$id, '".addslashes($_POST['lang'])."')"); |
---|
| 107 | } else { |
---|
| 108 | spip_query("INSERT INTO spip_arty_bloclibreassoc (id_bloc_libre, type, id) VALUES (".$id_last.",'$type',$id)"); |
---|
| 109 | } |
---|
| 110 | } |
---|
| 111 | } |
---|
| 112 | } |
---|
| 113 | } |
---|
| 114 | } |
---|
| 115 | |
---|
| 116 | $result=spip_query("SELECT * FROM spip_arty_bloclibre"); |
---|
| 117 | $balancemoica =""; |
---|
| 118 | if (spip_num_rows($result)) { |
---|
| 119 | $balancemoica = debut_cadre_trait_couleur(_DIR_PLUGIN_ARTY."/images/config.png", true, "", _T('arty:associer_un_bloc_libre')); |
---|
| 120 | $balancemoica .= ""._T('arty:intro_associer_bloc_libre')."<br />"; |
---|
| 121 | $balancemoica .= "<form action='$url_retour' method='post'>"; |
---|
| 122 | $balancemoica .= "<select name='bloclibre' class='forml'>"; |
---|
| 123 | while ($row=spip_fetch_array($result)) { |
---|
| 124 | $balancemoica .= "<option value='".$row['id_bloc_libre']."'>".htmlspecialchars($row['titre'])."</option>"; |
---|
| 125 | } |
---|
| 126 | $balancemoica .= "</select>"; |
---|
| 127 | $balancemoica .= "<input type='hidden' name='action' value='associer_bloc_libre'>"; |
---|
| 128 | |
---|
| 129 | |
---|
| 130 | if ($type == "rubrique" && $id == 0) { |
---|
| 131 | |
---|
| 132 | $leslangues_menu=explode(",",$GLOBALS['meta']['langues_utilisees']); |
---|
| 133 | $def = $GLOBALS['meta']['langue_site']; |
---|
| 134 | |
---|
| 135 | $balancemoica .= "<br /><br />"._T('arty:langue_bloc_assoc'); |
---|
| 136 | $balancemoica .= '<br /><select name="lang" class="forml">'; |
---|
| 137 | |
---|
| 138 | foreach($leslangues_menu as $fullname) { |
---|
| 139 | $balancemoica .= "<option value='$fullname' ".(($def==$fullname)?'selected="selected"':'').">".$GLOBALS['codes_langues'][$fullname]."</option>"; |
---|
| 140 | } |
---|
| 141 | $balancemoica .= "</select><br />"; |
---|
| 142 | |
---|
| 143 | } |
---|
| 144 | |
---|
| 145 | $balancemoica .= "<input type='submit' class='fondo' value='"._T('arty:ajouter')."' /></form>"; |
---|
| 146 | |
---|
| 147 | $resultat=spip_query("SELECT * FROM spip_arty_bloclibreassoc WHERE type='$type' AND id=$id"); |
---|
| 148 | if (spip_num_rows($resultat)) { |
---|
| 149 | $balancemoica .= "<br />"._T('arty:blocs_libres_deja_associes'); |
---|
| 150 | $balancemoica .= "<ul style='padding-left:0px;'>"; |
---|
| 151 | while ($row=spip_fetch_array($resultat)) { |
---|
| 152 | $lebloc=spip_query("SELECT * FROM spip_arty_bloclibre WHERE id_bloc_libre =".$row['id_bloc_libre']); |
---|
| 153 | $lebloc=spip_fetch_array($lebloc); |
---|
| 154 | $balancemoica .= "<li style='font-size:10px;'>— ".htmlspecialchars($lebloc['titre']); |
---|
| 155 | $balancemoica .= $row['lang'] ? " <span style='color:#888'>[".$row['lang']."]</span>" : ''; |
---|
| 156 | $balancemoica .= "<form style='display:inline;' action='".generer_url_ecrire('avance')."#".$row['id_bloc_libre']."' method='post'>"; |
---|
| 157 | $balancemoica .= "<input type='hidden' name='retour' value='$url_retour' />"; |
---|
| 158 | $balancemoica .= "<input type='hidden' name='bloc' value='".$row['id_bloc_libre']."' />"; |
---|
| 159 | if (_SPIP_AJAX) { |
---|
| 160 | $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;' />"; |
---|
| 161 | } else { |
---|
| 162 | $balancemoica .= "<input type='submit' value='"._T('arty:modifier_ce_bloc')."' />"; |
---|
| 163 | } |
---|
| 164 | $balancemoica .= "</form>"; |
---|
| 165 | $balancemoica .= "<form style='display:inline;' action='$url_retour' method='post' style='display:inline;'>"; |
---|
| 166 | $balancemoica .= "<input type='hidden' name='action' value='dissocier_bloclibre'>"; |
---|
| 167 | if ($row['lang']) { |
---|
| 168 | $balancemoica .= "<input type='hidden' name='lang' value='".$row["lang"]."'>"; |
---|
| 169 | } |
---|
| 170 | $balancemoica .= "<input type='hidden' name='bloclibre' value='".$row['id_bloc_libre']."'>"; |
---|
| 171 | if (_SPIP_AJAX) { |
---|
| 172 | $balancemoica .= "<img src='"._DIR_IMG_PACK."/croix-rouge.gif' alt='X' title='"._T("arty:supprimer")."' style='margin-left:2px; cursor: pointer;' class='bouton-supprimer' />"; |
---|
| 173 | } else { |
---|
| 174 | $balancemoica .= "<input type='submit' value='X'/>"; |
---|
| 175 | } |
---|
| 176 | $balancemoica .= "</form></li>"; |
---|
| 177 | } |
---|
| 178 | $balancemoica .= "</ul>"; |
---|
| 179 | if (_SPIP_AJAX) { |
---|
| 180 | $balancemoica .= "<script type='text/javascript'> |
---|
| 181 | jQuery('.bouton-supprimer').each(function(){ |
---|
| 182 | jQuery(this).click(function(){ |
---|
| 183 | jQuery(this).parent().submit(); |
---|
| 184 | }) |
---|
| 185 | }) |
---|
| 186 | jQuery('.bouton-modifier').each(function(){ |
---|
| 187 | jQuery(this).click(function(){ |
---|
| 188 | jQuery(this).parent().submit(); |
---|
| 189 | }) |
---|
| 190 | }) |
---|
| 191 | </script>"; |
---|
| 192 | } |
---|
| 193 | |
---|
| 194 | } |
---|
| 195 | $balancemoica .= fin_cadre_trait_couleur(TRUE); |
---|
| 196 | } |
---|
| 197 | |
---|
| 198 | $balancemoica .= debut_cadre_trait_couleur(_DIR_PLUGIN_ARTY."/images/config.png", true, "", _T('arty:creer_bloc_et_associer')); |
---|
| 199 | $texte .= _T('arty:entrez_donnees_nouveau_bloc'); |
---|
| 200 | $texte .= "<form action='".$url_retour."' method='post' enctype=\"multipart/form-data\">\n"; |
---|
| 201 | $texte .= "<input type='hidden' name='action' value='nouveaubloc' />"; |
---|
| 202 | $texte .= "<input type='text' name='titre' value='"._T('arty:titre')."' onfocus='this.value="";' maxlength='255' size='27' />"; |
---|
| 203 | $texte .= "<textarea name='texte' cols='20' rows='4'></textarea>"; |
---|
| 204 | $texte .= "<br /><br />"._T('arty:bloc_lien')."<br />"; |
---|
| 205 | $texte .= "<input type='text' name='lien' value='http://' maxlength='255' size='27' />"; |
---|
| 206 | $texte .= "<br /><br />"._T('arty:bloc_image')."<br />"; |
---|
| 207 | $texte .= "<input type=\"file\" name=\"illu_bloc_libre\" size=\"13\" /><br />"; |
---|
| 208 | |
---|
| 209 | if ($type == "rubrique" && $id == 0) { |
---|
| 210 | |
---|
| 211 | $leslangues_menu=explode(",",$GLOBALS['meta']['langues_utilisees']); |
---|
| 212 | $def = $GLOBALS['meta']['langue_site']; |
---|
| 213 | |
---|
| 214 | $texte .= _T('arty:langue_bloc'); |
---|
| 215 | $texte .= '<br /><select name="lang" class="forml">'; |
---|
| 216 | |
---|
| 217 | foreach($leslangues_menu as $fullname) { |
---|
| 218 | $texte .= "<option value='$fullname' ".(($def==$fullname)?'selected="selected"':'').">".$GLOBALS['codes_langues'][$fullname]."</option>"; |
---|
| 219 | } |
---|
| 220 | $texte .= "</select>"; |
---|
| 221 | } |
---|
| 222 | |
---|
| 223 | $texte .= "<br /><input type='submit' value='"._T("arty:enregistrer")."' class='fondo' />"; |
---|
| 224 | $texte .= "</form>"; |
---|
| 225 | |
---|
| 226 | $balancemoica .= block_parfois_visible("creer_bloc", _T("arty:intro_creer_bloc"), $texte, '', false); |
---|
| 227 | $balancemoica .= fin_cadre_trait_couleur(TRUE); |
---|
| 228 | |
---|
| 229 | |
---|
| 230 | return $balancemoica; |
---|
| 231 | } |
---|
| 232 | |
---|
| 233 | // formulaire d'ajout/remplacement/suppression d'un bandeau à la rubrique |
---|
| 234 | function formulaire_logo($id_groupe) |
---|
| 235 | { |
---|
| 236 | $texte = "<p>"._T('arty:intro_up_logo')."</p>"; |
---|
| 237 | traiter_suppression_logo($id_groupe); |
---|
| 238 | $message = _T(traiter_upload_image('logo','logo-groupe',$id_groupe)); |
---|
| 239 | $texte .= ($message) ? "<p style=\"font-weight:bold;\">".$message."</p>" : ""; |
---|
| 240 | |
---|
| 241 | $visible = false; |
---|
| 242 | |
---|
| 243 | $chem = creer_repertoire_documents("logo-groupe"); |
---|
| 244 | $handle = @opendir($chem); |
---|
| 245 | while($fichier = @readdir($handle)) { |
---|
| 246 | if (ereg("^logo-$id_groupe\.(jpg|png|gif)$", $fichier)) { |
---|
| 247 | $logo = $fichier; |
---|
| 248 | } |
---|
| 249 | } |
---|
| 250 | if (!isset($logo)){ |
---|
| 251 | $texte .= "<p>"._T("arty:aucun_logo_rub")."</p>"; |
---|
| 252 | } else { |
---|
| 253 | $visible = true; |
---|
| 254 | $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. |
---|
| 255 | $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>"; |
---|
| 256 | $texte .= $result; |
---|
| 257 | } |
---|
| 258 | $texte .= "<form action=\"?exec=mots_type&id_groupe=$id_groupe\" method=\"post\" enctype=\"multipart/form-data\">"; |
---|
| 259 | $texte .= "<input type=\"file\" name=\"logo\" id=\"logo\" size=\"13\" /><br />"; |
---|
| 260 | $texte .= "<div style=\"text-align:right;\"><input class=\"fondo\" name=\"filesubmit\" type=\"submit\" value=\""._T('arty:enregistrer')."\" /></div>"; |
---|
| 261 | $texte .= "</form>"; |
---|
| 262 | $data = debut_cadre_couleur("vignette-24.png", true, "", _T('arty:titre_up_rub_logo')); |
---|
| 263 | $data .= block_parfois_visible("logo", _T("arty:invit_up_rub_logo"), $texte, '', $visible); |
---|
| 264 | $data .= fin_cadre_couleur(true); |
---|
| 265 | |
---|
| 266 | return $data; |
---|
| 267 | } |
---|
| 268 | |
---|
| 269 | |
---|
| 270 | function bloc_gabarit($type, $id, $url_retour) |
---|
| 271 | { |
---|
| 272 | |
---|
| 273 | if (isset($_POST['action']) && isset($_POST['gabarit'])) { |
---|
| 274 | if($_POST['action'] == 'changer_gabarit' && trim($_POST['gabarit'])!="") { |
---|
| 275 | //on peut sauver |
---|
| 276 | spip_query("DELETE FROM spip_arty_gabaritassoc WHERE type='$type' AND id=$id"); |
---|
| 277 | if ($_POST['gabarit'] !='gabarit_default') { |
---|
| 278 | spip_query("INSERT INTO spip_arty_gabaritassoc (gabarit, type, id) VALUES ('".addslashes(trim($_POST['gabarit']))."','$type',$id)"); |
---|
| 279 | } |
---|
| 280 | } |
---|
| 281 | } |
---|
| 282 | |
---|
| 283 | $resultat = spip_query("SELECT * FROM spip_arty_gabaritassoc WHERE type='$type' AND id=$id"); |
---|
| 284 | if (spip_num_rows($resultat)) { |
---|
| 285 | $row=spip_fetch_array($resultat); |
---|
| 286 | $gabarit_actuel=$row['gabarit']; |
---|
| 287 | } else { $gabarit_actuel='gabarit_default'; } |
---|
| 288 | |
---|
| 289 | $ignore_liste = Array(".svn", ".", ".."); |
---|
| 290 | $rep = _DIR_PLUGIN_ARTY."definitions-gabarits"; |
---|
| 291 | $handle = opendir($rep); |
---|
| 292 | |
---|
| 293 | $balancemoica = debut_cadre_trait_couleur(_DIR_PLUGIN_ARTY."/images/config.png", true, "", _T('arty:associer_un_gabarit')); |
---|
| 294 | $balancemoica .= _T('arty:intro_associer_gabarit')."<br /><br />"; |
---|
| 295 | $balancemoica .= _T('arty:choisissez_un_gabarit').":<br />"; |
---|
| 296 | $balancemoica .="<form action='$url_retour' method='post'>"; |
---|
| 297 | |
---|
| 298 | $gabarits=array(); |
---|
| 299 | $gabaritpardefaut=array("sommaire","rubrique","article"); |
---|
| 300 | $ignore_liste=array(".","..",".DS_Store"); |
---|
| 301 | $rep = _DIR_PLUGIN_ARTY."definitions-gabarits"; |
---|
| 302 | $handle = opendir($rep); |
---|
| 303 | while($fichier = readdir($handle)) { |
---|
| 304 | |
---|
| 305 | if (!in_array($fichier, $ignore_liste) && eregi('^[a-zA-Z0-9_-]*\.xml$',$fichier)) { |
---|
| 306 | $p =& new xmlParser(); |
---|
| 307 | $p->parse($rep.'/'.$fichier); |
---|
| 308 | if (!in_array(ereg_replace("\.xml$","",$fichier),$gabaritpardefaut)) { |
---|
| 309 | $gabarits[$p->output[0]['attrs']['TYPE']][] = ereg_replace("\.xml$","",$fichier); |
---|
| 310 | } |
---|
| 311 | $liste_gabarit[]=ereg_replace("\.xml$","",$fichier); |
---|
| 312 | } |
---|
| 313 | } |
---|
| 314 | |
---|
| 315 | //gabarits du dossier "pages-custom" (surclassage) |
---|
| 316 | $rep_custom = _DIR_RACINE."pages-custom/gabarits"; |
---|
| 317 | if (file_exists($rep_custom)) { |
---|
| 318 | $handle = opendir($rep_custom); |
---|
| 319 | while($fichier = readdir($handle)) { |
---|
| 320 | if (!in_array($fichier, $ignore_liste) && eregi('^[a-zA-Z0-9_-]*\.xml$',$fichier) && !in_array($fichier, $liste_gabarit)) { |
---|
| 321 | $p =& new xmlParser(); |
---|
| 322 | $p->parse($rep_custom.'/'.$fichier); |
---|
| 323 | $nom_gabarit = ereg_replace("\.xml$","",$fichier); |
---|
| 324 | $type_gabarit = $p->output[0]['attrs']['TYPE']; |
---|
| 325 | if (!in_array($nom_gabarit, $gabaritpardefaut) && !in_array($nom_gabarit, $gabarits[$type_gabarit])) { |
---|
| 326 | $gabarits[$type_gabarit][] = ereg_replace("\.xml$","",$fichier); |
---|
| 327 | } |
---|
| 328 | $liste_gabarit[] = ereg_replace("\.xml$","",$fichier); |
---|
| 329 | } |
---|
| 330 | } |
---|
| 331 | } |
---|
| 332 | //gabarits de la base de données |
---|
| 333 | $query = spip_query('SELECT * FROM spip_arty_gabarit_perso'); |
---|
| 334 | while ($row = spip_fetch_array($query)) { |
---|
| 335 | if (!in_array($row['nom'], $liste_gabarit)) { |
---|
| 336 | $liste_gabarit[] = $row['nom']; |
---|
| 337 | $donnees = $row['type']; |
---|
| 338 | $gabarits[$donnees][] = $row['nom']; |
---|
| 339 | } |
---|
| 340 | } |
---|
| 341 | // faire le menu deroulant |
---|
| 342 | $leselect=""; |
---|
| 343 | $leselect .="<select name='gabarit' class='forml'>"; |
---|
| 344 | $leselect .="<option value='gabarit_default'>"._T('arty:gabarit_par_defaut')."</option>"; |
---|
| 345 | foreach($gabarits as $nom => $typegabarit) { |
---|
| 346 | if ($type == $nom) { |
---|
| 347 | foreach($typegabarit as $cegabarit) { |
---|
| 348 | $leselect .="<option class='$type' value='$cegabarit' ".(($cegabarit ==$gabarit_actuel)?"selected='selected' " : "").">"._T("arty:$cegabarit")."</option>"; |
---|
| 349 | } |
---|
| 350 | } |
---|
| 351 | } |
---|
| 352 | |
---|
| 353 | $leselect .="</select>"; |
---|
| 354 | |
---|
| 355 | $balancemoica .= $leselect; |
---|
| 356 | |
---|
| 357 | $balancemoica .="<input type='hidden' name='action' value='changer_gabarit' />"; |
---|
| 358 | $balancemoica .= "<br /><input class='fondo' type='submit' value='"._T('arty:bouton_changer_gabarit')."' /><br />"; |
---|
| 359 | $balancemoica .="</form>"; |
---|
| 360 | |
---|
| 361 | // bouton de modification du gabarit + retour |
---|
| 362 | $balancemoica .= "<form action='?exec=gabarit&gabarit="; |
---|
| 363 | if ($gabarit_actuel=="gabarit_default"){ |
---|
| 364 | $balancemoica .= "$type"; |
---|
| 365 | } else { |
---|
| 366 | $balancemoica .= "$gabarit_actuel"; |
---|
| 367 | } |
---|
| 368 | $balancemoica .= "' method='post'>"; |
---|
| 369 | $balancemoica .= "<input name='retour' value='$url_retour' type='hidden'>"; |
---|
| 370 | $balancemoica .= "<br /><input class='fondo' type='submit' value='"._T('arty:editer_ce_gabarit')."' />"; |
---|
| 371 | $balancemoica .= "</form>"; |
---|
| 372 | $balancemoica .= fin_cadre_couleur(true); |
---|
| 373 | |
---|
| 374 | // formulaire de creation d'un gabarit à partir de la page |
---|
| 375 | $balancemoica .= debut_cadre_trait_couleur(_DIR_PLUGIN_ARTY."/images/config.png", true, "", _T('arty:creer_gabarit_et_associer')); |
---|
| 376 | |
---|
| 377 | $balancemoica .= "<form action='".generer_url_ecrire('gabarit')."' method='post'>\n"; |
---|
| 378 | $balancemoica .= "<input name='retour' value='$url_retour' type='hidden'>"; |
---|
| 379 | $balancemoica .= "<p style='margin-top:0px; margin-bottom:2px;'>"._T("arty:deriver_gabarit")."</p>"; |
---|
| 380 | $balancemoica .= "<input type='hidden' name='associer' value='". $id ."'/>"; |
---|
| 381 | $balancemoica .= "<input type='hidden' name='action' value='deriver'/>"; |
---|
| 382 | $balancemoica .= "<input type='text' name='nom_gabarit' value='"._T('arty:nom_du_gabarit')."' /><br />"; |
---|
| 383 | |
---|
| 384 | $balancemoica .= "<p style='margin-top:8px; margin-bottom:2px;'>"._T("arty:baser_gabarit_sur")."</p>"; |
---|
| 385 | $balancemoica .= "<select id='source' name='source' class='forml'>"; |
---|
| 386 | |
---|
| 387 | foreach($gabaritpardefaut as $un_gabarit) { |
---|
| 388 | if ($un_gabarit == $type) { |
---|
| 389 | $balancemoica .= '<option name="'.$un_gabarit.'" value="'.$un_gabarit.'">'.$un_gabarit.'</option>'; |
---|
| 390 | } |
---|
| 391 | } |
---|
| 392 | foreach($gabarits as $nom_type => $types_gabarits) { |
---|
| 393 | foreach($types_gabarits as $un_gabarit) { |
---|
| 394 | if ($nom_type == $type){ |
---|
| 395 | $balancemoica .= '<option name="'.$un_gabarit.'" value="'.$un_gabarit.'">'.$un_gabarit.' '.$nom_type.'</option>'; |
---|
| 396 | } |
---|
| 397 | } |
---|
| 398 | } |
---|
| 399 | $balancemoica .= "</select>"; |
---|
| 400 | $balancemoica .= "<br /><input type='submit' value='"._T("arty:enregistrer")."' class='fondo' />"; |
---|
| 401 | $balancemoica .= "</form>"; |
---|
| 402 | |
---|
| 403 | $balancemoica .= "</form>"; |
---|
| 404 | |
---|
| 405 | |
---|
| 406 | |
---|
| 407 | $balancemoica .= fin_cadre_couleur(true); |
---|
| 408 | |
---|
| 409 | closedir($handle); |
---|
| 410 | |
---|
| 411 | return $balancemoica; |
---|
| 412 | } |
---|
| 413 | |
---|
| 414 | function bloc_formulaire_themes($type, $id, $url_retour) { |
---|
| 415 | |
---|
| 416 | if (isset($_POST['action']) && isset($_POST['theme'])) { |
---|
| 417 | if($_POST['action'] == 'changer_theme' && trim($_POST['theme'])!="") { |
---|
| 418 | //print_r($_POST); |
---|
| 419 | //on peut sauver |
---|
| 420 | spip_query("DELETE FROM spip_arty_themeassoc WHERE type='$type' AND id=$id"); |
---|
| 421 | if ($_POST['theme'] !='theme_default') { |
---|
| 422 | spip_query("INSERT INTO spip_arty_themeassoc (theme, type, id) VALUES ('".addslashes(trim($_POST['theme']))."','$type',$id)"); |
---|
| 423 | } |
---|
| 424 | |
---|
| 425 | } |
---|
| 426 | } |
---|
| 427 | |
---|
| 428 | $resultat = spip_query("SELECT * FROM spip_arty_themeassoc WHERE type='$type' AND id=$id"); |
---|
| 429 | if (spip_num_rows($resultat)) { |
---|
| 430 | $row=spip_fetch_array($resultat); |
---|
| 431 | $theme=$row['theme']; |
---|
| 432 | } else { $theme='theme_default'; } |
---|
| 433 | |
---|
| 434 | $ignore_liste = Array(".svn", ".", "..",".DS_Store"); |
---|
| 435 | $rep = _DIR_PLUGIN_ARTY."themes"; |
---|
| 436 | $handle = opendir($rep); |
---|
| 437 | |
---|
| 438 | $balancemoica = debut_cadre_trait_couleur(_DIR_PLUGIN_ARTY."/images/config.png", true, "", _T('arty:associer_un_theme')); |
---|
| 439 | $balancemoica .="<form action='$url_retour' method='post'>"; |
---|
| 440 | $balancemoica .="<select name='theme' class='forml'>"; |
---|
| 441 | $balancemoica .="<option value='theme_default'>"._T('arty:theme_par_defaut')."</option>"; |
---|
| 442 | while($fichier = readdir($handle)) { |
---|
| 443 | |
---|
| 444 | if (in_array($fichier, $ignore_liste)) { |
---|
| 445 | } else if (is_dir($rep.'/'.$fichier)) { |
---|
| 446 | |
---|
| 447 | if (file_exists($rep.'/'.$fichier.'/theme.xml')) { |
---|
| 448 | |
---|
| 449 | $p =& new xmlParser(); |
---|
| 450 | $p->parse($rep.'/'.$fichier.'/theme.xml'); |
---|
| 451 | //print_r($p->output); |
---|
| 452 | |
---|
| 453 | foreach($p->output[0]['child'] as $id => $tag) { |
---|
| 454 | if ($tag['name'] == "TITRE") { |
---|
| 455 | $balancemoica .="<option value='".$fichier."' ".(($fichier==$theme)?"selected='selected' ": '').">".$tag["content"]."</option>"; |
---|
| 456 | } |
---|
| 457 | |
---|
| 458 | if ($tag['name'] == "DECLINAISON") { |
---|
| 459 | $balancemoica .="<option value='".$fichier."|".$tag["attrs"]["CHEMIN"]."' ".(($fichier."|".$tag["attrs"]["CHEMIN"]==$theme)?"selected='selected' ": '')."> - ".$tag["attrs"]["TITRE"]."</option>"; |
---|
| 460 | } |
---|
| 461 | |
---|
| 462 | } |
---|
| 463 | }}} |
---|
| 464 | |
---|
| 465 | $balancemoica .="</select>"; |
---|
| 466 | $balancemoica .="<input type='hidden' name='action' value='changer_theme' />"; |
---|
| 467 | $balancemoica .= "<input class='fondo' type='submit' value='"._T('arty:bouton_changer_theme')."' />"; |
---|
| 468 | $balancemoica .= fin_cadre_couleur(true); |
---|
| 469 | $balancemoica .="</form>"; |
---|
| 470 | |
---|
| 471 | closedir($handle); |
---|
| 472 | |
---|
| 473 | return $balancemoica; |
---|
| 474 | } |
---|
| 475 | |
---|
| 476 | // formulaire d'ajout/remplacement/suppression d'un bandeau à la rubrique |
---|
| 477 | function formulaire_bandeau($id_rubrique) |
---|
| 478 | { |
---|
| 479 | $texte = "<p>"._T('arty:intro_up_rub_bandeau')."</p>"; |
---|
| 480 | traiter_suppression_bandeau($id_rubrique); |
---|
| 481 | $message = _T(traiter_upload_bandeau($id_rubrique)); |
---|
| 482 | $texte .= ($message) ? "<p style=\"font-weight:bold;\">".$message."</p>" : ""; |
---|
| 483 | |
---|
| 484 | $visible = false; |
---|
| 485 | |
---|
| 486 | $chem = creer_repertoire_documents("bandeau"); |
---|
| 487 | $handle = @opendir($chem); |
---|
| 488 | while($fichier = @readdir($handle)) { |
---|
| 489 | if (ereg("^bandeau-$id_rubrique\.(jpg|png|gif)$", $fichier)) { |
---|
| 490 | $bandeau = $fichier; |
---|
| 491 | } |
---|
| 492 | |
---|
| 493 | if (ereg("^bandeau\.(jpg|png|gif)$", $fichier) && !$id_rubrique) { |
---|
| 494 | $bandeau = $fichier; |
---|
| 495 | } |
---|
| 496 | } |
---|
| 497 | |
---|
| 498 | if (!isset($bandeau)){ |
---|
| 499 | $texte .= "<p>"._T("arty:aucun_bandeau_rub")."</p>"; |
---|
| 500 | } else { |
---|
| 501 | $visible = true; |
---|
| 502 | $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. |
---|
| 503 | $result .= "<p>[<a href=\"?exec=naviguer&id_rubrique=$id_rubrique&action=supprimer_bandeau&id_check=".$_SESSION['id_check']."\">"._T('arty:supprimer_bandeau')."</a>]</p>"; |
---|
| 504 | $texte .= $result; |
---|
| 505 | } |
---|
| 506 | $texte .= "<form action=\"?exec=naviguer&id_rubrique=$id_rubrique\" method=\"post\" enctype=\"multipart/form-data\">"; |
---|
| 507 | $texte .= "<input type=\"file\" name=\"bandeau\" id=\"bandeau\" size=\"13\" /><br />"; |
---|
| 508 | $texte .= "<div style=\"text-align:right;\"><input class=\"fondo\" name=\"filesubmit\" type=\"submit\" value=\""._T('arty:enregistrer')."\" /></div>"; |
---|
| 509 | $texte .= "</form>"; |
---|
| 510 | $data = debut_cadre_couleur("vignette-24.png", true, "", _T('arty:titre_up_rub_bandeau')); |
---|
| 511 | $data .= block_parfois_visible("bandeau", _T("arty:invit_up_rub_bandeau"), $texte, '', $visible); |
---|
| 512 | $data .= fin_cadre_couleur(true); |
---|
| 513 | |
---|
| 514 | return $data; |
---|
| 515 | } |
---|
| 516 | |
---|
| 517 | ?> |
---|