source: spip-zone/_contribs_/_ecrire_/mots_partout/trunk/mots_partout.php @ 275

Last change on this file since 275 was 275, checked in by pierre.andrews@…, 15 years ago

J'ai fait pas mal de changemants dans l'interface.

Maintenant, l'ajout de mot se passe en deux temps:
1- on selectionne les objets en checkant des mots clefs ou directement les objets qui nous interessent,
2- on répéte l'opération jusqu'à ce que la liste d'objet soit celle sur laquelle on veut ajouter des mots clefs,
3- en bas de la page, il y a un champ de texte dans lequel on tappe une liste de mot clef séparés par des espaces avec le nom du groupe placé devant un ':', par exemple: groupe:mot groupe:mot2 groupe2:mot3 (voir la lib tag-machine)
4- on fait ajouter, et voilà.

Il faut donc maintenant installer aussi le repertoire _libs_ dans votre repertoire écrire.

Je ne suis pas encore content de cette interface, si qq a des conseils, je suis preneur.

File size: 23.0 KB
Line 
1<?php 
2
3
4//        mots_partout.php
5//    Fichier créé pour SPIP avec un bout de code emprunté à celui ci.
6//    Distribué sans garantie sous licence GPL.
7//
8//    Copyright (C) 2005  Pierre ANDREWS
9//
10//    This program is free software; you can redistribute it and/or modify
11//    it under the terms of the GNU General Public License as published by
12//    the Free Software Foundation; either version 2 of the License, or any later version.
13//
14//    This program is distributed in the hope that it will be useful,
15//    but WITHOUT ANY WARRANTY; without even the implied warranty of
16//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17//    GNU General Public License for more details.
18//
19//    You should have received a copy of the GNU General Public License
20//    along with this program; if not, write to the Free Software
21//    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22
23include ("inc.php3");
24include_ecrire ("inc_version.php3");
25include_ecrire ("inc_documents.php3");
26include_ecrire ("inc_abstract_sql.php3");
27include_ecrire ("inc_objet.php3");
28include('_libs_/tag-machine/inc_tag-machine.php');
29
30/***********************************************************************
31* Définition des choses sur lesquels on peut vouloir mettre des mots clefs
32***********************************************************************/
33
34
35$choses_possibles['articles'] = array(
36                                                                          'titre_chose' => 'public:articles',
37                                                                                  'id_chose' => 'id_article',
38                                                                          'table_principale' => 'spip_articles',
39                                                                          'table_auth' => 'spip_auteurs_articles',
40                                                                          'tables_limite' => array(
41                                                                                                                           'articles' => array(
42                                                                                                                                                                   'table' => 'spip_articles',
43                                                                                                                                                                   'nom_id' => 'id_article'),
44                                                                                                                           'rubriques' => array(
45                                                                                                                                                                        'table' => 'spip_articles',
46                                                                                                                                                                        'nom_id' =>  'id_rubrique'),
47                                                                                                                           'documents' => array(
48                                                                                                                                                                        'table' => 'spip_documents_articles',
49                                                                                                                                                                        'nom_id' =>  'id_document'),
50                                                                                                                           'auteurs' => array(
51                                                                                                                                                                  'table' => 'spip_auteurs_articles',
52                                                                                                                                                                  'nom_id' => 'id_auteur')
53                                                                                                                           )
54                                                                          );
55
56
57$choses_possibles['documents'] = array(
58                                                                           'titre_chose' => 'info_documents',
59                                                                                                  'id_chose' => 'id_document',
60                                                                           'table_principale' => 'spip_documents',
61                                                                           'tables_limite' => array(
62                                                                                                                                'articles' => array(
63                                                                                                                                                                        'table' => 'spip_documents_articles',
64                                                                                                                                                                        'nom_id' => 'id_article'),
65                                                                                                                                'rubriques' => array(
66                                                                                                                                                                         'table' => 'spip_documents_rubriques',
67                                                                                                                                                                         'nom_id' =>  'id_rubrique'),
68                                                                                                                                'documents' => array(
69                                                                                                                                                                         'table' => 'spip_documents',
70                                                                                                                                                                         'nom_id' =>  'id_document')
71                                                                                                                                )
72                                                                           );
73
74
75/***********************************************************************
76 * function
77 ***********************************************************************/
78
79 
80function verifier_admin() {
81  global $connect_statut, $connect_toutes_rubriques;
82  return (($connect_statut == '0minirezo') AND $connect_toutes_rubriques);
83}
84
85function verifier_admin_restreint($id_rubrique) {
86  global $connect_id_auteur;
87  global $connect_statut, $connect_toutes_rubriques;
88
89}
90
91function verifier_auteur($table, $id_objet, $id) {
92  global $connect_id_auteur;
93  $select = array('id_auteur');
94 
95  $from =  array($table);
96 
97  $where = array("id_auteur = $connect_id_auteur", "$id_chose = $id");
98 
99  $result = spip_abstract_select($select,$from,$where);
100 
101  if (spip_abstract_count($result) > 0) {
102        spip_abstract_free($result);
103        return true;
104  }
105  spip_abstract_free($result);
106  return false;
107}
108
109
110function calcul_numeros($array, $search, $total) {
111  if(is_array($array))
112        $tt = count(array_keys($array,$search));
113  else
114        return 0;
115
116  if($tt == 0) return 0;
117  if($tt < $total) return 1;
118  return 2;
119}
120
121function md_afficher_liste($largeurs, $table, $styles = '') {
122        global $couleur_claire;
123        global $browser_name;
124        global $spip_display;
125        global $spip_lang_left;
126
127        if (!is_array($table)) return;
128        reset($table);
129        echo "\n";
130        if ($spip_display != 4) {
131                while (list(,$t) = each($table)) {
132                        if (eregi("msie", $browser_name)) $msover = " onMouseOver=\"changeclass(this,'tr_liste_over');\" onMouseOut=\"changeclass(this,'tr_liste');\"";
133                        echo "<tr class='tr_liste'$msover>";
134                        reset($largeurs);
135                        if ($styles) reset($styles);
136                        while (list($texte, $sel) = each($t)) {
137                                $style = $largeur = "";
138                                list(, $largeur) = each($largeurs);
139                                if ($styles) list(,$style) = each($styles);
140                                if (!trim($texte)) $texte .= "&nbsp;";
141                                echo "<td";
142                                if ($largeur) echo " width=\"$largeur\"";
143                                if ($style)  echo ' class="'.$style[$sel].'"';
144                                echo ">$texte</td>";
145                        }
146                        echo "</tr>\n";
147                }
148        } else {
149                echo "<ul style='text-align: $spip_lang_left;'>";
150                while (list(, $t) = each($table)) {
151                        echo "<li>";
152                        reset($largeurs);
153                        if ($styles) reset($styles);
154                        while (list(, $texte) = each($t)) {
155                                $style = $largeur = "";
156                                list(, $largeur) = each($largeurs);
157                               
158                                if (!$largeur) {
159                                        echo $texte." ";
160                                }
161                        }
162                        echo "</li>\n";
163                }
164                echo "</ul>";
165        }
166        echo "\n";
167}
168
169
170function find_tables($nom, $tables) {
171  $toret = array();
172  foreach($tables as $t => $dec) {
173        if(ereg($nom,$t)) {
174          $toret[] = $t;
175        }
176  }
177  return $toret;
178}
179
180function calcul_in($mots) {
181  for($i=0; $i < count($mots); $i++) {
182        if($i > 0) $to_ret .= ',';
183        $to_ret .= $mots[$i];
184  }
185
186  return $to_ret;
187}
188
189//======================================================================
190
191function afficher_horizontal_document_assoc($id_document,$with_check, $case) {
192        global $connect_id_auteur, $connect_statut;
193        global $spip_lang_left, $spip_lang_right;
194
195        $bord_droit = 2;
196
197        $select = array('*');
198        $from = array('spip_documents');
199        $where = array("id_document = $id_document");
200
201        $results = spip_abstract_select($select,$from,$where);
202
203        if($document = spip_abstract_fetch($results)) {
204          $id_vignette = $document['id_vignette'];
205          $id_type = $document['id_type'];
206          $titre = $document['titre'];
207          $descriptif = $document['descriptif'];
208          $url = generer_url_document($id_document);
209          $fichier = $document['fichier'];
210          $largeur = $document['largeur'];
211          $hauteur = $document['hauteur'];
212          $taille = $document['taille'];
213          $date = $document['date'];
214          $mode = $document['mode'];
215         
216          if ($case == 0) {
217                echo "<tr style='border-top: 1px solid black;'>";
218          }
219         
220          $style = "border-$spip_lang_left: 1px solid $couleur; border-bottom: 1px solid $couleur;";
221          if ($case == $bord_droit) $style .= " border-$spip_lang_right: 1px solid $couleur;";
222          echo "<td width='33%' style='text-align: $spip_lang_left; $style' valign='top'>";
223         
224          echo "<label for='doc$case'>"._T('motspartout:voir').'</label>';
225          echo "<input type='checkbox' name='id_choses[]' id='doc$case' value='$id_document' />";
226         
227          // Signaler les documents distants par une icone de trombone
228          if ($document['distant'] == 'oui') {
229                echo "<img src='"._DIR_IMG_PACK.'attachment.gif'."' style='float: $spip_lang_right;' alt=\"".entites_html($document['fichier'])."\" title=\"" .
230                  entites_html($document['fichier'])."\" />\n";
231          }
232         
233          // bloc vignette + rotation
234          echo "<div style='text-align:center;'>";
235         
236         
237          # 'extension', a ajouter dans la base quand on supprimera spip_types_documents
238                switch ($id_type) {
239                  case 1:
240                        $document['extension'] = "jpg";
241                        break;
242                  case 2:
243                        $document['extension'] = "png";
244                        break;
245                  case 3:
246                        $document['extension'] = "gif";
247                        break;
248                }
249         
250          //
251          // Recuperer la vignette et afficher le doc
252          //
253          echo document_et_vignette($document, $url, true); 
254         
255          echo "</div>"; // fin du bloc vignette + rotation
256         
257         
258          // bloc titre et descriptif
259          if (strlen($titre) > 0) {
260                echo "<div class='verdana2'><b>".typo($titre)."</b>";
261                echo '</div>';
262          } else {
263                $nom_fichier = basename($fichier);
264               
265                if (strlen($nom_fichier) > 20) {
266                  $nom_fichier = substr($nom_fichier, 0, 10)."...".substr($nom_fichier, strlen($nom_fichier)-10, strlen($nom_fichier));
267                }
268                echo "<div class='verdana1' style='text-align:center;'>$triangle$nom_fichier";
269                echo '</div>';
270          }
271                 
272          if (strlen($descriptif) > 0) {
273                echo "<div class='verdana1'>".propre($descriptif)."</div>";
274          }
275         
276          // Taille de l'image ou poids du document
277          echo "<div class='verdana1' style='text-align: center;'>";
278          if ($largeur * $hauteur)
279                echo _T('info_largeur_vignette',
280                                array('largeur_vignette' => $largeur,
281                                          'hauteur_vignette' => $hauteur));
282          else
283                echo taille_en_octets($taille);
284          echo "</div>";
285         
286         
287          echo "</td>\n";
288        }
289}
290
291function afficher_liste_documents($choses) {
292  global $spip_lang_left;
293  echo "<table width='100%' cellspacing='0' cellpadding='3' style=\"border-top:1px solid black\">\n";
294  $i=0;
295  foreach($choses as $id_chose) {
296        afficher_horizontal_document_assoc($id_chose,true,$i);
297        $i++;
298        if ($i > 2) {
299          $i = 0;
300          echo "</tr>\n";
301        }
302  }
303  // fermer la derniere ligne
304  if ($i > 0) {
305        echo "<td style='border-$spip_lang_left: 1px solid $couleur;'>&nbsp;</td>";
306        echo "</tr>";
307  }
308  echo '</table>';
309}
310
311//======================================================================
312
313function afficher_liste_articles($choses) {
314  //  echo "<div style='height: 12px;'></div>";
315  echo "<div class='liste'>";
316  bandeau_titre_boite2('Articles', "article-24.gif");
317 
318  echo afficher_liste_debut_tableau();
319 
320  $from = array('spip_articles as articles');
321  $select= array();
322  $select[] = 'id_article';
323  $select[] = 'titre';
324  $select[] = 'id_rubrique';
325  $select[] = 'date';
326  $select[] = 'statut';
327  $select[] = 'lang';
328  $select[] = 'descriptif';
329  $where = array('articles.id_article IN ('.calcul_in($choses).')');
330 
331  $result = spip_abstract_select($select,$from,$where);
332  $i = 0;
333  while ($row = spip_abstract_fetch($result)) {
334        $i++;
335        $vals = '';
336       
337        $id_article = $row['id_article'];
338        $tous_id[] = $id_article;
339        $titre = $row['titre'];
340        $id_rubrique = $row['id_rubrique'];
341        $date = $row['date'];
342        $statut = $row['statut'];
343        if ($lang = $row['lang']) changer_typo($lang);
344        $descriptif = $row['descriptif'];
345        if ($descriptif) $descriptif = ' title="'.attribut_html(typo($descriptif)).'"';
346       
347        $vals[] = "<input type='checkbox' name='id_choses[]' value='$id_article' id='id_chose$i'/>";
348       
349        // Le titre (et la langue)
350        $s = "<div>";
351       
352        $s .= "<a href=\"articles.php3?id_article=$id_article\"$descriptif$dir_lang style=\"display:block;\">";
353       
354        if ($spip_display != 1 AND $spip_display != 4 AND lire_meta('image_process') != "non") {
355          include_ecrire("inc_logos.php3");
356          $logo = decrire_logo("arton$id_article");
357          if ($logo) {
358                $fichier = $logo[0];
359                $taille = $logo[1];
360                $taille_x = $logo[3];
361                $taille_y = $logo[4];
362                $taille = image_ratio($taille_x, $taille_y, 26, 20);
363                $w = $taille[0];
364                $h = $taille[1];
365                $fid = $logo[2];
366                $hash = calculer_action_auteur ("reduire $w $h");
367               
368                $s.= "<div style='float: $spip_lang_right; margin-top: -2px; margin-bottom: -2px;'>
369<img src='../spip_image_reduite.php3?img="._DIR_IMG."$fichier&taille_x=$w&taille_y=$h&hash=$hash&hash_id_auteur=$connect_id_auteur' alt='$fichier' width='$w' height='$h' border='0'></div>";
370               
371          }
372        }
373       
374        $s .= typo($titre);
375        if ($afficher_langue AND $lang != $langue_defaut)
376          $s .= " <font size='1' color='#666666'$dir_lang>(".traduire_nom_langue($lang).")</font>";
377        $s .= "</a>";
378        $s .= "</div>";
379       
380        $vals[] = $s;
381       
382        // La date
383        $s = affdate_jourcourt($date);
384        $vals[] = $s;
385       
386        // Le numero (moche)
387        if ($options == "avancees") {
388          $vals[] = "<b>"._T('info_numero_abbreviation')."$id_article</b>";
389        }
390       
391       
392        $table[] = $vals;
393  }
394  spip_free_result($result);
395 
396  if ($options == "avancees") { // Afficher le numero (JMB)
397        if ($afficher_auteurs) {
398          $largeurs = array(11, '', 80, 100, 35);
399          $styles = array('', 'arial2', 'arial1', 'arial1', 'arial1');
400        } else {
401          $largeurs = array(11, '', 100, 35);
402          $styles = array('', 'arial2', 'arial1', 'arial1');
403        }
404  } else {
405        if ($afficher_auteurs) {
406          $largeurs = array(11, '', 100, 100);
407          $styles = array('', 'arial2', 'arial1', 'arial1');
408        } else {
409          $largeurs = array(11, '', 100);
410          $styles = array('', 'arial2', 'arial1');
411        }
412  }
413  afficher_liste($largeurs, $table, $styles);
414 
415  echo afficher_liste_fin_tableau();
416  echo '</div>';
417}
418
419//======================================================================
420
421function afficher_liste_defaut($choses) {
422  echo '<table>';
423  $i = 0;
424  foreach($choses as $id_chose) {
425        $i++;
426        echo "<td><tr><input type='checkbox' name='id_choses[]' value='$id_chose' id='id_chose$i'/></tr><tr> <label for='id_chose$i'>$id_chose</label></tr></td>";
427  }
428  echo '</table>';
429}
430
431/***********************************************************************
432 * récuperation de la chose sur laquelle on travaille
433 ***********************************************************************/
434
435$nom_chose = $HTTP_GET_VARS['nom_chose'];
436if(!isset($choses_possibles[$nom_chose])) {
437  list($nom_chose,) = each($choses_possibles);
438  reset($choses_possibles);
439}
440$id_chose = $choses_possibles[$nom_chose]['id_chose'];
441$table_principale = $choses_possibles[$nom_chose]['table_principale'];
442$table_auth = $choses_possibles[$nom_chose]['table_auth'];
443$tables_limite = $choses_possibles[$nom_chose]['tables_limite'];
444
445/***********************************************************************
446 * action
447 ***********************************************************************/
448$mots = $HTTP_GET_VARS['id_mots'];
449$sans_mots = $HTTP_GET_VARS['sans_mots'];
450$choses = $HTTP_GET_VARS['id_choses'];
451$nom_tags = $HTTP_GET_VARS['nom_tags'];
452$limit =  $HTTP_GET_VARS['limit'];
453$id_limit =  $HTTP_GET_VARS['id_limit'];
454
455if($HTTP_GET_VARS['bouton'] == 'ajouter' && $nom_tags && count($choses)) {
456  $tags = parser_liste($nom_tags);
457        foreach($choses as $d) {
458          $warnings = ajouter_liste_mots($tags,$d,'',$nom_chose,$id_chose);
459        }
460} else if ($HTTP_GET_VARS['bouton'] == 'enlever' && $nom_tags && count($choses)) {
461        $tags = parser_liste($nom_tags);
462        foreach($choses as $d) {
463          retirer_liste_mots($tags,$d,'',$nom_chose,$id_chose);
464        }
465}
466
467/**********************************************************************
468* recherche des choses.
469***********************************************************************/
470
471if(count($choses) <= 0) {
472  $select = array();
473  $select[] = "DISTINCT main.$id_chose";
474 
475  $from = array();
476  $where = array();
477  $group = '';
478  $order = '';
479 
480  if(isset($limit) && $limit != 'rien') {
481        $table_lim = $tables_limite[$limit]['table'];
482        $nom_id_lim = $tables_limite[$limit]['nom_id'];
483       
484        $from[] = "$table_lim as main";
485        $where[] = "main.$nom_id_lim IN ($id_limit)"; 
486        if(count($mots) > 0) {
487          $from[] = "spip_mots_$nom_chose as table_temp";
488          $where[] = "table_temp.id_mot IN (".calcul_in($mots).')';
489          $where[] = "table_temp.$id_chose = main.$id_chose";
490          if($HTTP_GET_VARS['strict']) {
491                $select[] = 'count(id_mot) as tot';
492                $group = "main.$id_chose";
493                $order = 'tot DESC';
494          }
495        }
496  } else if(count($mots) > 0) {
497          $from[] = "spip_mots_$nom_chose as main";
498          $where[] = "main.id_mot IN (".calcul_in($mots).')';
499          if($HTTP_GET_VARS['strict']) {
500                $select[] = 'count(id_mot) as tot';
501                $group = "main.$id_chose";
502                $order = 'tot DESC';
503          }
504  } else {
505        $from[] = "$table_principale as main"; 
506  }
507
508 
509  $res=spip_abstract_select($select,$from,$where,$group,$order);
510 
511  $choses = array();
512  $avec_sans = (count($sans_mots) > 0);
513  if($avec_sans) $in_sans = calcul_in($sans_mots);
514  while ($row = spip_abstract_fetch($res)) {
515        if(!isset($table_auth) ||
516           (isset($table_auth) &&
517                (verifier_admin() ||
518                 verifier_auteur($table_auth,$id_chose,$row[$id_chose])
519                 )
520                )
521           ) {
522          if($avec_sans) {
523                $test = spip_abstract_select(array($id_chose),array("spip_mots_$nom_chose"),array("id_mot IN ($in_sans)","$id_chose = ".$row[$id_chose]));
524                if(spip_abstract_count($test) > 0) {
525                  continue;
526                }
527                spip_abstract_free($test);
528          }
529          if(count($mots) > 0 && $HTTP_GET_VARS['strict']) {
530                if($row['tot'] >= count($mots)) {
531                  $choses[] = $row[$id_chose];
532                } else {
533                  break;
534                }
535          } else {
536                $choses[] = $row[$id_chose];
537          }
538        }
539  }
540  spip_abstract_free($res);
541}
542
543if(count($choses) > 0) {
544  $select = array();
545  $from = array();
546  $where = array();
547  $show_mots = array();
548  $from[] = "spip_mots_$nom_chose";
549  $select[] = "spip_mots_$nom_chose.id_mot";
550  $where[] = "spip_mots_$nom_chose.$id_chose IN (".calcul_in($choses).')';
551  $res=spip_abstract_select($select,$from,$where);
552  while ($row = spip_abstract_fetch($res)) {
553        $show_mots[] = $row['id_mot'];
554  }
555  spip_abstract_free($res);
556} 
557
558/***********************************************************************
559 * affichage
560 ***********************************************************************/
561
562debut_page('&laquo; '._T('motspartout:titre_page').' &raquo;', 'documents', 'mots');
563
564echo '<br><br><center>';
565gros_titre(_T('motspartout:titre_page'));
566echo '</center>';
567
568//Colonne de gauche
569debut_gauche();
570
571echo '<a name="voir"></a><form action="mots_partout.php#action">';
572
573
574// choix de la chose sur laquelle on veut ajouter des mots
575debut_cadre_enfonce('',false,'',_T('motspartout:choses'));
576//echo  '<form action="mots_partout.php">';
577echo '<div class=\'liste\'>
578<table border=0 cellspacing=0 cellpadding=3 width=\"100%\">
579<tr class=\'tr_liste\'>
580<td colspan=2><select name="nom_chose">';
581foreach($choses_possibles as $cho => $m) {
582  echo "<option value=\"$cho\"".(($cho == $nom_chose)?'selected':'').'>'._T($m['titre_chose']).'</option>';
583}
584echo '</select></td></tr>';
585echo '<tr class=\'tr_liste\'><td colspan=2>'.
586_T('motspartout:limite').
587':</td></tr>';
588echo '<tr class=\'tr_liste\'><td><select name="limit">
589<option value="rien" selected="true">'.
590_T('motspartout:aucune').
591'</option>';
592
593foreach($tables_limite as $t => $m) {
594  echo "<option value=\"$t\"".(($t == $limit)?'selected':'').">$t</option>";
595}
596
597echo '</select></td>';
598echo "<td><input type='text' size='3' name='id_limit' value='$id_limit'></td></tr>";
599echo '<tr class=\'tr_liste\'>';
600?>
601<td><button type='submit'>
602<?php echo _T('motspartout:voir'); ?>
603</button>
604</td>
605<td colspan=2>
606<input type='checkbox' id='strict' name='strict'/><label for='strict'>
607<?php echo _T('motspartout:stricte'); ?>
608</label></td>
609<?php
610echo '</table></div>';
611fin_cadre_enfonce();
612
613
614// affichage de mots clefs.
615$select = array('*');
616$from = array('spip_groupes_mots');
617$order = 'titre';
618$m_result_groupes = spip_abstract_select($select,$from,'','',$order);
619
620while ($row_groupes = spip_abstract_fetch($m_result_groupes)) {
621  $id_groupe = $row_groupes['id_groupe'];
622  $titre_groupe = typo($row_groupes['titre']);
623  $unseul = $row_groupes['unseul'];
624  $acces_admin =  $row_groupes['0minirezo'];
625  $acces_redacteur = $row_groupes['1comite'];
626
627  if($row_groupes[$nom_chose] == 'oui' && (($GLOBALS['connect_statut'] == '1comite' AND $acces_redacteur == 'oui') OR ($GLOBALS['connect_statut'] == '0minirezo' AND $acces_admin == 'oui'))) {
628        // Afficher le titre du groupe
629        debut_cadre_enfonce("groupe-mot-24.gif", false, '', $titre_groupe);
630       
631        //
632        // Afficher les mots-cles du groupe
633        //
634        $result = spip_abstract_select(array('*'),
635                                                                  array('spip_mots'),
636                                                                  array("id_groupe = '$id_groupe'"),
637                                                                  '', 'titre');
638        $table = '';
639       
640        if (spip_abstract_count($result) > 0) {
641          echo "<div class='liste'>";
642          echo "<table border=0 cellspacing=0 cellpadding=3 width=\"100%\">";
643          $i =0;
644          $table[] = array(
645                                           ' ' => 0,
646                                           _T('motspartout:voir') => 0,
647                                           _T('motspartout:sans') => 0
648                                           );
649          while ($row = spip_abstract_fetch($result)) {
650                $i++;
651                $vals = '';
652               
653                $id_mot = $row['id_mot'];
654                $titre_mot = $row['titre'];
655               
656                $s = typo($titre_mot);
657               
658                $vals["<label for='id_mot$i'>$s</label>"] = calcul_numeros($show_mots,$id_mot,count($choses));
659               
660                $vals["<input type='checkbox' name='id_mots[]' id='id_mot$i' value='$id_mot'>"] = calcul_numeros($show_mots,$id_mot,count($choses));
661               
662                $vals["<input type='checkbox' name='sans_mots[]' id='sans_mot$i' value='$id_mot'>"] = calcul_numeros($show_mots,$id_mot,count($choses));
663                $table[] = $vals;
664          }
665         
666  }
667        $largeurs = array(40, 10, 10);
668        $styles = array(
669                                        array('arial11',
670                                                  'diff-deplace',
671                                                  'diff-ajoute'),
672                                        array('arial1',
673                                                  'diff-para-deplace',
674                                                  'diff-para-ajoute'),
675                                        array('arial1',
676                                                  'diff-para-deplace',
677                                                  'diff-para-ajoute')
678                                        );
679        md_afficher_liste($largeurs, $table, $styles);
680       
681        echo "</table>";
682        echo "</div>";
683        spip_abstract_free($result);
684       
685        fin_cadre_enfonce();
686  }
687}
688spip_abstract_free($m_result_groupes);
689
690//Milieu
691
692debut_droite();
693
694if(count($warnings) > 0) {
695  debut_cadre_relief('',false,'',_T('motspartout:ATTENTION'));
696  echo '<div class="liste"><table border=0 cellspacing=0 cellpadding=3 width=\"100%\">';
697  $largeurs = array('100%');
698  $styles = array( 'arial11');
699  afficher_liste($largeurs, $warnings, $styles);
700  echo '</table>';
701  echo '</div>';
702  fin_cadre_relief();
703}
704
705// Affichage de toutes les choses (on pourrait imaginer faire une pagination là)
706debut_cadre_relief('',false,'document', _T('portfolio'));
707if(count($choses) > 0) {
708  $function = "afficher_liste_$nom_chose";
709  if(function_exists($function)) 
710        $function($choses);
711  else
712        afficher_liste_defaut($choses);
713?>
714<!--
715<input type="radio" name="selectall" id="all" onclick="selectAll(this.form, 'id_choses[]', 0);"><label for="all">Select All</label>
716<input type="radio" name="selectall" id="inverse"  onclick="selectAll(this.form, 'id_choses[]', 1);"><label for="inverse">Inverse All</label>
717-->
718<?php
719} else {
720  echo _T('motspartout:pas_de_documents').'.';
721}
722
723
724fin_cadre_relief();
725echo '</form>';
726
727if(count($choses)) {
728  echo '<a name="action"></a><form action="mots_partout.php#voir">';
729
730  echo '<input type="hidden" name="nom_chose" value="'.$HTTP_GET_VARS['nom_chose'].'">'; 
731  echo "<input type='hidden' name='id_limit' value='$id_limit'>";
732  echo "<input type='hidden' name='limit' value='$limit'>";
733  for($i=0; $i < count($choses); $i++) {
734        echo "<input type=\"hidden\" name=\"id_choses[]\" value=\"".$choses[$i].'">';
735  }
736 
737  // les actions et limitations possibles.
738  debut_cadre_enfonce('',false,'',_T('motspartout:action'));
739 
740  echo '<div class=\'liste\'>
741<table border=0 cellspacing=0 cellpadding=3 width=\"100%\">';
742  echo '<tr class=\'tr_liste\'>
743<td><input type=\'radio\' value=\'ajouter\' name="bouton" id=\'ajouter\'><br><label for=\'ajouter\'>'.
744        _T('motspartout:ajouter').
745        '</label></td>
746<td ><input type=\'radio\' value=\'enlever\' name="bouton" id=\'enlever\'><br><label for=\'enlever\'>'.
747        _T('motspartout:enlever').
748        '</label></td>
749</tr>';
750  ?>
751        <tr class='tr_liste'>
752          <td colspan=2><label for="nom_tags">liste des mots à ajouter</label>
753</td>
754</tr>
755        <tr class='tr_liste'>
756          <td colspan=2><textarea name="nom_tags" rows='10' class='forml' cols='40'></textarea></td>
757           </tr>
758           <tr class='tr_liste'>
759           <td colspan=2><button type='submit'>
760           <?php echo _T('bouton_valider'); ?>
761           </button></td>
762                   </tr>
763                   </table>
764                   </div>
765                   
766<?php
767                   
768  fin_cadre_enfonce();
769  echo '</form>';
770}
771?>
772
773
774<script>
775function selectAll(formObj, isInverse)
776{
777   for (var i=0;i < formObj.length;i++)
778   {
779      fldObj = formObj.elements[i];
780      if (fldObj.type == 'checkbox')
781      {
782         if(isInverse)
783            fldObj.checked = (fldObj.checked) ? false : true;
784         else fldObj.checked = true;
785       }
786   }
787}
788</script>
789
790<?php
791
792fin_page();
793?>
Note: See TracBrowser for help on using the repository browser.