Mise en route du suivi.
[aidenligne_francais_universite.git] / plugins / couteau_suisse / exec / admin_couteau_suisse_old.php
1 <?php
2 #-----------------------------------------------------#
3 # Plugin : Couteau Suisse - Licence : GPL #
4 # Auteur : Patrice Vanneufville, 2006 #
5 # Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
6 # Infos : http://www.spip-contrib.net/?article2166 #
7 #-----------------------------------------------------#
8
9 include_spip('inc/texte');
10 include_spip('inc/layer');
11 include_spip("inc/presentation");
12 include_spip('inc/cs_outils');
13 /*
14 $p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(dirname(__FILE__)))));
15 define('_DIR_PLUGIN_COUTEAU_SUISSE',(_DIR_PLUGINS.end($p)));
16 */
17 // compatibilite spip 1.9
18 if(defined('_SPIP19100') & !function_exists('fin_gauche')) { function fin_gauche(){return '';} }
19 function cs_compat_boite($b) {if(defined('_SPIP19200')) echo $b('', true); else $b(); }
20
21 function cs_admin_styles_et_js() {
22 global $couleur_claire, $couleur_foncee;
23 echo "<style type='text/css'>\n";
24 echo <<<EOF
25 div.cadre-padding form{padding:0;margin:0;}
26 div.cadre-padding ul li{list-style:none;}
27 div.cadre-padding ul{padding-left:1em;margin:.5em 0 .5em 0;}
28 div.cadre-padding ul ul{border-left:5px solid #DFDFDF;}
29 div.cadre-padding ul li li{margin:0;padding:0 0 0.25em 0;}
30 div.cadre-padding ul li li div.nomoutil, div.cadre-padding ul li li div.nomoutil_on{
31 border:1px solid #AFAFAF;
32 padding:.3em .3em .6em .3em;
33 font-weight:normal;
34 }
35 div.cadre-padding ul li li div.nomoutil a, div.cadre-padding ul li li div.nomoutil_on a{
36 outline:0;
37 outline:0 !important;
38 -moz-outline:0 !important;
39 }
40 div.cadre-padding ul li li div.nomoutil_on{
41 background:$couleur_claire;
42 font-weight:bold;
43 }
44 div.cadre-padding div.droite label{
45 padding:.3em;
46 background:#EFEFEF;
47 border:1px dotted #95989F !important;
48 border:1px solid #95989F;
49 cursor:pointer;
50 margin:.2em;
51 display:block;
52 width:10.1em;
53 }
54 /* debut SPIP v1.93 */
55 div.cadre_padding form{padding:0;margin:0;}
56 div.cadre_padding .titrem
57 display:inline;
58 font-weight:normal;
59 background-position:left 1pt;
60 background-color:white;
61 padding:0 0 0 12pt;
62 cursor:help;
63 }
64 div.cadre-padding .deplie{cursor:default;}
65 div.cadre-padding .hover{background-color:$couleur_foncee;}
66 /* fin SPIP v1.93 */
67 input.checkbox{margin:0;cursor:pointer;}
68 div.detail_outil {
69 border-top:1px solid #B5BECF;
70 padding:0 .5em .5em .5em;
71 background:#F5F5F5;
72 }
73 div.detail_outil hr{
74 border-top:1px solid #67707F;
75 border-bottom:0;
76 border-left:0;
77 border-right:0;
78 }
79 div.detail_outil p{margin:0.3em 1em .3em 0;padding:0;}
80 div.detail_outil fieldset{margin:.8em 4em .5em 4em;-moz-border-radius:8px;}
81 div.detail_outil legend{font-weight:bold;}
82 div.detail_outil sup{font-size:85%;font-variant:normal;vertical-align:super;}
83 EOF;
84 echo "</style>";
85 echo "<script type=\"text/javascript\"><!--
86 var Outils = new Array(); // Listes des outils
87 function submit_general(outil) {
88 document.forms.submitform.afficher_outil.value = outil;
89 document.forms.submitform.submit();
90 }
91
92 function outilcheck(ischecked, index) {
93 outil = Outils[index][0];
94 if(ischecked == true) {
95 classe = 'nomoutil_on';
96 html = '-input';
97 test = 1
98 } else {
99 classe = 'nomoutil';
100 html = '-valeur';
101 test = 0
102 }
103 document.getElementById(outil).className = classe;
104 document.getElementById('tweak_'+outil).value = test;
105
106 if (Outils[index][1]>0) {
107 var chaine=document.getElementById('tweak'+index+html).innerHTML;
108 if(html=='-input') chaine=chaine.replace(/HIDDENCSVAR__/g,'');
109 document.getElementById('tweak'+index+'-visible').innerHTML = chaine;
110 }
111 }
112
113 function categ_outil(categ, lesoutils, count) {
114 for(tk=0;tk<count;tk++) {
115 name = Outils[lesoutils[tk]][0];
116 if (!document.getElementsByName('foo_'+name)[0].disabled) {
117 document.getElementsByName('foo_'+name)[0].checked = this.checked;
118 outilcheck(this.checked, lesoutils[tk]);
119 }
120 }
121 }
122
123 function outilchange(index) {
124 outilcheck(this.checked, index);
125 }
126 //--></script>";
127 }
128
129 // mise a jour des donnees si envoi via formulaire
130 function enregistre_modif_outils(){
131 cs_log("INIT : enregistre_modif_outils()");
132 global $outils;
133 // recuperer les outils dans l'ordre des $_POST
134 $test = array();
135 foreach($outils as $outil) $test["tweak_".$outil['id']] = $outil['id'];
136 $liste = array();
137 if (!isset($_POST['desactive_tous']))
138 foreach($_POST as $choix=>$val) if (isset($test[$choix]) && $val=='1') $liste[$test[$choix]]['actif'] = 1;
139 global $connect_id_auteur, $connect_login;
140 spip_log("Changement des outils actifs par l'auteur id=$connect_id_auteur : ".implode(', ',array_keys($liste)));
141 ecrire_meta('tweaks_actifs', serialize($liste));
142 ecrire_metas();
143 /*
144 @unlink(_DIR_TMP."charger_pipelines.php");
145 @unlink(_DIR_TMP."charger_plugins_fonctions.php");
146 @unlink(_DIR_TMP."charger_plugins_options.php");
147 // supprime_invalideurs();
148 */
149 include_spip('inc/plugin');
150 verif_plugin();
151 include_spip('inc/invalideur');
152 purger_repertoire(_DIR_CACHE);
153 purger_repertoire(_DIR_SKELS);
154 @unlink(_DIR_TMP."couteau-suisse.plat");
155 cs_initialisation(true);
156
157 cs_log(" FIN : enregistre_modif_outils()");
158 }
159
160 function exec_admin_couteau_suisse_old() {
161 cs_log("INIT : exec_admin_couteau_suisse()");
162 global $connect_statut, $connect_toutes_rubriques;
163 global $spip_lang_right;
164 global $couleur_claire;
165 global $outils;
166
167 if (!cout_autoriser()) {
168 debut_page(_T('icone_admin_plugin'), "configuration", "plugin");
169 echo _T('avis_non_acces_page');
170 fin_page();
171 exit;
172 }
173 $exec = _request('exec');
174
175 include_spip('inc/plugin');
176 verif_plugin();
177
178 // reset general
179 if (_request('cmd')=='resetall'){
180 spip_log("Reset de tous les outils par l'auteur id=$connect_id_auteur");
181 foreach(array_keys($GLOBALS['meta']) as $meta) {
182 if(strpos($meta, 'tweaks_') === 0) effacer_meta($meta);
183 if(strpos($meta, 'cs_') === 0) effacer_meta($meta);
184 }
185 ecrire_metas();
186 cs_initialisation(true);
187 if (defined('_SPIP19200')) include_spip('inc/headers');
188 redirige_par_entete(generer_url_ecrire($exec));
189 }
190
191 // afficher un outil completement ?
192 $afficher_outil = $_GET['afficher_outil'];
193 if (!strlen($afficher_outil) || $afficher_outil=='non' ) $afficher_outil = -1;
194 else $afficher_outil = intval($afficher_outil);
195
196 // initialisation generale forcee : recuperation de $outils;
197 cs_initialisation(true);
198 // mise a jour des donnees si envoi via formulaire
199 // sinon fait une passe de verif sur les outils
200 if (_request('changer_outils')=='oui'){
201 enregistre_modif_outils();
202 // pour la peine, un redirige,
203 // que les outils charges soient coherent avec la liste
204 if (defined('_SPIP19200')) include_spip('inc/headers');
205 $afficher_outil = _request('afficher_outil');
206 if (strlen($afficher_outil) && $afficher_outil!=='non')
207 redirige_par_entete(generer_url_ecrire($exec, "afficher_outil=$afficher_outil", true) . "#outil$afficher_outil");
208 else redirige_par_entete(generer_url_ecrire($exec));
209 }
210
211 if(defined('_SPIP19100'))
212 debut_page(_T('couteauprive:titre'), 'configuration', 'couteau_suisse');
213 else {
214 $commencer_page = charger_fonction('commencer_page', 'inc');
215 echo $commencer_page(_T('couteauprive:titre'), "configuration", 'couteau_suisse');
216 }
217
218 cs_admin_styles_et_js();
219 echo "<br /><br /><br />";
220 gros_titre(_T('couteauprive:titre'), '', false);
221 echo barre_onglets("configuration", 'couteau_suisse');
222
223 cs_compat_boite('debut_gauche');
224 echo debut_boite_info(true),
225 propre(_T('couteauprive:help0', array('reset' => generer_url_ecrire($exec,'cmd=resetall')))),
226 fin_boite_info(true);
227 $aide_racc = cs_aide_raccourcis();
228 if(strlen($aide_racc))
229 echo debut_boite_info(true), $aide_racc, fin_boite_info(true);
230 $aide_pipes = cs_aide_pipelines();
231 if(strlen($aide_pipes))
232 echo debut_boite_info(true), $aide_pipes, fin_boite_info(true);
233
234 echo pipeline('affiche_gauche',array('args'=>array('exec'=>$exec),'data'=>''));
235 cs_compat_boite('creer_colonne_droite');
236 echo pipeline('affiche_droite',array('args'=>array('exec'=>$exec),'data'=>''));
237 cs_compat_boite('debut_droite');
238
239 echo debut_cadre_trait_couleur(find_in_path('img/couteau-24.gif'),true,'','&nbsp;'._T('couteauprive:outils_liste'));
240
241 $valider = "\n<div style='text-align:$spip_lang_right'>"
242 . "<input type='submit' name='Valider1' value='"._T('bouton_valider')."' class='fondo' onclick='document.forms.submitform.submit()' /></div>";
243 echo _T('couteauprive:outil_intro_old', array('triangle'=>'<img src="'._DIR_IMG_PACK.'deplierhaut.gif" />')), $valider;
244 echo "\n<table border='0' cellspacing='0' cellpadding='5' ><tr><td class='sansserif'>";
245 foreach($temp = $outils as $outil) $categ[_T('couteauprive:categ:'.$outil['categorie'])] = $outil['categorie']; ksort($categ);
246
247 $js = ''; $marge = '0';
248 $description_outil = charger_fonction('description_outil', 'inc');
249 foreach($categ as $c=>$i) {
250 $basics = array(); $s = '';
251 foreach($temp = $outils as $outil) if ($outil['categorie']==$i) {
252 $s .= ligne_outil($outil, $js, $afficher_outil==$outil['index'], $description_outil) . "\n";
253 $basics[] = $outil['index'];
254 }
255 $ss = "<input type='checkbox' class='checkbox' name='foo_$i' value='O' id='label_{$i}_categ'";
256 // $ss .= $actif?" checked='checked'":"";
257 $ss .= " onclick='categ_outil.apply(this,[\"$i\", [".join(', ', $basics).'], '.count($basics)."])' />";
258 $ss .= "<label for='label_{$i}_categ' style='display:none'>"._T('couteauprive:activer_outil')."</label>";
259 preg_match(',([0-9]+)\.?\s*(.*),', _T('couteauprive:'.$c), $reg);
260 echo "<form style='margin-top:$marge; margin-left:2em;'>$ss&nbsp;<b>$reg[2]</b></form>\n", $s;
261 $marge = '.8em';
262 }
263 echo "</td></tr></table>\n";
264 echo "<script type=\"text/javascript\"><!--\n$js\n//--></script>";
265
266 if (!defined('_SPIP19300'))
267 echo generer_url_post_ecrire($exec, '', 'submitform');
268 else {
269 include_spip('inc/filtres');
270 echo "\n<form action='".generer_url_ecrire($exec)."' name='submitform' method='post'>" . form_hidden($action);
271 }
272 echo "\n<input type='hidden' name='changer_outils' value='oui'>";
273 echo "\n<input type='hidden' name='afficher_outil' value='non'>";
274 foreach($temp = $outils as $outil) echo "<input type='hidden' id='tweak_".$outil['id']."' name='tweak_".$outil['id']."' value='".($outil['actif']?"1":"0")."' />";
275 $valider = "\n<div style='margin-top:0.4em; text-align:$spip_lang_right'>"
276 . "<input type='submit' name='Valider2' value='"._T('bouton_valider')."' class='fondo' /></div>";
277 echo $valider,
278 fin_cadre_trait_couleur(true);
279
280 echo pipeline('affiche_milieu',array('args'=>array('exec'=>$exec),'data'=>''));
281 echo "</form>";
282
283 echo fin_gauche(), fin_page();
284 cs_log(" FIN : exec_admin_couteau_suisse()");
285 }
286
287 // affiche un outil sur une ligne
288 function ligne_outil($outil, &$js, $afficher, $description_outil){
289 static $id_input=0;
290 $inc = $outil_id = $outil['id'];
291 $actif = $outil['actif'];
292 $erreur_version = cs_version_erreur($outil);
293 $puce = $actif?'puce-verte.gif':'puce-rouge.gif';
294 $titre_etat = _T('couteauprive:outil_'.($actif?'':'in').'actif');
295 $nb_var = intval($outil['nb_variables']);
296 $index = intval($outil['index']);
297 $pliage_id = 'plie_'.$outil_id;
298
299 $s = "<a name='outil$index' id='outil$index'></a><form style='margin:0 0 0 1em;'><div id='$outil_id' class='nomoutil".($actif?'_on':'')."'>";
300 $p = '<div style="margin:0 0 0 2em;">';
301 $p .= "<img src='"._DIR_IMG_PACK."$puce' name='puce_$id_input' width='9' height='9' style='border:0;' alt=\"$titre_etat\" title=\"$titre_etat\" />&nbsp;";
302 $p .= "<input type='checkbox' class='checkbox' name='foo_$inc' value='O' id='label_$id_input' style=''";
303 $p .= $actif?" checked='checked'":"";
304 $p .= $erreur_version?" disabled='disabled'":"";
305 $p .= " onclick='outilchange.apply(this,[$index])'";
306 $p .= "/> <label for='label_$id_input' style='display:none'>"._T('couteauprive:activer_outil')."</label>";
307 $js .= "Outils[$index] = Array(\"$inc\", $nb_var);\n";
308 // compatibilite SPIP < v1.93
309 if(function_exists('bouton_block_depliable'))
310 $p .= bouton_block_depliable($outil['nom'], $afficher, $pliage_id);
311 else $p .= ($afficher?bouton_block_visible($pliage_id):bouton_block_invisible($pliage_id)) . $outil['nom'];
312 $p .= '</div>';
313 $s .= propre($p) . "</div></form>";
314
315 // compatibilite SPIP < v1.93
316 if(function_exists('debut_block_depliable'))
317 $p = debut_block_depliable($afficher, $pliage_id);
318 else $p = $afficher?debut_block_visible($pliage_id):debut_block_invisible($pliage_id);
319 $p .= "\n<div class='detail_outil'>";
320 // horrible : ça prends plus de temps qu'avant, mais ca va bientot disparaitre !!
321 $p .= cs_initialisation_d_un_outil($outil['id'], $description_outil, false);
322 if (isset($outil['jquery']) && $outil['jquery']=='oui') $p .= '<p>' . _T(defined('_SPIP19100')?'couteauprive:detail_jquery1':'couteauprive:detail_jquery2') . '</p>';
323 if (isset($outil['auteur']) && strlen($outil['auteur'])) $p .= '<p>' . _T('auteur') .' '. ($outil['auteur']) . '</p>';
324 if (isset($outil['contrib']) && strlen($outil['contrib'])) $p .= '<p>' . _T('couteauprive:contrib', array('id'=>$outil['contrib'])) . '</p>';
325 $s .= propre($p) . detail_outil($outil['id']) . '</div>';
326
327 $s .= fin_block();
328 $id_input++;
329 return $s;
330 }
331 ?>