Changeset 29246 in spip-zone


Ignore:
Timestamp:
Jun 18, 2009, 2:08:15 PM (11 years ago)
Author:
zeraxp@…
Message:

Mots partout v 0.5

  • compatibilité SPIP 2 ( avec les focntionnalites presentes dans l'ancien mot partout )
  • merci encore esj pour tout le boulot que tu as accompli sur la migration du plugin
  • la boite sur les documents est ok, l'interface permet de configurer les groupes sur les docs, auteurs, etc
  • prochaine phase : retester sur une install de spip toute neuve
Location:
_plugins_/mots_partout/2.0
Files:
1 added
12 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/mots_partout/2.0/TODO-bugs.txt

    r16814 r29246  
    11
    22Les BUGS :
    3 1-
    4 Cependant un bug apparaît à l'utilisation lorsque l'on définit un groupe de mots clés
    5  et que l'on demande à l'associer aux articles ainsi qu'aux documents :
    6  les articles ne sont plus accessibles en édition côté administration
    7  mais le redeviennent si on autorise ce groupe de mots clés uniquement
    8  sur les documents ou uniquement sur les articles mais la combinaison des deux n'est pas possible.
    9 
    10 C'est un bug non bloquant mais bon si ça peut faire avancer le smilblick ;-) : testé avec SPIP 1.9.2b et 1.9.2c
    113
    124
     
    2719Les rédacteurs aussi sont concernés par ce bug, ils voient le menu ... Souhaitable ?
    2820
    29 
    3021BUG n°2 : Navigation impossible.
    31 
    3222
    3323Depuis exec=mots_partout, choisissez « Auteurs » dans la liste déroulante, et essayer de parcourir la liste des auteurs qui s'affiche à droite, on revient sur la liste des articles : le "+" retourne sur les articles, l'index numéroté également.
  • _plugins_/mots_partout/2.0/TODO.txt

    r16814 r29246  
     1- debugger
    12- ajouter des localisations, et les améliorer
    23- faire une page pour creer les tables et ajouter une colonne dans spip_groupes_mots:
    34   * rendre l'installation actuelle plus interactive (choix des tables dont on a besoin)
    45   * rendre l'installation actuelle générique
    5    * avoir une interface pour mettre des oui/non dans les nouvelles tables spip_groupes_mots
    6 - traduire l'article sur spip-contrib
    7 - faire des interfaces pour au moins tous les éléments SPIP (rubriques, breves, mots, ...)
    8 - trouver une meilleure méthode pour l'authentification
    9 - revoir la logique du stricte, utiliser HAVING de mysql
    106
    117Pour l'arborescence :
  • _plugins_/mots_partout/2.0/base/motspartout_install.php

    r23313 r29246  
    1111 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
    1212 *    This program is free software; you can redistribute it and/or modify *
    13  *    it under the terms of the GNU General Public License as published by * 
     13 *    it under the terms of the GNU General Public License as published by *
    1414 *    the Free Software Foundation.                                        *
    1515\***************************************************************************/
     
    1818
    1919function motspartout_upgrade($tables_possibles){
    20            
     20
     21                include_spip('base/abstract_sql');
     22
    2123                //installation du champ id_parent et du meta concernant l'installation, gestion arborescente
    2224                sql_alter("TABLE `spip_groupes_mots` ADD `id_parent` BIGINT(20) NOT NULL ");
    23                                        
    24                 //peut être préféré creer_base() à sql_create()         
     25                //peut être préféré creer_base() à sql_create()
    2526                foreach($tables_possibles as $table) {
    26                
     27
    2728                    //determine l'id de la table (supprimé le s de la table, ajout du préfixe id_)
    2829                    preg_match('/(.*)s/i',$table,$nom);
    2930                    $id_table = "id_".$nom[1];
    30                
     31
    3132                //permettre l'affectation d'un groupe à un objet spip
    32                 sql_alter("TABLE `spip_groupes_mots` ADD $table VARCHAR(3) NOT NULL DEFAULT 'non' ");
     33                //sql_alter("TABLE `spip_groupes_mots` ADD $table VARCHAR(3) NOT NULL DEFAULT 'non' ");
     34                //sql_replace("spip_groupes_mots",array());
    3335                //permettre les relations entre mots et objets
    3436            sql_create("spip_mots_$table",
     
    4143                )
    4244            );
    43                 }                               
    44                 ecrire_meta('MotsPartout:mots-partout-arbo-installe','oui');           
     45                }
     46                ecrire_meta('MotsPartout:tables_installees',serialize($tables_possibles));
     47                ecrire_meta('MotsPartout:mots-partout-arbo-installe','oui');
     48                ecrire_meta('motspartout_version','0.5');
    4549        }
    46        
     50
    4751        function motspartout_modifier_tables($tables_possibles) {
     52
     53                include_spip('base/abstract_sql');
     54
    4855                //desinstallation du champ et du meta
    49                 sql_alter("TABLE `spip_groupes_mots` DROP `id_parent`");
     56                //sql_alter("TABLE `spip_groupes_mots` DROP `id_parent`");
    5057
    5158                foreach($tables_possibles as $clef => $table) {
    5259                //permettre l'affectation d'un groupe à un objet spip
    53                 sql_alter("TABLE `spip_groupes_mots` DROP $table");
     60        //sql_alter("TABLE `spip_groupes_mots` DROP $table");
    5461                //permettre les relations entre mots et objets
    55                 sql_drop_table("spip_mots_$table");
    56                 }                                               
     62                //sql_drop_table("spip_mots_$table");
     63                }
     64
     65                effacer_meta('MotsPartout:tables_installees');
    5766                effacer_meta('MotsPartout:mots-partout-arbo-installe');
     67                effacer_meta('motspartout_version');
    5868        }
    59        
     69
    6070        function motspartout_install($action){
    61                 global $forms_base_version;
    62                
    63             //par defaut
    64             // articles, rubriques, syndic sont traités par spip
    65             //les mots clefs partouts
    66             $tables_possibles = array('documents','auteurs','evenements','syndic_articles');           
    67                
    68                 switch ($action){               
     71
     72    //par defaut
     73    // articles, rubriques, syndic sont traités par spip
     74    //les mots clefs partouts
     75
     76    include_spip('base/abstract_sql');
     77
     78          //TODO : Gestion de ce tableau (par un formulaire cfg ?)
     79          $tables_possibles = array('documents','auteurs','syndic_articles','evenements');
     80
     81                switch ($action){
    6982                        case 'install':
    7083                                motspartout_upgrade($tables_possibles);
     
    7285                        case 'uninstall':
    7386                                motspartout_modifier_tables($tables_possibles);
    74                                 break;
     87                        break;
     88                        case 'test':
     89                          return (isset($GLOBALS['meta']['motspartout_version']) && $GLOBALS['meta']['motspartout_version']>=0.5 );
     90                  break;
    7591                }
    76         }       
     92        }
    7793?>
  • _plugins_/mots_partout/2.0/exec/mots_partout.php

    r23316 r29246  
    1 <?php 
     1<?php
    22
    33/***************************************************************************\
     
    1111 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
    1212 *    This program is free software; you can redistribute it and/or modify *
    13  *    it under the terms of the GNU General Public License as published by * 
     13 *    it under the terms of the GNU General Public License as published by *
    1414 *    the Free Software Foundation.                                        *
    1515\***************************************************************************/
     
    4040
    4141
    42 // on calcule le style pour ce mot. I.E. 
     42// on calcule le style pour ce mot. I.E.
    4343// on regarde s'il est attache a tout ou seulement une partie
    4444function calcul_numeros($array, $search, $total) {
     
    7474        if ($style)  echo ' class="'.$style[$sel].'"';
    7575        echo ">$texte</li>";
    76        
     76
    7777        while (list($texte, $sel) = each($t)) {
    7878          $style = $largeur = "";
     
    153153function exec_mots_partout() {
    154154global $choses_possibles;
    155  
     155
    156156  /***********************************************************************/
    157157  /* recuperation de la chose sur laquelle on travaille*/
     
    184184  /* recherche des choses.*/
    185185  /***********************************************************************/
    186  
     186
    187187  if(count($choses) == 0) {
    188188        $select = array();
    189189        $select[] = "DISTINCT main.$id_chose";
    190        
     190
    191191        $from = array();
    192192        $where = array();
    193193        $group = '';
    194194        $order = array();
    195        
     195
    196196        if(isset($limit) && $limit != 'rien') {
    197197          $table_lim = $tables_limite[$limit]['table'];
    198198          $nom_id_lim = $tables_limite[$limit]['nom_id'];
    199          
     199
    200200          $from[0] = "$table_lim as main";
    201           $where[0] = "main.$nom_id_lim IN ($id_limit)"; 
     201          $where[0] = "main.$nom_id_lim IN ($id_limit)";
    202202          if(count($mots_voir) > 0) {
    203203                $from[1] = "spip_mots_$nom_chose as table_temp";
     
    219219                  $order = ('tot DESC');
    220220                }
    221           }     
     221          }
    222222        } else if((count($mots_voir) > 0)||($mots_cacher)){
    223223          if(count($mots_voir) > 0) {
     
    240240          }
    241241        } else {
    242           $from[] = "$table_principale as main"; 
     242          $from[] = "$table_principale as main";
    243243        }
    244244        $select = join(',',$select);
     
    284284  $l = $commencer_page('&laquo; '._T('motspartout:titre_page').' &raquo;', 'documents', 'mots');
    285285  $css = '<link rel="stylesheet" type="text/css" href="'
    286     . url_absolue( _DIR_PLUGIN_MOTSPARTOUT."/mots_partout.css")
     286    . find_in_path("mots_partout.css")
    287287    . '" id="cssprivee" />'  . "\n";
    288288  echo str_replace('</head>', "$css</head>", $l);
     
    295295
    296296  $tables_installees = unserialize(lire_meta('MotsPartout:tables_installees'));
    297   if (!$tables_installees) {
     297/*  if (!$tables_installees) {
    298298    $tables_installees=array(
    299299        "articles"=>true,
     
    307307        );
    308308        ecrire_meta('MotsPartout:tables_installees',serialize($tables_installees));
    309   }
     309  }*/
     310
    310311
    311312  echo mots_partout_choix($choses, $choses_possibles, $id_limit, $limit, $nb_aff, $nom_chose, $tables_installees, $tables_limite);
     
    314315
    315316  echo "<form method='post' action='".generer_url_action('mots_partout',"redirect=$redirect")."'>";
    316  
    317   echo '<input type="hidden" name="nom_chose" value="'.$nom_chose.'">'; 
    318  
     317
     318  echo '<input type="hidden" name="nom_chose" value="'.$nom_chose.'">';
     319
    319320  // les actions et limitations possibles.
    320321  if(count($choses)) {
    321322        debut_cadre_enfonce('',false,'',_T('motspartout:action'));
    322        
    323        
     323
     324
    324325        echo '<div class=\'liste\'>
    325326                  <table border=0 cellspacing=0 cellpadding=3 width=\'100%\'>
     
    377378  debut_cadre_relief('',false,'document', _T('portfolio'));
    378379  if(count($choses) > 0) {
    379        
     380
    380381        $trouver_table = charger_fonction('trouver_table', 'base');
    381382        $afficher_objets = charger_fonction('afficher_objets','inc');
     
    386387                if (!function_exists($f = 'formater_' . $nom_chose . '_mots'))                          $f='';
    387388                echo $afficher_objets($nom_choe, $nom_chose,
    388                         array('SELECT' => '*', 
    389                                 'FROM' => $desc['table'], 
     389                        array('SELECT' => '*',
     390                                'FROM' => $desc['table'],
    390391                                'WHERE' => sql_in($desc['key']['PRIMARY KEY'], $choses)),
    391392                       $f);
     
    399400        echo _T('motspartout:pas_de_documents').'.';
    400401  }
    401  
     402
    402403  fin_cadre_relief();
    403404  echo '</form>
    404405<script>
    405 function selectAll(formObj, isInverse) 
     406function selectAll(formObj, isInverse)
    406407{
    407    for (var i=0;i < formObj.length;i++) 
     408   for (var i=0;i < formObj.length;i++)
    408409   {
    409410      fldObj = formObj.elements[i];
    410411      if (fldObj.type == \'checkbox\')
    411       { 
     412      {
    412413         if(isInverse)
    413414            fldObj.checked = (fldObj.checked) ? false : true;
    414          else fldObj.checked = true; 
     415         else fldObj.checked = true;
    415416       }
    416417   }
    417418}
    418419</script>';
    419  
     420
    420421  fin_page();
    421422}
     
    425426function mots_partout_choix($choses, $choses_possibles, $id_limit, $limit, $nb_aff, $nom_chose, $tables_installees, $tables_limite)
    426427{
     428
     429
    427430  $res = debut_cadre_enfonce('',true,'',_T('motspartout:choses'));
    428431  $res .= '<div class=\'liste\'>
     
    432435
    433436  foreach($choses_possibles as $cho => $m) {
    434           if($tables_installees[$cho]) {
    435                 $res .= "<option value=\"$cho\"".(($cho == $nom_chose)?'selected':'').'>'._T($m['titre_chose']).'</option>';
     437          if(in_array($cho,$tables_installees)) {
     438                  $res .= "<option value=\"$cho\"".(($cho == $nom_chose)?'selected':'').'>'._T($m['titre_chose']).'</option>';
    436439          }
    437440  }
     
    446449        _T('motspartout:aucune').
    447450        '</option>';
    448  
     451
    449452  foreach($tables_limite as $t => $m)
    450453        $res .= "<option value=\"$t\"".(($t == $limit)?'selected':'').">$t</option>";
    451  
     454
    452455  $res .= '</select></td>'
    453456        ."<td><input type='text' size='3' name='identifiant_limit' value='$id_limit'></td></tr>"
     
    461464  if (count($choses)>0) {
    462465        $res .= '<td colspan=2><label for="nb_aff">'._T('motspartout:par').':</label><select name="nb_aff">';
    463         for($nb = 10;$nb<count($choses);$nb=$nb+10)
     466        for($nb = 10;$nb<count($choses)+10;$nb=$nb+10)
    464467                $res .="<option value=\"$nb\"".(($nb == $nb_aff)?'selected="true"':'').">$nb</option>";
    465468        $res .= '</select></td>';
  • _plugins_/mots_partout/2.0/exec/mots_tous.php

    r20323 r29246  
    2929// - ceux du plugin
    3030//      include(_DIR_PLUGIN_MOTSPARTOUT."/mots_partout_choses.php");
    31         $tables_installees = unserialize(lire_meta('MotsPartout:tables_installees'));
    32        
    33         if (!$tables_installees){
    34           $tables_installees=array("articles"=>true,"rubriques"=>true,"breves"=>true,"syndic"=>true);
     31
     32
     33  $tables_installees = unserialize(lire_meta('MotsPartout:tables_installees'));
     34  if (!$tables_installees){
     35          $tables_installees= array('articles','rubriques','documents','auteurs','syndic','syndic_articles','messages');
     36          /* définition d'un pipeline qu'un autre plugin pourra appeler pour ajouter un type d'objet non spip a gerer dans mots partout */
     37          //$tables_installees = pipeline('motspartout_tables_installes',$tables_installees);
    3538          ecrire_meta('MotsPartout:tables_installees',serialize($tables_installees));
    36           ecrire_metas();
    37         }
    38        
     39        }
     40
    3941        foreach($tables_installees as $chose => $m) { $choses[]= $chose; }
    4042///////////////////
    4143
    42         $conf_mot = intval(_request('conf_mot'));
     44                $conf_mot = intval(_request('conf_mot'));
    4345        $son_groupe = intval(_request('son_groupe'));
    4446
     
    5254
    5355        if (autoriser('creer','groupemots')  AND !$conf_mot){
     56                $out = "";
     57                $result = sql_select("*, ".sql_multi ("titre", "$spip_lang"), "spip_groupes_mots", "", "", "multi");
     58                while ($row_groupes = sql_fetch($result)) {
     59                        $id_groupe = $row_groupes['id_groupe'];
     60                        $titre_groupe = typo($row_groupes['titre']);
     61                        $out .= "<li><a href='#mots_tous-$id_groupe' onclick='$(\"div.mots_tous\").hide().filter(\"#mots_tous-$id_groupe\").show();return false;'>$titre_groupe</a></li>";
     62                }
     63                if (strlen($out))
     64                        $out = "
     65                        <ul class='raccourcis_rapides'>".$out."</ul>
     66                        <a href='#' onclick='$(\"div.mots_tous\").show();return false;'>"._T('icone_voir_tous_mots_cles')."</a>";
     67
    5468                $res = icone_horizontale(_T('icone_creation_groupe_mots'), generer_url_ecrire("mots_type","new=oui"), "groupe-mot-24.gif", "creer.gif",false);
    55 
    56                 echo bloc_des_raccourcis($res);
     69                echo bloc_des_raccourcis($res . $out);
    5770        }
    5871
     
    7184// On boucle d'abord sur les groupes de mots
    7285//
    73         //YOANN
    7486        //Modif mots clef arbo
    7587        //va afficher les groupes et leurs sous groupes de mots clefs
    7688        mots_partout_arbo_affiche_sous_groupe();
    77         //FIN YOANN
    78 
    79        
    80        
     89
     90
    8191        echo pipeline('affiche_milieu',array('args'=>array('exec'=>'mots_tous'),'data'=>''));
    82 
    83 
    8492        echo fin_gauche(), fin_page();
    8593}
     
    92100    global $conf_mot, $spip_lang, $spip_lang_right, $son_groupe;
    93101    $tables_installees = unserialize(lire_meta('MotsPartout:tables_installees'));
    94         foreach($tables_installees as $chose => $m) { $choses[]= $chose; }
     102          foreach($tables_installees as $chose) { $choses[]= $chose; }
    95103
    96104    $result_groupes = sql_select("*, ".sql_multi ("titre", "$spip_lang"), "spip_groupes_mots", "id_parent=".$id_groupe, "","multi");
     
    104112                $unseul = $row_groupes['unseul'];
    105113                $obligatoire = $row_groupes['obligatoire'];
    106 ///////////////////
    107 //MODIFICATION
    108 ///////////////////
    109 /*             
     114                $tables_liees = $row_groupes['tables_liees'];
     115                $acces_minirezo = $row_groupes['minirezo'];
     116                $acces_comite = $row_groupes['comite'];
     117                $acces_forum = $row_groupes['forum'];
     118///////////////////
     119//MODIFICATION
     120///////////////////
     121/*
    110122                $articles = $row_groupes['articles'];
    111123                $breves = $row_groupes['breves'];
     
    114126*/
    115127///////////////////
    116                 $acces_minirezo = $row_groupes['minirezo'];
    117                 $acces_comite = $row_groupes['comite'];
    118                 $acces_forum = $row_groupes['forum'];
    119128
    120129                // Afficher le titre du groupe
    121                 echo "<a id='mots_tous-$id_groupe'></a>";
    122 
     130                echo "<div id='mots_tous-$id_groupe' class='mots_tous'>";
    123131                echo debut_cadre_enfonce("groupe-mot-24.gif", true, '', $titre_groupe);
    124                
     132
    125133                //YOANN
    126                 //TODO Ajaxiser la partie ouverture et fermeture  ci dessous
     134                //TODO Ajaxiser la partie ouverture et fermeture  ci dessous : car sur une grosse arborescence c'est assez lourd
    127135                if($id_parent==0)
    128136                { //on n'aura que pour le premier niveau cette possibilité d'ouverture fermeture
    129                 echo "<a href=\"javascript:;\" onclick=\"$('#bloc-groupe-$id_groupe').toggle()\" >Ouvrir / Fermer</a>";
    130                 $aff="";
    131                 if(_request('id_groupe')!=$id_groupe) $aff="style='display:none;'";
    132                 echo "<div id='bloc-groupe-$id_groupe' $aff >"; //YOANN fermer ouvrir
     137                echo "<a href=\"javascript:;\" onclick=\"$('#bloc-groupe-$id_groupe').toggle()\" >Ouvrir / Fermer</a>";
     138                $aff="";
     139                if(_request('id_groupe')!=$id_groupe) $aff="style='display:none;'";
     140                echo "<div id='bloc-groupe-$id_groupe' class='mots_tous'' $aff >"; //YOANN fermer ouvrir
    133141                }
    134142                //FIN YOANN
     
    151159//TODO : documenter syntaxe
    152160// affichage des cases a cocher
     161
    153162                foreach($choses as $chose) {
    154163                        if ($row_groupes[$chose] == "oui") echo "> "._T('motspartout:info_'.$chose)." &nbsp;&nbsp;";
    155164                }
     165
     166                $tables_liees = explode(',',$tables_liees);
     167
     168                $libelles = array('articles'=>'info_articles_2','breves'=>'info_breves_02','rubriques'=>'info_rubriques','syndic'=>'icone_sites_references');
     169                $libelles = pipeline('libelle_association_mots',$libelles);
     170
     171                foreach($tables_liees as $table)
     172                        if (strlen($table))
     173                                $res .= "> " . _T(isset($libelles[$table])?$libelles[$table]:"$table:info_$table") . " &nbsp;&nbsp;";
     174
    156175///////////////////
    157176                if ($unseul == "oui" OR $obligatoire == "oui") $res .= "<br />";
     
    220239                }
    221240
    222                 mots_partout_arbo_affiche_sous_groupe($id_groupe); // 
     241                mots_partout_arbo_affiche_sous_groupe($id_groupe); //
    223242
    224243                if($id_parent==0) echo "</div>"; //YOANN fin du div qui permet de fermer ouvrir un bloc
    225244
    226245                echo fin_cadre_enfonce(true);
    227 
    228         }
     246                echo "</div>";
     247
     248        }
     249
    229250
    230251}
     
    267288        }
    268289*/
    269 $tables_installees = unserialize(lire_meta('MotsPartout:tables_installees'));   
     290$tables_installees = unserialize(lire_meta('MotsPartout:tables_installees'));
    270291        if (!$tables_installees){
    271292          $tables_installees=array("articles"=>true,"rubriques"=>true,"breves"=>true,"forum"=>true,"syndic"=>true);
     
    280301                if ($chose=='syndic') $chaine2='site';
    281302                elseif ($chose=='breve') $chaine1='une';
    282                
     303
    283304                if (($nb[$chose] = intval($nb[$chose])) == 1) {
    284305                        $texte_lie .= _T('info_'.$chaine1.'_'.$chaine2)." ";
     
    298319        . '</p>'
    299320          /* troublant. A refaire avec une visibility
    300          . "<li><b><a href='" 
     321         . "<li><b><a href='"
    301322        . generer_url_ecrire("mots_tous")
    302323        . "#editer_mot-$son_groupe"
  • _plugins_/mots_partout/2.0/inc/editer_mots.php

    r20816 r29246  
    1414include_spip('inc/actions');
    1515include_spip('inc/mots');
    16 include_spip('public/assembler'); //pour recuperer_fond
     16//include_spip('public/assembler'); //pour recuperer_fond
    1717
    1818// http://doc.spip.org/@inc_editer_mots_dist
     
    2727        ///////////////////////////
    2828
     29
     30        include_spip("mots_partout_choses");
    2931        global $choses_possibles;
    30         include(_DIR_PLUGIN_MOTSPARTOUT."/mots_partout_choses.php");
    3132
    3233    if ($objet == 'syndic') $table=$objet;
     
    4748                    else $url_base.=$value;
    4849                        $id_objet=$_id_objet;
    49                 }             
     50                }
    5051        }
    5152
     
    6061        }
    6162        //////////////////////
    62                
     63
    6364        //preparation de l'utilisation de recuperer_fond a ce niveau
    64         //definition du contexte
    65        
    66         $squel=recup_squelette_motspartout("listemot_".$table);
    67         $contexte_liste=array("table"=>$table,"id_objet"=>$id_objet,"visible"=>$visible,"simplifie"=>$simplifie);
    68        
    69         $res=recuperer_fond($squel,$contexte_liste);
    70        
     65        //definition du contexte
     66
     67        //$squel=recup_squelette_motspartout("listemot_".$table);
     68        //$contexte_liste=array("table"=>$table,"id_objet"=>$id_objet,"visible"=>$visible,"simplifie"=>$simplifie);
     69        //$res=recuperer_fond($squel,$contexte_liste);
     70
    7171
    7272        //
     
    9898
    9999        $form = afficher_mots_cles($flag, $objet, $id_objet, $table, $table_id, $url_base, $visible);
    100 
    101100        // Envoyer titre + div-id + formulaire + fin
    102101        $bouton = _T('titre_mots_cles').aide ("artmots");
    103102        if ($flag)
    104                 $bouton = bouton_block_depliable($bouton,'incertain',"lesmots"); // on n'est pas sur de l'etat du bloc, le bouton se mettra dans le bon etat au chargement
     103                $bouton = bouton_block_depliable($bouton,'incertain',"lesmots-".$table.$id_objet); // on n'est pas sur de l'etat du bloc, le bouton se mettra dans le bon etat au chargement
    105104        $res = debut_cadre_enfonce("mot-cle-24.gif", true, "", $bouton)
    106105          . $reponse
     
    111110}
    112111
     112
     113function chercher_inserer_mot($cherche_mot, $select_groupe, $objet, $id_objet, $nom, $table_id, $url_base)
     114{
     115        $modifier = false;
     116
     117        list($reponse, $nouveaux_mots) = recherche_mot_cle($cherche_mot, $select_groupe, $objet, $id_objet, $nom, $table_id, $url_base);
     118        foreach($nouveaux_mots as $nouv_mot) {
     119                if ($nouv_mot!='x') {
     120                        $modifier |= inserer_mot("spip_mots_$nom", $table_id, $id_objet, $nouv_mot);
     121                }
     122        }
     123        if ($modifier) {
     124                pipeline('post_edition',
     125                                array(
     126                                        'args' => array(
     127                                        'table' => $table,
     128                                        'id_objet' => $id_objet
     129                                        ),
     130                                'data' => null
     131                                )
     132                        );
     133        }
     134        return $reponse;
     135}
     136
     137
    113138// http://doc.spip.org/@inserer_mot
    114139function inserer_mot($table, $table_id, $id_objet, $id_mot)
     
    120145        return $r;
    121146}
    122 
    123147
    124148// http://doc.spip.org/@recherche_mot_cle
     
    154178                }
    155179                else if (count($resultat) == 1) {
    156                         $nouveaux_mots[] = $resultat[0];
    157                         $row = sql_fetsel("titre", "spip_mots", "id_mot=$resultat[0]");
     180                        $n = $resultat[0];
     181                        $nouveaux_mots[] = $n;
     182                        $t = sql_getfetsel("titre", "spip_mots", "id_mot=$n");
    158183                        $res .= "<b>"._T('info_mot_cle_ajoute')." $ou : </b><br />\n<ul>";
    159                         $res .= "\n<li><span class='verdana1 spip_small'><b><span class='spip_medium'>".typo($row['titre'])."</span></b></span></li>";
     184                        $res .= "\n<li><span class='verdana1 spip_small'><b><span class='spip_medium'>".typo($t)."</span></b></span></li>";
    160185                        $res .= "\n</ul>";
    161186                }
     
    179204function afficher_mots_cles($flag_editable, $objet, $id_objet, $table, $table_id, $url_base, $visible)
    180205{
    181         $requete = array('SELECT' => "mots.id_mot, mots.titre, mots.id_groupe", 'FROM' => "spip_mots AS mots, spip_mots_$table AS lien", 'WHERE' => "lien.$table_id=$id_objet AND mots.id_mot=lien.id_mot", 'GROUP BY' => "mots.type, mots.titre",  'ORDER BY' => "mots.type, mots.titre");
    182        
     206
     207        $requete = array('SELECT' => "mots.id_mot, mots.titre , mots.id_groupe", 'FROM' => "spip_mots AS mots, spip_mots_$table AS lien", 'WHERE' => "lien.$table_id=$id_objet AND mots.id_mot=lien.id_mot", 'GROUP BY' => "mots.type, mots.titre",  'ORDER BY' => "mots.type, mots.titre");
     208
    183209        $cle = http_img_pack('petite-cle.gif', "", "width='23' height='12'");
    184210        $ret = generer_url_retour($url_base, "$table_id=$id_objet#mots");
     
    188214        $presenter_liste = charger_fonction('presenter_liste', 'inc');
    189215
    190         // cette variable est passe par reference et recevra les valeurs du champ indique 
    191         $les_mots = 'id_mot'; 
     216        // cette variable est passe par reference et recevra les valeurs du champ indique
     217        $les_mots = 'id_mot';
    192218        $res =  $presenter_liste($requete, 'editer_mots_un', $les_mots, array($cle, $flag_editable, $id_objet, $objet, $ret, $table, $table_id, $url_base), false, $largeurs, $styles);
    193219
     
    212238        }
    213239
    214         $ancre = "valider_groupe_$id_groupe";
     240        $ancre = "valider_groupe_".$table."-".$id_groupe."-".$id_objet;
    215241        // forcer le recalcul du noeud car on est en Ajax
    216         $jscript1 = "findObj_forcer('$ancre').style.visibility='visible';";
     242        $jscript1 = "findObj_forcer('choisir-$ancre').style.visibility='visible';";
    217243
    218244        $corps = "\n<select name='nouv_mot' id='nouv_mot$id_groupe' onchange=\"$jscript1\""
     
    223249        $t =  _T('bouton_changer');
    224250
    225         return ajax_action_post('editer_mots', "$id_objet,$id_mot,$table,$table_id,$objet", $url_base, "$table_id=$id_objet",$corps, $t, " class='fondo spip_xx-small visible_au_chargement' id='$ancre'", "", "&id_objet=$id_objet&objet=$objet");
     251        return ajax_action_post('editer_mots', "$id_objet,$id_mot,$table,$table_id,$objet", $url_base, "$table_id=$id_objet",$corps, $t, " class='fondo spip_xx-small visible_au_chargement' id='choisir-$ancre'", "", "&id_objet=$id_objet&objet=$objet");
    226252}
    227253
     
    231257
    232258        //Yoann
    233         if(!$table) $table="articles"; //nous évite d'avoir des plantages
    234         //TODO a tester en enlevant ca 
    235         //FIN YOANN 
     259        if(!$table) $table="articles"; //nous evite d'avoir des plantages
     260        //TODO a tester en enlevant ca
     261        //FIN YOANN
    236262
    237263        $cond_mots_vus = !$les_mots ? '' :
     
    248274                        $flag_tous &= ($r[$droit] === 'oui');
    249275                }
    250                 $cond_id_groupes_vus = (" AND " . sql_in('id_groupe', $id_groupes_vus, 'NOT'));
     276                $cond_id_groupes_vus = (" OR (unseul = 'oui' AND " . sql_in('id_groupe', $id_groupes_vus, 'NOT')." ) ");
    251277        } else {
    252278                $cond_id_groupes_vus = '';
     
    256282        $nb_groupes = $nb_groupes['n'];
    257283
    258         $res = debut_block_depliable($visible OR ($nb_groupes > 0),"lesmots");
     284        $res = debut_block_depliable($visible OR ($nb_groupes > 0),"lesmots-".$table.$id_objet);
    259285        if ($flag_tous AND count($les_mots)>= 3) {
    260286                $res .= "<div style='text-align: right' class='arial1'>"
     
    263289        }
    264290
    265         $result = editer_mots_droits("id_groupe,unseul,obligatoire,titre, ".sql_multi ("titre", $spip_lang), "$table = 'oui' AND (unseul != 'oui'  OR (unseul = 'oui'$cond_id_groupes_vus)) ORDER BY multi");
     291        $result = editer_mots_droits("id_groupe,unseul,obligatoire,titre, ".sql_multi ("titre", $spip_lang), "$table = 'oui' AND (unseul != 'oui'  $cond_id_groupes_vus) ORDER BY multi");
    266292
    267293        // Afficher un menu par groupe de mots non vu
     
    271297
    272298        while ($row = sql_fetch($result)) {
    273                 if ($menu = menu_mots($row, $id_groupes_vus, $cond_mots_vus)) {
     299
     300          $ancre=$table."-".$id_groupe."-".$id_objet;
     301
     302                if ($menu = menu_mots($row, $id_groupes_vus, $cond_mots_vus,$ancre)) {
    274303                        $id_groupe = $row['id_groupe'];
    275304                        list($corps, $clic) = $menu;
    276305
    277                         $ajouter .= ajax_action_post('editer_mots',
    278                                 "$id_objet,,$table,$table_id,$objet",
    279                                 $url_base,
    280                                 "$table_id=$id_objet",
    281                                 $corps,
    282                                 $clic,
    283                                 " class='visible_au_chargement fondo spip_xx-small' id='valider_groupe_$id_groupe'", "",
    284                                 "&id_objet=$id_objet&objet=$objet&select_groupe=$id_groupe");
    285                 }
    286         }
    287         if ($ajouter) {
    288                 $message = "<span class='verdana1'><b>"._T('titre_ajouter_mot_cle')."</b></span>\n";
    289                 $res .= "<div style='float:$spip_lang_right; width:280px;position:relative;display:inline;'>"
    290                         . $ajouter
    291                         ."</div>\n" ;
    292         } else $message ='';
    293 
    294         // Creer un nouveau mot ?
    295         if (autoriser('modifier','groupemots')) {
    296                 $titre = _request('cherche_mot')
    297                         ? "&titre=".rawurlencode(_request('cherche_mot')) : '';
    298                 $titre = _T('icone_creer_mot_cle');
    299                 $titres = array(
    300                         'articles'=>'icone_creer_mot_cle',
    301                         'breves'=>'icone_creer_mot_cle_breve',
    302                         'rubriques'=>'icone_creer_mot_cle_rubrique',
    303                         'sites'=>'icone_creer_mot_cle_site'                     );
    304                 $bouton_ajouter = icone_horizontale_display(isset($titres[$table])?_T($titres[$table]):_T('icone_creer_mot_cle'), generer_url_ecrire("mots_edit","new=oui&ajouter_id_article=$id_objet&table=$table&table_id=$table_id&redirect=" . generer_url_retour($url_base, "$table_id=$id_objet")), "mot-cle-24.gif", "creer.gif", false)
    305                 . "\n";
    306         } else $bouton_ajouter = '';
    307 
    308         if ($message OR $bouton_ajouter) {
    309                 $res .= "$message<br />$bouton_ajouter";
    310         }
    311 
     306
     307                        $ajouter .= ajax_action_post('editer_mots',
     308                                "$id_objet,,$table,$table_id,$objet",
     309                                $url_base,
     310                                "$table_id=$id_objet",
     311                                $corps,
     312                                $clic,
     313                                " class='visible_au_chargement fondo spip_xx-small' id='valider_groupe_$ancre'", "",
     314                                "&id_objet=$id_objet&objet=$objet&select_groupe=$id_groupe");
     315                }
     316        }
     317
     318        //if( ($table=="articles" || $table=="rubriques")){
     319
     320          if ($ajouter) {
     321                $message = "<span class='verdana1'><b>"._T('titre_ajouter_mot_cle')."</b></span>\n";
     322                $res .= "<div>"
     323                        . $ajouter
     324                        ."</div>\n" ;
     325        } else $message ='';
     326
     327        // Creer un nouveau mot ?
     328        if (autoriser('modifier','groupemots')) {
     329                $titre = _request('cherche_mot')
     330                        ? "&titre=".rawurlencode(_request('cherche_mot')) : '';
     331                $titre = _T('icone_creer_mot_cle');
     332                $titres = array(
     333                        'articles'=>'icone_creer_mot_cle',
     334                        'breves'=>'icone_creer_mot_cle_breve',
     335                        'rubriques'=>'icone_creer_mot_cle_rubrique',
     336                        'sites'=>'icone_creer_mot_cle_site'                     );
     337                $bouton_ajouter = icone_horizontale_display(isset($titres[$table])?_T($titres[$table]):_T('icone_creer_mot_cle'), generer_url_ecrire("mots_edit","new=oui&ajouter_id_article=$id_objet&table=$table&table_id=$table_id&redirect=" . generer_url_retour($url_base, "$table_id=$id_objet")), "mot-cle-24.gif", "creer.gif", false)
     338                . "\n";
     339        } else $bouton_ajouter = '';
     340
     341        if ($message OR $bouton_ajouter) {
     342                $res .= "$message<br />$bouton_ajouter";
     343        }
     344        //}
    312345        return $res . fin_block();
    313346}
     
    315348
    316349// http://doc.spip.org/@menu_mots
    317 function menu_mots($row, $id_groupes_vus, $les_mots)
     350function menu_mots($row, $id_groupes_vus, $les_mots,$ancre="")
    318351{
    319352        $id_groupe = $row['id_groupe'];
     
    327360                if(!$n) return '';
    328361        }
    329         //FIN 
     362        //FIN
    330363
    331364        $titre = textebrut(typo($row['titre']));
     
    335368
    336369        $res = '';
    337         $ancre = "valider_groupe_$id_groupe";
    338 
    339370        // forcer le recalcul du noeud car on est en Ajax
    340371        $rand = rand(0,10000); # pour antifocus & ajax
     372        $ancre = "valider_groupe_".$ancre;
     373
     374
    341375        $jscript1 = "findObj_forcer('$ancre').style.visibility='visible';";
    342376        $jscript2 = "if(!antifocus_mots['$rand-$id_groupe']){this.value='';antifocus_mots['$rand-$id_groupe']=true;}";
     
    346380
    347381                if ($obligatoire)
    348                         $res .= "<input type='text' name='cherche_mot' id='cherche_mot$id_groupe' class='fondl' style='width: 180px; background-color:#E86519;' value=\"$titre_groupe\" size='20' $jscript />";
     382                        $res .= "<input type='text' name='cherche_mot' id='cherche_mot$id_groupe' class='fondl' style='background-color:#E86519;' value=\"$titre_groupe\" size='20' $jscript />";
    349383                else if ($unseul)
    350                         $res .= "<input type='text' name='cherche_mot' id='cherche_mot$id_groupe' class='fondl' style='width: 180px; background-color:#cccccc;' value=\"$titre_groupe\" size='20' $jscript />";
     384                        $res .= "<input type='text' name='cherche_mot' id='cherche_mot$id_groupe' class='fondl' style='background-color:#cccccc;' value=\"$titre_groupe\" size='20' $jscript />";
    351385                else
    352                         $res .= "<input type='text' name='cherche_mot' id='cherche_mot$id_groupe'  class='fondl' style='width: 180px; ' value=\"$titre_groupe\" size='20' $jscript />";
     386                        $res .= "<input type='text' name='cherche_mot' id='cherche_mot$id_groupe'  class='fondl' value=\"$titre_groupe\" size='20' $jscript />";
    353387
    354388                $res .= "<input type='hidden' name='select_groupe'  value='$id_groupe' />&nbsp;";
    355                 return array($res, _T('bouton_chercher')); 
     389                return array($res, _T('bouton_chercher'));
    356390        } else {
    357391
    358392                $jscript = "onchange=\"$jscript1\"";
    359          
     393
    360394                if ($obligatoire)
    361                         $res .= "<select name='nouv_mot' id='nouv_mot$id_groupe' size='1' style='width: 180px; background-color:#E86519;' class='fondl' $jscript>";
     395                        $res .= "<select name='nouv_mot' id='nouv_mot$id_groupe' size='1' style='background-color:#E86519;' class='fondl' $jscript>";
    362396                else if ($unseul)
    363                         $res .= "<select name='nouv_mot' id='nouv_mot$id_groupe' size='1' style='width: 180px; background-color:#cccccc;' class='fondl' $jscript>";
     397                        $res .= "<select name='nouv_mot' id='nouv_mot$id_groupe' size='1' style=' background-color:#cccccc;' class='fondl' $jscript>";
    364398                else
    365                         $res .= "<select name='nouv_mot' id='nouv_mot$id_groupe' size='1' style='width: 180px; ' class='fondl' $jscript>";
    366 
    367                 //on a le groupe de mots de base 
     399                        $res .= "<select name='nouv_mot' id='nouv_mot$id_groupe' size='1' class='fondl' $jscript>";
     400
     401                //on a le groupe de mots de base
    368402                $res .= "\n<option value='x' style='font-variant: small-caps;'>$titre</option>";
    369403
     
    380414        }
    381415        //ARBORESCENCE : on va rajouter dans le select les sous-groupes ainsi que leurs mots clefs
    382         $res.=select_sous_menu_groupe_mots($id_groupe,$table);  //gestion de la hiérarchie des mots clefs
     416        $res.=select_sous_menu_groupe_mots($id_groupe,$table);  //gestion de la hierarchie des mots clefs
    383417        $res .= "</select>&nbsp;";
    384418        return array($res, _T('bouton_choisir'));
     
    389423function select_sous_menu_groupe_mots($id_groupe,$table='articles',$niveau=0){
    390424//fonction recursive qui permet de recuperer larborescence des groupes de mots et les mots
    391         global $spip_lang,$connect_statut,$cond_id_groupes_vus;
     425return;
     426        global $spip_lang,$connect_statut,$cond_id_groupes_vus;
    392427        //$query="SELECT id_groupe,titre, ".creer_objet_multi ("titre", $spip_lang)." FROM spip_groupes_mots WHERE `".$table."` = 'oui' AND ".substr($connect_statut,1)." = 'oui' ".($cond_id_groupes_vus?" AND (unseul != 'oui'   OR (unseul = 'oui' AND id_groupe NOT IN ($cond_id_groupes_vus)) )":"")." AND id_parent=".$id_groupe." ORDER BY multi";
    393428
    394         //boucle sur les sous groupes
     429     //boucle sur les sous groupes
    395430                //$result_sous_groupes = spip_query($query);
    396431
    397                 $result_sous_groupes = editer_mots_droits("id_groupe,titre, ".sql_multi ("titre", $spip_lang), "$table = 'oui' AND (unseul != 'oui'  OR (unseul = 'oui' AND id_groupe NOT IN ($cond_id_groupes_vus))) ORDER BY multi");
    398                
     432
     433
     434                //hum hum
     435                if(!$table) $table="articles";
     436
     437
     438if($table!="articles" && $table!="rubriques") $cond_table=$table." = 'oui' AND ";
     439else  $cond_table="tables_liees REGEXP '(^|,)$table($|,)' AND ";
     440
     441if($cond_id_groupes_vus){
     442                $result_sous_groupes = editer_mots_droits("id_groupe,titre, ".sql_multi ("titre", $spip_lang), " (unseul != 'oui'  OR (unseul = 'oui' AND id_groupe NOT IN ($cond_id_groupes_vus))) ORDER BY multi");
     443}else {
     444  $result_sous_groupes = editer_mots_droits("id_groupe,titre, ".sql_multi ("titre", $spip_lang), "$table = 'oui' AND (unseul != 'oui'  OR (unseul = 'oui')) ORDER BY multi");
     445}
     446
    399447                 while ($row = sql_fetch($result_sous_groupes)) {
    400448                     $res .= "\n<option value='" .$row['id_groupe'] .
     
    406454                                $result = sql_select("id_mot, type, titre", "spip_mots", "id_groupe =$id_groupe " . ($les_mots ? "AND id_mot NOT IN ($les_mots) " : '') .  "", "", "titre");
    407455
    408                                 while($row2 = spip_fetch($result)) {
     456                                while($row2 = sql_fetch($result)) {
    409457                             $res .= "\n<option value='" .$row2['id_mot'] .
    410458                                "'>".str_repeat("&nbsp;&nbsp;",$niveau)."&nbsp;-&gt;" .
     
    418466}
    419467
    420 function recup_squelette_motspartout($squel){
    421        
     468/*function recup_squelette_motspartout($squel){
     469
    422470        if($fond=find_in_path($squel)) return $fond;
    423         else {//on va aller chercher l'interface générale
     471        else {//on va aller chercher l'interface g�n�rale
    424472                $squel="fond/listemot_general";
    425473                return find_in_path($squel);
    426474        }
    427        
    428 }
     475
     476}*/
    429477
    430478// Fonction verifiant que l'auteur a le droit de modifier un groupe de mots.
     
    436484function editer_mots_droits($select, $cond)
    437485{
     486       
    438487        $droit = substr($GLOBALS['visiteur_session']['statut'],1);
    439488        return sql_select("$select", "spip_groupes_mots", "$droit = 'oui' AND $cond");
    440489}
     490
     491
     492function creer_mot($table, $id_objet, $table_id, $url_base, $mot='', $id_groupe=0)
     493{
     494        static $titres = array(
     495                        'articles'=>'icone_creer_mot_cle',
     496                        'breves'=>'icone_creer_mot_cle_breve',
     497                        'rubriques'=>'icone_creer_mot_cle_rubrique',
     498                        'sites'=>'icone_creer_mot_cle_site'
     499                        );
     500
     501        if (!($id_groupe ?
     502                autoriser('modifier','groupemots', $id_groupe) :
     503                autoriser('modifier','groupemots'))
     504            )
     505                return '';
     506
     507        $legende = isset($titres[$table])
     508          ? _T($titres[$table])
     509          : _T('icone_creer_mot_cle');
     510
     511        $args = "new=oui&ajouter_id_article=$id_objet&table=$table&table_id=$table_id"
     512        . (!$mot ? '' : ("&titre=".rawurlencode($mot)))
     513        . (!$id_groupe ? '' : ("&id_groupe=".intval($id_groupe)))
     514        . "&redirect=" . generer_url_retour($url_base, "$table_id=$id_objet");
     515
     516        return icone_horizontale_display($legende, generer_url_ecrire("mots_edit", $args), "mot-cle-24.gif", "creer.gif", false);
     517}
     518
     519
     520// http://doc.spip.org/@editer_mots_un
     521function editer_mots_un($row, $own)
     522{
     523        $puce_statut = charger_fonction('puce_statut', 'inc');
     524
     525        list ($cle, $flag_editable, $id_objet, $objet, $ret, $table, $table_id, $url_base) = $own;
     526
     527        $id_mot = $row['id_mot'];
     528        $titre_mot = $row['titre'];
     529        $id_groupe = $row['id_groupe'];
     530
     531        $url = generer_url_ecrire('mots_edit', "id_mot=$id_mot&redirect=$ret");
     532        // On recupere le typo_mot ici, et non dans le mot-cle lui-meme;
     533        // sinon bug avec arabe
     534
     535       
     536
     537        if ($table!="documents"){ //interface simplifiée documents
     538                $groupe = typo(sql_getfetsel("titre", "spip_groupes_mots", "id_groupe = $id_groupe"));
     539                if(autoriser('modifier', 'groupemots', $id_groupe) ){
     540                        $groupe = "<a href='" . generer_url_ecrire("mots_type","id_groupe=$id_groupe") . "'>$groupe</a>";
     541                }
     542        }
     543
     544        $retire = $unseul = '';
     545
     546        if ($flag_editable) {
     547                $r = editer_mots_droits('unseul', "id_groupe = $id_groupe");
     548                if ($r) {
     549                        $unseul = ($r[0]['unseul'] == 'oui');
     550                        $r="";
     551                        if($table!="documents"){ //interface simplifiée poru els documents
     552                                $r =  _T('info_retirer_mot')
     553                                . "&nbsp;";
     554                        }
     555                       
     556                        $r.=http_img_pack('croix-rouge.gif', "X", " class='puce' style='vertical-align: bottom;'");
     557
     558                        $retire = ajax_action_auteur('editer_mots', "$id_objet,$id_mot,$table,$table_id,$objet", $url_base, "$table_id=$id_objet", array($r,''),"&id_objet=$id_objet&objet=$objet");
     559                }
     560        }
     561        // Changer
     562        if ($unseul) {
     563                $mot = formulaire_mot_remplace($id_groupe, $id_mot, $url_base, $table, $table_id, $objet, $id_objet);
     564        } else {
     565                $mot = "<a href='$url'>".typo($titre_mot)."</a>";
     566        }
     567
     568        $cle = $puce_statut($id_mot, 'publie', $id_groupe, 'mot');
     569
     570        return array("<a href='$url'>$cle</a>", $mot, $groupe, $retire);
     571}
     572
    441573?>
  • _plugins_/mots_partout/2.0/inc/legender.php

    r20388 r29246  
    44 *  SPIP, Systeme de publication pour l'internet                           *
    55 *                                                                         *
    6  *  Copyright (c) 2001-2008                                                *
     6 *  Copyright (c) 2001-2009                                                *
    77 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
    88 *                                                                         *
     
    2525function inc_legender_dist($id_document, $document, $script, $type, $id, $ancre, $deplier=false) {
    2626
    27         // + securite (avec le script exec=legender ca vient de dehors)
    28         if (!preg_match('/^\w+$/',$type, $r)) {
    29           return;
    30         }
    31 
    3227        // premier appel
    3328        if ($document) {
    3429                $flag = $deplier;
    35         } else
     30        } elseif (!$id_document) {
     31                return '';
     32        } else {
    3633        // retour d'Ajax
    37         if ($id_document) {
    38                 $document = spip_fetch_array(spip_query("SELECT * FROM spip_documents WHERE id_document = " . intval($id_document)));
     34
     35                $document = sql_fetsel("*", "spip_documents", "id_document = " . intval($id_document));
     36
     37                $document['vu'] = sql_getfetsel("vu", 'spip_documents_liens', "id_objet=" . intval($id) ." AND objet=" . sql_quote($type) . " AND id_document=".intval($id_document));
     38
     39                if (!$document['vu']) $document['vu'] = 'non';
    3940                $flag = 'ajax';
    4041        }
    41         else
    42                 return;
    43 
    44         $descriptif = $document['descriptif'];
    45         $titre = $document['titre'];
    46         $date = $document['date'];
    4742
    4843        if ($document['mode'] == 'image') {
     
    5045                $label = _T('entree_titre_image');
    5146                $taille = $vignette = '';
    52          
     47
    5348        } else {
    5449                $supp = 'doc-24.gif';
    5550                $label = _T('entree_titre_document');
    5651                $taille = formulaire_taille($document);
    57                 $vignette = vignette_formulaire_legender($id_document, $document, $script, $type, $id, $ancre);
    58         }
    59 
     52                $vignette = "<div style='margin-bottom: 10px;'>".vignette_formulaire_legender($id_document, $document, $script, $type, $id, $ancre)."</div>";
     53        }
     54
     55        $s = ($ancre =='documents' ? '': '-');
     56
     57        $corps = legender_corps($ancre, $flag, $id, $id_document, $script, $type, $document, $label, $taille) .
     58                $vignette .
     59                "\n\n" .
     60                legender_suppression($id, $id_document, $ancre, $s, $script, $supp, $type);
     61
     62        // ne pas afficher le bouton de changement dans le portfolio ?
     63        // mais tout cela n'est pas tr�s extensible et declenchera d'autres bugs plus tard...
     64        if (preg_match(",_edit,",$script))
     65                $corps .= legender_image_doc($document, $id_document, $id, $type, $s, $script, $ancre);
     66
     67        $corps = block_parfois_visible("legender-aff-$id_document", legender_entete($document), $corps, "text-align:center;", $flag);
     68        //seul ajout de mots partout
     69        $editer_mot = charger_fonction('editer_mots', 'inc');
     70        $corps.= $editer_mot('document', $id_document, "", "", true,'oui');
     71        //
     72
     73        return ajax_action_greffe("legender", $id_document, $corps);
     74}
     75
     76
     77function legender_entete($document)
     78{
     79        $titre = $document['titre'];
    6080        $entete = basename($document['fichier']);
    6181        if (($n=strlen($entete)) > 20)
    62                 $entete = substr($entete, 0, 10)."...".substr($entete, $n-10, $n);
    63         if (strlen($document['titre']))
     82                $entete = substr($entete, 0, 7)."...".substr($entete, $n-7, $n);
     83        if (strlen($titre))
    6484                $entete = "<strong>". lignes_longues(typo($titre),25) . "</strong>";
    65 
    66         $contenu = '';
    67         if ($descriptif)
    68           $contenu .=  "<p>".PtoBR(lignes_longues(propre($descriptif),25)) . "</p>\n";
    69         if ($document['largeur'] OR $document['hauteur'])
    70           $contenu .= _T('info_largeur_vignette',
    71                      array('largeur_vignette' => $document['largeur'],
    72                            'hauteur_vignette' => $document['hauteur']));
    73         else
    74           $contenu .= taille_en_octets($document['taille']);
    75 
    76         if ($date) $contenu .= "<br />\n" . affdate($date);
    77 
    78         include_spip('inc/editer');
    79         $corps = (!$contenu ? '' :
    80            "<div class='verdana1' style='text-align: center;'>$contenu</div>") .
    81           "<label for='titre_document$id_document'><b>$label</b></label><br />\n" .
    82 
    83           "<input type='text' name='titre_document' id='titre_document$id_document' class='formo' value=\"".entites_html($titre).
    84           "\" size='40' onfocus=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\" /><br />\n" .
    85           date_formulaire_legender($date, $id_document) .
    86           "<br />\n<label for='descriptif_document$id_document'><b>".
    87           _T('info_description_2').
    88           "</b></label><br />\n" .
    89           "<textarea name='descriptif_document' id='descriptif_document$id_document' rows='4' class='formo' cols='*' onfocus=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\">" .
    90             entites_html($descriptif) .
    91           "</textarea>\n" .
    92           $taille
    93          
    94           .controles_md5($document);
    95 
    96         $att_bouton = " class='fondo spip_xx-small'";
    97         $att_span = " id='valider_doc$id_document' "
    98         . ($flag == 'ajax' ? '' : "class='display_au_chargement'")
    99         .  " style='text-align:"
    100         .  $GLOBALS['spip_lang_right']
    101         . ($flag == 'ajax' ? ';display:block' : "")
    102         . "'";
    103 
    104         if (test_espace_prive())
    105                 $corps = ajax_action_post("legender", $id_document, $script, "show_docs=$id_document&id_$type=$id#legender-$id_document", $corps, _T('bouton_enregistrer'), $att_bouton, $att_span, "&id_document=$id_document&id=$id&type=$type&ancre=$ancre")
    106                   . "<br class='nettoyeur' />";
    107         else {
    108                 $corps = "<div>"
    109                        . $corps
    110                        . "<span"
    111                        . $att_span
    112                        . "><input type='submit' class='fondo' value='"
    113                        . _T('bouton_enregistrer')
    114                        ."' /></span><br class='nettoyeur' /></div>";
    115                 $redirect = parametre_url($script,'show_docs',$id_document,'&');
    116                 $redirect = parametre_url($redirect,"id_$type",$id,'&');
    117                 $redirect = parametre_url($redirect,"id_$type",$id,'&');
    118                 $redirect = ancre_url($redirect,"legender-$id_document");
    119                 $corps = generer_action_auteur("legender", $id_document, $redirect, $corps, "\nmethod='post'");
    120         }
    121        
    122         $corps .=  $vignette . "\n\n";
    123 
     85        return sinon($entete,_T('info_sans_titre'));
     86}
     87
     88function legender_suppression($id, $id_document, $ancre, $s, $script, $supp, $type)
     89{
     90        // le cas $id<0 correspond a un doc charge dans un article pas encore cree,
     91        // et ca buggue si on propose de supprimer => on ne propose pas
     92        // Le cas id = 0 correspond au cas d'une mediatheque : l'action est alors
     93        // sans doute a revoir car le document serait alors peut-etre orphelin
     94
     95        if ($id <= 0) return '';
     96
     97        // la fonction 'supprimer_document' ne fait que de-associer si un document est utilise par ailleurs
    12498        $texte = _T('icone_supprimer_document');
    125         $s = ($ancre =='documents' ? '': '-');
    126 
    127         if (preg_match('/_edit$/', $script)){
    128                 if ($id==0)
    129                         $action = redirige_action_auteur('supprimer', "document-$id_document-$script-$id", $script, "id_$type=$id#$ancre");
    130                 else
    131                         $action = redirige_action_auteur('documenter', "$s$id/$type/$id_document", $script, "id_$type=$id&type=$type&s=$s#$ancre");
    132         }
    133         else {
     99
     100        if (preg_match('/_edit$/', $script)) {
     101                $action = ajax_action_auteur('documenter', "$s$id/$type/$id_document", $script, "id_$type=$id&type=$type&s=$s#$ancre", array($texte), '', 'function() {jQuery(this).remove()}');
     102        } else {
    134103                if (test_espace_prive())
    135104                        $action = ajax_action_auteur('documenter', "$s$id/$type/$id_document", $script, "id_$type=$id&type=$type&s=$s#$ancre", array($texte));
     
    141110        }
    142111
    143         // le cas $id<0 correspond a un doc charge dans un article pas encore cree,
    144         // et ca buggue si on propose de supprimer => on ne propose pas
    145         if (!($id < 0) && ($document['vu']=='non' OR is_null($document['vu'])))
    146                 $corps .= icone_horizontale($texte, $action, $supp, "supprimer.gif", false);
    147 
    148         $corps = block_parfois_visible("legender-aff-$id_document", sinon($entete,_T('info_sans_titre')), $corps, "text-align:center;", $flag);
    149         return ajax_action_greffe("legender", $id_document, $corps);
     112        return icone_horizontale($texte, $action, $supp, "supprimer.gif", false);
     113}
     114
     115
     116function legender_corps($ancre, $flag, $id, $id_document, $script, $type, $document, $label, $taille)
     117{
     118        include_spip('inc/editer');
     119
     120        $contenu = '';
     121        $descriptif = $document['descriptif'];
     122        if ($descriptif)
     123          $contenu .=  "<p>".PtoBR(lignes_longues(propre($descriptif),25)) . "</p>\n";
     124        if ($document['largeur'] OR $document['hauteur'])
     125          $contenu .= _T('info_largeur_vignette',
     126                     array('largeur_vignette' => $document['largeur'],
     127                           'hauteur_vignette' => $document['hauteur']))
     128                         . ' &mdash; ';
     129
     130          $contenu .= taille_en_octets($document['taille']);
     131
     132        $date = $document['date'];
     133        if ($date AND ($GLOBALS['meta']["documents_date"] == 'oui'))
     134                $contenu .= "<br />\n" . affdate($date);
     135
     136        $corps = (!$contenu ? '' :
     137                  "<div class='verdana1' style='text-align: center; margin-bottom: 10px;'>$contenu</div>") .
     138          "<div class='formulaire_spip formulaire_spip_compact'><ul><li class='editer_titre'><label for='titre_document$id_document'>$label</label>\n" .
     139
     140          "<input type='text' name='titre_document' id='titre_document$id_document' class='text' value=\"".entites_html($document['titre']).
     141          "\" size='40' onfocus=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\" /></li>\n"
     142          . (($GLOBALS['meta']["documents_date"] == 'oui')
     143                ? "<li class='editer_date'>".date_formulaire_legender($date, $id_document)."</li>"
     144                :'' )
     145          . "<li class='editer_descriptif'><label for='descriptif_document$id_document'>".
     146          _T('info_description_2').
     147          "</label>\n" .
     148          "<textarea name='descriptif_document' id='descriptif_document$id_document' rows='4' class='textarea' cols='*' onfocus=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\">" .
     149            entites_html($descriptif) .
     150          "</textarea></li></ul></div>\n" .
     151          $taille
     152
     153          .controles_md5($document);
     154
     155
     156
     157
     158
     159
     160        $att_bouton = " class='fondo spip_xx-small'";
     161
     162        $att_span = " id='valider_doc$id_document' "
     163        . ($flag == 'ajax' ? '' : "class='display_au_chargement'")
     164        .  " style='text-align:"
     165        .  $GLOBALS['spip_lang_right']
     166        . ($flag == 'ajax' ? ';display:block' : "")
     167        . "'";
     168
     169        if (test_espace_prive())
     170                return ajax_action_post("legender", $id_document, $script, "show_docs=$id_document&id_$type=$id#legender-$id_document", $corps, _T('bouton_enregistrer'), $att_bouton, $att_span, "&id_document=$id_document&id=$id&type=$type&ancre=$ancre")
     171                  . "<br class='nettoyeur' />";
     172        else {
     173                $corps = "<div class='boutons'>"
     174                       . $corps
     175                       . "<span"
     176                       . $att_span
     177                       . "><input type='submit' class='fondo' value='"
     178                       . _T('bouton_enregistrer')
     179                       ."' /></span></div>";
     180                $redirect = parametre_url($script,'show_docs',$id_document,'&');
     181                $redirect = parametre_url($redirect,"id_$type",$id,'&');
     182                $redirect = parametre_url($redirect,"id_$type",$id,'&');
     183                $redirect = ancre_url($redirect,"legender-$id_document");
     184                return generer_action_auteur("legender", $id_document, $redirect, $corps, "\nmethod='post'");
     185        }
     186}
     187
     188//
     189// Changement de mode image/document
     190//
     191function legender_image_doc($document, $id_document, $id, $type, $s, $script, $ancre)
     192{
     193        define('_INTERFACE_DOCUMENTS', true);
     194        define('_BOUTON_MODE_IMAGE', true);
     195        if (!_INTERFACE_DOCUMENTS) return '';
     196        if (!_BOUTON_MODE_IMAGE
     197        OR !in_array($document['extension'], array('jpg', 'gif', 'png')))
     198                return '';
     199        if ($document['mode'] == 'image') {
     200                                $texte = _T('upload_info_mode_document');
     201                                $mode = 'document';
     202                                $logo = 'doc-24.gif';
     203        } else {
     204                                $texte = _T('upload_info_mode_image');
     205                                $mode = 'image';
     206                                $logo = 'image-24.gif';
     207        }
     208
     209        $action = redirige_action_auteur('changer_mode_document', "$id_document/$mode", $script,
     210                        (($id>0)
     211                                ? "id_$type=$id"
     212                                : "new=oui"
     213                        ) . "&type=$type&s=$s#$ancre");
     214
     215        return icone_horizontale($texte, $action, $logo, '', false," onclick=\"jQuery('#document$id_document').parent().animeajax().load(this.href+'&afficher_case=$id-$type-$script&var_noajax=1');return false;\"");
    150216}
    151217
     
    157223        $texte = _T('info_supprimer_vignette');
    158224
     225        $s = ($ancre =='documents' ? '': '-');
    159226        if (preg_match('/_edit$/', $script)) {
    160227                $iframe_redirect = generer_url_ecrire("documents_colonne","id=$id&type=$type",true);
    161                 $action = redirige_action_auteur('supprimer', "document-$id_vignette-$script-$id", $script, "id_$type=$id&show_docs=$id_document#$ancre");
     228                $action = redirige_action_auteur('documenter', "$s$id/$type/$id_vignette", $script, "id_$type=$id&show_docs=$id_document#$ancre");
    162229        } else {
    163230                $iframe_redirect = generer_url_ecrire("documenter","id_$type=$id&type=$type",true);
    164                 $s = ($ancre =='documents' ? '': '-');
    165                 $f = $id_vignette ? "/$id_document" : '';
     231                $f = (!$s AND $id_vignette) ? "/$id_document" : '';
    166232                $action = ajax_action_auteur('documenter', "$s$id/$type/$id_vignette$f", $script, "id_$type=$id&type=$type&s=$s&show_docs=$id_document#$ancre", array($texte),'',"function(r,noeud) {noeud.innerHTML = r; \$('form.form_upload',noeud).async_upload(async_upload_portfolio_documents);}");
    167233        }
     
    172238        if ($id<0) $supprimer = ''; // cf. ci-dessus, article pas encore cree
    173239
    174         //seul ajout de mots partout
    175                 $editer_mot = charger_fonction('editer_mots', 'inc');
    176                 $s = $editer_mot('document', $id_document, "", "", true,'oui');
    177         //
    178        
    179 
    180         return $s."<hr style='margin-left: -5px; margin-right: -5px; height: 1px; border: 0px; color: #eeeeee; background-color: white;' />"
     240
     241        return "<hr style='margin-left: -5px; margin-right: -5px; height: 1px; border: 0px; color: #eeeeee; background-color: white;' />"
    181242        . (!$id_vignette
    182243                ? $joindre(array(
     
    189250                        'ancre' => $ancre,
    190251                        'id_document' => $id_document,
     252                        'titre' => '',
    191253                        'iframe_script' => $iframe_redirect
    192254                        ))
     
    224286                OR $type_inclus == "embed"
    225287        )) {
    226                 return "\n<br /><label for='largeur_document$id_document'><b>"._T('entree_dimensions')."</b></label><br />\n" .
     288                return "\n<br /><label for='largeur_document$id_document'>"._T('entree_dimensions')."</label><br />\n" .
    227289                  "<input type='text' name='largeur_document' id='largeur_document$id_document' class='fondl spip_xx-small' value=\"".$document['largeur']."\" size='5' onfocus=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\" />" .
    228290                  " &times; <input type='text' name='hauteur_document' id='hauteur_document$id_document' class='fondl spip_xx-small' value=\"".$document['hauteur']."\" size='5' onfocus=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\" /> "._T('info_pixels');
     
    240302                $minute = $regs[5];
    241303        }
    242         return  "<b>"._T('info_mise_en_ligne')."</b><br />\n" .
     304
     305        return  "<div>"._T('info_mise_en_ligne')."<br />\n" .
    243306                afficher_jour($jour, "name='jour_doc' id='jour_doc$id_document' size='1' class='fondl spip_xx-small'\n\tonchange=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\"") .
    244307                afficher_mois($mois, "name='mois_doc' id='mois_doc$id_document' size='1' class='fondl spip_xx-small'\n\tonchange=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\"") .
    245308                afficher_annee($annee, "name='annee_doc' id='annee_doc$id_document' size='1' class='fondl spip_xx-small'\n\tonchange=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block')\"") .
    246                 afficher_heure($heure, "name='heure_doc' size='1' class='fondl spip_xx-small'\n\tonchange=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block')\"") .
    247                 afficher_minute($minute, "name='minute_doc' size='1' class='fondl spip_xx-small'\n\tonchange=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block')\"") .
    248                 "<br />\n";
     309                "<br />".
     310                afficher_heure($heure, "name='heure_doc' size='1' class='fondl spip_xx-small'\n\tonchange=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block')\"") .
     311                        " : ".
     312                afficher_minute($minute, "name='minute_doc' size='1' class='fondl spip_xx-small'\n\tonchange=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block')\"") .
     313                "<br /><br /></div>\n";
     314
    249315}
    250316
  • _plugins_/mots_partout/2.0/lang/motspartout_fr.php

    r23246 r29246  
    2727                                                                           'info_rubriques' => 'Rubriques',
    2828                                                                           'info_syndic' => 'Syndic',
     29                                                                           'info_syndic_articles' => 'Articles syndiqu&eacute;s',
    2930                                                                           'info_auteurs' => 'Auteurs',
    3031                                                                           'info_documents' => 'Documents',
     
    3839                                                                           'item_mots_cles_association_breves' => 'aux breves',
    3940                                                                           'item_mots_cles_association_syndic' => 'aux sites syndiqu&eacute;s',
     41                                                                           'item_mots_cles_association_syndic_articles' => 'aux articles de sites syndiqu&eacute;s',
     42                                                                           'item_mots_cles_association_evenements' => 'aux &eacute;v&eacute;nements',
    4043
    4144                                                                           'info_auteurs_lies_mot' => 'Les auteurs li&eacute;s &agrave; ce mot clef',
     
    4447                                                                          'choix_mots_clefs'=>'Associer les mots clefs :',
    4548                                                                          'liste_mots_clefs'=>'Mots clefs d&eacute;j&agrave; associ&eacute;s',
    46                                                                           'supprimer_mot_clef'=>'cocher et valider pour supprimer le mot clef'
    47                                                                                
     49                                                                          'supprimer_mot_clef'=>'cocher et valider pour supprimer le mot clef',
     50
     51                                                                          'libelle_breves'=>"Breves",
     52                                                                          'libelle_documents'=>"Documents",
     53                                                                          'libelle_messages'=>"Messages",
     54                                                                          'libelle_evenements'=>"Evenements",
     55                                                                          'libelle_auteurs'=>"Auteurs",
     56                                                                          'libelle_groupes_mots'=>"Groupes de mots"
     57
    4858                                                                           );
    4959
  • _plugins_/mots_partout/2.0/mots_partout_choses.php

    r26165 r29246  
    1212 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
    1313 *    This program is free software; you can redistribute it and/or modify *
    14  *    it under the terms of the GNU General Public License as published by * 
     14 *    it under the terms of the GNU General Public License as published by *
    1515 *    the Free Software Foundation.                                        *
    1616\***************************************************************************/
     
    2727                  $to_return[] = intval($id);
    2828                }
    29           } 
     29          }
    3030          return $to_return;
    3131        }
     
    3333
    3434// transfert la variable POST d'un tableau (19 => 'avec', 20=>'voir') en 4 tableaux avec=(19) voir=(20)
    35 function splitArrayIds($array) {
     35if(!function_exists("splitArrayIds")){
     36  function splitArrayIds($array) {
    3637  $voir = Array();
    3738  $cacher = Array();
     
    4344      if($id_mot > 0) {
    4445        switch(addslashes($action)) {
    45                   case 'avec': 
     46                  case 'avec':
    4647                        $ajouter[] = $id_mot;
    4748                  case 'voir':
     
    5354                  case 'cacher':
    5455                        $cacher[] = $id_mot;
    55             break; 
     56            break;
    5657
    5758        }
     
    6162  return array($voir, $cacher, $ajouter, $enlever);
    6263}
    63 
     64}
    6465
    6566global $tables_principales;
     
    102103                                                                                                                           )
    103104                                                                          );
    104                                                                          
     105
    105106$choses_possibles['breves'] = array(
    106107                                                                          'titre_chose' => 'breves',
     
    199200                                                                                                                           )
    200201                                                                          );
    201 */               
     202*/
    202203
    203204$choses_possibles['documents'] = array(
  • _plugins_/mots_partout/2.0/motspartout_fonctions.php

    r23313 r29246  
    1111 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
    1212 *    This program is free software; you can redistribute it and/or modify *
    13  *    it under the terms of the GNU General Public License as published by * 
     13 *    it under the terms of the GNU General Public License as published by *
    1414 *    the Free Software Foundation.                                        *
    1515\***************************************************************************/
     
    1717if (!defined("_ECRIRE_INC_VERSION")) return;
    1818
    19 include_spip('public/criteres_motspartout'); //définition du critere branchemot
     19include_spip('public/criteres_motspartout'); //dfinition du critere branchemot
    2020include_spip('inc/grouper_mots_motspartout'); // pour faire fonctionner le critere branchemot
    2121//(on passe pas par composer car on n'y faisait que que cet include
     
    2424
    2525
    26 $tables_installees = unserialize(lire_meta('MotsPartout:tables_installees'));   
    27 if (!$tables_installees){
    28   $tables_installees=array("articles"=>true,"rubriques"=>true,"breves"=>true,"syndic"=>true);
    29 //  ecrire_meta('MotsPartout:tables_installees',serialize($tables_installees));
    30 //  ecrire_metas();
    31  }
    32        
     26$tables_installees = unserialize(lire_meta('MotsPartout:tables_installees'));
     27
     28
    3329//foreach($tables_installees as $chose => $m) { $choses[]= $chose; }
    34 $choses=array_keys($tables_installees); //YOANN
     30$choses=array_values($tables_installees); //YOANN
    3531global $choses_possibles;
    3632//include(_DIR_PLUGIN_MOTSPARTOUT."/mots_partout_choses.php");
    37    
     33
    3834foreach ($choses as $chose){
    3935  $id_chose = $choses_possibles[$chose]['id_chose'];
    4036  $table_principale = $choses_possibles[$chose]['table_principale'];
    41        
     37
    4238
    4339  $spip_mots_choses[$chose] = array(
     
    5450                                                                                                   'key' => &$spip_mots_choses_key[$chose]);
    5551
    56         if (!in_array('mots_'.$chose,$tables_jointures['spip_'.$chose]))
     52//include_spip("public/interfaces"); //évite des warning dans l'espace public
     53if(isset($tables_jointures['spip_'.$chose])){ //si on a pas défini le type evenement ( défini avec le plugin agenda )
     54  if (!in_array('mots_'.$chose,$tables_jointures['spip_'.$chose]))
    5755                $tables_jointures['spip_'.$chose][]= 'mots_'.$chose;
    5856        if (!in_array('mots',$tables_jointures['spip_'.$chose]))
     
    6058        if (!in_array('mots_'.$chose,$tables_jointures['spip_mots']))
    6159                $tables_jointures['spip_mots'][]= 'mots_'.$chose;
     60}
    6261
    6362}
  • _plugins_/mots_partout/2.0/plugin.xml

    r25251 r29246  
    11<?xml version="1.0" encoding="ISO-8859-1"?>
    22<plugin>
    3         <nom> <!-- Nom du plugin -->
    4         Mots Partout
    5         </nom>
    6         <auteur>        <!-- Auteur du plugin -->
    7         Pierre Andrews (Mortimer)
    8         </auteur>
    9         <auteur>
    10         Stephane Laurent (Bill)
    11         </auteur>
    12         <auteur>
    13         Yoann Nogues (Zerax)
    14         </auteur>
     3        <nom>Mots Partout Spip2</nom>
     4        <auteur>Pierre Andrews (Mortimer)</auteur>
     5        <auteur>Stephane Laurent (Bill)</auteur>
     6        <auteur>Yoann Nogues (Zerax)</auteur>
    157        <lien>http://www.spip-contrib.net/Des-mots-clefs-partout</lien>
    16         <version>
    17           0.4.1
    18         </version>
    19         <etat>
    20           test
    21         </etat>
     8        <version>0.5</version>
     9        <etat>test</etat>
     10        <necessite id="SPIP" version="[2.0;]" />
    2211        <description>
    2312          Gestion des mots clefs sur tous les &eacute;l&eacute;ments SPIP.
    24           Cette version intégre les mots clefs arborescents.
     13          Cette version int&eacute;gre les mots clefs arborescents.
    2514
    2615          La documentation [c'est ici->http://www.spip-contrib.net/Plugin-mots-partout-dev-Groupe-de]
    2716        </description>
    28         <!-- classe d'implementation : espace de nommage qui prefixera les appels de fonction
    29         sur le mode Rien::
    30         ainsi les fonctions hors espace de nommage ne peuvent etre appelees
    31         ce parametre est obligatoire et doit etre non vide
    32         -->
    33         <prefix>
    34           MotsPartout
    35         </prefix>
    36         <options>
    37           mots_partout_choses.php
    38         </options>
    39         <fonctions>
    40           motspartout_fonctions.php
    41         </fonctions>
    42         <install>
    43          base/motspartout_install.php
    44         </install>
    45         <!-- Definitions des fonctions qui s'inserent dans les pipelines -->
    46         <pipeline>
    47                 <nom>ajouter_boutons</nom>
    48                 <action>ajouterBoutons</action>
    49                 <inclure>mots_partout.php</inclure>
    50         </pipeline>
     17        <prefix>MotsPartout</prefix>
     18        <options>mots_partout_choses.php</options>
     19        <fonctions>motspartout_fonctions.php</fonctions>
     20
     21        <install>base/motspartout_install.php</install>
     22
     23        <bouton id="mots_partout" parent="naviguer">
     24                <icone>tag.png</icone>
     25                <titre>motspartout:mots_partout</titre>
     26        </bouton>
     27
    5128        <pipeline>
    5229                <nom>affiche_milieu</nom>
     
    5431                <inclure>mots_partout.php</inclure>
    5532        </pipeline>
    56         <!-- Le parametre action est facultatif : en son absence la methode de la classe portant le nom du pipeline est appelee. Le parametre inclure est facultatif.   -->
    57 
    58         <necessite id="SPIP" version="[1.9.0;]" />
     33        <pipeline>
     34                <nom>libelle_association_mots</nom>
     35                <inclure>inc/motspartout_pipeline.php</inclure>
     36        </pipeline>
     37        <pipeline>
     38                <nom>editer_contenu_objet</nom>
     39                <inclure>inc/motspartout_pipeline.php</inclure>
     40        </pipeline>
    5941</plugin>
Note: See TracChangeset for help on using the changeset viewer.