Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

GESTION DE CADDIE


Information sur la source

Description

Une petite classe qui permet de gérer un caddie.

 

Source

  • <?php
  • class Caddie
  • {
  • var $produits; //Tableau des produits du caddie
  • var $nbproduits; //Nombre de produits dans le caddie
  • var $date; //Date de la création du caddie
  • var $idclient; //Identifiant du client à qui appartient le caddie
  • //var $montant; //Montant total du caddie
  • //Constructeur initialise le tableau de produits et le montant total du caddie
  • function Caddie()
  • {
  • $this->produits = array();
  • $this->nbproduits = 0;
  • $this->date = date("d/m/Y");
  • $this->idclient = "";
  • //$this->montant = 0;
  • }
  • //Renvoie la reference du produit $i
  • function getRefProduits($i)
  • {
  • return ($this->produits[$i]['id']);
  • }
  • //Renvoie la quantite du produit $i
  • function getQteProduits($i)
  • {
  • return ($this->produits[$i]['qte']);
  • }
  • //Renvoie le nombre de produits contenus dans le caddie
  • function nombreDeProduits()
  • {
  • return $this->nbproduits;
  • }
  • //Renvoi la date de la création du caddie
  • function getDateCaddie()
  • {
  • return $this->date;
  • }
  • //Définie l'identifiant du client à qui appartient le caddie
  • function setIdClientCaddie($id)
  • {
  • $this->idclient = $id;
  • }
  • //Renvoi l'identifiant du client à qui appartient le caddie
  • function getIdClientCaddie()
  • {
  • return $this->idclient;
  • }
  • //Ajoute un produit dans le caddie
  • function ajouter($refproduit,$quantite)
  • {
  • if (!empty($refproduit))
  • {
  • $this->produits[] = array("id"=>$refproduit,"qte"=>$quantite);
  • $this->nbproduits++;
  • }
  • }
  • //Supprime un produit du caddie
  • function supprimer($refproduit)
  • {
  • if (!empty($refproduit))
  • {
  • for($i=0; $i<$this->nbproduits; $i++)
  • {
  • if ($this->produits[$i]['id'] == $refproduit)
  • {
  • array_splice($this->produits, $i, 1);
  • $this->nbproduits--;
  • break;
  • }
  • }
  • }
  • }
  • //Met à jour la quantite d'un produit sélectionné dans le caddie
  • function miseAJour($refproduit,$quantite)
  • {
  • if (!empty($refproduit))
  • {
  • for($i=0; $i<$this->nbproduits; $i++)
  • {
  • if ($this->produits[$i]['id'] == $refproduit)
  • {
  • $this->produits[$i]['qte'] = $quantite;
  • break;
  • }
  • }
  • }
  • }
  • }
  • ?>
<?php

class Caddie
{
	var $produits;	  //Tableau des produits du caddie
	var $nbproduits;  //Nombre de produits dans le caddie
	var $date;        //Date de la création du caddie
	var $idclient;    //Identifiant du client à qui appartient le caddie
	//var $montant;		    //Montant total du caddie

	//Constructeur initialise le tableau de produits et le montant total du caddie
  function Caddie()
  {
		$this->produits = array();
		$this->nbproduits = 0;
		$this->date = date("d/m/Y");
		$this->idclient = "";
		//$this->montant = 0;
	}

  //Renvoie la reference du produit $i
	function getRefProduits($i)
  {
    return ($this->produits[$i]['id']);
	}

  //Renvoie la quantite du produit $i
	function getQteProduits($i)
  {
    return ($this->produits[$i]['qte']);
	}
	
  //Renvoie le nombre de produits contenus dans le caddie
  function nombreDeProduits()
  {
    return $this->nbproduits;
  }

  //Renvoi la date de la création du caddie
  function getDateCaddie()
  {
    return $this->date;
  }

  //Définie l'identifiant du client à qui appartient le caddie
  function setIdClientCaddie($id)
  {
    $this->idclient = $id;
  }

  //Renvoi l'identifiant du client à qui appartient le caddie
  function getIdClientCaddie()
  {
    return $this->idclient;
  }
  
  //Ajoute un produit dans le caddie
	function ajouter($refproduit,$quantite)
  {
		if (!empty($refproduit))
    {
			$this->produits[] = array("id"=>$refproduit,"qte"=>$quantite);
			$this->nbproduits++;
		}
	}

	//Supprime un produit du caddie
  function supprimer($refproduit)
  {
		if (!empty($refproduit))
    {
			for($i=0; $i<$this->nbproduits; $i++)
			{
        if ($this->produits[$i]['id'] == $refproduit)
        {
          array_splice($this->produits, $i, 1);
          $this->nbproduits--;
			    break;
        }
		  }
		}
	}

  //Met à jour la quantite d'un produit sélectionné dans le caddie
  function miseAJour($refproduit,$quantite)
  {
		if (!empty($refproduit))	
    {
			for($i=0; $i<$this->nbproduits; $i++)
			{
        if ($this->produits[$i]['id'] == $refproduit)
        {
          $this->produits[$i]['qte'] = $quantite;
			    break;
        }
		  }
    }
  }
}
  
?>

Conclusion

Je suis débutant alors cette classe reste à améliorer.
Je l'ai réalisée avec quelques brides de codes que j'ai pris un peu partout
 

Commentaires et avis

signaler à un administrateur
Commentaire de vede31 le 18/04/2006 00:05:11

Hello,
je trouve ta classe trés sympa, mais je débute moi aussi
en poo, peux tu m'en dire plus sur l'utilisation de la classe,


$c = new Caddie();
$c::setIdClientCaddie('id321654tr43r0t13e');

????
excuse mmoi mais je suis un peu perdu,
si tu avais un exemple d'utilisation ...
je rame vraiment avec la poo, mais veux m'y mettre,
merci d'avance pour votre aide,
vede
;O]

signaler à un administrateur
Commentaire de Helldream le 24/02/2007 19:08:46

Je viens de survoler ton code (je pensais justement créer une classe similaire pour moi), et je dois dire que ton code me semble très propre, compréhensible, et efficace. Je débute aussi en POO, mais je ne pense pas que j'aurais fait mieux en le faisant moi-même.

La seule chose qu'il manque (c'est pour ça que je te mets 8 et pas 10), c'est un exemple d'application montrant en particulier comment passer ton panier d'une page à une autre (car je pense que c'est obligatoire pour ce genre de code). En effet, sans ça, quelqu'un qui ne s'y connait pas ne peux pas utiliser ton script (il n'a pas d'intérêt si ton objet est détruit à la fin de chaque appel de page).

Les solutions (que tu connais probablement) serait d'utiliser serialize, ou peut être de passer par une BDD pour sauvegarder le contenu de ton panier, ou par une variable de session... Il faudrait voir le mieux adapté, surtout en cas de grosse commande (par exemple 100 articles).

J'espère que tu nous fera ça prochainement, car une fois fait, de mon point de vue ton code sera nickel, et vraiment utile ;)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,187 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.