source: spip-zone/_plugins_/optionsproduits/trunk/formulaires/panier_produit_options.php @ 109612

Last change on this file since 109612 was 109612, checked in by nicolas.dorigny@…, 14 months ago

Un plugin qui gère des options sur les produits.
Première version, déjà en prod, mais des choses à améliorer et des évolutions possibles.

File size: 1.7 KB
Line 
1<?php
2
3// Sécurité
4if (!defined('_ECRIRE_INC_VERSION')) {
5        return;
6}
7
8function formulaires_panier_produit_options_charger_dist($id_produit) {
9        $valeurs = array('id_produit' => $id_produit);
10
11        // On transmet les options reçues au formaulaire sous forme concaténee
12        // pour qu'il les réaffiche comme cochées, mais on ne lui transmet pas les
13        // id_options reçues pour qu'il ne les remette pas dans #ACTION_FORMULAIRE
14        $options = array();
15        foreach ($_REQUEST as $key => $value) {
16                if($value && strpos($key,'id_option')!==false){
17                        set_request($key,'');
18                        $options[] = intval($value);
19                }
20        }
21        $valeurs['options'] = join('|',$options);
22       
23        return $valeurs;
24}
25
26function formulaires_panier_produit_options_traiter_dist($id_produit) {
27        // On récupère les infos       
28        $quantite= intval(_request('quantite'));
29        $negatif= intval(_request('negatif'));
30
31        // On reçoit des options en POST sous la forme id_option
32        // ou id_optionX où X est l'id du groupe d'options.
33        $options = array(_request('id_option'));
34        $groupes = sql_allfetsel('id_optionsgroupe', 'spip_optionsgroupes');
35        foreach ($groupes as $groupe) {
36                if ($id_option = _request('id_option' . $groupe['id_optionsgroupe'])) {
37                        $options[] = $id_option;
38                }
39        }
40        // On concatène pour passer les options à l'action remplir_panier.
41        $options = join('|',$options);
42
43        if($id_objet = _request('id_produit')) {
44                $id_objet= intval(_request('id_produit'));
45                $objet = 'produit';
46        } else {
47                $objet = _request('objet');
48                $id_objet= intval(_request('id_objet'));
49        }
50
51        // On appelle l'action remplir_panier
52        $remplir_panier=charger_fonction('remplir_panier','action');
53        $remplir_panier($objet.'-'.$id_objet.'-'.$quantite.'-'.$negatif.'-'.$options);
54
55}
Note: See TracBrowser for help on using the repository browser.