Changeset 74552 in spip-zone


Ignore:
Timestamp:
Aug 3, 2013, 12:14:20 PM (6 years ago)
Author:
kent1@…
Message:

Meilleure utilisation de l'API de liens

On associe / dissocie de manière groupée

Version 1.2.1

Location:
_plugins_/spipicious_jquery/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spipicious_jquery/trunk/action/spipicious_ajouter_tags.php

    r71707 r74552  
    6868 */
    6969function spipicious_ajouter_tags($tableau_tags=array(),$id_auteur,$id_objet,$type,$id_table_objet,$id_groupe){
    70         $tag_analysed = array();
     70        include_spip('action/editer_mot');
     71        include_spip('action/editer_liens');
     72        $tag_analysed = $mots_associes = array();
    7173        $position = 0;
    7274        $statut = 'publie';
    73        
     75
    7476        if (is_array($tableau_tags)) {
    7577                $table = table_objet_sql($type);
     
    7880                        $statut = 'prop';
    7981
    80                 include_spip('action/editer_mot');
    8182                foreach ($tableau_tags as $k=>$tag) {
    8283                        $mot_cree = false;
     
    9798                                                $c = array('titre' => $tag_propre);
    9899                                                mot_modifier($id_tag, $c);
    99                                                 mot_associer($id_tag,array($type=>$id_objet));
     100                                                $mots_associes[] = $id_tag;
    100101                                                sql_insertq("spip_spipicious",array('id_mot' => intval($id_tag),'id_auteur' => intval($id_auteur),'id_objet' => intval($id_objet), 'objet'=>$type, 'position' => intval($position),'statut' => $statut));
    101102                                                $message = _T('spipicious:tag_ajoute',array('name'=>$tag));
     
    114115                                        $result = sql_getfetsel("id_mot",'spip_mots_liens',"id_mot=".intval($id_tag)." AND objet=".sql_quote($objet)." AND id_objet=".intval($id_objet));
    115116                                        if (!$result)
    116                                                 mot_associer($id_tag,array($type=>$id_objet));
     117                                                $mots_associes[] = $id_tag;
    117118                                        /**
    118119                                         * La triplette id_mot, id_auteur, objet existe t elle déjà?
     
    137138                }
    138139
     140                if(count($mots_associes) > 0)
     141                        objet_associer(array('mot'=>$mots_associes),array($type => $id_objet));
     142
    139143                if($position > 1){
    140144                        $tags = implode('<br />',$tag_analysed);
  • _plugins_/spipicious_jquery/trunk/action/spipicious_supprimer_tags.php

    r71707 r74552  
    6262 */
    6363function spipicious_supprimer_tags($remove_tags,$id_auteur,$id_objet,$type,$id_table_objet){
     64        include_spip('action/editer_mot');
     65        include_spip('action/editer_liens');
    6466        $compte = 0;
    6567        $tags_removed = array();
     68        $mots_supprimes = array();
     69        $mots_dissocier = array();
    6670        foreach($remove_tags as $remove_tag){
    67                 include_spip('action/editer_mot');
    6871                /**
    6972                 * Suppression dans spip_spipicious du lien entre notre auteur, le mot et l'objet
     
    7477                 * On vérifie si le tag est utilisé par un autre utilisateur
    7578                 *
    76                  * -* Si non, on supprime le mot clé définitivement
     79                 * -* Si non, on ajoute le mot clé dans le tableau $mots_supprimes qui le supprimera définitivement
    7780                 * -* Si oui, on vérifie si le mot est utilisé par un autre utilisateur sur le même objet:
    78                  * -** Si non, on dissocie le mot de l'objet
     81                 * -** Si non, on ajoute le mot dans le tableau $mots_dissocier qui le dissociera le mot de l'objet
    7982                 * -** Si oui, on ne fait rien de plus
    8083                 */
    8184                $tag_utilise = sql_getfetsel("id_auteur","spip_spipicious","id_mot=".intval($remove_tag));
    82                 if (!$tag_utilise)
    83                         mot_supprimer($remove_tag);
    84                 else {
     85                if (!$tag_utilise){
     86                        $mots_supprimes[] = $remove_tag;
     87                        $mots_dissocier[] = $remove_tag;
     88                }else {
    8589                        $tag_utilise_2 = sql_getfetsel("id_auteur","spip_spipicious","id_mot=".intval($remove_tag)." AND id_objet=".intval($id_objet)." AND objet=".sql_quote($type));
    8690                        if(!$tag_utilise_2)
    87                                 mot_dissocier($remove_tag,array($type=>$id_objet));
     91                                $mots_dissocier[] = $remove_tag;
    8892                }
    89                
     93
    9094                /**
    9195                 * On crée notre message
     
    9599                $tags_removed[] = $titre_mot;
    96100                $compte++;
     101        }
     102
     103        if(count($mots_dissocier) > 0)
     104                objet_dissocier(array('mot'=>$mots_dissocier),array($type => $id_objet));
     105
     106        if(count($mots_supprimes) > 0){
     107                foreach($mots_supprimes as $id_mot){
     108                        mot_supprimer($remove_tag);
     109                }
    97110        }
    98111
  • _plugins_/spipicious_jquery/trunk/paquet.xml

    r71715 r74552  
    22        prefix="spipicious"
    33        categorie="communication"
    4         version="1.2.0"
     4        version="1.2.1"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.0.99]"
Note: See TracChangeset for help on using the changeset viewer.