source: spip-zone/_plugins_/squelettes_par_mots_cle/trunk/exec/config_chercher_squelettes_mots.php @ 32666

Last change on this file since 32666 was 32666, checked in by marcimat@…, 10 years ago

Grosse mise à jour du plugin Squelettes par mots clés :

  • suppression de toute surcharge
  • utilisation de styliser
  • quelques réécritures (de la partie styliser).

A tester.

File size: 7.1 KB
Line 
1<?php
2
3//    Fichier cr‚‚ pour SPIP avec un bout de code emprunt‚ … celui ci.
4//    Distribu‚ sans garantie sous licence GPL./
5//    Copyright (C) 2006  Pierre ANDREWS
6//
7//    This program is free software; you can redistribute it and/or modify
8//    it under the terms of the GNU General Public License as published by
9//    the Free Software Foundation; either version 2 of the License, or any later version.
10//
11//    This program is distributed in the hope that it will be useful,
12//    but WITHOUT ANY WARRANTY; without even the implied warranty of
13//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14//    GNU General Public License for more details.
15//
16//    You should have received a copy of the GNU General Public License
17//    along with this program; if not, write to the Free Software
18//    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
20function exec_config_chercher_squelettes_mots() {
21  global $connect_statut, $connect_toutes_rubriques;
22
23  include_spip("inc/presentation");
24  include_spip ("base/abstract_sql");
25
26  $commencer_page = charger_fonction('commencer_page', 'inc');
27        echo $commencer_page(_T('squelettesmots:titre_page'), "configuration");
28 
29
30  if ($connect_statut != '0minirezo' OR !$connect_toutes_rubriques) {
31        echo _T('avis_non_acces_page');
32        exit;
33  }
34
35  if ($connect_statut == '0minirezo' AND $connect_toutes_rubriques ) {
36
37        echo '<br><br><br>';
38
39        echo gros_titre(_T('squelettesmots:gros_titre'),'',FALSE);
40
41        echo barre_onglets("configuration", "config_chercher_squelettes_mots");
42
43        /*Affichage*/
44        echo debut_gauche('',TRUE);     
45       
46        echo debut_boite_info(TRUE);
47        echo propre(_T('squelettesmots:help'));
48        echo fin_boite_info(TRUE);
49       
50        echo debut_droite('',TRUE);
51       
52        $config = charger_fonction('config', 'inc');
53        $config();
54        echo avertissement_config();
55
56        echo debut_cadre_relief("".find_in_path('spip_death.png')."", true);
57        echo '<form action="'.generer_url_ecrire('config_chercher_squelettes_mots').'" method="post">';
58
59        $groupes_mots = '';
60        $select = array('id_groupe','titre');
61        $from = array('spip_groupes_mots');
62
63        //      include_ecrire('inc_filtres');
64        $rez = sql_select($select,$from);
65        while($row = sql_fetch($rez)) {
66          $groupes_mots[$row['id_groupe']] = extraire_multi($row['titre']);
67        }
68        sql_free($rez);
69
70        //TODO: trouver automatiquement ces informations pour toutes les tables avec un jonction sur les mots
71        $id_tables = array('articles' => 'id_article',
72                                           'rubriques' => 'id_rubrique',
73                                           'breves' => 'id_breve',
74                                           'sites' => 'id_site');
75       
76
77        $fonds = unserialize(lire_meta('SquelettesMots:fond_pour_groupe'));
78
79        $field_fonds = $_REQUEST['fonds'];
80        $id_groupes = $_REQUEST['tid_groupe'];
81        $types = $_REQUEST['type'];
82        $actif = $_REQUEST['actif'];
83       
84        /*On transforme les _POST en jolie tableau*/
85        if($field_fonds) {
86          $new_fonds = array();
87          foreach($field_fonds as $index => $fond) {           
88                $index = intval($index);
89                $fond = addslashes($fond);
90                if($actif[$index]) {
91                  $id_groupe = intval($id_groupes[$index]);
92                  $type = addslashes($types[$index]);
93                  $new_fonds[$fond] = array($id_groupe,$type,$id_tables[$type]);
94                } 
95          }
96          $fonds = $new_fonds;
97        }
98       
99        $index = 0;
100        if (is_array($fonds))
101        foreach($fonds as $fond => $a) {
102          list($id_groupe,$type,$id_table) = $a;
103          $index++;
104          echo '<fieldset class="regle">';
105          echo '<legend>'._T('squelettesmots:reglei',array('id'=>$index)).'</legend>';
106          if(!find_in_path($fond.'.html')) {
107                echo '<div class="avertissement">';
108                echo _T('squelettesmots:avertissement',array('squelette'=>'<em>'.$fond.'.html'.'</em>'));
109                echo '</div>';
110          }
111          // echo '<div class="champs">';
112          echo "<input type=\"checkbox\" class=\"actif\" name=\"actif[$index]\" checked=\"true\"/>";
113          echo "<label for=\"fond_$index\" class=\"fond\">"._T('squelettesmots:fond')."</label>";
114          echo "<input type=\"text\" name=\"fonds[$index]\" class=\"forml\"  value=\"$fond\" id=\"fond_$index\"/>";
115          echo "<label for=\"id_groupe_$index\" class=\"id_groupe\">"._T('squelettesmots:groupe')."</label>";
116          echo "<select name=\"tid_groupe[$index]\" class=\"id_groupe forml\" id=\"id_groupe_$index\">";
117          foreach($groupes_mots as $id => $titre) {
118                echo "<option value=\"$id\"".(($id_groupe == $id)?' selected="true"':'').">$titre</option>";
119          }
120          echo '</select>';
121          echo "<label for=\"type_$index\" class=\"type\">"._T('squelettesmots:type')."</label>";
122          echo "<select name=\"type[$index]\" class=\"type forml\" id=\"type_$index\">";
123          foreach($id_tables as $t => $x) {
124                echo "<option value=\"$t\"".(($type == $t)?' selected="true"':'').">$t</option>";
125          }
126          echo '</select>';
127          // echo '</div>';
128          $select1 = array('titre');
129          $from1 = array('spip_mots AS mots');
130          $where1 = array("id_groupe=$id_groupe");
131          $rez =sql_select($select1,$from1,$where1);
132          $liste_squel = '<ul>';
133          $ext = 'html'; //On force a html, c'est pas beau, mais je vois pas la solution actuellement.
134          $cnt_actif = 0;
135          $cnt_inactif = 0;
136          while ($r = sql_fetch($rez)) {
137                include_spip("inc/charsets");
138                $n = translitteration(preg_replace('/["\'.\s]/','_',extraire_multi($r['titre'])));
139                if ($squel = find_in_path("$fond-$n.$ext")) {
140                  $cnt_actif++;
141                  $liste_squel .= "<li><a href=\"$squel\">$fond-$n.$ext</a></li>";
142                } else {
143                  $cnt_inactif++;
144                  $liste_squel .= "<li>$fond-$n.$ext</li>";
145                }
146                if ($squel = find_in_path("$fond=$n.$ext")) {
147                  $cnt_actif++;
148                  $liste_squel .= "<li><a href=\"$squel\">$fond=$n.$ext</a></li>";
149                } else {
150                  $cnt_inactif++;
151                  $liste_squel .= "<li>$fond=$n.$ext</li>";
152                }
153          }
154          sql_free($rez);
155          $liste_squel .= '</ul>';
156
157         
158          echo '<div class="possible">';
159          if($cnt_actif+$cnt_inactif > 0) {
160          echo bouton_block_depliable(_T('squelettesmots:possibilites',array('total_actif' => $cnt_actif, 'total_inactif'=>$cnt_inactif)),false);
161                echo debut_block_depliable(false,"regle$index");
162                echo $liste_squel;
163                echo fin_block();
164          }
165          echo '</div>';
166
167          echo '</fieldset>';
168        }
169       
170        $index++;
171       
172        echo '<hr/>';
173        echo '<fieldset class="nouvelle regle">';
174        echo '<legend>'._T('squelettesmots:nouvelle_regle').'</legend>';
175        echo "<input type=\"checkbox\" class=\"actif\" name=\"actif[$index]\"/>";
176        echo "<label for=\"fond_$index\" class=\"fond\">"._T('squelettesmots:fond')."</label>";
177        echo "<input type=\"text\" name=\"fonds[$index]\" class=\"forml\" value=\"article\"/>";
178       
179        echo "<label for=\"id_groupe_$index\" class=\"id_groupe\">"._T('squelettesmots:groupe')."</label>";
180        echo "<select name=\"tid_groupe[$index]\" class=\"id_groupe forml\" id=\"id_groupe_$index\">";
181        foreach($groupes_mots as $id => $titre) {
182          echo "<option value=\"$id\">$titre</option>";
183        }
184        echo '</select>';
185        echo "<label for=\"type_$index\" class=\"type\">"._T('squelettesmots:type')."</label>";
186        echo "<select name=\"type[$index]\" class=\"type forml\" id=\"type_$index\">";
187        foreach($id_tables as $t => $x) {
188          echo "<option value=\"$t\">$t</option>";
189        }
190        echo '</select>';
191        echo '</fieldset>';
192       
193        echo '<div style="text-align: right;"><input type="submit" class="fondo" value="'._T('bouton_valider').'"/></div>';
194        echo '</form>';
195        echo fin_cadre_relief(true);
196  }
197 
198  ecrire_meta('SquelettesMots:fond_pour_groupe',serialize($fonds));
199  ecrire_metas();
200 
201  echo fin_gauche();
202  echo fin_page();
203 
204}
205
206?>
Note: See TracBrowser for help on using the repository browser.