Changeset 103860 in spip-zone


Ignore:
Timestamp:
Apr 10, 2017, 3:28:05 PM (2 years ago)
Author:
cedric@…
Message:

Eviter de trop morceler le code : le plugin panier est naturellement predispose pour fonctionner avec les commandes du plugin commandes, sans plugin intermediaire
Aucune rupture de compatibilite :

  • Cela n'empeche pas de l'utiliser avec autre chose si c'etait le cas avant
  • Si le plugin panier2commande reste actif, pas de collision, tout continue de fonctionner, mais il n'est plus utile, donc
Location:
_plugins_/paniers/trunk
Files:
3 edited
1 copied

Legend:

Unmodified
Added
Removed
  • _plugins_/paniers/trunk/paniers_options.php

    r90530 r103860  
    1616}
    1717
     18// si on a une transformation panier=>commande en attente et qu'on est connecte,
     19// creer la commande
     20if (  isset($_COOKIE['spip_pwl']) AND $_COOKIE['spip_pwl']
     21        AND isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur']){
     22
     23        include_spip('inc/filtres');
     24        $contexte = decoder_contexte_ajax($_COOKIE['spip_pwl'],'spip_pwl');
     25        $arg = reset($contexte);
     26        $commandes_paniers = charger_fonction("commandes_paniers","action");
     27        $commandes_paniers($arg);
     28        include_spip('inc/cookie');
     29        spip_setcookie("spip_pwl",$_COOKIE['spip_pwl'] = '',0);
     30}
     31
    1832
    1933/**
     
    2640        return $quantite;
    2741}
     42
     43// Eviter une collistion de fonction si le plugin deprecie panier2commande est encore actif
     44if (!defined('_DIR_PLUGIN_PANIER2COMMANDE')){
     45        /**
     46         * Creer la commande si connecte ou renvoyer vers la page de login
     47         * @param null $arg
     48         */
     49        function action_commandes_paniers_if_loged_dist($arg = null){
     50
     51                // Si $arg n'est pas donne directement, le recuperer via _POST ou _GET
     52                if (is_null($arg)){
     53                        $securiser_action = charger_fonction('securiser_action', 'inc');
     54                        $arg = $securiser_action();
     55                }
     56
     57                // si on est identifie, on peut passer a la commande directement
     58                if (isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur']){
     59                        $commandes_paniers = charger_fonction("commandes_paniers", "action");
     60                        $commandes_paniers($arg);
     61                }
     62                // sinon on note le arg pour creer la commande des qu'on est idenfie
     63                // et on redirige vers la page d'idendification
     64                else {
     65                        include_spip('inc/cookie');
     66                        include_spip('inc/filtres');
     67                        spip_setcookie("spip_pwl", encoder_contexte_ajax(array($arg), 'spip_pwl'));
     68
     69                        $GLOBALS['redirect'] = parametre_url(generer_url_public('qui'), 'url', _request('redirect'));
     70                }
     71        }
     72}
  • _plugins_/paniers/trunk/paniers_pipelines.php

    r55900 r103860  
    4949}
    5050
    51 ?>
     51
     52/**
     53 * Sur une transformation de commande en attente
     54 * on supprime le panier source si besoin
     55 * @param $flux
     56 * @return @flux
     57 */
     58function paniers_post_edition($flux){
     59
     60        // Si on est dans le cas d'une commande qui passe de attente/en cours=>paye/livre/erreur
     61        if ($flux['args']['table']=='spip_commandes'
     62          AND $id_commande=$flux['args']['id_objet']
     63          AND $flux['args']['action']=='instituer'
     64          AND isset($flux['data']['statut'])
     65    AND !in_array($flux['data']['statut'],array('attente','encours'))
     66          AND in_array($flux['args']['statut_ancien'],array('attente','encours'))
     67          AND $commande = sql_fetsel('id_commande, source', 'spip_commandes', 'id_commande='.intval($id_commande))){
     68
     69                if (preg_match(",^panier#(\d+)$,",$commande['source'],$m)){
     70                        $id_panier = intval($m[1]);
     71                        $supprimer_panier = charger_fonction('supprimer_panier', 'action/');
     72                        $supprimer_panier($id_panier);
     73
     74                        // nettoyer une eventuelle double commande du meme panier
     75                        sql_updateq("spip_commandes",array('source'=>''),"source=".sql_quote($commande['source']));
     76                        #spip_log('suppression panier '.$id_panier,'paniers');
     77                }
     78
     79        }
     80
     81        return $flux;
     82}
  • _plugins_/paniers/trunk/paquet.xml

    r99416 r103860  
    22        prefix="paniers"
    33        categorie="divers"
    4         version="1.0.14"
     4        version="1.1.0"
    55        etat="test"
    66        compatibilite="[3.0.0;3.1.*]"
     
    3131        <pipeline nom="optimiser_base_disparus" inclure="paniers_pipelines.php" /> <!-- suppression liens morts -->
    3232        <pipeline nom="insert_head_css" inclure="paniers_pipelines.php" /> <!-- css pages publiques -->
     33        <pipeline nom="post_edition" inclure="paniers_pipelines.php" />
     34        <pipeline nom="panier2commande_prix" action="" />
    3335
    3436        <menu nom="configurer_paniers" titre="paniers:nom_bouton_plugin" parent="menu_configuration" icone="images/paniers-16.png" />
Note: See TracChangeset for help on using the changeset viewer.