source: spip-zone/_plugins_/_stable_/tweak_spip/exec/tweak_spip_admin.php @ 8098

Last change on this file since 8098 was 8098, checked in by patfr@…, 13 years ago

essai de page d'admin : onglet configuration...
la validation est à faire.. si qq'un a une idée !

voici les plugins réunis pour l'instant :

'desactiver_cache',
'supprimer_numero_options',
'verstexte_fonctions',
'orientation',
'desactiver_flash',
'toutmulti',
'bellespuces',
'decoration',

File size: 11.3 KB
Line 
1<?php
2//include_spip('inc/presentation');
3include_spip('inc/texte');
4include_spip('inc/layer');
5
6$p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(dirname(__FILE__)))));
7define('_DIR_PLUGIN_TWEAK_SPIP',(_DIR_PLUGINS.end($p)));
8
9function tweak_styles() {
10        global $couleur_claire;
11        echo "<style type='text/css'>\n";
12        echo <<<EOF
13div.cadre-padding ul li {
14        list-style:none ;
15}
16div.cadre-padding ul {
17        padding-left:1em;
18        margin:.5em 0 .5em 0;
19}
20div.cadre-padding ul ul {
21        border-left:5px solid #DFDFDF;
22}
23div.cadre-padding ul li li {
24        margin:0;
25        padding:0 0 0.25em 0;
26}
27div.cadre-padding ul li li div.nomplugin, div.cadre-padding ul li li div.nomplugin_on {
28        border:1px solid #AFAFAF;
29        padding:.3em .3em .6em .3em;
30        font-weight:normal;
31}
32div.cadre-padding ul li li div.nomplugin a, div.cadre-padding ul li li div.nomplugin_on a {
33        outline:0;
34        outline:0 !important;
35        -moz-outline:0 !important;
36}
37div.cadre-padding ul li li div.nomplugin_on {
38        background:$couleur_claire;
39        font-weight:bold;
40}
41div.cadre-padding div.droite label {
42        padding:.3em;
43        background:#EFEFEF;
44        border:1px dotted #95989F !important;
45        border:1px solid #95989F;
46        cursor:pointer;
47        margin:.2em;
48        display:block;
49        width:10.1em;
50}
51div.cadre-padding input {
52        cursor:pointer;
53}
54div.detailplugin {
55        border-top:1px solid #B5BECF;
56        padding:.6em;
57        background:#F5F5F5;
58}
59div.detailplugin hr {
60        border-top:1px solid #67707F;
61        border-bottom:0;
62        border-left:0;
63        border-right:0;
64        }
65EOF;
66        echo "</style>";
67}
68
69function exec_tweak_spip_admin() {
70  global $connect_statut, $connect_toutes_rubriques;
71  global $spip_lang_right;
72  global $couleur_claire;
73  global $tweaks;
74
75  include_spip('tweak_spip_config');
76  include_spip("inc/presentation");
77//  include_spip ("base/abstract_sql");
78
79  if ($connect_statut != '0minirezo' OR !$connect_toutes_rubriques) {
80        debut_page(_T('icone_admin_plugin'), "configuration", "plugin");
81        echo _T('avis_non_acces_page');
82        fin_page();
83        exit;
84  }
85/*
86        // mise a jour des donnees si envoi via formulaire
87        // sinon fait une passe de verif sur les plugin
88        if (_request('changer_tweaks')=='oui'){
89                enregistre_modif_plugin();
90                // pour la peine, un redirige,
91                // que les plugin charges soient coherent avec la liste
92//              redirige_par_entete(generer_url_ecrire('tweak_spip_admin'));
93        }
94        else
95                verif_plugin();
96        if (isset($_GET['surligne']))
97                $surligne = $_GET['surligne'];
98*/
99  debut_page(_T('tweak:titre'), 'configuration', 'tweak_spip');
100  tweak_styles();
101
102        echo '<br><br><br>';
103
104        gros_titre(_T('tweak:titre'));
105
106        /*Affichage*/
107        debut_gauche(); 
108       
109        debut_boite_info();
110        echo propre(_T('tweak:help'));
111        fin_boite_info();
112
113        debut_droite();
114
115        debut_cadre_relief();
116
117        global $couleur_foncee;
118        echo "\n<table border='0' cellspacing='0' cellpadding='5' width='100%'>";
119        echo "<tr><td bgcolor='$couleur_foncee' background='' colspan='4'><b>";
120        echo "<font face='Verdana,Arial,Sans,sans-serif' size='3' color='#ffffff'>";
121        echo _T('tweak:tweaks_liste')."</font></b></td></tr>";
122
123        echo "<tr><td class='serif' colspan=4>";
124        echo _T('tweak:texte_presente_tweaks');
125
126        echo generer_url_post_ecrire("tweak_spip_admin");
127
128        echo "<ul>";
129       
130        foreach($temp = $tweaks as $tweak) {
131                echo "<li>";
132                echo ligne_tweak($tweak);
133                echo "</li>\n"; 
134        }
135       
136//      echo "\n<input type='hidden' name='id_auteur' value='$connect_id_auteur' />";
137//      echo "\n<input type='hidden' name='hash' value='" . calculer_action_auteur("valide_plugin") . "'>";
138        echo "\n<input type='hidden' name='changer_tweaks' value='oui'>";
139
140        echo "\n<p>";
141
142        echo "<div style='text-align:$spip_lang_right'>";
143        echo "<input type='submit' name='Valider' value='"._T('bouton_valider')."' class='fondo' onclick=\"alert('à faire, si vous trouvez un moyen simple de stocker l'état des tweaks !')\">";
144        echo "</div>";
145
146# ce bouton est trop laid :-)
147# a refaire en javascript, qui ne fasse que "decocher" les cases
148#       echo "<div style='text-align:$spip_lang_left'>";
149#       echo "<input type='submit' name='desactive_tous' value='"._T('bouton_desactive_tout')."' class='fondl'>";
150#       echo "</div>";
151
152        echo "</form></td></tr></table>\n";
153
154//      echo "<br />";
155
156/*
157        echo '<form action="'.generer_url_ecrire('config_chercher_squelettes_mots').'" method="post">';
158
159        $groupes_mots = '';
160        $select = array('id_groupe','titre');
161        $from = array('spip_groupes_mots');
162
163        //      include_ecrire('inc_filtres');
164        $rez = spip_abstract_select($select,$from);
165        while($row = spip_abstract_fetch($rez)) {
166          $groupes_mots[$row['id_groupe']] = extraire_multi($row['titre']);
167        }
168        spip_abstract_free($rez);
169
170        //TODO: trouver automatiquement ces informations pour toutes les tables avec un jonction sur les mots
171        $id_tables = array('articles' => 'id_article',
172                                           'rubriques' => 'id_rubrique',
173                                           'breves' => 'id_breve',
174                                           'sites' => 'id_site');
175       
176
177        $fonds = unserialize(lire_meta('SquelettesMots:fond_pour_groupe'));
178
179        $field_fonds = $_REQUEST['fonds'];
180        $id_groupes = $_REQUEST['tid_groupe'];
181        $types = $_REQUEST['type'];
182        $actif = $_REQUEST['actif'];
183       
184        // On transforme les _POST en jolie tableau
185        if($field_fonds) {
186          $new_fonds = array();
187          foreach($field_fonds as $index => $fond) {           
188                $index = intval($index);
189                $fond = addslashes($fond);
190                if($actif[$index]) {
191                  $id_groupe = intval($id_groupes[$index]);
192                  $type = addslashes($types[$index]);
193                  $new_fonds[$fond] = array($id_groupe,$type,$id_tables[$type]);
194                }
195          }
196          $fonds = $new_fonds;
197        }
198       
199        $index = 0;
200        if (is_array($fonds))
201        foreach($fonds as $fond => $a) {
202          list($id_groupe,$type,$id_table) = $a;
203          $index++;
204          echo '<fieldset class="regle">';
205          echo '<legend>'._T('squelettesmots:reglei',array('id'=>$index)).'</legend>';
206          echo '<div class="champs">';
207          echo "<input type=\"checkbox\" class=\"actif\" name=\"actif[$index]\" checked=\"true\"/>";
208          echo "<label for=\"fond_$index\" class=\"fond\">"._T('squelettesmots:fond')."</label>";
209          echo "<input type=\"text\" name=\"fonds[$index]\" class=\"fond\" value=\"$fond\" id=\"fond_$index\"/>";
210          echo "<label for=\"id_groupe_$index\" class=\"id_groupe\">"._T('squelettesmots:groupe')."</label>";
211          echo "<select name=\"tid_groupe[$index]\" class=\"id_groupe\" id=\"id_groupe_$index\">";
212          foreach($groupes_mots as $id => $titre) {
213                echo "<option value=\"$id\"".(($id_groupe == $id)?' selected="true"':'').">$titre</option>";
214          }
215          echo '</select>';
216          echo "<label for=\"type_$index\" class=\"type\">"._T('squelettesmots:type')."</label>";
217          echo "<select name=\"type[$index]\" class=\"type\" id=\"type_$index\">";
218          foreach($id_tables as $t => $x) {
219                echo "<option value=\"$t\"".(($type == $t)?' selected="true"':'').">$t</option>";
220          }
221          echo '</select>';
222          echo '</div>';
223          $select1 = array('titre');
224          $from1 = array('spip_mots AS mots');
225          $where1 = array("id_groupe=$id_groupe");
226          $rez =spip_abstract_select($select1,$from1,$where1);
227          $liste_squel = '<ul>';
228          $ext = 'html'; //On force a html, c'est pas beau, mais je vois pas la solution actuellement.
229          $cnt_actif = 0;
230          $cnt_inactif = 0;
231          while ($r = spip_abstract_fetch($rez)) {
232                include_ecrire("inc_charsets");
233                $n = translitteration(preg_replace('/["\'.\s]/','_',extraire_multi($r['titre'])));
234                if ($squel = find_in_path("$fond-$n.$ext")) {
235                  $cnt_actif++;
236                  $liste_squel .= "<li><a href=\"$squel\">$fond-$n.$ext</a></li>";
237                } else {
238                  $cnt_inactif++;
239                  $liste_squel .= "<li>$fond-$n.$ext</li>";
240                }
241                if ($squel = find_in_path("$fond=$n.$ext")) {
242                  $cnt_actif++;
243                  $liste_squel .= "<li><a href=\"$squel\">$fond=$n.$ext</a></li>";
244                } else {
245                  $cnt_inactif++;
246                  $liste_squel .= "<li>$fond=$n.$ext</li>";
247                }
248          }
249          spip_abstract_free($rez);
250          $liste_squel .= '</ul>';
251
252         
253          echo '<div class="possible">';
254          if($cnt_actif+$cnt_inactif > 0) echo bouton_block_invisible("regle$index");
255          echo _T('squelettesmots:possibilites',array('total_actif' => $cnt_actif, 'total_inactif'=>$cnt_inactif));
256          if ($cnt_actif+$cnt_inactif > 0) {
257                echo debut_block_invisible("regle$index");
258                echo $liste_squel;
259                echo fin_block();
260          }
261          echo '</div>';
262
263          echo '</fieldset>';
264        }
265       
266        $index++;
267       
268        echo '<hr/>';
269        echo '<fieldset class="nouvelle_regle">';
270        echo '<legend>'._T('squelettesmots:nouvelle_regle').'</legend>';
271        echo "<input type=\"checkbox\" class=\"actif\" name=\"actif[$index]\"/>";
272        echo "<label for=\"fond_$index\" class=\"fond\">"._T('squelettesmots:fond')."</label>";
273        echo "<input type=\"text\" name=\"fonds[$index]\" class=\"fond\" value=\"article\"/>";
274        echo "<label for=\"id_groupe_$index\" class=\"id_groupe\">"._T('squelettesmots:groupe')."</label>";
275        echo "<select name=\"tid_groupe[$index]\" class=\"id_groupe\" id=\"id_groupe_$index\">";
276        foreach($groupes_mots as $id => $titre) {
277          echo "<option value=\"$id\">$titre</option>";
278        }
279        echo '</select>';
280        echo "<label for=\"type_$index\" class=\"type\">"._T('squelettesmots:type')."</label>";
281        echo "<select name=\"type[$index]\" class=\"type\" id=\"type_$index\">";
282        foreach($id_tables as $t => $x) {
283          echo "<option value=\"$t\">$t</option>";
284        }
285        echo '</select>';
286        echo '</fieldset>';
287       
288        echo '<input type="submit" value="'._T('valider').'"/>';
289        echo '</form>';
290*/     
291 
292//  ecrire_meta('SquelettesMots:fond_pour_groupe',serialize($fonds));
293//  ecrire_metas();
294 
295  fin_page();
296 
297}
298
299function ligne_tweak($tweak){
300        static $id_input=0;
301        $inc = $tweak['include'];
302        $actif = $tweak['actif'];
303        $puce = $actif?'puce-verte.gif':'puce-rouge.gif';
304        $titre_etat = _T('tweak:'.($actif?'':'in').'actif');
305        $tweak_id = $inc.$id_input;
306       
307        $s = "<div id='$tweak_id' class='nomplugin".($actif?'_on':'')."'>";
308/*
309        if (isset($info['erreur'])){
310                $s .=  "<div style='background:".$GLOBALS['couleur_claire']."'>";
311                $erreur = true;
312                foreach($info['erreur'] as $err)
313                        $s .= "/!\ $err <br/>";
314                $s .=  "</div>";
315        }
316
317        // puce d'etat du plugin
318        // <etat>dev|experimental|test|stable</etat>
319        $etat = 'dev';
320        if (isset($info['etat']))
321                $etat = $info['etat'];
322        switch ($etat) {
323                case 'experimental':
324                        $puce = 'puce-rouge.gif';
325                        $titre_etat = _T('plugin_etat_experimental');
326                        break;
327                case 'test':
328                        $puce = 'puce-orange.gif';
329                        $titre_etat = _T('plugin_etat_test');
330                        break;
331                case 'stable':
332                        $puce = 'puce-verte.gif';
333                        $titre_etat = _T('plugin_etat_stable');
334                        break;
335                default:
336                        $puce = 'puce-poubelle.gif';
337                        $titre_etat = _T('plugin_etat_developpement');
338                        break;
339        }
340*/
341        $s .= "<img src='"._DIR_IMG_PACK."$puce' width='9' height='9' style='border:0;' alt=\"$titre_etat\" title=\"$titre_etat\" />&nbsp;";
342
343        $s .= "<input type='checkbox' name='tweak_$inc' value='O' id='label_$id_input'";
344        $s .= $actif?" checked='checked'":"";
345        $s .= " onclick='verifchange.apply(this,[\"$inc\"])' /> <label for='label_$id_input' style='display:none'>"._T('tweak:activer_tweak')."</label>";
346        $id_input++;
347
348        $s .= bouton_block_invisible($tweak_id) . propre($tweak['nom']);
349
350        $s .= "</div>";
351
352        $s .= debut_block_invisible($tweak_id);
353
354        $s .= "\n<div class='detailplugin'>";
355        if (isset($tweak['description'])) $s .= propre($tweak['description']);
356        if (isset($tweak['auteur'])) $s .= "<br/><br/>" . _T('auteur') .' '. propre($tweak['auteur']) . "<hr/>";
357        $s .= _T('tweak:tweak') ." $inc.php | ". $tweak['pipeline'];
358        if (isset($tweak['fonction']))  $s .= " | " . $tweak['fonction'];
359        $s .= "</div>";
360
361        $s .= fin_block();
362
363        return $s;
364}
365?>
Note: See TracBrowser for help on using the repository browser.