THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 Total produit

(07-09-2012 21:54:22)


Bonjour,

Besoin d'aide, comment je peux faire pour avoir sur ma page index une ligne qui m'affiche le nombre de produits disponible sur le site. Et qui s'additionne a chaque rajout.

Merci d'avance

Offline

#2 Re: Total produit

(08-09-2012 02:31:33)


Tu peux utiliser 1 boucle produit sans preciser d'id produit donc ils seront tous pris en compte
et afficher le nombre grace a #COMPT (thelia<1.5) ou #NBRES (thelia>1.5)
par contre si tu as beaucoup de produits ca risque de mouliner 1 peu hmm


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

Offline

#3 Re: Total produit

(08-09-2012 08:30:17)


Merci reg,

Je vai essayé de mettre sa en place.

@+

Offline

#4 Re: Total produit

(08-09-2012 09:18:19)


Tu écris un plugin ou un filtre qui renvoie le résultat de la requête:

select count(*) from produit where ligne=1

Exemple avec un filtre:

<?php
require_once(__DIR__ . '/../../../classes/filtres/FiltreBase.class.php');
require_once(__DIR__ . '/../../../classes/Produit.class.php');

class NbProduits extends FiltreBase {

	public function __construct()
	{
		parent::__construct("`\#NBPRODUITS`");
	}

	public function calcule($match)
	{
        $prod = new Produit();

        $hdl = $prod->query("select count(*) from $prod->table where ligne=1");

        return $prod->get_result($hdl);
	}
}
?>

Simple et rapide !


OpenStudio Toulouse

Offline

#5 Re: Total produit

(08-09-2012 10:51:34)


Salut roadster31,

Merci pour les infos, le code PHP je le place au début de la page HTML, par contre la ligne de commande ou je veux faire apparaitre ( Il y a xxx produit dans cette rubrique ) le #Filtre  je met quoi ? je souhaiterais additionner le nombre de produit dans une rubrique uniquement.

J'ai utilisé la boucle que reg ma proposé mais sa m'affiche 1 2 3 4 5 etc... jusqu'a 35 si j'ai 35 produits

Suis en thélia 1.5.2

Merci d'avance

Offline

#6 Re: Total produit

(08-09-2012 11:06:38)


Heu... Absolument pas

C'est le code d'un filtre, qu'il faut placer dans un fichier Nbproduits.class.php, lui même placé dans un dossier client/plugins/nbproduits

Filtre a activer ensuite dans le back-office.

Utiliser ensuite simplement #NBPRODUITS dans ta page HTML pour récupérer le nombre total de produits en ligne.


OpenStudio Toulouse

Offline

#7 Re: Total produit

(08-09-2012 20:56:42)


Merci roadster31, sa marche nikel.

Mais si je veux faire le calcul que sur une seul rubrique il faut que je créer une boucle ?

Merci d'avance

Offline

#8 Re: Total produit

(09-09-2012 08:43:19)


Il faut ajouter une condition dans la requête, et passer l'identifiant de rubrique au filtre.


OpenStudio Toulouse

Offline

#9 Re: Total produit

(09-09-2012 08:45:54)


Mouais !!!!

Ces du code a rajouter dans l'exemple du filtre que tu ma donné ci dessus.

Last edited by Baxter89 (09-09-2012 09:09:36)

Offline

#10 Re: Total produit

(09-09-2012 09:28:06)


Voilà.


OpenStudio Toulouse

Offline

#11 Re: Total produit

(09-09-2012 09:30:20)


Ok je vais chercher un peux.

Meric roadster31

Offline

#12 Re: Total produit

(09-09-2012 10:47:16)


Bon j'ai chercher sur le forum, j'ai fait plusieurs test sans succès, mais compétence son limité en dev. Ton aide me serais la bienvenue roadster31.
Merci d'avance

Last edited by Baxter89 (09-09-2012 10:48:55)

Offline

#13 Re: Total produit

(10-09-2012 01:41:55)


<THELIA_COMPT type="PRODUIT" rubrique="#ID" >
<?php $nbres="#COMPT"; ?>
</THELIA_COMPT>
<?php echo $nbres; ?>produits dans cette rubrique

Baxter89 Ca marche pas ?


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

Offline

#14 Re: Total produit

(10-09-2012 07:11:50)


Si, mais c'est vieux est pas efficace. Déjà, ça c'est mieux:

<THELIA_COMPT type="PRODUIT" rubrique="#ID" >
#SET{nbprod,#__COMPTEUR__}
</THELIA_COMPT>
#GET{nbprod} produits dans cette rubrique

Mais ce n'est toujours pas efficace. Le filtre permet de faire une seule requête pour arriver au résultat. Voilà la version qui permet de passer un ID rubrique:

#NBPRODUITS()  : nombre total de produits
#NBPRODUITS(r)  : nombre total de produits dans la rubrique r

<?php
require_once(__DIR__ . '/../../../classes/filtres/FiltreBase.class.php');
require_once(__DIR__ . '/../../../classes/Produit.class.php');

class NbProduits extends FiltreBase {

	public function __construct()
	{
		parent::__construct("`\#NBPRODUITS\(([^\)]*)\)`");
	}

	public function calcule($match)
	{
        $prod = new Produit();

        $wr = ! empty($match[1]) ? "and rubrique=".intval($match[1]) : "";

        $hdl = $prod->query("select count(*) from $prod->table where ligne=1 $wr");

        return $prod->get_result($hdl);
	}
}
?>

OpenStudio Toulouse

Offline

#15 Re: Total produit

(10-09-2012 09:47:56)


Roadster31 wrote:

Si, mais c'est vieux est pas efficace

comme moi tongue


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

Offline

#16 Re: Total produit

(10-09-2012 17:35:40)


Bonjour Roadster31,

Merci de ton aide si précieuse

Si j'utilise la boucle sa marche nikel

<THELIA_COMPT type="PRODUIT" rubrique="1" >
#SET{nbprod,#__COMPTEUR__}
</THELIA_COMPT>
#GET{nbprod} produits dans cette rubrique

Mais avec le code du filtre j'ai essayé de lui attribuer la rubrique-1 mais le calcul reste toujours a 0.

J'utilise le plugin template a la spip et la rubrique concerné est la rubrique-1.html

Merci

Offline

#17 Re: Total produit

(10-09-2012 17:44:31)


reg wrote:
Roadster31 wrote:

Si, mais c'est vieux est pas efficace

comme moi tongue

Mais non, toi aussi tu nous rend bien des services sur ce forum

Offline

#18 Re: Total produit

(10-09-2012 19:03:14)


#NBPRODUITS(1), ça marche.

Mais bon si ça marche avec la boucle, va bene...


OpenStudio Toulouse

Offline

#19 Re: Total produit

(10-09-2012 19:08:01)


Non j'avais essayé, je fait rester sur la boucle.

Je te remerci du temp que tu nous consacre.

@+

Last edited by Baxter89 (10-09-2012 19:08:42)