Changeset 30137 in spip-zone


Ignore:
Timestamp:
Jul 23, 2009, 3:40:06 PM (10 years ago)
Author:
cedric@…
Message:

permettre la suppression de sa note en envoyant -1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/notation/formulaires/notation.php

    r26572 r30137  
    123123        // Premier vote
    124124        if (!$row){  // Remplir la table de notation
    125                 $id_notation = insert_notation();
     125                if ($note!=='-1') // annulation d'un vote -> ne pas creer un id !
     126                        $id_notation = insert_notation();
    126127        } else {
    127128                $id_notation = $row['id_notation'];
    128129        }
    129        
    130         // Modifier la note
    131         $c = array(                     
    132                 "objet" => $objet,
    133                 "id_objet" => $id_objet,
    134                 "note" => $note,
    135                 "id_auteur" => $id_auteur,
    136                 "ip" => $ip
    137         );
    138         modifier_notation($id_notation,$c);
    139        
    140         // mettre a jour les stats
    141         //
    142         // cette action est presque devenue inutile
    143         // comme la table spip_notations_objets
    144         // (qui devrait s'appeler spip_notations_stats plutot !)
    145         // car le critere {notation} permet d'obtenir ces resultats
    146         // totalements a jour...
    147         // Cependant, quelques cas tres particuliers de statistiques
    148         // font que je le laisse encore, comme calculer l'objet le mieux note :
    149         //      <BOUCLE_notes_pond(NOTATIONS_OBJETS){0,10}{!par note_ponderee}>
    150         // qu'il n'est pas possible de traduire dans une boucle NOTATION facilement.
    151         notation_recalculer_total($objet,$id_objet);   
     130
     131        if ($id_notation){
     132                if ($note=='-1') // annulation d'un vote
     133                        supprimer_notation($id_notation);
     134                else {
     135                        // Modifier la note
     136                        $c = array(
     137                                "objet" => $objet,
     138                                "id_objet" => $id_objet,
     139                                "note" => $note,
     140                                "id_auteur" => $id_auteur,
     141                                "ip" => $ip
     142                        );
     143                        modifier_notation($id_notation,$c);
     144                }
     145       
     146                // mettre a jour les stats
     147                //
     148                // cette action est presque devenue inutile
     149                // comme la table spip_notations_objets
     150                // (qui devrait s'appeler spip_notations_stats plutot !)
     151                // car le critere {notation} permet d'obtenir ces resultats
     152                // totalements a jour...
     153                // Cependant, quelques cas tres particuliers de statistiques
     154                // font que je le laisse encore, comme calculer l'objet le mieux note :
     155                //      <BOUCLE_notes_pond(NOTATIONS_OBJETS){0,10}{!par note_ponderee}>
     156                // qu'il n'est pas possible de traduire dans une boucle NOTATION facilement.
     157                notation_recalculer_total($objet,$id_objet);
     158        }
    152159
    153160        $res = array("editable"=>true,"message_ok"=>"");
     
    178185        return true;
    179186       
     187}
     188
     189function supprimer_notation($id_notation) {
     190        // pipeline pre edition
     191        sql_delete('spip_notations','id_notation='.sql_quote($id_notation));
     192        // pipeline post edition
     193        return true;
    180194}
    181195
Note: See TracChangeset for help on using the changeset viewer.