Changeset 41567 in spip-zone


Ignore:
Timestamp:
Oct 6, 2010, 11:55:34 AM (11 years ago)
Author:
marcimat@…
Message:

Utiliser l'api objet_associer()

Location:
_core_/plugins/mots
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/mots/action/editer_mot.php

    r41559 r41567  
    5050function supprimer_mot($id_mot) {
    5151        sql_delete("spip_mots", "id_mot=".intval($id_mot));
    52         sql_delete("spip_mots_liens", "id_mot=".intval($id_mot));
     52        mot_dissocier($id_mot, array('*'=>'*'));
    5353        pipeline('trig_supprimer_objets_lies',
    5454                array(
     
    5757        );
    5858}
     59
     60
     61
     62/**
     63 * Associer un mot a des objets listes sous forme
     64 * array($objet=>$id_objets,...)
     65 * $id_objets peut lui meme etre un scalaire ou un tableau pour une liste d'objets du meme type
     66 *
     67 * on peut passer optionnellement une qualification du (des) lien(s) qui sera
     68 * alors appliquee dans la foulee.
     69 * En cas de lot de liens, c'est la meme qualification qui est appliquee a tous
     70 *
     71 * Exemples:
     72 * mot_associer(3, array('auteur'=>2));
     73 * mot_associer(3, array('auteur'=>2), array('vu'=>'oui)); // ne fonctionnera pas ici car pas de champ 'vu' sur spip_mots_liens
     74 *
     75 * @param int $id_mot
     76 * @param array $objets
     77 * @param array $qualif
     78 * @return string
     79 */
     80function mot_associer($id_mot,$objets, $qualif = null){
     81        include_spip('action/editer_liens');
     82        return objet_associer(array('mot'=>$id_mot), $objets, $qualif);
     83}
     84
     85
     86
     87/**
     88 * Dossocier un mot des objets listes sous forme
     89 * array($objet=>$id_objets,...)
     90 * $id_objets peut lui meme etre un scalaire ou un tableau pour une liste d'objets du meme type
     91 *
     92 * un * pour $id_mot,$objet,$id_objet permet de traiter par lot
     93 *
     94 * @param int $id_mot
     95 * @param array $objets
     96 * @return string
     97 */
     98function mot_dissocier($id_mot,$objets){
     99        include_spip('action/editer_liens');
     100        return objet_dissocier(array('mot'=>$id_mot), $objets);
     101}
     102
     103/**
     104 * Qualifier le lien d'un mot avec les objets listes
     105 * array($objet=>$id_objets,...)
     106 * $id_objets peut lui meme etre un scalaire ou un tableau pour une liste d'objets du meme type
     107 * exemple :
     108 * $c = array('vu'=>'oui');
     109 * un * pour $id_auteur,$objet,$id_objet permet de traiter par lot
     110 *
     111 * @param int $id_mot
     112 * @param array $objets
     113 * @param array $qualif
     114 */
     115function mot_qualifier($id_mot,$objets,$qualif){
     116        include_spip('action/editer_liens');
     117        return objet_qualifier(array('mot'=>$id_mot), $objets, $qualif);
     118}
     119
     120
    59121?>
  • _core_/plugins/mots/action/editer_mots.php

    r41559 r41567  
    3131        $select_groupe = _request('select_groupe');
    3232
     33        include_spip('action/editer_mot');
    3334        list($x, $id_objet, $id_mot, $table, $table_id, $objet, $nouv_mot) = $r;
    3435        if ($id_mot) {
    3536                if ($objet) {
    3637                        // desassocier un/des mot d'un objet precis
    37                         $where = array(
    38                                 "objet=" . sql_quote($objet),
    39                                 "id_objet=$id_objet"
    40                         );
    41                         if ($id_mot > 0) {
    42                                 $where[] = "id_mot=$id_mot";
    43                         }
    44                         sql_delete("spip_mots_liens", $where);
     38                        mot_dissocier($id_mot, array($objet=>$id_objet));
    4539                } else {
    4640                        // disparition complete d'un mot
    47                         // on ne doit plus passer ici mais dans action/supprimer_mot
    48                         include_spip('action/editer_mot');
    4941                        supprimer_mot($id_mot);
    5042                }
    5143        }
    5244        if ($nouv_mot ? $nouv_mot : ($nouv_mot = _request('nouv_mot'))) {
    53                 $result = sql_countsel("spip_mots_liens", array(
    54                         "objet=" . sql_quote($objet),
    55                         "id_mot=".intval($nouv_mot),
    56                         "id_objet=$id_objet"));
    57                 if (!$result)
    58                         sql_insertq("spip_mots_liens", array('objet'=> $objet, 'id_mot' => $nouv_mot,"id_objet" =>$id_objet));
     45                mot_associer($nouv_mot, array($objet=>$id_objet));
    5946        }
    6047
  • _core_/plugins/mots/formulaires/editer_mot.php

    r41559 r41567  
    102102                ));
    103103        }
    104         sql_insertq("spip_mots_liens", array(
    105                 "objet" => $type,
    106                 "id_mot" => $id_mot,
    107                 "id_objet" => $id)
    108         );
     104        include_spip('action/editer_mot');
     105        mot_associer($id_mot, array($type=>$id));
    109106}
    110107
  • _core_/plugins/mots/inc/editer_mots.php

    r41559 r41567  
    6666{
    6767        $modifier = false;
    68 
     68        #include_spip('action/editer_mot');
    6969        list($reponse, $nouveaux_mots) = recherche_mot_cle($cherche_mot, $select_groupe, $objet, $id_objet, $nom, $table_id, $url_base);
    7070        foreach($nouveaux_mots as $nouv_mot) {
    7171                if ($nouv_mot!='x') {
     72                        #$modifier |= mot_associer($nouv_mot, array($objet=>$id_objet));
    7273                        $modifier |= inserer_mot($objet, $table_id, $id_objet, $nouv_mot);
    7374                }
     
    8788        return $reponse;
    8889}
     90
    8991// http://doc.spip.org/@inserer_mot
     92// pour compatibilite
    9093function inserer_mot($objet, $id_objet, $id_mot)
    9194{
     95        /*
     96        include_spip('action/editer_mot');
     97        return mot_associer($id_mot, array($objet=>$id_objet));
     98        */
    9299        $r = sql_countsel('spip_mots_liens', array("id_mot=$id_mot", "objet=".sql_quote($objet), "id_objet=$id_objet"));
    93100        if (!$r) {
Note: See TracChangeset for help on using the changeset viewer.