Changeset 47564 in spip-zone


Ignore:
Timestamp:
May 8, 2011, 5:04:08 PM (10 years ago)
Author:
rastapopoulos@…
Message:

On supprime aussi des adresses attachées. Et on ajoute une optimisation de base pour virer les commandes trop vieille (1h en dur pour l'instant).

Location:
_plugins_/commandes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/commandes/commandes_pipelines.php

    r46777 r47564  
    1111}
    1212
     13// Supprimer toutes les commandes en cours qui sont trop vieilles
     14function commandes_optimiser_base_disparus($flux){
     15        include_spip('inc/config');
     16        // On cherche la date depuis quand on a le droit d'avoir fait la commande (par défaut 1h)
     17        $depuis = date('Y-m-d H:i:s', time() - 3600);
     18       
     19        // On récupère les commandes trop vieilles
     20        $commandes = sql_allfetsel(
     21                'id_commande',
     22                'spip_commandes',
     23                'statut = '.sql_quote('encours').' and date<'.sql_quote($depuis).')'
     24        );
     25        if (is_array($commande))
     26                $commandes = array_map('reset', $commandes);
     27       
     28        // S'il y a bien des paniers à supprimer
     29        if ($commandes){
     30                // Le in
     31                $in = sql_in('id_commande', $commandes);
     32               
     33                // On supprime d'abord les détails
     34                sql_delete(
     35                        'spip_commandes_details',
     36                        $in
     37                );
     38               
     39                //On cherche des adresses attachées
     40                if ($adresses_commande = sql_allfetsel(
     41                        'id_adresse',
     42                        'spip_adresses_liens',
     43                        array(
     44                                'objet = '.sql_quote('commande'),
     45                                $in
     46                        )
     47                )){
     48                        $adresses_commande = array_map('reset', $adresses_commande);
     49                        $in2 = sql_in('id_adresse', $adresses_commande);
     50                        sql_delete('spip_adresses_liens', $in2);
     51                        sql_delete('spip_adresses', $in2);
     52                }
     53               
     54                // Puis les commandes
     55                $nombre = intval(sql_delete(
     56                        'spip_commandes',
     57                        $in
     58                ));
     59        }
     60       
     61        $flux['data'] += $nombre;
     62}
     63
    1364?>
  • _plugins_/commandes/inc/commandes.php

    r47544 r47564  
    1616                // On supprime son contenu
    1717                sql_delete('spip_commandes_details', 'id_commande = '.$id_commande);
     18               
     19                // S'il y a des adresses attachées à la commande, on les supprime
     20                if ($adresses_commande = sql_allfetsel('id_adresse', 'spip_adresses_liens', array('objet = '.sql_quote('commande'), 'id_objet = '.$id_commande))){
     21                        $adresses_commande = array_map('reset', $adresses_commande);
     22                        $in = sql_in('id_adresse', $adresses_commande);
     23                        sql_delete('spip_adresses_liens', $in);
     24                        sql_delete('spip_adresses', $in);
     25                }
     26               
    1827                // On supprime la commande
    1928                sql_delete('spip_commandes', 'id_commande = '.$id_commande);
     
    2635        $fonction_reference = charger_fonction('commandes_reference', 'inc/');
    2736       
    28         $champ = array(
     37        $champs = array(
    2938                'reference' => $fonction_reference(),
    3039                'id_auteur' => $id_auteur,
  • _plugins_/commandes/plugin.xml

    r47542 r47564  
    33        <auteur>[Ateliers CYM->http://www.cym.fr], [Les Développements Durables->http://www.ldd.fr], [Matthieu Marcillaud->http://magraine.net]</auteur>
    44        <licence>GPL v3</licence>
    5         <version>0.3.0</version>
     5        <version>0.4.0</version>
    66        <version_base>0.2</version_base>
    77        <etat>dev</etat>
     
    3737        </pipeline>
    3838        <pipeline>
     39                <nom>optimiser_base_disparus</nom>
     40                <inclure>commandes_pipelines.php</inclure>
     41        </pipeline>
     42        <pipeline>
    3943                <nom>insert_head_css</nom>
    4044                <inclure>commandes_pipelines.php</inclure>
Note: See TracChangeset for help on using the changeset viewer.