THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline


j'avais le meme problème... du coup, on avait pas le meme prix sur la facture/le meme prix payé/ le meme prix Ht.... enfin c'était n'importe quoi. Bref, merci, j'aurais pas trouvé!

Offline


Bonjour Roadster31,

Je viens d'installer la derniere version de parser.php sous Thelia 1.4
et il semble qu'il y ai un "conflit" avec les plugins actifs
panier sauvegarde, que j'ai desactive, de toute maniere je ne l'utilise plus...
mais aussi avec le plugin 'commentaire' et 'notation'
si je les desactive super rapide mais sinon cela pedale dans la semoule et les plugins fonctionnent  de facon tronquee,
ex:a l'affichage sur le site les commentaires n'affichent pas le texte, juste la date et l'auteur (par contre bien enregistre en BDD)
Merci.

Reg


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

Offline


Merci pour l'info, mister Reg. Je vais regarder ce problème.


OpenStudio Toulouse

Offline


Non Roadster merci a toi big_smile


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

Offline


C'est vrai un soucis avec commentaires.
Et aussi étrange que cela puisse paraitre je perd un bout de mon menu... (Le lien qui pointe vers une rubrique designée par son id , en utilisant le plugin menu
<THELIA_COLLECTIONS type="MENU" id="21" ligne="1" courante="0">

Les autres éléments dus menu sont aussi appelés par une boucle type menu mais en utilisant les parents comme #ID, et eux s'affichent...
<THELIA_MENU type="MENU" parent="#PARENT" ligne="1" menu="1" courante="0">

Bizarre...

Last edited by tetedelard (01-03-2010 13:40:55)


{TETE DE LARD} Concept store/Galerie {Designer toys, Livres d'art, Badges, T-shirts et curiosités...}

Offline


Et aussi étrange que cela puisse paraitre je perd un bout de mon menu

Et si le plugin commentaires est désactivé, le menu s'affiche correctement ?


OpenStudio Toulouse

Offline


non pas de rapport entre le plugin commentaire et le menu,
sauf que lorsque je remet le parseur originel de thelia les 2 refonctionnent ;o)


{TETE DE LARD} Concept store/Galerie {Designer toys, Livres d'art, Badges, T-shirts et curiosités...}

Offline


C'est quel plugin qui propose une boucle "MENU" ?


OpenStudio Toulouse

Offline


Le plugin intitulé :"Réaliser facilement des menus sans JS"
là : http://contrib.thelia.fr/spip.php?article29

Je sais il est un peu vieux, mais jusque là il me donnait entière satisfaction...


{TETE DE LARD} Concept store/Galerie {Designer toys, Livres d'art, Badges, T-shirts et curiosités...}

Offline


Bon, en même temps je comptais modifier mon menu depuis un moment sans trouver le temps de le faire, du coup c'est peut etre une bonne raison pour que je m'y mette... o)


{TETE DE LARD} Concept store/Galerie {Designer toys, Livres d'art, Badges, T-shirts et curiosités...}

Offline


Le code de ta page m'interesse, et aussi, éventuellement l'arborescence de tes rubriques. Si tu peux me faire passer ça par mail, ce serait cool.


OpenStudio Toulouse

Offline


Bon, j'ai trouvé  !

Truc bête, et je ne comprend pas le pourquoi mais :

 <THELIA_COLLECTIONS type="MENU" id="21" ligne="1" courante="0">
	<div class="menurub">
		<a href="badge.php" class="menutitre" title="BADGES PERSONNALISES"><b>VOS BADGES</b></a></div>
  </THELIA_COLLECTIONS>

ça ne marche pas. En même temps il n'y a aucune utilité a avoir une boucle Thelia ici me direz vous, puisque je ne demande aucun paramètre de sortie...
(c'est qu'avant elle etait utile, puis j'ai changé des trucs et laissé en état, bref, pas d'excuses.)
Du coup, si je fais un simple

 <THELIA_COLLECTIONS type="MENU" id="21" ligne="1" courante="0">
	<div class="menurub">
		<a href="badge.php" class="menutitre" title="BADGES PERSONNALISES"><b>#TITRE</b></a></div>
  </THELIA_COLLECTIONS>

Et miracle, elle apparait.

J'en conclu donc que ton parseur a son ptit caractère, et qu'il ne veux pas bosser pour rien... o)
Et désolée du dérangement...
Et merci de ta réactivité...
Et y reste le problème des commentaires... yikes)


{TETE DE LARD} Concept store/Galerie {Designer toys, Livres d'art, Badges, T-shirts et curiosités...}

Offline


puisque je ne demande aucun paramètre de sortie

Tout est là. Utilises-tu la toute dernière version du parser, qui est censée corriger ce problème ?


OpenStudio Toulouse

Offline


Non, je n'avais pas fait ça, je m'etais arretée a la correction précedente.
Mais j'y cours !
Encore merci.


{TETE DE LARD} Concept store/Galerie {Designer toys, Livres d'art, Badges, T-shirts et curiosités...}

Offline


Avec plaisir. Merci à toi d'avoir pris la peine de signaler le problème, c'est ce qui permet d'avancer !


OpenStudio Toulouse

Offline


Bonjour Roadster31,

Pour preciser:

-pour le plugin 'commentaires'
normalement j'ai un retour en FO du nombres de commentaires ('0 avis' ou '3 avis') initie depuis 'Commentaires.class.php'

if(!$nbres) return "0";

			while( $row = mysql_fetch_object($resul_commentaires)){
				$temp = str_replace("#NOM", "$row->nom", $texte);
				$temp = str_replace("#MESSAGE", "$row->message", $temp);
				$temp = str_replace("#DATE", substr($row->date, 0, 10), $temp);
				$temp = str_replace("#HEURE", substr($row->date, 11), $temp);
				

				$res .= $temp;
			}

			return $nbres.$res;

mais avec parser_ex, le '$nbres' n'apparait plus en FO

-pour le plugin 'notation'
normalement j'ai un retour en FO ('pas encore de note...')par 'Notation.class.php'

$note_nbr		 = mysql_result($resul_notation2, 0);
	if(!$note_nbr || $note_nbr == 0) return "Pas encore de note...";

mais la je n'ai pas ce message,
par contre une fois note, j'ai bien apres reactualisation de la page l'affichage du nombre de coeurs(etoiles)choisis

En resume en BDD les commentaires et les notes sont bien enregistres
le seul probleme vient des 'return' des plugins qui ne s'affichent plus en FO

Voila en esperant que cela t'aidera.
Merci.

Reg


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

Offline


Je vois le problème, qui est spécifique à la conception des boucles de ces deux plugins.

En effet, au lieu de réaliser des substitutions comme habituellement dans THELIA, ces deux plugins MODIFIENT le texte qui se trouve dans la boucle. Exemple, pour notation, si aucune note n'a été donnée, quelque soit le texte qui figure dans la boucle Notation, la boucle retourne "Pas encore de note...". Je trouve cette méthode discutable, mais bon, il faut s'adapter !

Je n'avais pas pensé à ce cas de figure, je vais voir ce qu'il est possible de faire au niveau du parseur.


OpenStudio Toulouse

Offline


Bon, j'ai résolu le problème pour notation. Par contre, en examinant le plugin commentaires fraichement téléchargé des contribs, je ne vois pas le même code que toi, reg:

			if(!$nbres) return "";

			while( $row = mysql_fetch_object($resul_commentaires)){
				$temp = str_replace("#NOM", "$row->nom", $texte);
				$temp = str_replace("#MESSAGE", "$row->message", $temp);
				$temp = str_replace("#DATE", substr($row->date, 0, 10), $temp);
				$temp = str_replace("#HEURE", substr($row->date, 11), $temp);

				$res .= $temp;
			}

			return $res;

Tu utilises une version modifiée du plugin ?

Last edited by roadster31 (02-03-2010 16:09:48)


OpenStudio Toulouse

Offline


Bonjour Roadster31,

1 tout petit peu modifie
return "0"; au lieu de return "";
et
return $nbres.$res; au lieu de return $res;
pour obtenir en FO le nombre d'avis($nbres), pour eviter que le client clique sur 'avis' en FO alors qu'il n'y a pas d'avis, ca enerve hmm

Reg


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

Offline


1 tout petit peu modifie

Ha oui mais non... Je trouve que ce n'est pas propre de modifier le texte de la boucle. Mon avis est qu'une bonne fonction boucle ne devrait faire que des substitutions sur ce texte.

Pourquoi ne pas avoir tout simplement enclos la boucle "commentaire" dans une boucle test ?


OpenStudio Toulouse

Offline


Oui a priori je ne suis pas contre,
mais j'ai rien compris lol

Comment recuperer le nombres d'avis avec une boucle conditionnelle(test?)
Merci.

Reg


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

Offline


Comment recuperer le nombres d'avis avec une boucle conditionnelle(test?)

On ne peut pas vraiment, car on n'est pas au même niveau dans la structure de l'information. Par contre, on peut modifier la méthode action() pour créer une substitution globale #COMMENTAIRES_NOMBRE, et on l'utiliser dans la page:

		function action($res){
			
			global $res, $ref;
			
			if (strstr($res, '#COMMENTAIRES_NOMBRE') !== false)
			{			
				$commentaire = new Commentaires();	
			
				$result = mysql_query("select count(*) from $commentaire->table".($ref != '' ? " where ref='$ref'" : '')); 
			
				if ($result && $row = mysql_fetch_array($result))
				{					
					$res = str_replace('#COMMENTAIRES_NOMBRE', $row[0], $res);
				}
			}
			
			if(isset($_POST['action']) && $_POST['action'] == "ajcommentaire"){

				$commentaire = new Commentaires();
				$commentaire->nom = strip_tags($_POST['commentaire_nom']);
				$commentaire->message = strip_tags($_POST['commentaire_message']);
				$commentaire->ref = strip_tags($_POST['commentaire_ref']);
				$commentaire->date = date("Y-m-d H:i:s");

				$commentaire->add();

				$cache = new Cache();
				$cache->vider("COMMENTAIRES", "%");

			}			
			
		}

Mais bon, t'inquiète: le parseur traite maintenant le plugin commentaire comme tu l'as modifié. Encore quelques tests, et je vous le livre en pature.

Last edited by roadster31 (03-03-2010 15:01:58)


OpenStudio Toulouse

Offline


Bonjour Roadster31,

J'ai essaye de modifier le plugin 'commentaires' avec ton code, car (mais ne le repetes surtout pas a Yoan roll) un plugin 'commentaires' qui ne renvoi pas le nombre d'avis me semble un peu incomplet...
Et puis l'affichage de $nbres comme je l'avais bidouille ne me satisfait pas non plus lol
Par contre en rajoutant ton code, et en le triturant, faute de succes, dans tout les sens, ou presque je ne suis pas arrive a afficher le nombre d'avis.
Je te soumets la page juste avec ton code rajoute si toutefois tu pouvais me dire ce qui cloche...

<?php
include_once(realpath(dirname(__FILE__)) . "/../../../classes/PluginsClassiques.class.php");
	
	
	class Commentaires extends PluginsClassiques{

		var $id;
		var $nom;
		var $message;
		var $ref;
		var $date;
		
		var $table="commentaires";
		var $bddvars = array("id", "nom", "message", "ref", "date");
		
		function Commentaires(){
			$this->PluginsClassiques();	
		}

		function charger($id, $lang=1){
		
			return $this->getVars("select * from $this->table where id=\"$id\"");

		}


		function init(){
						
			$cnx = new Cnx();
			$query_commentaires = "CREATE TABLE `commentaires` (
			  `id` int(11) NOT NULL auto_increment,
			  `nom` text NOT NULL,
			  `message` text NOT NULL,
			  `ref` text NOT NULL,
			  `date` datetime NOT NULL,
			  PRIMARY KEY  (`id`)
			) AUTO_INCREMENT=1 ;";
			$resul_commentaires = mysql_query($query_commentaires, $cnx->link);			

		}

		function destroy(){
		
		}		

		function boucle($texte, $args){
			// récupération des arguments
			$ref= lireTag($args, "ref");

			$search ="";
			$res="";

			// préparation de la requête
			if($ref!="")  $search.=" and ref=\"$ref\"";

			$commentaire = new Commentaires();	

			$query_commentaires = "select * from $commentaire->table where 1 $search";
			$resul_commentaires = mysql_query($query_commentaires, $commentaire->link);
			$nbres = mysql_numrows($resul_commentaires);
			if(!$nbres) return "";

			while( $row = mysql_fetch_object($resul_commentaires)){
				$temp = str_replace("#NOM", "$row->nom", $texte);
				$temp = str_replace("#MESSAGE", "$row->message", $temp);
				$temp = str_replace("#DATE", substr($row->date, 0, 10), $temp);
				$temp = str_replace("#HEURE", substr($row->date, 11), $temp);

				$res .= $temp;
			}

			return $res;
	
		}	

		function action($res){
		    global $res, $ref;
            
            if (strstr($res, '#COMMENTAIRES_NOMBRE') !== false)
            {            
                $commentaire = new Commentaires();    
            
                $result = mysql_query("select count(*) from $commentaire->table".($ref != '' ? " where ref='$ref'" : '')); 
            
                if ($result && $row = mysql_fetch_array($result))
                {                    
                    $res = str_replace('#COMMENTAIRES_NOMBRE', $row[0], $res);
                }
            }

			
			if(isset($_POST['action']) && $_POST['action'] == "ajcommentaire"){

				$commentaire = new Commentaires();
				$commentaire->nom = strip_tags($_POST['commentaire_nom']);
				$commentaire->message = strip_tags($_POST['commentaire_message']);
				$commentaire->ref = strip_tags($_POST['commentaire_ref']);
				$commentaire->date = date("Y-m-d H:i:s");

				$commentaire->add();

				$cache = new Cache();
				$cache->vider("COMMENTAIRES", "%");

			}			
			
		}
		
	}


?>

Merci.

Reg


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

Offline


En utilisant ton code, ça marche nickel sur mon Thélia. Dans ma page produit, pour afficher le nombre de commentaires, j'ai ajouté:

#COMMENTAIRES_NOMBRE commentaire(s)

J'imagine que toi aussi ?


OpenStudio Toulouse

Offline


Vi,
j'ai:
<THELIA_commentaires  type="COMMENTAIRES" ref="#REF" >
#COMMENTAIRES_NOMBRE avis
</THELIA_commentaires>
mais rien ne s'affiche...
Est ce que tu utiliserais la nouvelle (futur) mouture de parser_ex?
Merci.

Reg


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