Changeset 4818 in spip-zone


Ignore:
Timestamp:
Aug 22, 2006, 10:46:33 PM (13 years ago)
Author:
bill@…
Message:

pour suivre le SVN ...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_amelioration_admin_/mots_partout/inc/mots.php

    r4559 r4818  
    1414
    1515// ne pas faire d'erreur si les chaines sont > 254 caracteres
     16// http://doc.spip.org/@levenshtein255
    1617function levenshtein255 ($a, $b) {
    1718        $a = substr($a, 0, 254);
     
    2122
    2223// reduit un mot a sa valeur translitteree et en minuscules
     24// http://doc.spip.org/@reduire_mot
    2325function reduire_mot($mot) {
    2426        return strtr(
     
    2931}
    3032
     33// http://doc.spip.org/@mots_ressemblants
    3134function mots_ressemblants($mot, $table_mots, $table_ids='') {
    3235        $lim = 2;
     
    100103 */
    101104
    102 function formulaire_mots($table, $id_objet, $nouv_mot, $supp_mot, $cherche_mot, $flag_editable) {
     105// http://doc.spip.org/@formulaire_mots
     106function formulaire_mots($table, $id_objet, $cherche_mot, $flag_editable) {
    103107        global $connect_statut, $connect_toutes_rubriques, $options;
    104108        global $spip_lang_rtl, $spip_lang_right, $spip_lang;
    105 //echo "formulaire_mots($table, $id_objet, $nouv_mot, $supp_mot, $cherche_mot, $flag_editable)";
    106         $visible = ($nouv_mot||$cherche_mot||$supp_mot);
     109
     110        $visible = ($cherche_mot!='');
     111
    107112///////////////////////////
    108113// MODIFICATION
     
    155160                $id_objet=$id_objet['id_objet'];
    156161        }
     162///////////////////////////
     163        else {$table =  $table_id = $objet = $url_base = '';}
     164///////////////////////////
     165// MODIFICATION
     166///////////////////////////
    157167*/
    158 ///////////////////////////
    159         else {$table =  $table_id = $objet = $url_base = '';}
    160                
    161 spip_log("1111111111");
     168///////////////////////////     
    162169        $cpt = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_mots AS mots, spip_mots_$table AS lien WHERE lien.$table_id=$id_objet AND mots.id_mot=lien.id_mot"));
    163170
     
    183190                $reindexer = false;
    184191                if ($cherche_mot) {
    185                         list($choix, $nouveaux_mots) = recherche_mot_cle($cherche_mot, intval($GLOBALS['select_groupe']), $id_objet,$nouv_mot, $table, $table_id, $url_base);
     192                  list($choix, $nouveaux_mots) = recherche_mot_cle($cherche_mot, intval($GLOBALS['select_groupe']), $objet, $id_objet, $table, $table_id, $url_base);
    186193                        $res .= $choix;
    187194                        while ((list(,$nouv_mot) = each($nouveaux_mots)) AND $nouv_mot!='x') {
     
    189196                        }
    190197                       
    191                 } elseif ($nouv_mot) {
    192                   $reindexer = inserer_mot("spip_mots_$table", $table_id, $id_objet, $nouv_mot);
    193                 } elseif ($supp_mot) {
    194                         $result = spip_query("DELETE FROM spip_mots_$table WHERE $table_id=$id_objet" . (($supp_mot == -1) ?  "" :  " AND id_mot=" . intval($supp_mot) ));
    195                         $reindexer = true;
    196                 }
    197 
     198                }
    198199                if ($reindexer AND ($GLOBALS['meta']['activer_moteur'] == 'oui')) {
    199200                        include_spip("inc/indexation");
     
    202203        }
    203204
    204         $res .= afficher_mots_cles($flag_editable, $id_objet, $table, $table_id, $url_base, $visible);
     205        $res .= afficher_mots_cles($flag_editable, $objet, $id_objet, $table, $table_id, $url_base, $visible);
    205206        $res .= fin_cadre_enfonce(true);
    206207        return $res;
    207208}
    208209
     210// http://doc.spip.org/@inserer_mot
    209211function inserer_mot($table, $table_id, $id_objet, $id_mot)
    210212{
    211         spip_log("SELECT id_mot FROM $table WHERE id_mot=$id_mot AND $table_id=$id_objet");
    212213        $result = spip_num_rows(spip_query("SELECT id_mot FROM $table WHERE id_mot=$id_mot AND $table_id=$id_objet"));
    213214
    214215        if (!$result) {
    215         spip_log("INSERT INTO $table (id_mot,$table_id) VALUES ($id_mot, $id_objet)");
    216216                spip_query("INSERT INTO $table (id_mot,$table_id) VALUES ($id_mot, $id_objet)");
    217217        }
     
    220220
    221221
    222 function affiche_mots_ressemblant($cherche_mot, $id_objet, $resultat, $table_id, $url_base)
     222// http://doc.spip.org/@affiche_mots_ressemblant
     223function affiche_mots_ressemblant($cherche_mot, $objet, $id_objet, $resultat, $table, $table_id, $url_base)
    223224{
    224225        $res = '';
     
    240241
    241242                if ($type_mot) $res .=" ($type_mot)";
    242                 $res .=" | <A href='" . generer_url_ecrire($url_base, "$table_id=$id_objet&nouv_mot=$id_mot#mots") . "'>" ._T('info_ajouter_mot') ."</A>";
     243                $res .=" | <A href='" . redirige_action_auteur('editer_mot', ",$id_objet,$table,$table_id,$objet", $url_base, "$table_id=$id_objet#mots".$id_objet) . "&amp;nouv_mot=$id_mot'>" ._T('info_ajouter_mot') ."</A>";
    243244
    244245                if (strlen($descriptif_mot) > 1) {
     
    251252}
    252253
    253 function recherche_mot_cle($cherche_mots, $id_groupe, $id_objet,$nouv_mot, $table, $table_id, $url_base)
     254// http://doc.spip.org/@recherche_mot_cle
     255function recherche_mot_cle($cherche_mots, $id_groupe, $objet, $id_objet, $table, $table_id, $url_base)
    254256{
    255257        if ($table == 'articles') $ou = _T('info_l_article');
     
    266268        }
    267269
    268         $nouveaux_mots = $nouv_mot ? array($nouv_mot) : array();
     270        $nouveaux_mots = array();
    269271        $res = '';
    270272
     
    283285                        $res .= "</UL>";
    284286                }
    285                 else $res .= affiche_mots_ressemblant($cherche_mot, $id_objet, $resultat, $table_id, $url_base);
     287                else $res .= affiche_mots_ressemblant($cherche_mot, $objet, $id_objet, $resultat, $table, $table_id, $url_base);
    286288
    287289                if (acces_mots()) {
    288290                        $titre = rawurlencode($cherche_mot);
    289291                        $res .= "<div style='width: 200px;'>";
    290                         $res .= icone_horizontale(_T('icone_creer_mot_cle'), generer_url_ecrire("mots_edit","new=oui&ajouter_id_article=$id_objet&table=$table&table_id=$table_id&titre=$titre&redirect=" . generer_url_retour($url_base, "$table_id=$id_objet")), "mot-cle-24.gif", "creer.gif", false);
     292                        $res .= icone_horizontale(_T('icone_creer_mot_cle'), generer_url_ecrire("mots_edit","new=oui&id_groupe=$id_groupe&ajouter_id_article=$id_objet&table=$table&table_id=$table_id&titre=$titre&redirect=" . generer_url_retour($url_base, "$table_id=$id_objet")), "mot-cle-24.gif", "creer.gif", false);
    291293                        $res .= "</div> ";
    292294                }
     
    298300}
    299301
    300 function afficher_mots_cles($flag_editable, $id_objet, $table, $table_id, $url_base, $visible)
     302// http://doc.spip.org/@afficher_mots_cles
     303function afficher_mots_cles($flag_editable, $objet, $id_objet, $table, $table_id, $url_base, $visible)
    301304{
    302305        global $spip_lang_rtl, $spip_lang, $spip_lang_right, $connect_statut, $connect_toutes_rubriques, $options;
     
    318321                        $id_groupe = $row['id_groupe'];
    319322
    320                         $groupes_vus[$id_groupe] = true;
    321323                        $id_groupes_vus[] = $id_groupe;
    322324                        $url = generer_url_ecrire('mots_edit', "id_mot=$id_mot&redirect=$ret");
     
    327329        // On recupere le typo_mot ici, et non dans le mot-cle lui-meme; sinon bug avec arabe
    328330                        $type_mot = typo($row_groupe['titre']);
    329                         $flag_groupe = (($connect_statut == '1comite' AND $row_groupe['comite'] == 'oui') OR ($connect_statut == '0minirezo' AND $row_groupe['minirezo'] == 'oui'));
     331                        $flag_groupe = $flag_editable AND (($connect_statut == '1comite' AND $row_groupe['comite'] == 'oui') OR ($connect_statut == '0minirezo' AND $row_groupe['minirezo'] == 'oui'));
    330332                        // Changer
    331                         if (($row_groupe['unseul'] == "oui") AND ($flag_editable AND $flag_groupe)) {
    332 
    333                                 $s =  generer_url_post_ecrire($url_base,"$table_id=$id_objet", '', "#mots".$id_objet) .
    334                                         "<select name='nouv_mot' onChange=\"setvisibility('valider_groupe_$id_groupe', 'visible');\" CLASS='fondl' STYLE='font-size:10px; width:90px;'>";
    335                                 $result_autres_mots = spip_query("SELECT id_mot, titre FROM spip_mots WHERE id_groupe = $id_groupe ORDER by titre");
    336 
    337                                 while ($row_autres = spip_fetch_array($result_autres_mots)) {
    338                                         $le_mot = $row_autres['id_mot'];
    339                                         $le_titre_mot = supprimer_tags(typo($row_autres['titre']));
    340        
    341                                         if ($le_mot == $id_mot) $selected = "SELECTED";
    342                                         else $selected = "";
    343                                         $s .= "<option value='$le_mot' $selected> $le_titre_mot</option>";
    344                                 }
    345                                 $s .= "</select>".
    346                                 "<input type='hidden' name='supp_mot' VALUE='$id_mot' />".
    347                                 "<span class='visible_au_chargement' id='valider_groupe_$id_groupe'>".
    348                                 " &nbsp; <input type='submit' value='"._T('bouton_changer')."' CLASS='fondo' style='font-size: 10px';>".
    349                                 "</span>".
    350                                 "</form>";
    351        
     333                        if (($row_groupe['unseul'] == "oui") AND $flag_groupe) {
     334                                $vals[]= formulaire_mot_remplace($id_groupe, $id_mot, $url_base, $table, $table_id, $objet, $id_objet);
    352335                        } else {
    353                                 $s = "<A href='$url'>".typo($titre_mot)."</A>";
     336                                $vals[]= "<A href='$url'>".typo($titre_mot)."</A>";
    354337                        }
    355                         $vals[] = $s;
    356        
    357                         if ($connect_statut == '0minirezo'  AND $connect_toutes_rubriques)
     338
     339                        if ($connect_toutes_rubriques)
    358340                                $vals[]= "<a href='" . generer_url_ecrire("mots_type","id_groupe=$id_groupe") . "'>$type_mot</a>";
    359341
    360                           else  $vals[] = $type_mot;
     342                        else    $vals[] = $type_mot;
    361343       
    362344                        if ($flag_editable){
    363345                                if ($flag_groupe)
    364                                   $s = "<A href='" . generer_url_ecrire($url_base, "$table_id=$id_objet&supp_mot=$id_mot#mots".$id_objet) . "'>"._T('info_retirer_mot')."&nbsp;" . http_img_pack('croix-rouge.gif', "X", "width='7' height='7' align='middle'") ."</A>";
     346                                        $s = "<A href='"
     347                                        . redirige_action_auteur('editer_mot', "$id_mot,$id_objet,$table,$table_id,$objet", $url_base, "$table_id=$id_objet#mots".$id_objet)
     348                                        . "'>"
     349                                        . _T('info_retirer_mot')
     350                                        . "&nbsp;"
     351                                        . http_img_pack('croix-rouge.gif', "X", "width='7' height='7' align='middle'")
     352                                        . "</A>";
    365353                                else $s = "&nbsp;";
    366354                                $vals[] = $s;
     
    382370
    383371        if ($flag_editable)
    384                 $res .= formulaire_mots_cles($id_groupes_vus, $id_objet, $les_mots, $table, $table_id, $url_base, $visible);
     372          $res .= formulaire_mots_cles($id_groupes_vus, $id_objet, $les_mots, $table, $table_id, $url_base, $visible, $objet);
    385373
    386374        return $res;
    387375}
    388376
    389 function formulaire_mots_cles($id_groupes_vus, $id_objet, $les_mots, $table, $table_id, $url_base, $visible)
     377// http://doc.spip.org/@formulaire_mot_remplace
     378function formulaire_mot_remplace($id_groupe, $id_mot, $url_base, $table, $table_id, $objet, $id_objet)
     379{
     380        $result = spip_query("SELECT id_mot, titre FROM spip_mots WHERE id_groupe = $id_groupe ORDER by titre");
     381
     382        $s = '';
     383
     384        while ($row_autres = spip_fetch_array($result)) {
     385                $id = $row_autres['id_mot'];
     386                $le_titre_mot = supprimer_tags(typo($row_autres['titre']));
     387                $selected = ($id == $id_mot) ? " selected='selected'" : "";
     388                $s .= "<option value='$id'$selected> $le_titre_mot</option>";
     389        }
     390
     391        return redirige_action_auteur('editer_mot', "$id_mot,$id_objet,$table,$table_id,$objet", $url_base, "$table_id=$id_objet#mots".$id_objet, (
     392        "<select name='nouv_mot' onchange=\"setvisibility('valider_groupe_$id_groupe', 'visible');\" CLASS='fondl' STYLE='font-size:10px; width:90px;'>"
     393        . $s
     394        . "</select>"
     395        . "<span class='visible_au_chargement' id='valider_groupe_$id_groupe'>"
     396        . " &nbsp; <input type='submit' value='"._T('bouton_changer')."' CLASS='fondo' style='font-size: 10px';>"
     397        . "</span>"),
     398                                      " method='post'");
     399}
     400
     401
     402// http://doc.spip.org/@formulaire_mots_cles
     403function formulaire_mots_cles($id_groupes_vus, $id_objet, $les_mots, $table, $table_id, $url_base, $visible,$objet)
    390404{
    391405        global $connect_statut, $spip_lang, $spip_lang_right, $spip_lang_rtl;
     
    398412                $nombre_mots_associes = 0;
    399413        }
    400                 if ($id_groupes_vus) $id_groupes_vus = join($id_groupes_vus, ",");
    401                 else $id_groupes_vus = "0";
    402                
    403                 $nb_groupes = spip_num_rows(spip_query("SELECT * FROM spip_groupes_mots WHERE $table = 'oui' AND ".substr($connect_statut,1)." = 'oui' AND obligatoire = 'oui' AND id_groupe NOT IN ($id_groupes_vus)"));
    404 
    405                 $res = '';
    406                
     414        $cond_id_groupes_vus = "0";
     415        if ($id_groupes_vus) $cond_id_groupes_vus = join(",",$id_groupes_vus);
     416       
     417        $nb_groupes = spip_num_rows(spip_query("SELECT * FROM spip_groupes_mots WHERE $table = 'oui' AND ".substr($connect_statut,1)." = 'oui' AND obligatoire = 'oui' AND id_groupe NOT IN ($cond_id_groupes_vus)"));
     418
    407419        if ($visible)
    408                 $res .= debut_block_visible("lesmots".$id_objet);
     420                $res = debut_block_visible("lesmots".$id_objet);
    409421        else if ($nb_groupes > 0) {
    410                 $res .= debut_block_visible("lesmots".$id_objet);
     422                $res = debut_block_visible("lesmots".$id_objet);
    411423                        // vilain hack pour redresser un triangle
    412424                $couche_a_redresser = $GLOBALS['numero_block']['lesmots'.$id_objet];
     
    415427                                triangle = findObj('triangle' + $couche_a_redresser);
    416428                                if (triangle) triangle.src = '" . _DIR_IMG_PACK . "deplierbas$spip_lang_rtl.gif';");
    417         } else $res .= debut_block_invisible("lesmots".$id_objet);
     429        } else $res = debut_block_invisible("lesmots".$id_objet);
    418430
    419431        if ($nombre_mots_associes > 3) {
    420432                $res .= "<div align='right' class='arial1'>"
    421433                . "<a href='"
    422                 . generer_url_ecrire($url_base, "$table_id=$id_objet&supp_mot=-1#mots")
     434                . redirige_action_auteur('editer_mot', "-1,$id_objet,$table,$table_id,$objet", $url_base, "$table_id=$id_objet#mots".$id_objet)
    423435                . "'>"
    424436                . _T('info_retirer_mots')
     
    427439        }
    428440
    429         // il faudrait rajouter STYLE='margin:1px;' qq part
    430 
    431         $form_mot = generer_url_post_ecrire($url_base,"$table_id=$id_objet", '', "#mots".$id_objet);
    432 
    433         if ($table == 'rubriques') $form_mot .= "<input type='hidden' name='id_rubrique' value='$id_objet' />";
    434 
    435         $result_groupes = spip_query("SELECT id_groupe,unseul,obligatoire,titre, ".creer_objet_multi ("titre", $spip_lang)." FROM spip_groupes_mots WHERE $table = 'oui' AND ".substr($connect_statut,1)." = 'oui' AND (unseul != 'oui'  OR (unseul = 'oui' AND id_groupe NOT IN ($id_groupes_vus))) ORDER BY multi");
    436 
     441        $result_groupes = spip_query("SELECT id_groupe,unseul,obligatoire,titre, ".creer_objet_multi ("titre", $spip_lang)." FROM spip_groupes_mots WHERE $table = 'oui' AND ".substr($connect_statut,1)." = 'oui' AND (unseul != 'oui'  OR (unseul = 'oui' AND id_groupe NOT IN ($cond_id_groupes_vus))) ORDER BY multi");
    437442
    438443        // Afficher un menu par groupe de mots
     
    441446
    442447        $res .=  "<table border='0' width='100%' style='text-align: $spip_lang_right'>";
    443         while ($row_groupes = spip_fetch_array($result_groupes)) {
    444                 $g = menu_mots($row_groupes, $id_groupes_vus, $les_mots);
     448        while ($row = spip_fetch_array($result_groupes)) {
     449                $g = menu_mots($row, $id_groupes_vus, $les_mots);
    445450                if ($g) {
    446                         $res .= "$form_mot\n<tr><td>$message</td>\n<td>$g</td></tr></form>\n";
     451                        $res .= "<tr><td>$message</td>\n<td>"
     452                        . redirige_action_auteur('editer_mot', ",$id_objet,$table,$table_id,$objet", $url_base, "$table_id=$id_objet", $g, " method='post' style='margin:1px;'")
     453                        . "</td></tr>\n";
    447454                        $message = "";
    448455                }
     
    460467}
    461468
    462 function menu_mots($row, $groupes_vus, $les_mots)
     469// http://doc.spip.org/@menu_mots
     470function menu_mots($row, $id_groupes_vus, $les_mots)
    463471{
    464472        $id_groupe = $row['id_groupe'];
     
    470478
    471479        $titre = textebrut(typo($row['titre']));
    472         $titre_groupe = entites_html($titre_groupe);
     480        $titre_groupe = entites_html($titre);
    473481        $unseul = $row['unseul'] == 'oui';
    474         $obligatoire = $row['obligatoire']=='oui' AND !$groupes_vus[$id_groupe];
    475 
    476         // faudrait rendre ca validable quand meme
     482        $obligatoire = $row['obligatoire']=='oui' AND !in_array($id_groupe, $id_groupes_vus);
    477483
    478484        $res = '';
     
    523529//
    524530
     531// http://doc.spip.org/@calculer_liens_mots
    525532function calculer_liens_mots()
    526533{
     
    563570}
    564571
     572// http://doc.spip.org/@afficher_groupe_mots
    565573function afficher_groupe_mots($id_groupe) {
    566574        global $connect_id_auteur, $connect_statut;
     
    573581        $tmp_var = substr($hash, 2, 6);
    574582                       
    575         $javascript = "charger_id_url('" . generer_url_ecrire("ajax_page", "fonction=sql&id_ajax_fonc=::id_ajax_fonc::::deb::", true) . "','$tmp_var')";
     583        $javascript = "charger_id_url('" . generer_url_ecrire('memoriser',"&var_ajax=1&id_ajax_fonc=::id_ajax_fonc::::deb::", true) . "','$tmp_var')";
    576584
    577585        $select = 'id_mot, titre, ' . creer_objet_multi ("titre", $spip_lang);
     
    631639}
    632640
     641// http://doc.spip.org/@afficher_groupe_mots_boucle
    633642function afficher_groupe_mots_boucle($row, $occurrences)
    634643{
Note: See TracChangeset for help on using the changeset viewer.