Ignore:
Timestamp:
Jun 18, 2011, 6:43:26 PM (10 years ago)
Author:
paladin@…
Message:

Revision du formulaire pour FORMULAIRE_SPIP_LISTES_INSCRIPTION. Il est possible de s'abonner à l'inscription/abonnement.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-listes/spip-listes_1_9_3/inc/spiplistes_api.php

    r48908 r48911  
    177177 * ou une liste de listes ($id_liste est un tableau de (id)listes)
    178178 * avec la date d'inscription
    179  * @version CP-20110505
     179 * @version CP-20110619
    180180 * @param int $id_auteur
    181  * @param int|array $id_liste
     181 * @param int|array $id_listes
    182182 * @return array id_listes ajoutees
    183183 */
    184 function spiplistes_abonnements_ajouter ($id_auteur, $id_liste) {
    185        
    186         spiplistes_debug_log('SUBSCRIBE auteur #'.$id_auteur.' TO liste #'.$id_liste);
    187        
    188         $r_id_listes = false;
    189        
    190         if(($id_auteur = intval($id_auteur)) > 0) {
     184function spiplistes_abonnements_ajouter ($id_auteur, $id_listes) {
     185       
     186        if(($id_auteur = intval($id_auteur)) > 0)
     187        {
    191188                $sql_table = 'spip_auteurs_listes';
    192189                $sql_noms = '(id_auteur,id_liste,date_inscription)';
     190                /**
     191                 * Note les abos de cet auteur
     192                 */
     193                $curr_abos = spiplistes_abonnements_listes_auteur($id_auteur);
     194                $real_id_listes = array();
     195                $sql_valeurs = array();
    193196               
    194                 $curr_abos_auteur = spiplistes_abonnements_listes_auteur($id_auteur);
    195                 $r_id_listes = array();
     197                if (!is_array($id_listes)) $id_listes = array($id_listes);
    196198               
    197                 if(is_array($id_liste)) {
    198                         // si une seule liste demandee
    199                         $sql_valeurs = array();
    200                         $msg = array();
    201                         foreach($id_liste as $id) {
    202                                 if(
     199                if (is_array($id_listes))
     200                {
     201                        foreach ($id_listes as $id) {
     202                                if (
    203203                                   (($id = intval($id)) > 0)
    204204                                   // si pas encore abonne'
    205                                         && !in_array($id, $curr_abos_auteur)
    206                                   )
     205                                        && (!$curr_abos || !in_array($id, $curr_abos)))
    207206                                {
    208                                         $sql_valeurs[] = "($id_auteur,$id,NOW())";
    209                                         $msg[] = $id;
     207                                        $sql_valeurs[] = '('.$id_auteur.','.$id.',NOW())';
     208                                        $real_id_listes[] = $id;
    210209                                }
    211210                        }
    212                         if(count($sql_valeurs)) {
    213                                 $sql_valeurs = implode(",", $sql_valeurs);
     211                        if (count($sql_valeurs)) {
     212                                $sql_valeurs = implode(',', $sql_valeurs);
     213                                if (sql_insert($sql_table, $sql_noms, $sql_valeurs) === false)
     214                                {
     215                                        spiplistes_sqlerror_log ('spiplistes_abonnements_ajouter()');
     216                                }
     217                                else {
     218                                        spiplistes_log_api ('SUBSCRIBE id_auteur #'
     219                                                                           . $id_auteur
     220                                                                           . ' to id_liste '
     221                                                                           . "#" . implode(',#', $real_id_listes)
     222                                                                           );
     223                                }
    214224                        }
    215225                }
    216                 else if(
    217                         // si une seule liste demandee, et si pas encore abonne'
    218                         (($id_liste = intval($id_liste)) > 0)
    219                         && (!$curr_abos || !in_array($id_liste, $curr_abos))
    220                         )
    221                 {
    222                         $sql_valeurs = " ($id_auteur,$id_liste,NOW())";
    223                         $msg = array($id_liste);
    224                         $r_id_listes[] = $id_liste;
    225                 }
    226                 if($sql_valeurs) {
    227                         $msg = "#" . implode(",#", $msg);
    228                         if(sql_insert($sql_table, $sql_noms, $sql_valeurs) === false) {
    229                                 spiplistes_sqlerror_log ("spiplistes_abonnements_ajouter()");
    230                         }
    231                         else {
    232                                 spiplistes_log_api("subscribe id_auteur #$id_auteur to id_liste $msg");
    233                         }
    234                 }
    235         }
    236         return($r_id_listes);
     226        }
     227        return($real_id_listes);
    237228} // spiplistes_abonnements_ajouter()
    238229
     
    360351                }
    361352                else {
    362                         spiplistes_log_api('desabonne '.$msg1.' '.$msg2);
     353                        spiplistes_log_api('UNSUBSCRIBE '.$msg1.' '.$msg2);
    363354                }
    364355        }
Note: See TracChangeset for help on using the changeset viewer.