Changeset 88425 in spip-zone


Ignore:
Timestamp:
Apr 2, 2015, 2:49:25 PM (4 years ago)
Author:
rastapopoulos@…
Message:

Lors de l'initialisation d'un abonnement, quand la date de fin n'est pas encore définie, on continue de le calculer par défaut avec la période de l'offre MAIS on ajoute un pipeline dédié à l'initialisation qui permet de changer les dates (y compris de début pourquoi pas) à ce moment. Cela permet par exemple de toujours terminer avec l'année civile ou de faire pile le début et la fin d'un mois, etc.

Location:
_plugins_/abonnements/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/abonnements/trunk/abonnements_pipelines.php

    r87948 r88425  
    6767                       
    6868                        // Calcul de la date de fin
    69                         $modifs['date_fin'] = $abonnement['date_fin'] = date('Y-m-d H:i:s', strtotime($abonnement['date_debut'].$ajout));
    70                 }
    71                
    72                 // S'il le statut est "prepa" c'est une création et on doit changer ça
     69                        $modifs['date_fin'] = date('Y-m-d H:i:s', strtotime($abonnement['date_debut'].$ajout));
     70                       
     71                        $modifs = pipeline(
     72                                'abonnement_initialisation_dates',
     73                                array(
     74                                        'args' => array('abonnement' => $abonnement, 'offre' => $offre),
     75                                        'data' => $modifs
     76                                )
     77                        );
     78                       
     79                        // Si les dates ont été changées, on change le tableau de l'abonnement pour le test de statut qui suivra
     80                        if (isset($modifs['date_debut'])) {
     81                                $abonnement['date_debut'] = $modifs['date_debut'];
     82                        }
     83                        if (isset($modifs['date_fin'])) {
     84                                $abonnement['date_fin'] = $modifs['date_fin'];
     85                        }
     86                }
     87               
     88                // Si le statut est "prepa" c'est une création et on doit changer ça
    7389                // car pour l'instant SPIP ne permet pas de déclarer le statut par défaut !
    7490                if ($abonnement['statut'] == 'prepa') {
  • _plugins_/abonnements/trunk/paquet.xml

    r88411 r88425  
    22        prefix="abonnements"
    33        categorie="auteur"
    4         version="2.3.1"
     4        version="2.3.2"
    55        schema="2.1.0"
    66        etat="stable"
     
    2525
    2626        <pipeline nom="autoriser" inclure="abonnements_autorisations.php" />
    27 
    2827        <pipeline nom="declarer_tables_objets_sql" inclure="base/abonnements.php" />
    2928        <pipeline nom="declarer_tables_interfaces" inclure="base/abonnements.php" />
     
    3534        <pipeline nom="affiche_gauche" inclure="abonnements_pipelines.php" />
    3635        <pipeline nom="affiche_milieu" inclure="abonnements_pipelines.php" />
     36       
     37        <pipeline nom="abonnement_initialisation_dates" action="" />
    3738
    3839        <menu nom="abonnements_offres" titre="abonnementsoffre:titre_abonnementsoffres" parent="menu_publication" icone="images/abonnement-16.png" action="abonnements_offres" />
Note: See TracChangeset for help on using the changeset viewer.