class de Panier

Répondre
bibi
le 29/06/2005 à 19:30
bibi
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 :)



<?php

/**
Classe Panier
Benjamin SLAKMON - slak@wanadoo.fr
Création : 29/06/2005
Modification : 29/06/2005
*/



class Panier
{
var $panier = array();
var $error = array();
var $nbelts = 0;
var $nbproduits = 0;

/** Fonction permettant l'ajout d'un produit dans le panier
* @param id Identifiant du produit
* @param nb Nombre d'unités du produit que l'ont veut ajouter
* @param prix prix du produit
* @param descr description eventuelle du produit
*/
function Add($id=0,$nb=1,$prix='',$descr='Aucun description pour ce produit')
{
if($id > 0)
{
if($nb > 0)
{
if(isset($this->panier[$id]))
{
$this->panier[$id]['qte'] += $nb;
}
else
{
$this->panier[$id]['descr'] = htmlentities($descr);
$this->panier[$id]['qte'] = $nb;
$this->panier[$id]['prix'] = round($prix,2);
$this->nbproduits++;
}

$this->nbelts += $nb;

if($this->panier[$id]['qte'] <= 0)
{
return $this->Del($id);
}

return TRUE;
}
else
{
$this->error[] = 'Impossible d\'ajouter un nombre inférieur ou égal à 0 d\'objet (1)';
return FALSE;
}
}
else
{
$this->error[] = 'L\'identifiant fourni en paramètre est invalide, il doit etre supérieur à 0 (1)';
return FALSE;
}
}

/** Fonction permettant d'enlever un nombre défini d'unités d'un produit
* @param id Identifiant du produit
* @param nb Nombre d'unités que l'ont veut enlever du produit id
*/
function Rem($id=0,$nb=1)
{
if($id > 0)
{
if(isset($this->panier[$id]))
{
if( ($this->panier[$id]['qte'] - $nb) <= 0)
{
return $this->Del($id);
}
else
{
$this->panier[$id]['qte'] -= $nb;
$this->nbelts -= $nb;
}

return TRUE;
}
else
{
$this->error[] = 'Ce produit n\'existe pas dans le panier (2)';
return FALSE;
}
}
else
{
$this->error[] = 'L\'identifiant fourni en paramètre est invalide, il doit etre supérieur à 0 (2)';
return FALSE;
}
}

/** Fonction permettant de supprimer un produit du panier
* @param id Identifiant du produit
*/
function Del($id=0)
{
if($id > 0)
{
if(isset($this->panier[$id]))
{
$this->nbelts -= $this->panier[$id]['qte'];
unset($this->panier[$id]);
$this->nbproduits--;
return TRUE;
}
else
{
$this->error[] = 'Ce produit n\'existe pas dans le panier (3)';
return FALSE;
}
}
else
{
$this->error[] = 'L\'identifiant fourni en paramètre est invalide, il doit etre supérieur à 0 (3)';
return FALSE;
}
}
}
?>



Petite utilisation:

<?php

require_once 'class.Panier.php';

session_start();

if(!isset($_SESSION['panier']))
{
$_SESSION['panier'] = new Panier;
}

$_SESSION['panier']->Add(14,3,24.99,'Tour de 10 CD-R'); //Ajouter 3 objets '14' au panier

$_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)

$_SESSION['panier']->Rem(14,4); // Enleve 4 objets 4 du panier, il en a donc plus que 12

$_SESSION['panier']->Add(12,1,8.99,'Les indestructibles');

$_SESSION->Del(14);

?>
commit suicide
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours