Changeset 123123 in spip-zone


Ignore:
Timestamp:
Mar 25, 2020, 10:28:27 AM (11 days ago)
Author:
Charles Razack
Message:

Ajout d'un critère pour prendre la commande en cours du visiteur, qu'il soit connecté ou non. Ajout d'un readme et d'un changelog aussi tant qu'à faire (changelog qui sera à rétro compléter).

Location:
_plugins_/commandes/trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/commandes/trunk

    • Property subgit:lock:5bf89bfa2bb221bbafc4f7ab9e5882fb8f5c7eab deleted
    • Property subgit:lock:4c592df4f827887bc012fd747e13846a596dee90 set to 2020-03-25T11:28:35.596
  • _plugins_/commandes/trunk/commandes_fonctions.php

    r118716 r123123  
    6666}
    6767
     68
    6869/**
    6970 * Générer l'URL correspondant à la facture d'une commande
     
    194195        return round($reduction * 100, 2).'%';
    195196}
     197
     198/**
     199 * Critère pour prendre la commande en cours du visiteur, qu'il soit connecté ou non
     200 *
     201 * Soit la commande est en session, soit on prend celle dans la db.
     202 * Nb : il ne peut en théorie y avoir qu'une seule commande en cours par auteur,
     203 * dans le cas improbable où il y en aurait plusieurs, on prend la plus récente.
     204 *
     205 * @uses commandes_calculer_critere_encours_visiteur()
     206 * @example <BOUCLE_commande(COMMANDES) {encours_visiteur}>
     207 *
     208 * @param string $idb
     209 * @param object $boucles
     210 * @param object $crit
     211 */
     212function critere_COMMANDES_encours_visiteur_dist($idb, &$boucles, $crit) {
     213        $boucle = &$boucles[$idb];
     214        $cond = $crit->cond;
     215        $not = $crit->not ? 'NOT ' : '';
     216        $where = "'$not" .$boucle->id_table.".id_commande = '.commandes_calculer_critere_encours_visiteur()";
     217        $boucle->where[]= $where;
     218        $boucles[$idb]->descr['session'] = true; // drapeau pour avoir un cache visiteur
     219}
     220
     221/**
     222 * Fonction privée pour le calcul du critère {encours_visiteur}
     223 *
     224 * @return int
     225 *     Numéro de la commande ou 0 s'il n'y en a pas
     226 */
     227function commandes_calculer_critere_encours_visiteur() {
     228        include_spip('inc/session');
     229        $id_commande = 0;
     230        // Soit la commande est dans la session, que le visiteur soit connecté ou pas
     231        // On vérifie le statut au cas-où, même si c'est forcément "encours" normalement
     232        if (
     233                !$id_commande = sql_getfetsel(
     234                        'id_commande',
     235                        'spip_commandes',
     236                        array(
     237                                'statut = ' . sql_quote('encours'),
     238                                'id_commande = ' . intval(session_get('id_commande')),
     239                        )
     240                )
     241                and $id_auteur = session_get('id_auteur')
     242        // Soit on prend la plus récente "encours" de l'auteur connecté
     243        ) {
     244                $id_commande = sql_getfetsel(
     245                        'id_commande',
     246                        'spip_commandes',
     247                        array(
     248                                'statut = ' . sql_quote('encours'),
     249                                'id_auteur = ' . intval($id_auteur),
     250                        ),
     251                        '',
     252                        'date DESC'
     253                );
     254        }
     255        $id_commande = intval($id_commande);
     256        return $id_commande;
     257}
  • _plugins_/commandes/trunk/paquet.xml

    r122985 r123123  
    22        prefix="commandes"
    33        categorie="divers"
    4         version="1.16.3"
     4        version="1.17.0"
    55        schema="0.7.9"
    66        etat="stable"
Note: See TracChangeset for help on using the changeset viewer.