source: spip-zone/_squelettes_/eva-web/3_1/eva_install/exec/eva_install.php @ 23680

Last change on this file since 23680 was 23680, checked in by olivier.gautier@…, 11 years ago

On suit SPIP 2 pour que eva_install crée bien de nouveau les 2 groupes de mot clé

File size: 11.3 KB
Line 
1<?php
2if (!defined('_DIR_PLUGIN_EVAINSTALL')){
3        $p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(dirname(__FILE__)))));
4        define('_DIR_PLUGIN_EVAINSTALL',(_DIR_PLUGINS.end($p)));
5}
6
7        include_spip('base/db_mysql');
8        include_spip('base/abstract_sql');
9        include_spip('inc/presentation');
10        include_spip('inc/vieilles_defs');
11        #include_spip('action/eva_mentions_modif'); 
12
13function exec_eva_install() {
14        $bloc = 0;
15
16  GLOBAL $connect_statut;
17  if ($GLOBALS['connect_statut'] != "0minirezo" OR !$GLOBALS["connect_toutes_rubriques"]) {
18    echo debut_page();
19    echo _T('avis_non_acces_page');
20    echo fin_page();
21    exit;
22  }
23       
24  $icone = _DIR_PLUGIN_EVAINSTALL."/img_pack/petite_eva3.png";
25
26
27$commencer_page = charger_fonction('commencer_page', 'inc');
28echo $commencer_page(_T('evainstall:eva_titre') , '', '', '');
29echo gros_titre(_T('evainstall:gros_titre_page'),'',false);
30
31        echo debut_gauche("",true);
32        echo debut_boite_info(true);
33        echo '<img src="'._DIR_PLUGIN_EVAINSTALL.'/img_pack/eva3.png" border="0" alt="logo eva-web">';
34        echo '<img src="'._DIR_PLUGIN_EVAINSTALL.'/img_pack/install.png" border="0" alt="logo eva_install"><br/>';
35        echo _T('evainstall:Gestion des mots-cl&eacute;s');
36        echo '<br/><br/>';
37        echo _T('evainstall:siteoff1');
38        echo _T('evainstall:lienoff1');
39        echo fin_boite_info(true);
40
41
42echo debut_droite("",true);
43
44###########################################################################
45        echo debut_cadre_enfonce('', true,'', _T('evainstall:groupes_eva'));
46       
47
48###stockage, affichage des id des groupes#############
49       
50        if (_request('creeraff')!=NULL){       
51                crea_groupe('affichage','Modifie la pr&eacute;sentation du contenu');           
52        }
53        if (_request('creeract')!=NULL){
54                crea_groupe('activites','Permet de transformer un article en une activit&eacute;');             
55                #crea_mots2($nbrgrpact,$grp2_activites,$id_act,'activites');
56        }
57       
58        lister_groupes();
59   $table_grp = 'spip_groupes_mots';
60   $champ_grp = 'titre';
61   $resultat_act = sql_select('id_groupe',$table_grp,"titre='activites' LIMIT 1");
62   $resultat_aff = sql_select('id_groupe',$table_grp,"titre='affichage' LIMIT 1");   
63   $test_act = sql_count($resultat_act);
64   $test_aff = sql_count($resultat_aff);
65
66$grp2_activites = array(
67        "jclic" => "Transforme un article en activit&eacute; jclic", 
68        "livre" => "Transforme une rubrique en livre",
69        "couverture-livre" => "Article servant de couverture au livre", 
70        "geometrie" => "Transforme un article en activit&eacute; de g&eacute;om&eacute;trie dynamique",
71        "album" => "Transforme une rubrique et tous les articles quelle contient en livre-album",
72        "podcast" => "Permet de publier un fichier comme podcast");
73
74$grp2_affichage = array(
75        "agenda" => "Afficher une rubrique sous forme d'agenda",
76        "article1" => "Afficher un article en haut de liste dans un cadre diff&eacute;rent en permanence dans une page rubrique",
77        "calendrier" => "Afficher une rubrique sous forme de calendrier",
78        "editorial" => "Afficher un article en haut de liste dans un cadre diff&eacute;rent en permanence dans la page d'accueil",
79        "logo-bloc" => "Afficher le logo d'un site r&eacute;renc&eacute; dans un bloc dans la page d'accueil",
80        "logo-pied" => "Afficher le logo d'un site r&eacute;renc&eacute; dans le pied de page de la page d'accueil",
81        "portfolio" => "Transformer les images jointes à un article en portfolio",
82        "diaporama" => "Pr&eacute;sente les documents joints aux rubriques et articles sous forme de diaporama avec pagination et m&eacute;thode AJAX",
83        "mentions" => "Permet d'ajouter des mentions l&eacute;gales personnalis&eacute;es",     
84        "lien-haut" => "Placer un lien dans la ligne de lien tout en haut de la page",
85        "mini-calendrier" => "Ajoute un rep&egrave;re dans le mini-calendrier",
86        "excluredusommaire" => "Supprime de la page de sommaire les &eacute;l&eacute;ments (articles, sites, ...) ayant ce mot cl&eacute;");
87
88$nbrgrpact = count($grp2_activites);
89$nbrgrpaff = count($grp2_affichage);
90
91$resultat_act2 = sql_select('id_groupe',$table_grp,"titre='activites' LIMIT 1");
92        while ($tab_act = sql_fetch($resultat_act2)){
93                $id_act = $tab_act['id_groupe'];       
94        }
95
96$resultat_aff2 = sql_select('id_groupe',$table_grp,"titre='affichage' LIMIT 1");
97        while ($tab_aff = sql_fetch($resultat_aff2)){
98                $id_aff = $tab_aff['id_groupe'];       
99        }
100
101                               
102        if ($test_act == 0){
103        echo _T('evainstall:groupe_act_non');
104        echo '<form method="POST" action="'.generer_url_ecrire("eva_install").'">';
105        echo "<input type='submit' name='creeract' value='"._T('evainstall:creer_groupe_act')."' class='fondo'>";
106        echo "</form>";
107        }
108        #else{
109        #test_mots($nbrgrpact,$id_act,'activites');
110        #}
111       
112        if ($test_aff == 0){
113        echo _T('evainstall:groupe_aff_non');
114        echo '<form method="POST" action="'.generer_url_ecrire("eva_install").'">';
115        echo "<input type='submit' name='creeraff' value='"._T('evainstall:creer_groupe_aff')."' class='fondo'>";
116        echo "</form>";
117        echo "<br>";
118        }
119        #else{
120        #test_mots($nbrgrpaff,$id_aff,'affichage');
121        #crea_mots2($nbrgrpaff,$grp2_affichage,$id_aff,'affichage');
122        #}
123       
124echo fin_cadre_enfonce(true);
125
126echo debut_cadre_enfonce('', true, '', _T('evainstall:Liste_mots_activites'));
127        if (_request('creermots')!=NULL){       
128                crea_mots2($nbrgrpact,$grp2_activites,$id_act,'activites');
129        }
130        $manque=test_mots($nbrgrpact,$id_act,'activites');
131
132        echo 'Il manque '.$manque.' mots-cl&eacute;s<br/>';
133       
134        if ($manque <> 0) {
135        #echo _T('evainstall:pas_mots_cle');
136        echo '<form method="POST" action="'.generer_url_ecrire("eva_install").'">';
137        echo "<input type='submit' name='creermots' value='"._T('evainstall:creer_mots')."' class='fondo'>";
138        echo "</form>";
139        }
140        else
141        {       
142        lister_mots ($id_act,'activites');
143        }
144echo fin_cadre_enfonce(true);
145
146echo debut_cadre_enfonce('', true, '', _T('evainstall:Liste_mots_affichage'));
147
148
149        if (_request('creermotsaff')!=NULL){
150                crea_mots2($nbrgrpaff,$grp2_affichage,$id_aff,'affichage');
151                #echo 'id aff ='.$id_aff.'<br/>';
152        }
153
154        $manque2= test_mots($nbrgrpaff,$id_aff,'affichage');
155        echo 'Il manque '.$manque2.' mots-cl&eacute;s<br/>';
156       
157        if ($manque2 < 0) {
158        echo 'Il semble qu\'il y a plus de mot que pr&eacute;vu dans ce groupe.<br/>';
159        lister_mots ($id_aff,'affichage');
160        }
161        elseif ($manque2 > 0) {
162        #echo _T('evainstall:pas_mots_cle');
163        echo '<form method="POST" action="'.generer_url_ecrire("eva_install").'">';
164        echo "<input type='submit' name='creermotsaff' value='"._T('evainstall:creer_mots')."' class='fondo'>";
165        echo "</form>";
166               
167        }
168        else
169        {
170        lister_mots ($id_aff,'affichage');
171        }
172echo fin_cadre_enfonce(true);
173
174
175echo fin_gauche();
176echo fin_page();
177}
178       
179##################################################################################
180#############################
181function crea_groupe($groupe,$descriptif){
182        $resultatgrp = sql_insertq('spip_groupes_mots',array('titre'=>$groupe,'descriptif'=>$descriptif,'unseul'=>'non','obligatoire'=>'non','minirezo'=>'oui','comite'=>'oui','forum'=>'non'));
183        echo '<br>Le groupe '.$groupe.' vient d\'etre cr&eacute;&eacute;<br>';
184}
185####################
186function lister_groupes() {
187
188        $table = 'spip_groupes_mots';
189        $champ = 'titre';
190   $resultat1 = sql_select('*',$table,"titre='activites' OR titre='affichage'");
191   $nombre = sql_count($resultat1);
192       
193        if ($nombre < 1) {
194        echo _T('evainstall:pas_groupe');
195
196        }else
197        echo "Il existe ".$nombre." groupes de mots-cl&eacute;s EVA :</br>";
198       
199        for($i=0;$i<$nombre;$i+1)
200    {
201                   while ($row = sql_fetch($resultat1))
202            {
203
204        echo '<p>';
205        echo _T('evainstall:groupe_titre').$row["titre"].'<br/>';
206        echo _T('evainstall:groupe_num').$row["id_groupe"].'<br/>';
207        echo _T('evainstall:groupe_descriptif').$row["descriptif"].'<br/>';
208        echo '<a href=?exec=mots_type&id_groupe='.$row["id_groupe"].' class="fondo">Modifier ce groupe</a>';
209        echo '</p>';
210
211            }
212            $i++;
213        }
214}
215####################
216function crea_mots2 ($nbr,$grp2,$id,$groupe){
217#echo 'Dans la fonction, id = '.$id.'<br/>';
218
219#echo "<br/>-----------------------------------<br/>";
220
221#echo "Valeur de id du groupe =".$id."<br/>";
222echo 'Cr&eacute;ation des mots-cl&eacute;s du groupe '.$groupe.' num&eacute;ro '.$id.'<br/>';
223
224$resultat_req = sql_select('titre','spip_mots',"id_groupe='".$id."'");
225$nb_req = sql_count($resultat_req);
226   
227  if ($nb_req <> $nbr){
228        echo "<br/>Nombre de mots-cl&eacute;s dans le groupe ".$groupe." cr&eacute;es : ".$nbr."<br/>";
229
230    foreach ($grp2 as $motcle => $descriptifmot) {
231        #echo "Mot cl&eacute; : $motcle_act => Descriptif : $descriptifmot_act<br>";
232        $resultreq=sql_select('titre,id_groupe','spip_mots',"titre='".$motcle."'");
233        $nbreq = sql_count($resultreq);
234        $row= sql_fetch($resultreq);
235        #echo 'nbreq = '.$nbreq.'<br/>';
236        #echo 'row titre = '.$row["titre"].'<br/>';
237        #echo 'row id groupe = '.$row["id_groupe"].'<br/>';
238       
239                if ($nbreq == 0){
240                        $ajout_mot = sql_insertq('spip_mots',array('titre'=>$motcle,'descriptif'=>$descriptifmot,'id_groupe'=>$id));
241                }
242                elseif ($row["id_groupe"]<>$id){
243                        echo $motcle.' existe d&eacute;j&agrave; <br>';
244                        echo 'Je le d&eacute;place dans le groupe '.$groupe.'<br>';
245                        sql_updateq('spip_mots',array('id_groupe'=>$id,'descriptif'=>$descriptifmot),"titre = '".$motcle."'");
246                }
247    }
248  }
249}
250####################
251function test_mots($nb,$id,$groupe){
252
253#echo 'nb = '.$nb.'<br/>';
254#echo 'id = '.$id.'<br/>';
255#echo 'groupe = '.$groupe.'<br/>';
256
257$resultat = sql_select('titre','spip_mots',"id_groupe='".$id."'");
258$nb_req = sql_count($resultat);
259
260#echo 'nombre trouve pour '.$groupe.'= '.$nb_req.'<br>';
261
262$manque=$nb-$nb_req;
263#if ($nb_req <> $nb ){
264#        echo 'il n\'y a pas le bon nombre de mots-clés.<br/>';
265#        echo 'il manque '.$etat.' mots-clés<br/>';
266#        return $etat;
267#}else{
268#        echo 'C\'est OK.<br/>';
269        return $manque;
270#        }
271#echo '----------------------------<br/>';
272}
273####################
274function lister_mots($id,$groupe) {
275
276        $resultat2 = sql_select('*','spip_mots',"id_groupe='".$id."'");
277        $nombre2 = sql_count($resultat2);
278       
279        #if ($nombre2 == 0) {
280        #echo _T('evainstall:pas_mots_cle');
281        #echo '<form method="POST" action="'.generer_url_ecrire("eva_install").'">';
282        #echo "<input type='submit' name='creermots' value='"._T('evainstall:creer_mots de ce groupe')."' class='fondo'>";
283        #echo "</form>";
284        #       if (_request('creermots')!=NULL){       
285        #           crea_mots2 ($nbr,$grp2,$id,$groupe);
286        #           echo $id;
287        #       }
288        #return;
289        #}
290        #else
291        #{
292        echo "Voici les ".$nombre2." mots-cl&eacute;s du groupe ".$groupe." :</br>";
293       
294        for($i=0;$i<$nombre2;$i++){
295                while ($row = sql_fetch($resultat2)){
296                        echo '<p>';
297                        echo _T('evainstall:mot_titre').$row["titre"].'<br/>';
298                        echo _T('evainstall:mot_descriptif').$row["descriptif"].'<br/>';
299                        echo '<a href=?exec=mots_edit&id_mot='.$row["id_mot"].' class="fondo">Modifier ce mot</a>';
300                        echo '</p>';
301            }
302            #$i++;
303        }
304#}
305}
306
307###############################
308function verif_url($url) {
309  $motif_url = "/^(http:\/\/)(w{0}|{3})\.?[a-zA-Z0-9._-]
310    +\.+[a-zA-Z]{2,3}\$/i";
311  if (!preg_match($motif_url, $url)) 
312  {
313  return false;
314  }else
315  { return true;}
316} 
317####################
318function filtrer_mot($name){
319//permet de filtrer tout ce qui n'est pas un mot (caractères alphanumériques).
320        if($_REQUEST[$name]==eregi_replace('[^a-z0-9_]', '', $_REQUEST[$name])) {
321                return ('ok');
322        }else{
323        return ('non');
324        }
325}
326
327?>
Note: See TracBrowser for help on using the repository browser.