Changeset 51675 in spip-zone for _plugins_/abonnement


Ignore:
Timestamp:
Sep 21, 2011, 5:51:30 PM (9 years ago)
Author:
toutati@…
Message:

malgré un svn mv, j'ai l'impression que ça delete ...

version amélioree des codes pour abonnement, on suit facilement les details de la commande quand elle change de statut

mais on peut se passer de toute commande normalement, puisqu'un auteur a une jolie boite d'abonnement,
que chaque element d'abonnement : abonnement, article ou rubrique peut lier un auteur
et que chaque contacts_abonnement est éditable

enjoy :)

Location:
_plugins_/abonnement/zabonnement/trunk
Files:
9 added
1 deleted
11 edited
2 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/abonnement/zabonnement/trunk/abonnement_pipelines.php

    r51511 r51675  
    5959// si sql spip_commandes_details => gerer l'abonnement aux objets avec statut_commande repris
    6060function abonnement_post_insertion($flux){
    61         //pour les details (a la modif de la commande)
    62         if (
    63                 $flux['args']['table'] == 'spip_commandes'
    64                 and ($id_commande = intval($flux['args']['id_objet'])) > 0
    65                 and ($id_auteur = intval($flux['data']['id_auteur'])) > 0
    66         ){
    67                        
    68                 //statut de la commande
    69                 $statut=$flux['data']['statut'];
    70                
    71                 if (_DEBUG_ABONNEMENT) spip_log("a_p_i id_commande=$id_commande statut=$statut pour auteur=$id_auteur",'abonnement');
    72                
    73                 // si dans les details de la commande il y a abonnement, article ou rubrique en objet
    74                 $objets=array('article','rubrique','abonnement');
    75                 foreach($objets as $objet){
    76                         if (_DEBUG_ABONNEMENT) spip_log("a_p_i objet= $objet",'abonnement');           
    77 
    78                         $commande_abos = sql_allfetsel(
    79                                 '*',
    80                                 'spip_commandes_details',
    81                                 'id_commande = '.$id_commande." AND objet='$objet'"
    82                         );
    83                        
    84                                 // Pour chaque commande contenant article ou rubrique en objet
    85                                 foreach($commande_abos as $abo){
    86 
    87                                         $arg=array(
    88                                                 'id_auteur'=>$id_auteur,
    89                                                 'objet'=>$abo['objet'],
    90                                                 'table'=>"spip_".$objet."s",
    91                                                 'ids' => array($abo['id_objet']), //tjs envoyer un array
    92                                                 'prix'=>$abo['prix_unitaire_ht'],
    93                                                 'duree'=>3,
    94                                                 'periode'=>'jour',
    95                                                 'id_commandes_detail'=>$abo['id_commandes_detail'],
    96                                                 'statut'=>$statut,
    97                                                 );
    98 
    99                                         include_spip('action/editer_contactabonnement');
    100                                         editer_contactabonnement($arg);
    101                                 }
    102                 }
    103 
    104         }
    105         //pour les details (au passage de panier2commande)
     61       
     62        //pour les details (voir panier2commande) a la creation des details de la commande
    10663        if (
    10764                $flux['args']['table'] == 'spip_commandes_details'
     
    12582                        $prix=$flux['data']['prix_unitaire_ht'];
    12683                       
    127                 if (_DEBUG_ABONNEMENT) spip_log("a_p_i id_auteur=".$commande['id_auteur']." $statut pour objet = $objet id_commande_detail= $id_commande_detail",'abonnement');
     84                if (_DEBUG_ABONNEMENT) spip_log("flux details id_auteur=".$commande['id_auteur']." $statut pour objet = $objet id_commande_detail= $id_commande_detail",'abonnement');
    12885
    12986                                        $arg=array(
    13087                                                'id_auteur'=>$commande['id_auteur'],
    13188                                                'objet'=>$objet,
    132                                                 'table'=>"spip_".$objet."s",
    133                                                 'ids' => array($id_objet), //tjs envoyer un array
    134                                                 'prix'=>$prix,
    135                                                 'duree'=>3,
    136                                                 'periode'=>'jour',
     89                                                'id_objet' => $id_objet,
    13790                                                'id_commandes_detail'=>$id_commande_detail,
    138                                                 'statut'=>$commande['statut'],
     91                                                'statut_abonnement'=>$commande['statut'],
    13992                                                );
    140 
    141                                         include_spip('action/editer_contactabonnement');
    142                                         editer_contactabonnement($arg);
    143                 }
     93                                        include_spip('action/editer_contacts_abonnement');
     94                                        insert_contacts_abonnement($arg);
     95                }
     96        }
     97       
     98        //pour les details a la modif de la commande
     99        if (
     100                $flux['args']['table'] == 'spip_commandes'
     101                and ($id_commande = intval($flux['args']['id_objet'])) > 0
     102                and ($id_auteur = intval($flux['data']['id_auteur'])) > 0
     103        ){
     104                       
     105                //statut de la commande
     106                $statut=$flux['data']['statut'];
     107               
     108                if (_DEBUG_ABONNEMENT) spip_log("modif id_commande=$id_commande statut=$statut pour auteur=$id_auteur",'abonnement');
     109               
     110                // si dans les details de la commande il y a abonnement, article ou rubrique en objet
     111                $objets=array('article','rubrique','abonnement');
     112                foreach($objets as $objet){
     113                        if (_DEBUG_ABONNEMENT) spip_log("a_p_i objet= $objet",'abonnement');           
     114
     115                        $commande_abos = sql_allfetsel(
     116                                '*',
     117                                'spip_commandes_details',
     118                                'id_commande = '.$id_commande." AND objet='$objet'"
     119                        );
     120                       
     121                                // Pour chaque commande contenant article ou rubrique en objet
     122                                foreach($commande_abos as $abo){
     123                                       
     124                                        $id_commandes_detail=$abo['id_commandes_detail'];
     125                                        //$id_objet=$abo['id_objet'];
     126                                       
     127                                        //recupere id_contacts_abonnement si il existe
     128                                        $contact_abo = sql_fetsel('id_contacts_abonnement,statut_abonnement', 'spip_contacts_abonnements', 'id_commandes_detail='.$id_commandes_detail);
     129                                       
     130                                        $id_contacts_abonnement=$contact_abo['id_contacts_abonnement'];
     131                                        if (_DEBUG_ABONNEMENT) spip_log("pour id_contacts_abonnement = $id_contacts_abonnement on fait ".'id_commandes_detail='.$id_commandes_detail,'abonnement');
     132
     133                                       
     134                                        //on institue le contacts_abonnement
     135                                        $action = charger_fonction('instituer_contacts_abonnement', 'action');
     136                                        $action($id_contacts_abonnement."-".$statut);
     137                                }
     138                }
     139
    144140        }
    145141
     
    152148//affiche les abonnements auxquels l'auteur est abonne (sur auteur_infos)
    153149function abonnement_affiche_milieu($flux){
    154         if($flux['args']['exec'] == 'auteur_infos') {
    155                 $legender_auteur_supp = recuperer_fond('prive/abonnement_fiche',array('id_auteur'=>$flux['args']['id_auteur']));
    156                 $flux['data'] .= $legender_auteur_supp;
     150        if($flux['args']['exec'] == 'auteur_infos' && $id_auteur=$flux['args']['id_auteur']) {
     151                include_spip('inc/presentation');
     152                $flux['data'] .= recuperer_fond('prive/boite/contacts_abonnements', array('page_envoi'=>'auteur_infos','id_auteur'=>$id_auteur), array('ajax'=>true));
    157153        }
    158154
     
    184180                if ($source && intval($id_source)) {
    185181       
    186 //todo a partir de source et id_source on essaie de retrouver les abonnes en cascade?
    187 //on les affichera avec l'icone de leur abonnement (article-rubrique-abonnement)?
     182//a partir de source et id_source on retrouve les abonnes en cascade
     183//on les affiche avec l'icone de leur abonnement (article-rubrique-abonnement)?
    188184
    189185                $contexte= array(
     
    207203//affiche liste des abonnements pour s'abonner dans le formulaire d'un auteur
    208204function abonnement_editer_contenu_objet($flux){
    209         if ($flux['args']['type']=='auteur') {
    210                 if (autoriser('modifier','abonnement')){
    211                 $abonnement = recuperer_fond('prive/abonnement_fiche_modif',array('id_auteur'=>$flux['args']['id']));
    212                 $flux['data'] = preg_replace('%(<li class="editer_pgp(.*?)</li>)%is', '$1'."\n".$abonnement, $flux['data']);
    213                 }
    214         }
     205
     206       
    215207        return $flux;
    216208}
     
    232224 */
    233225function abonnement_post_edition($flux){
    234                
    235         // lors de l'edition d'un auteur
    236         if ($flux['args']['table']=='spip_auteurs') {
    237                
    238                 //valable 3 jours, todo in config
    239                 $statut ='offert';
    240                 $duree = 3;
    241                 $id_auteur=$flux['args']['id_objet'];
    242                
    243                 $objets=array('article','rubrique','abonnement');
    244                
    245                 foreach($objets as $objet){
    246                         $ids=_request($objet.'s');
    247                         if ($ids && is_array($ids)) {                           
    248                                 $args=array(
    249                                 'id_auteur'=> $id_auteur,
    250                                 'objet'=>$objet,
    251                                 'table'=>"spip_".$objet."s",
    252                                 'ids' => $ids,
    253                                 'duree'=>$duree,
    254                                 'statut'=>$statut
    255                                 );
    256                                 if (_DEBUG_ABONNEMENT) spip_log("APE args ".$args['table'] ." ids0=".$args['ids'][0],'abonnement');
    257                                 include_spip('action/editer_contactabonnement');
    258                                 editer_contactabonnement($args);
    259                         }       
    260                 }
    261 
    262         }
    263226
    264227               
     
    267230                        $flux['args']['table'] == 'spip_commandes'
    268231                ){
    269                 spip_log("abonnement_post_edition args ".join(",\n", $flux['args'])."data= ".join(",\n", $flux['data']),'commande');
     232                if (_DEBUG_ABONNEMENT) spip_log("abonnement_post_edition args ".join(",\n", $flux['args'])." data= ".join(",\n", $flux['data']),'commande');
    270233                $flux = abonnement_post_insertion($flux);
    271234                }
  • _plugins_/abonnement/zabonnement/trunk/action/editer_contacts_abonnement.php

    r51511 r51675  
    33if (!defined("_ECRIRE_INC_VERSION")) return;
    44
    5 function editer_contactabonnement($arg=null)
    6 {
     5function action_editer_contacts_abonnement_dist($arg=null) {
     6
    77        if (is_null($arg)){
    88                $securiser_action = charger_fonction('securiser_action', 'inc');
    99                $arg = $securiser_action();
    1010        }
    11        
    12         $id_auteur=$arg['id_auteur'];
    13         $statut=$arg['statut'];
    14         $objet=$arg['objet'];
    15         $table=$arg['table'];
    16         $ids=$arg['ids'];
    17         $prix=$arg['prix'];
    18         $duree=$arg['duree'];
    19         $periode=$arg['periode'];
    20         $statut=$arg['statut'];
    21         $id_commandes_detail=$arg['id_commandes_detail'];
    22         $stade_relance=$arg['stade_relance'];
    23        
    24         if (_DEBUG_ABONNEMENT) spip_log("editer_contactabonnement $objet ".$ids[0]." pour $id_auteur",'abonnement');
    25 
    26         if(is_array($ids) && $id_auteur>0)
    27         foreach($ids as $key => $id_objet)
    28         {
    29                 if($id_objet!='non')
    30                 {
    31                         //objet = rubrique, article ou abonnement
     11               
     12        // si id_contacts_abonnement n'est pas un nombre, c'est une creation
     13        if (!$id_contacts_abonnement = intval($arg)) {
     14                $id_contacts_abonnement = insert_contacts_abonnement(array(
     15                        'id_auteur'=>_request('id_auteur'),
     16                        'objet'=>_request('objet'),
     17                        'id_objet'=>_request('id_objet')
     18                        ));
     19
     20        }
     21       
     22        // Enregistre l'envoi dans la BD
     23        if ($id_contacts_abonnement > 0) $err = contacts_abonnement_set($id_contacts_abonnement);
     24
     25        return array($id_contacts_abonnement,$err);
     26}
     27
     28/**
     29 * Crée un nouveau contacts_abonnement et retourne son ID
     30 *
     31 * @param array $champs Un tableau avec les champs par défaut lors de l'insertion
     32 * @return int id_organisation
     33 */
     34function insert_contacts_abonnement($champs=array()) {
     35        $id_contacts_abonnement = false;
     36       
     37        // On insère seulement s'il y a un auteur correct
     38        if (isset($champs['id_auteur']) and $champs['id_auteur'] = intval($champs['id_auteur'])){
     39                // Si id_auteur vaut 0 ou n'est pas defini, ne pas creer de commande et envoyer message impossible
     40                if (!$id_auteur = intval($champs['id_auteur']))
     41                        return false; // ? minipress(); ?
     42                }
     43
     44        // Le stade de relance à zero
     45        $champs['stade_relance'] = '0';
     46        // Statut en cours
     47        $champs['statut_abonnement'] = $champs['statut_abonnement']?$champs['statut_abonnement']:'encours';
     48       
     49        //if($champs['page_envoi']=='auteur_infos') spip_log("YES $champs['page_envoi']",'contacts_abonnement');
     50       
     51        if(($id_objet=$champs['id_objet'])&&($objet=$champs['objet'])&&($id_auteur=$champs['id_auteur'])>0){
     52                $table='spip_'.$objet.'s';     
     53                //objet = rubrique, article ou abonnement
    3254                        $verif = sql_fetsel('*', $table, 'id_'."$objet = " . $id_objet);
    33                         //le statut change-t-il?
    34                         $contact_abo = sql_fetsel('statut_abonnement', 'spip_contacts_abonnements', 'id_commandes_detail='.$id_commandes_detail);
    3555                        if (!$verif)
    3656                        {
     
    3959                        }
    4060                       
     61                //creation
    4162                        $calculer_prix = charger_fonction('prix', 'inc/');
    4263                        $prix=($statut=='offert')?'':$calculer_prix($objet,$id_objet);//pas de prix puisque offert
     
    4768                        include_spip('abonnement_fonctions');
    4869                        $validite = modifier_date($date,$duree);
    49                        
    50                         //specific a abonnement
     70               
     71                //specific a abonnement
    5172                        if($objet=='abonnement'){
    5273                                $prix=($statut=='offert')?'':$verif['prix'];//pas de prix puisque offert
     
    6384                                }
    6485                        }
    65                                
    66                         if (_DEBUG_ABONNEMENT) spip_log("editer_contactabonnement $objet $id_objet date $validite",'abonnement');
    67 
    68                         if (!$deja = sql_getfetsel('id_auteur,validite','spip_contacts_abonnements',
    69                                 'id_auteur='.$id_auteur.' AND id_objet='.sql_quote($id_objet)." AND objet='$objet'")
    70                                 )
    71                         {
    72                                 $ids_zone=$verif['ids_zone'];
    73                                 if($ids_zone!='')
     86                //ouverture des zones
     87                        if($ids_zone=$verif['ids_zone'])
    7488                                ouvrir_zone($id_auteur,$ids_zone);
    75                                        
    76                                 sql_insertq("spip_contacts_abonnements",array(
    77                                         'id_auteur'=> $id_auteur,
    78                                         'objet'=>$objet,
    79                                         'id_objet' => $id_objet,
    80                                         'date'=>$date,
    81                                         'validite'=>$validite,
    82                                         'prix'=>$prix,
    83                                         'id_commandes_detail'=>$id_commandes_detail,
    84                                         'statut_abonnement'=>$statut
    85                                         ));
    86                         }else{                                 
    87                                 if (_DEBUG_ABONNEMENT) spip_log("editer_contactabonnement pour auteur=$id_auteur $objet $id_objet existe deja",'abonnement');
    88 
    89                                 //si le statut est different on le modifie
    90                                 //attention dans la page auteur modification chaque fois todo a revoir
    91                                 if($contact_abo['statut_abonnement']!=$statut){
    92                                 sql_updateq("spip_contacts_abonnements",array('statut_abonnement'=>$statut),
    93                                         'id_auteur='.$id_auteur.' and id_objet='.sql_quote($id_objet)." and objet='$objet'");
    94                                 if (_DEBUG_ABONNEMENT) spip_log("editer_contactabonnement modification du statut car ".$contact_abo['statut_abonnement']."!=$statut",'abonnement');
    95                                 }
    96                                 //modif des dates d'echeances
    97                                 $echeances = _request('validites');
    98                                 if($echeances[$key]!='' && ($echeances[$key]!=$deja['validite'])){
    99                                         if (_DEBUG_ABONNEMENT) spip_log("changer date ". $echeances[$key]."!=".$deja['validite'],'abonnement');
    100                                 sql_updateq("spip_contacts_abonnements",array('validite'=>$echeances[$key]),
    101                                         'id_auteur='.$id_auteur.' and id_objet='.sql_quote($id_objet)." and objet='$objet'");
    102                                 }
    103                         }
    104                 }
    105         }
    106                         // Notifications, gestion des revisions, reindexation...
    107                 pipeline('post_edition',
     89                       
     90                        $champs['date']=$date;
     91                        $champs['validite']=$validite;
     92                        $champs['prix']=$prix;
     93        }
     94       
     95        // Envoyer aux plugins avant insertion
     96        $champs = pipeline('pre_insertion',
    10897                array(
    10998                        'args' => array(
    11099                                'table' => 'spip_contacts_abonnements',
    111                                 'id_auteur' => $id_auteur,
    112                                 'objet'=>$objet,
    113                                 'id_objet' => $id_objet,
    114                                 'statut_abonnement' => $statut
    115100                        ),
    116                         'data' => $ids
     101                        'data' => $champs
    117102                )
     103        );
     104       
     105        // Insérer l'objet
     106        if (_DEBUG_ABONNEMENT) spip_log("insert_contacts_abonnement ".join(' | ',$champs),"contacts_abonnement");
     107        $id_contacts_abonnement = sql_insertq('spip_contacts_abonnements', $champs);
     108       
     109        // Envoyer aux plugins après insertion
     110        pipeline('post_insertion',
     111                array(
     112                        'args' => array(
     113                                'table' => 'spip_contacts_abonnements',
     114                        ),
     115                        'data' => $champs
     116                )
     117        );
     118       
     119        return $id_contacts_abonnement;
     120}
     121
     122/**
     123 * Appelle la fonction de modification d'un contacts_abonnement
     124 *
     125 * @param int $id_contacts_abonnement
     126 * @param unknown_type $set
     127 * @return $err
     128 */
     129function contacts_abonnement_set($id_contacts_abonnement, $set=null) {
     130        $err = '';
     131
     132        if (is_null($set)){
     133                $c = array();
     134                foreach (array(
     135                        'id_auteur', 'objet', 'id_objet', 'date',
     136                        'validite','statut_abonnement','stade_relance',
     137                ) as $champ)
     138                        $c[$champ] = _request($champ);
     139        }
     140        else
     141                $c = $set;
     142               
     143                               
     144                //array des champs dates
     145                        $type_dates=array('date','validite');
     146                       
     147                        foreach ($type_dates as $type_date){
     148                                $date = $c[$type_date];
     149                                if($date){
     150                                        list($jour, $mois, $annee) = explode('/',$date);
     151                                        $date =$annee.'-'.$mois.'-'.$jour;
     152                                        $c[$type_date]=$date;
     153                                        }       
     154                                       
     155                       
     156                        }
     157               
     158
     159        if (_DEBUG_ABONNEMENT) spip_log("contacts_abonnement_set ".join(' | ',$c),"contacts_abonnement");
     160       
     161        include_spip('inc/modifier');
     162        revision_contacts_abonnement($id_contacts_abonnement, $c);
     163       
     164        // Modification de statut
     165        $c = array();
     166        foreach (array(
     167                'id_auteur', 'date', 'statut_abonnement',
     168        ) as $champ)
     169                $c[$champ] = _request($champ, $set);
     170        $err .= instituer_contacts_abonnement($id_contacts_abonnement, $c);
     171       
     172        return $err;
     173}
     174
     175/**
     176 * Enregistre une révision de contact
     177 *
     178 * @param int $id_produit
     179 * @param array $c
     180 * @return
     181 */
     182function revision_contacts_abonnement($id_contacts_abonnement, $c=false) {
     183        $invalideur = "id='id_contacts_abonnement/$id_contacts_abonnement'";
     184       
     185        modifier_contenu('contacts_abonnement', $id_contacts_abonnement,
     186                array(
     187                        'invalideur' => $invalideur
     188                ),
     189                $c);
     190        return ''; // pas d'erreur
     191}
     192
     193/**
     194 * Modifie des éléments à part que sont l'auteur, la date, le statut
     195 *
     196 * @param int $id_contacts_abonnement
     197 * @param array $c
     198 * @return
     199 */
     200function instituer_contacts_abonnement($id_contacts_abonnement, $c){
     201
     202        include_spip('inc/autoriser');
     203        include_spip('inc/modifier');
     204       
     205        $row = sql_fetsel("id_auteur, objet, id_objet, statut_abonnement, date, validite", "spip_contacts_abonnements", "id_contacts_abonnement=$id_contacts_abonnement");
     206        $id_auteur = $row['id_auteur'];
     207        $statut_ancien = $statut = $row['statut_abonnement'];
     208        $date_ancienne = $date = $row['date'];
     209        $champs = array();
     210       
     211        $d = isset($c['date']) ? $c['date'] : null;
     212        $s = isset($c['statut_abonnement']) ? $c['statut_abonnement'] : $statut;
     213       
     214        // On ne modifie le statut que si c'est autorisé
     215        if ($s != $statut or ($d AND $d != $date)) {
     216                //todo = donner l'autorisation a contacts_abonnements_paypal_traitement_paypal
     217                //if (autoriser('modifier', 'contacts_abonnement', $id_contacts_abonnement))
     218                        $statut = $champs['statut_abonnement'] = $s;
     219
     220                // Si on doit changer la date explicitement
     221                if ($d){
     222                        $champs['date'] = $date = $d;
     223                }
     224        }
     225       
     226       
     227
     228        $champs['id_auteur'] = $id_auteur;
     229
     230       
     231        // Envoyer aux plugins
     232        $champs = pipeline(
     233                'pre_edition',
     234                array(
     235                        'args' => array(
     236                                'table' => 'spip_contacts_abonnements',
     237                                'id_objet' => $id_contacts_abonnement,
     238                                'action' => 'instituer',
     239                                'statut_ancien' => $statut_ancien,
     240                        ),
     241                        'data' => $champs
     242                )
     243        );
     244
     245        if (!count($champs)) return;
     246       
     247        // update
     248        sql_updateq('spip_contacts_abonnements', $champs, "id_contacts_abonnement=$id_contacts_abonnement");
     249
     250       
     251
     252        // Invalider les caches
     253        include_spip('inc/invalideur');
     254        suivre_invalideur("id='id_contacts_abonnement/$id_contacts_abonnement'");
     255       
     256        if ($date) {
     257                $t = strtotime($date);
     258                $p = @$GLOBALS['meta']['date_prochain_postdate'];
     259                if ($t > time() AND (!$p OR ($t < $p))) {
     260                        ecrire_meta('date_prochain_postdate', $t);
     261                }
     262        }
     263       
     264        if (_DEBUG_ABONNEMENT) spip_log("il y a un flux post_edition sur contacts_abonnement",'contacts_abonnement');
     265
     266        // Pipeline
     267        pipeline(
     268                'post_edition',
     269                array(
     270                        'args' => array(
     271                                'table' => 'spip_contacts_abonnements',
     272                                'id_objet' => $id_contacts_abonnement,
     273                                'action' => 'instituer',
     274                                'statut_ancien' => $statut_ancien,
     275                        ),
     276                        'data' => $champs
     277                )
     278        );
     279       
     280        // Notifications
     281        /*if ($notifications = charger_fonction('notifications', 'inc', true)) {
     282                $notifications('contacts_abonnement_instituer', $id_contacts_abonnement,
     283                        array('statut' => $statut, 'statut_ancien' => $statut_ancien, 'date'=>$date)
    118284                );
    119                
     285        }*/
     286       
     287        return '';
    120288}
    121289
  • _plugins_/abonnement/zabonnement/trunk/action/supprimer_contacts_abonnement.php

    r51022 r51675  
    77if (!defined("_ECRIRE_INC_VERSION")) return;
    88
    9 // suppression d'un objet abonnement pour un contact
     9// suppression d'un id_contacts_abonnement
    1010/*
    11 [(#URL_ACTION_AUTEUR{supprimer_contactabonnement,contactabonnement-#ID_AUTEUR-#ID_OBJET-#OBJET,[(#ENV{retour,#SELF})]})],
     11[(#URL_ACTION_AUTEUR{supprimer_contacts_abonnement,contacts_abonnement-#ID_CONTACTS_ABONNEMENT-#ID_OBJET-#OBJET,[(#ENV{retour,#SELF})]})],
    1212ajax,
    1313<:abo:confirmer_supprimer_element:>})]
    1414*/
    1515       
    16 function action_supprimer_contactabonnement_dist($arg=null) {
     16function action_supprimer_contacts_abonnement_dist($arg=null) {
    1717        if (is_null($arg)){
    1818                $securiser_action = charger_fonction('securiser_action', 'inc');
     
    2121        $arg = explode('-', $arg);
    2222
    23         // todo verifier suppression dans la commande !!
    24         if ($arg[0] == 'contactabonnement' and intval($arg[1]) and intval($arg[2])) {
    25                 action_supprimer_contactabonnement_post($arg[1],$arg[2],$arg[3]);
     23        if ($arg[0] == 'contacts_abonnement' and intval($arg[1]) and intval($arg[2])) {
     24                action_supprimer_contacts_abonnement_post($arg[1],$arg[2],$arg[3]);
    2625        }       
    2726
    2827}
    2928
    30 function action_supprimer_contactabonnement_post($id_auteur,$id_abonnement,$objet) {
    31 
    32         if ($id_auteur and $id_abonnement) {
     29function action_supprimer_contacts_abonnement_post($id_contacts_abonnement,$id_abonnement,$objet) {
     30        if (_DEBUG_ABONNEMENT) spip_log("suppression de $id_contacts_abonnement",'contacts_abonnement');
     31        if ($id_contacts_abonnement and $id_abonnement and $objet=='abonnement') {
    3332                //on ferme la zone si elle existe
    3433                $abonnement = sql_fetsel('*', 'spip_abonnements', 'id_abonnement = '. $id_abonnement);
    3534                $ids_zone=$abonnement['ids_zone'];
    3635                        if($ids_zone!='')
    37                         fermer_zone($id_auteur,$ids_zone);
     36                        fermer_zone($id_contacts_abonnement,$ids_zone);
     37                }
    3838               
    3939                // on supprime la liaison auteur-objet de l'abonnement
    4040                sql_delete("spip_contacts_abonnements", array(
    41                         "id_auteur=" . sql_quote($id_auteur),
    42                         "id_objet=" . sql_quote($id_abonnement),
    43                         "objet='$objet'"
     41                        "id_contacts_abonnement=" . sql_quote($id_contacts_abonnement)
    4442                ));
    4543
    46         }
    47        
    48 
    4944        include_spip('inc/invalideur');
    50         //suivre_invalideur("id='id_contactabonnement/$id_contactabonnement'");
     45        suivre_invalideur("id='id_contacts_abonnement/$id_contacts_abonnement'");
    5146}
    5247?>
  • _plugins_/abonnement/zabonnement/trunk/formulaires/lier_objets_abonne.php

    r50241 r51675  
    3333function formulaires_lier_objets_abonne_traiter($objet, $source, $id_source, $identifiant){
    3434        $id_objet = _request('pid_objet');
    35         include_spip('action/editer_contactabonnement');
     35        include_spip('action/editer_contacts_abonnement');
    3636                        $arg=array(
    3737                                'id_auteur'=>$id_objet,
    3838                                'objet'=>$source,
    39                                 'table'=>"spip_".$source."s",
    40                                 'ids' => array($id_source), //tjs envoyer un array
    41                                 'statut'=>'offert',//puisque espace prive
     39                                'id_objet' => $id_source,
     40                                'statut_abonnement'=>'offert',//puisque espace prive
    4241                                );
    4342
    44                         editer_contactabonnement($arg);
     43                        insert_contacts_abonnement($arg);
    4544       
    4645        return array(true,''); // permettre d'editer encore le formulaire
  • _plugins_/abonnement/zabonnement/trunk/lang/abo_fr.php

    r50215 r51675  
    66        "articles" => "Articles",
    77        'bouton_ajouter' => 'Ajouter',
     8        'bouton_ajouter_contactabonnement' => 'Ajouter un abonnement',
     9        'bouton_ajouter_contactabonnement_rubrique' => 'Ajouter une rubrique',
     10        'bouton_ajouter_contactabonnement_article' => 'Ajouter un article',
    811        'bouton_chercher' => 'Chercher',
    912        'confirmer_supprimer_element'=>'Attention, vous avez demand&eacute; &agrave; supprimer un &eacute;l&eacute;ment. Souhaitez-vous continuer?',
     
    1518        "abonnement_fin"=>"&Eacute;ch&eacute;ance",
    1619        'delier'=>'D&eacute;lier',
     20        'info_gauche_numero_contacts_abonnement'=>'N° Suivi de l\'abonnement',
     21        'info_gauche_numero_abonnement'=>'N° de l\'abonnement',
     22        'info_contacts_abonne'=>'Auteur abonné',
     23        'info_contacts_objet'=>'Objet de l\'abonnement',
     24        'info_contacts_commande_liee'=>'Commande liée',
     25        'nouvel_abonnement'=>'Nouvel abonnement',
     26        'abonner_rubrique'=>'Abonner à une rubrique',
     27        'abonner_article'=>'Abonner à un article',
    1728        'voir'=>'Voir',
    1829        "abonnements_echus" => "Abonnements &eacute;chus",
     
    169180        "mon_article" => "Mon article",
    170181        "simulation_paiement" => "Tester une simulation de paiement avec ces boutons",
    171         "suivi_abonnements"=>"Suivi des abonnements",
     182        "suivi_abonnes"=>"Suivi des abonnés",
    172183        "ajouter_adherent"=>"Ajouter un abonn&eacute;",
    173184        "adherents"=>"Voir les abonn&eacute;s",
    174185        'article_abonnement'=>'Article',
    175186        'statut_abonnement'=>'Statut',
     187        'statut_attente'=>'En attente',
    176188        'statut_offert'=>'Offert',
    177189        'statut_paye'=>'Pay&eacute;',
     190        'statut_encours'=>'En cours',
    178191        'statut_echu'=>'&eacute;chu',
    179192        'date_abonnement'=>'Date',
    180         'suivi_abonnements'=>'Suivi des abonnements',
    181193        'vos_acces_articles'=>'Vous avez acc&egrave;s aux articles suivants :',
    182194        'vos_acces_articles_echus'=>'Vous n\'avez plus acc&egrave;s aux articles suivants :',
  • _plugins_/abonnement/zabonnement/trunk/plugin.xml

    r51028 r51675  
    33        <auteur>Anne-lise Martenot (elastick.net) - BoOz (booz@reo.net)
    44        </auteur>
    5         <version>1.3.3</version>
     5        <version>1.3.4</version>
    66        <version_base>1.2</version_base>
    77        <etat>
  • _plugins_/abonnement/zabonnement/trunk/prive/abonnement_fiche.html

    r50215 r51675  
    11#SET{today,#DATE}
    2 [(#SET{icone,[(#CHEMIN{images/abonnement_22.png}|url_absolue)]})]
    3 [(#VAL{e}|debut_cadre{#GET{icone},'',[(#VAL{<:abo:abonnements:>}|bouton_block_depliable{[(#GET{plie}?{#EVAL{true},#EVAL{false}})],#GET{identifiant}})]})]
    4 
    5 <BOUCLE_actifs(CONTACTS_ABONNEMENTS){id_auteur}{objet=abonnement}{par validite}>
    6         <div class="liste-elements abos" style="background:#FFFFFF;font-size: 1em;padding: 0 1em;">
     2<B_actifs>
     3#ANCRE_PAGINATION
     4<div id='contacts_#ENV{objet}_#ID_AUTEUR' class="liste-elements abonnement">
     5<table class='spip liste'>
     6        <tbody>
     7<BOUCLE_actifs(CONTACTS_ABONNEMENTS){id_auteur}{objet=#ENV{objet}}{par validite}{pagination #ENV{nb,10}}>
     8        <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
     9        <td>
    710        <BOUCLE_lib0(ABONNEMENTS){id_abonnement=#ID_OBJET}>
    8         <p><strong><:abo:titre:></strong> : <a href="#URL_ECRIRE{abonnements}">#TITRE</a></p>
     11        <p><strong><:abo:abonnement:></strong> : <a href="#URL_ECRIRE{abonnement_edit,id_abonnement=#ID_ABONNEMENT}">#TITRE</a></p>
    912        </BOUCLE_lib0>
    1013        <p><strong><:abo:statut_abonnement:></strong> : [(#VAL{abo:statut_#STATUT_ABONNEMENT}|_T)]</p>
     
    1316        <p><:abo:liaison_commande:><a href="#URL_ECRIRE{commandes}">#ID_COMMANDE</a></p>
    1417        </BOUCLE_quellecommande><!--<p><:abo:aucune_liaison_commande:></p>--><//B_quellecommande>
    15        
    16                 <div style="float:right; text-align:right; width:30px; position:relative; top:-30px">
    17                 [(#AUTORISER{modifier,#ENV{objet},#ENV{id_objet}}|oui)
    18         [(#BOUTON_ACTION{
    19                         [(#CHEMIN{images/supprimer-16.png}|balise_img{<:abo:supprimer_abonnement:>})],
    20                         [(#URL_ACTION_AUTEUR{supprimer_contactabonnement,contactabonnement-#ID_AUTEUR-#ID_OBJET-#OBJET,[(#ENV{retour,#SELF})]})],
    21                         ajax,
    22                         <:abo:confirmer_supprimer_element:>})
    23         ]
    24                 ]
    25                 </div>
    26         </div>
     18        </td>
     19                <td class='action' style="vertical-align:bottom">
     20                        [(#AUTORISER{modifier,auteur,#ID_AUTEUR}|oui)
     21                                [(#BOUTON_ACTION{[(#CHEMIN{images/editer-16.png}
     22                                        |balise_img{<:abo:modifier_abonnement:>})],
     23                                        [(#URL_ECRIRE{contacts_abonnement_edit}
     24                                                |parametre_url{id_contacts_abonnement,#ID_CONTACTS_ABONNEMENT}
     25                                                |parametre_url{objet,#OBJET}
     26                                                |parametre_url{id_objet,#ID_OBJET}
     27                                                |parametre_url{retour,[(#ENV{retour,#SELF})]})],ajax})]
     28                                               
     29                                [(#BOUTON_ACTION{
     30                                        [(#CHEMIN{images/supprimer-16.png}|balise_img{<:abo:supprimer_abonnement:>})],
     31                                        [(#URL_ACTION_AUTEUR{supprimer_contacts_abonnement,contacts_abonnement-#ID_CONTACTS_ABONNEMENT-#ID_OBJET-#OBJET,[(#ENV{retour,#SELF})]})],
     32                                        ajax,
     33                                        <:abo:confirmer_supprimer_element:>})]
     34                        ]
     35                </td>
     36        </tr>
    2737</BOUCLE_actifs>
    28 [(#VAL{e}|fin_cadre)]
     38        </tbody>
     39</table>
     40[<p class='pagination'>(#PAGINATION{prive})</p>]
     41</div>
     42</B_actifs>
    2943
  • _plugins_/abonnement/zabonnement/trunk/prive/exec/abonnement_edit.html

    r50215 r51675  
     1[(#AUTORISER{modifier,#ENV{objet},#ENV{id_objet}}|oui)
     2        <!--#hierarchie-->
     3        <div id="chemin">
     4                <span class="bloc">
     5                <a href="#URL_ECRIRE{abonnements}"><:abo:abonnements:></a>
     6                </span>
     7                <span class="bloc">
     8                <em> &gt; </em>[(#ENV{id_abonnement}|intval|?{<:abo:editer_abonnement:>,<:abo:creer_abonnement:>})]
     9                </span>
     10        </div>
     11        <!--/#hierarchie-->
     12         
     13        <!--#navigation-->
     14        [(#REM) Ce pipeline charge prive/infos/$type ]
     15        [(#VAL{inc/presentation}|include_spip|non)]
     16        [<div class='cadre cadre-info'>
     17                (#PIPELINE{boite_infos,[(#ARRAY{
     18                        args,[(#ARRAY{
     19                                type,abonnement,
     20                                id,#ENV{id_abonnement}})],
     21                        data,''})]})
     22        </div>]
     23        <!--/#navigation-->
     24         
     25        <div class='cadre-formulaire-editer'>
     26        <div class="entete-formulaire">
     27                [(#ENV{retour,#URL_ECRIRE{abonnements}}|icone{<:icone_retour:>, #CHEMIN{images/abonnement_22.png}, #LANG_LEFT})]
    128
    2 [(#ENV{redirect}|sinon{#URL_ECRIRE{abonnements}}
    3         |icone{<:icone_retour:>,[(#CHEMIN{images/abonnement_22.png})],left,rien.gif}
    4 )]
    5 
    6 <h1>[(#ENV{id_abonnement}|intval|?{<:abo:editer_abonnement:>,<:abo:creer_abonnement:>})]</h1>
    7        
    8 <div class="ajax">
    9 [(#FORMULAIRE_EDITER_ABONNEMENT{#ENV{id_abonnement,new},#ENV{redirect}})]
    10 </div>
     29                <h1>[(#ENV{id_abonnement}|intval|?{<:abo:editer_abonnement:>,<:abo:creer_abonnement:>})]</h1>
     30        </div>
     31                <div class='ajax'>
     32                [(#FORMULAIRE_EDITER_ABONNEMENT{#ENV{id_abonnement,new},#ENV{retour}})]
     33                </div>
     34        </div>
     35]
  • _plugins_/abonnement/zabonnement/trunk/prive/exec/abonnements_stats.html

    r49813 r51675  
    1 <h1><:abo:suivi_abonnements:></h1>
     1<h1><:abo:suivi_abonnes:></h1>
    22
    33<div class='ajax'>
  • _plugins_/abonnement/zabonnement/trunk/prive/liste/abonnements.html

    r49886 r51675  
    55[<caption><strong class="caption">(#ENV*{titre,<:abo:liste_des_abonnements:>})</strong></caption>]
    66        <thead>
    7         <tr>
     7        <tr>    <th><:abo:id:></th>
    88                <th><:abo:label_titre:></th>
    9                 <th ><:abo:label_duree:></th>
     9                <th><:abo:label_duree:></th>
    1010                <th><:abo:label_zones_ouvrir:></th>
    1111                <th><:abo:exact:></th>
     
    1515        </thead>
    1616        <tbody>
    17         <BOUCLE_liste_abonnements(ABONNEMENTS){pagination 10}{par num titre}>
     17        <BOUCLE_liste_abonnements(ABONNEMENTS){pagination 10}{par id_abonnement}>
    1818                <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
     19                        <td>#ID_ABONNEMENT</td>
    1920                        <td class="#EDIT{titre}" style="width:30%">#TITRE</td>
    2021                        <td>#DUREE #PERIODE</td>
  • _plugins_/abonnement/zabonnement/trunk/prive/liste/abonnements_stats.html

    r51511 r51675  
    3232                {pagination #ENV{nb,30}}>
    3333                <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
    34                         <td class='id'>#ID_CONTACTS_ABONNEMENT</td>
     34                        <td class='id'><a href="#URL_ECRIRE{contacts_abonnement_edit,id_contacts_abonnement=#ID_CONTACTS_ABONNEMENT}">#ID_CONTACTS_ABONNEMENT</a></td>
    3535                        <td class='statut_abo'>[(#VAL{abo:statut_#STATUT_ABONNEMENT}|_T)]</td>
    3636                        <td class='commande'>
     
    6969                                        [(#BOUTON_ACTION{                               
    7070                                                <:abo:supprimer:>,
    71                                                 [(#URL_ACTION_AUTEUR{supprimer_contactabonnement,contactabonnement-#ID_AUTEUR-#ID_OBJET-#OBJET}|parametre_url{redirect,#SELF})],
     71                                                [(#URL_ACTION_AUTEUR{supprimer_contacts_abonnement,contacts_abonnement-#ID_CONTACTS_ABONNEMENT-#ID_OBJET-#OBJET}|parametre_url{redirect,#SELF})],
    7272                                                ajax,<:abo:confirmer_supprimer_element:>})]
    7373                                ]
  • _plugins_/abonnement/zabonnement/trunk/prive/liste/inc-lister-contacts_abonnements.html

    r50215 r51675  
    2222        [(#BOUTON_ACTION{
    2323                        [(#CHEMIN{images/supprimer-16.png}|balise_img{<:abo:supprimer_abonnement:>})],
    24                         [(#URL_ACTION_AUTEUR{supprimer_contactabonnement,contactabonnement-#ID_AUTEUR-#ID_OBJET-#OBJET,[(#ENV{retour,#SELF})]})],
     24                        [(#URL_ACTION_AUTEUR{supprimer_contacts_abonnement,contacts_abonnement-#ID_CONTACTS_ABONNEMENT-#ID_OBJET-#OBJET,[(#ENV{retour,#SELF})]})],
    2525                        ajax,
    2626                        <:abo:confirmer_supprimer_element:>})
  • _plugins_/abonnement/zabonnement/trunk/prive/menu_abonnement.html

    r49871 r51675  
    33        [<li><a href="(#URL_PAGE{abonnement})"><:voir_en_ligne:></a></li>]
    44        [<li><a href="(#URL_ECRIRE{abonnements})"><:abo:liste_abonnements:></a></li>]
    5         [<li><a href="(#URL_ECRIRE{abonnements_stats})"><:abo:suivi_abonnements:></a></li>]
    6         [<li><a href="(#URL_ECRIRE{auteur_infos}|parametre_url{new,oui,&})"><:abo:ajouter_adherent:></a></li>]
    7         [<li><a href="(#URL_ECRIRE{inscription2_adherents})"><:abo:adherents:></a></li>]
     5        [<li><a href="(#URL_ECRIRE{abonnements_stats})"><:abo:suivi_abonnes:></a></li>]
    86        [<li><a href="(#URL_ECRIRE{cfg}|parametre_url{cfg,abonnement,&})"><:abo:configuration_abonnements:></a></li>]
    97        </ul>
Note: See TracChangeset for help on using the changeset viewer.