Changeset 48911 in spip-zone


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.

Location:
_plugins_/spip-listes/spip-listes_1_9_3
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-listes/spip-listes_1_9_3/formulaires/spip_listes_inscription.php

    r48908 r48911  
    5353        $listes = _request('listes');
    5454       
     55        $listes_sel = array();
     56       
    5557        if (is_array($listes))
    5658        {
     
    5860                {
    5961                        $id_liste = intval($liste);
    60                         if(!$id_liste)
     62                        if ($id_liste > 0)
    6163                        {
    62                                 $erreurs['liste'] = _T('spiplistes:liste_inconnue');
     64                                $listes_sel[] = $id_liste;
    6365                        }
    6466                }
     
    126128                }
    127129                $listes = _request('listes');
    128                 //spiplistes_debug_log ('format '.$format);
    129130        }
    130131       
     
    158159                                                        : $GLOBALS['meta']['langue_site']
    159160                                                        ;
     161                spiplistes_abonnements_auteur_desabonner ($id_auteur, 'toutes');
     162               
    160163                spiplistes_debug_log ('inscription auteur #'.$id_auteur.' email:'.$val['email']);
    161164        }
     
    178181        }
    179182       
    180         if ($listes) {
    181                 /**
    182                  * @todo a optimiser (une seule req)
    183                  */
    184                 foreach($listes as $liste) {
    185                         sql_insertq ('spip_auteurs_listes'
    186                                         , array('id_auteur' => $id_auteur
    187                                                         ,'id_liste' => $liste
    188                                                         )
    189                                         );
    190                 }
     183        if ($listes && is_array($listes) && count($listes))
     184        {
     185                spiplistes_abonnements_ajouter ($id_auteur, $listes);
     186                $contexte['ids_abos'] = array_values($listes);
    191187        }
    192188       
     
    214210               
    215211                /**
    216                 *
    217212                * Assemble le patron
    218213                * Obtient en retour le contenu en version html et texte
    219214                */
    220215                $path_patron = _SPIPLISTES_PATRONS_MESSAGES_DIR . spiplistes_patron_message();
    221                 spiplistes_debug_log ('Patron: '.$path_patron);
     216               
    222217                list($courrier_html, $courrier_texte) = spiplistes_courriers_assembler_patron (
    223218                        $path_patron
    224219                        , $contexte);
    225                 spiplistes_debug_log ('Messages size: html: '.strlen($courrier_html));
    226                 spiplistes_debug_log ('Messages size: text: '.strlen($courrier_texte));
     220                //spiplistes_debug_log ('Messages size: html: '.strlen($courrier_html));
     221                //spiplistes_debug_log ('Messages size: text: '.strlen($courrier_texte));
    227222               
    228223                $email_contenu = array(
  • _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        }
  • _plugins_/spip-listes/spip-listes_1_9_3/plugin.xml

    r48908 r48911  
    88        <nom><multi>[fr]SPIP-Listes[en]SPIP-Lists[ar]&#1604;&#1608;&#1575;&#1574;&#1581; SPIP[es]SPIP-Listes</multi></nom>
    99        <auteur>BoOz@rezo.net</auteur>
    10         <version>2.0204</version>
     10        <version>2.0205</version>
    1111        <version_base>1.98</version_base>
    1212        <etat>test</etat>
Note: See TracChangeset for help on using the changeset viewer.