class de Panier

Répondre
bibi
bibi
Déconnecté
commit suicide
Bon bah jme faisai un peu chier staprem alors j'ai fait une class de panier. Elle est pas exceptionnelle, mais ca pourra peut etre vous aider a comprendre comment ca fonctionne :).

Si c'est trop long, mettez le dans un wall :)



  1. <?php
  2.  
  3. /**
  4. Classe Panier
  5. Benjamin SLAKMON - slak@wanadoo.fr
  6. Création : 29/06/2005
  7. Modification : 29/06/2005
  8. */  
  9.  
  10.  
  11.  
  12. class Panier  
  13. { 
  14.    var $panier = array(); 
  15.    var $error = array(); 
  16.    var $nbelts = 0; 
  17.    var $nbproduits = 0; 
  18.    
  19.    /** Fonction permettant l'ajout d'un produit dans le panier
  20.     * @param id Identifiant du produit
  21.     * @param nb Nombre d'unités du produit que l'ont veut ajouter
  22.     * @param prix prix du produit
  23.     * @param descr description eventuelle du produit
  24.     */ 
  25.    function Add($id=0,$nb=1,$prix='',$descr='Aucun description pour ce produit') 
  26.    { 
  27.       if($id > 0) 
  28.       { 
  29.          if($nb > 0) 
  30.          { 
  31.             if(isset($this->panier[$id])) 
  32.             { 
  33.                $this->panier[$id]['qte'] += $nb;   
  34.             } 
  35.             else 
  36.             { 
  37.                $this->panier[$id]['descr'] = htmlentities($descr); 
  38.                $this->panier[$id]['qte'] = $nb; 
  39.                $this->panier[$id]['prix'] = round($prix,2); 
  40.                $this->nbproduits++; 
  41.             } 
  42.             
  43.             $this->nbelts += $nb; 
  44.             
  45.             if($this->panier[$id]['qte'] <= 0) 
  46.             { 
  47.                return $this->Del($id); 
  48.             } 
  49.             
  50.             return TRUE; 
  51.          } 
  52.          else 
  53.          { 
  54.             $this->error[] = 'Impossible d\'ajouter un nombre inférieur ou égal à 0 d\'objet (1)'; 
  55.             return FALSE; 
  56.          } 
  57.       } 
  58.       else 
  59.       { 
  60.          $this->error[] = 'L\'identifiant fourni en paramètre est invalide, il doit etre supérieur à 0 (1)'; 
  61.          return FALSE; 
  62.       } 
  63.    } 
  64.    
  65.    /** Fonction permettant d'enlever un nombre défini d'unités d'un produit
  66.     * @param id Identifiant du produit
  67.     * @param nb Nombre d'unités que l'ont veut enlever du produit id
  68.     */ 
  69.    function Rem($id=0,$nb=1) 
  70.    { 
  71.       if($id > 0) 
  72.       { 
  73.          if(isset($this->panier[$id])) 
  74.          { 
  75.             if( ($this->panier[$id]['qte'] - $nb) <= 0) 
  76.             { 
  77.                return $this->Del($id); 
  78.             } 
  79.             else 
  80.             { 
  81.                $this->panier[$id]['qte'] -= $nb; 
  82.                $this->nbelts -= $nb; 
  83.             } 
  84.             
  85.             return TRUE; 
  86.          } 
  87.          else 
  88.          { 
  89.             $this->error[] = 'Ce produit n\'existe pas dans le panier (2)'; 
  90.             return FALSE; 
  91.          } 
  92.       } 
  93.       else 
  94.       { 
  95.          $this->error[] = 'L\'identifiant fourni en paramètre est invalide, il doit etre supérieur à 0 (2)'; 
  96.          return FALSE; 
  97.       } 
  98.    } 
  99.    
  100.    /** Fonction permettant de supprimer un produit du panier
  101.     * @param id Identifiant du produit
  102.     */ 
  103.    function Del($id=0) 
  104.    { 
  105.       if($id > 0) 
  106.       { 
  107.          if(isset($this->panier[$id])) 
  108.          { 
  109.             $this->nbelts -= $this->panier[$id]['qte']; 
  110.             unset($this->panier[$id]); 
  111.             $this->nbproduits--; 
  112.             return TRUE; 
  113.          } 
  114.          else 
  115.          { 
  116.             $this->error[] = 'Ce produit n\'existe pas dans le panier (3)'; 
  117.             return FALSE; 
  118.          } 
  119.       } 
  120.       else 
  121.       { 
  122.          $this->error[] = 'L\'identifiant fourni en paramètre est invalide, il doit etre supérieur à 0 (3)'; 
  123.          return FALSE; 
  124.       } 
  125.    }  
  126. }  
  127. ?> 



Petite utilisation:

  1. <?php
  2.  
  3. require_once 'class.Panier.php';  
  4.  
  5. session_start();  
  6.  
  7. if(!isset($_SESSION['panier']))  
  8. {  
  9. $_SESSION['panier'] = new Panier;  
  10. }  
  11.  
  12. $_SESSION['panier']->Add(14,3,24.99,'Tour de 10 CD-R'); //Ajouter 3 objets '14' au panier  
  13.  
  14. $_SESSION['panier']->Add(14,13,24.99,'Tour de 10 CD-R'); // Ajouter 13 objets '14" au panier. Il y en a donc 16 (13+3)  
  15.  
  16. $_SESSION['panier']->Rem(14,4); // Enleve 4 objets 4 du panier, il en a donc plus que 12  
  17.  
  18. $_SESSION['panier']->Add(12,1,8.99,'Les indestructibles');  
  19.  
  20. $_SESSION->Del(14);  
  21.  
  22. ?> 
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Php - Breizh Blog