THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline


*

Bonjour à tous,

Je travaille actuellement sur Thélia version 1.4.3, et constatant des bugs, et étant d'autre part programmeur,

cool J'aimerai que ce sujet soit épinglé afin de recenser toutes les corrections de Bugs cool

ATTENTION : les corrections proposées ne s'appliquent qu'à la version 1.4.3 !!

(Que ce soit bien clllaair ... entre vouz-et-moi ... big_smile)

Un petit apparté : Si je mets un Coypright sur les codes modifiés, ce n'est nullement par besoin revendicatif d'exiger le moindre reversement de royalties yikes

C'est seulement pour m'y retrouver quand je fais une mise à jour avec le SVN, et savoir quelles portions de codes ont été modifiés par ma personne (ou par une autre ... d'ailleurs, je pense revoir mon système d'aide mémoire ...)

Ma convention :
* Si un seul commentaire : Seule la ligne suivante à été modifiée
* Si un commentaire suivi d'une ligne d'étoile : Le bloc entre les deux à été modifié

Liste :

Non-affichage de la facture en PDF, côté client

Sélection de l'adresse de livraison sur la page adresse.php?action=modadresse&adresse=0

Affichage de la déclinaison malgré que toutes les déclinaisons du produit soient désactivées
et  Affichage de la valeur de la déclinaison dans le panier

Affichage des devises (dans #PROMO, #PRIX, etc ...)

Problème avec les ' (apostrophes) dans les données / formulaires

parrainage ne marche pas, au secours !


*

Last edited by Captain_FLAM (07-06-2010 10:32:53)


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

Offline


... et je commence (en vrac) avec :

Non-affichage de la facture en PDF, côté client

dans --> client\pdf\facture.php  (ligne ~ 45)

remplacer :

	if((($_SESSION['navig']->client->id != $commande->client) || ($commande->statut<2)) && !$_SESSION["util"]->id)  exit;
	if(! est_autorise("acces_commandes") && $_SESSION["util"]->id != "") exit;

par:

	//****    © Captain FLAM - 05/2010    ****//
	if (isset($_SESSION["util"]->id)) {
		if(! est_autorise("acces_commandes")) exit;
	}
	else {
		if(($_SESSION['navig']->client->id != $commande->client) || $commande->statut < 2) exit;
	}

et en profiter pour remplacer dans --> fonctions/boucles.php  (ligne ~ 2355)

		$statut = lireTag($args, "statut", "int");

par :

		//****    © Captain FLAM - 05/2010    ****//
		$statut = lireTag($args, "statut", "string");

et  (ligne ~ 2373)

		if($statut!="" && $statut!="paye")  $search.=" and statut=\"$statut\"";
		else if($statut=="paye")  $search.=" and statut>\"1\" and statut<>\"5\"";

par :

		//****    © Captain FLAM - 05/2010    ****//
			if($statut!="")
		if($statut=="paye")  $search.=' and (statut>1 and statut<>5)';
						else $search.=" and statut=$statut";

Last edited by Captain_FLAM (24-05-2010 12:44:20)


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

Offline


*
Sélection de l'adresse de livraison sur la page adresse.php?action=modadresse&adresse=0

dans --> fonctions\action.php  (ligne ~ 131)

// modification de l'adresse en cours
function modadresse($adresse){

	//****   Captain FLAM - © 2010    ****//
	if ($adresse == 0) { $_SESSION['navig']->adresse=0; return; }
	$verif = new Adresse();
	$verif->charger($adresse);
	if($verif->client == $_SESSION['navig']->client->id)
		$_SESSION['navig']->adresse=$adresse;
}

Last edited by Captain_FLAM (24-05-2010 12:46:21)


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

  • manu
  • faï tot petar miladiu

Offline


c'est redondant de mettre 0 dans la session puisque lors de son instantiation, elle reçoit 0 dans l'adresse.


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


dans la même série
bug : affichage page précédente même si on est sur la page 1
dans bouclePage
remplacer à la ligne ~1350
$avance = lireTag($args, "avance", "int");
par
$avance = lireTag($args, "avance", "string");

Offline


manu wrote:

c'est redondant de mettre 0 dans la session puisque lors de son instantiation, elle reçoit 0 dans l'adresse.

???

sauf que ça ne marche pas tel quel.

En effet : le code de vérif empêche de stocker la variable adresse dans la session ...

Et puis : en tant qu'optimiseur fou :

on gagne un temps en évitant de charger la table (procédure PHP et requête SQL économisées)

En plus, avec juste un return ça ne marche pas : logique, puisque qu'il garde la variable adresse dans la session inchangée ...


@jgm67 : j'ai regardé, et ... j'ai pô pu repoduire le bug dont tu parles.

Alors : j'ai fait une recherche avec une seule lettre dans la box de recherche : Affichage des produits sur 4 pages, et AUCUN problème sur Page Préc./Suiv.

Sur quelle pages se produit ce Bug ??

.


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

  • yoan
  • Cofondateur Thelia

Offline


Sur Mégara, est-ce qu'ils utilisent THELIA ?


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline


le bug se produit par l'affichage de rubrique.php/html du template original

de toute manière le paramètre passé est soit "precedente" ou "suivante" donc ça ne peut pas être un int (integer)

Offline


yoan wrote:

Sur Mégara, est-ce qu'ils utilisent THELIA ?

Ben oui !!

Surtout depuis qu'ils l'ont découvert (grâce au Captain FLAM cool) et qu'ils en sont tombés amoureux (comme le Captain FLAM d'ailleurs big_smile)

jgm67 wrote:

le bug se produit par l'affichage de rubrique.php/html du template original

de toute manière le paramètre passé est soit "precedente" ou "suivante" donc ça ne peut pas être un int (integer)

Bug non reproduit chez moi ... mais j'ai la version 1.4.3, tu as laquelle ?

Last edited by Captain_FLAM (20-05-2010 20:19:14)


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

Offline


*
Affichage de la déclinaison malgré que toutes les déclinaisons du produit soient désactivées

(Suivi de : Affichage de la valeur de la déclinaison dans le panier )

inspiré par le plugin Déclix de ottoroots , et grâce à son Thélia Book wink

Pour désactiver l'affichage, il existe 2 solutions :

1 - Désactiver TOUTES les déclinaisons d'une déclinaison au niveau de la fiche produit

2 - Supprimer la déclinaison au niveau de la fiche rubrique


dans --> produit.html

					<FORM action="#URLPANIER" method="POST">
						<input type= "hidden" name= "action" value= "ajouter"/>
						<input type= "hidden" name= "ref" value= "#REF"/>
						<THELIA_DECLI type="DECLINAISON" rubrique="#RUBRIQUE_ID" produit="#ID">
						#DESCRIPTION
						<select name="declinaison#ID">
							<THELIA_DECLIDISP type="DECLIDISP" declinaison="#ID" produit="#PRODUIT" stockmini="1">
								<option value="#ID">#TITRE</option>
						</THELIA_DECLIDISP>
						</select>
						<br/><br/>
						</THELIA_DECLI>
						<br/><br/>Stock disponible : #STOCK<br/><br/>
					#PROMO[<span class="prixProduit">#PRIX2 €</span> au lieu de #PRIX €][<span class="prixProduit">#PRIX €</span>]
                	<THELIA_stock type="PRODUIT" ref="#REF" stockmini="1">
						<p><BUTTON type="submit" value="panier" class="acheter"/><span><span>Ajouter au panier</span></span></p>
                	</THELIA_stock>
					</FORM>

dans --> fonctions/boucle.php

function boucleDeclinaison($texte, $args){

	global $declinaison;

	$id = lireTag($args, "id", "int");
	$rubrique = lireTag($args, "rubrique", "int");
	$produit = lireTag($args, "produit", "int");
	$courante = lireTag($args, "courante", "int");
	$exclusion = lireTag($args, "exclusion", "int_list");

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

	// preparation de la requete
	if($rubrique!="")  $search.=" and rubrique=\"$rubrique\"";
	if($id!="")  $search.=" and id=\"$id\"";
	if($exclusion!="") $search .= " and id not in ($exclusion)";

	$rubdeclinaison = new Rubdeclinaison();
	$tmpdeclinaison = new Declinaison();
	$tmpdeclinaisondesc = new Declinaisondesc();

	if($id != "") $query = "select * from $tmpdeclinaison->table where 1 $search";
			else  $query = "select DISTINCT(declinaison) from $rubdeclinaison->table where 1 $search";

	$resul = CacheBase::getCache()->mysql_query($query, $rubdeclinaison->link);
	if($resul=="" || count($resul)==0) return "";

	//****    © Captain FLAM - 05/2010 & ottoroots - 12/2009   ****//
	$exdecprodx = new Exdecprod();
	$declidispx = new Declidisp();
	//****************************************//
	foreach($resul as $row) {

		if($courante == "1" && ($row->id  != $declinaison))			continue;
		else if($courante == "0" && ($row->id  == $declinaison))	continue;

		//****    © Captain FLAM - 05/2010 & ottoroots - 12/2009   ****//

		$tmpdeclinaison->id = 0;
		$tmpdeclinaison->charger($row->declinaison);

		// Compte le nombre total de déclinaisons de la déclinaison
		$query2  = 'SELECT id FROM '.$declidispx->table.' WHERE declinaison="'.$tmpdeclinaison->id.'"';
		$resul2 = mysql_query($query2);
		// La déclinaison contient-elle des déclinaisons ?
		// Si NON, c'est une décli libre, on saute la vérification
		if ($resul2) {
			$nbdecli = mysql_num_rows($resul2);

			$query2  = 'SELECT declidisp FROM ';
			$query2 .= ' FROM '.$exdecprodx->table.' LEFT JOIN '.$declidispx->table;
			$query2 .= ' ON exdecprod.declidisp = declidisp.id';
			$query2 .= ' WHERE declidisp.declinaison="'.$tmpdeclinaison->id.'"';
			$query2 .= ' AND stock.produit = "'.$produit.'"';
			$resul2 = mysql_query($query2);

			// Si toutes les déclinaisons sont désactivées, alors pas d'affichage !
			if ($resul2)
				if(mysql_num_rows($resul2) == $nbdecli) continue;
		}

		//****************************************//

		if($id != "") $tmpdeclinaisondesc->charger($row->id, $_SESSION['navig']->lang);
				else  $tmpdeclinaisondesc->charger($row->declinaison, $_SESSION['navig']->lang);
		if($id != "") $temp = str_replace("#ID", "$row->id", $texte);
				else  $temp = str_replace("#ID", "$row->declinaison", $texte);

		$temp = str_replace("#TITRE", "$tmpdeclinaisondesc->titre", $temp);
		$temp = str_replace("#CHAPO", "$tmpdeclinaisondesc->chapo", $temp);
		$temp = str_replace("#DESCRIPTION", "$tmpdeclinaisondesc->description", $temp);
		$temp = str_replace("#PRODUIT", "$produit", $temp);

		$res .= $temp;
	}

	return $res;
}

dans --> panier.html

                    <td class="ligne">#TITRE </td>
                    <td class="ligne">#DECTEXTE</td>
                    <td align="center" class="ligne">#PRIXU €</td>

Last edited by Captain_FLAM (25-05-2010 12:20:15)


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

Offline


Bonjour et merci,

je viens de tester avec le remplacement pour boucle.php.
C'est dommage sur la version Thelia 1.4.2

J'obtiens : "Fatal error: Class 'CacheBase' not found in /.../boucles.php on line 2678 "
sur  la ligne :

 $resul = CacheBase::getCache()->mysql_query($query, $rubdeclinaison->link);

Last edited by wts (25-05-2010 08:38:39)

Offline


.
Remplace par :

$resul = mysql_query($query, $rubdeclinaison->link);

Sinon, j'ai posté le code complet de function boucleDeclinaison UNIQUEMENT pour comparaison pour ceux qui ont la version 1.4.3

Et pour les versions autres, il suffit juste de copier-coller les 2 codes entre :

//****    © Captain FLAM - 05/2010 & ottoroots - 12/2009   ****//

et

//****************************************//

au bon endroit ... wink

Last edited by Captain_FLAM (25-05-2010 12:41:01)


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

Offline


Salut Captain FLAM,

Je vois que tu très actif sur les corrections de la 1.4.3 alors je t'expose un des soucis...


Je cherche à faire une recherche sur une caractéristique,
cela fonctionne très bien sur la version 1.4.2,
mais cela ne prend pas avec la 1.4.3 !!!


Le code source :

<h2>Votre recherche : "#PRODUIT_MOTCLE"</h2><br /><br />

<form action="recherche.php">
Tapes la ref ici:
<input type="text" name="caracval" value="#CARACTERISTIQUE_VAL" />
<input type="submit" value="Go !" />
</form>
<br /><br />

<T_PROD>
       
<THELIA_PRODUIT type="PRODUIT" caracteristique="12-" caracval="#CARACTERISTIQUE_VAL" num="10">
#TITRE - #PRIX - #URL
</THELIA_PRODUIT>
       
</T_PROD>
Pas de resultat !
<//T_PROD>


Si tu à une idée ?!

Offline


.
Désolé cleanclean, mais en ce moment, je suis à fond sur les déclinaisons ...

Ceci dit, j'ai vu que roadster t'as répondu sur l'autre post ... et je pense qu'il sait ce qu'il dit ... relis ses conseils !

(au passage : tu n'étais pas obligé de me re-re-re-poster ton message ici, tu aurais pu mettre juste un lien vers ton post que j'aurai été voir ... big_smile)

Je me pencherai sur ce problème juste après en avoir fini avec :

1 - les déclinaisons
2 - l'intégration d'un mini-debbuger à Thélia

Au passage, quelques petites incohérences :

l'encodage est en UTF8 alors que le site est en ISO dans les fichiers --> compte_modifiererr.html , regret.html

Last edited by Captain_FLAM (25-05-2010 20:32:45)


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

Offline


.
Je l'avoue : Je ne suis pas un hyper-spécialiste du CSS ("boouh ... honte à lui !! Jetez-lui des cailloux !!") big_smile

Et ALORS !! chacun son businness ... ch'uis pas graphiste, moi !

Il n'empêche : il n'y a aucune lacune qui ne saurait se combler, et vu l'immense bibliothèque à disposition ...

Je viens de tomber sur ça :

1. Les Internet Explorer 5.0 à 7.0 de Microsoft ne permettent pas à l'utilisateur de modifier la taille de la police affichée lorsque l'unité utilisée est le pixel. De ce fait il est recommandé pour des raisons d'accessibilité de ne jamais spécifier de tailles de police en pixels pour permettre d'agrandir le texte.
   2. La taille relative small correspond généralement à 16 pixels dans Internet Explorer et à 12 pixels dans les autres navigateurs. Il est donc peu recommandé à nouveau d'utiliser ce genre de spécification, à moins d'utiliser une feuille de style spéciale pour Internet Explorer.

La page est ici ...

et devinez quoi ??

Allez, tous à vos "styles" !!


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

Offline


Captain_FLAM wrote:

.
Ceci dit, j'ai vu que roadster t'as répondu sur l'autre post ... et je pense qu'il sait ce qu'il dit ... relis ses conseils !

(au passage : tu n'étais pas obligé de me re-re-re-poster ton message ici, tu aurais pu mettre juste un lien vers ton post que j'aurai été voir ... big_smile)
l

Salut Captain Flam,

Effectivement Roadser a trouvé la solution mais elle ne fonctionne pas sur la dernière version 1.4.3 !
Voilà pourquoi j'essaie de chercher les réponses autre part...

Il ne s'agit que d'un problème avec la nouvelle version !

D'ailleurs j'ai ouvert un sujet exprès mais aucun réponse.... snif :'(

http://forum.thelia.fr/viewtopic.php?id=5333

Voilou, si qqun à une idée !!

Offline


*
J'utilise effectivement XDebug , mais jusqu'à présent, je m'en servais en mettant des points d'arrêt et en pas par pas ...

Je constate quelques Notices, sur l'éxecution complète :

(Parse_ex concerne le moteur de roadster31)

Undefined index: action in client\plugins\sauvpanier\Sauvpanier.class.php on line 84
Undefined variable: nbenfant in fonctions\boucles.php on line 165
Undefined variable: nbres in fonctions\boucles.php on line 249
Undefined offset: 1 in fonctions\divers.php on line 48
Undefined variable: tab1 in client\plugins\filtreiphone\Filtreiphone.class.php on line 68
Undefined variable: tab2 in client\plugins\filtreiphone\Filtreiphone.class.php on line 68
Undefined variable: tab1 in client\plugins\filtrelang\Filtrelang.class.php on line 68
Undefined variable: tab2 in client\plugins\filtrelang\Filtrelang.class.php on line 68
Undefined index: action in client\plugins\sauvpanier\Sauvpanier.class.php on line 62

Undefined offset: 1 in fonctions\parser_ex.php on line 294

Last edited by Captain_FLAM (28-05-2010 16:12:52)


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

Offline


*
Je viens de télécharger la dernière version du SVN, et je me suis aperçu que la correction du bug Sélection de l'adresse de livraison (cité ci-dessus) avait été intégré ...

ça me fait super plaisir cool

j'aurai apporté ma petite pierre à l'édifice ...
*

Last edited by Captain_FLAM (31-05-2010 01:58:31)


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

Offline


Un bug (je suppose) hérité de la 1.4.2.1: dans moteur.php, ligne 237:

        case 'supprimerlivraison' : supprimerlivraison($id);

je verrais bien:

        case 'supprimerlivraison' : supprimerlivraison($id); break;


OpenStudio Toulouse

Offline


C'est bien cette variable conditionnelle #NOUVEAU[][], mais serait-il possible d'avoir aussi une variable simple #NOUVEAU ?


OpenStudio Toulouse

Offline


roadster31 wrote:

... je verrais bien:

        case 'supprimerlivraison' : supprimerlivraison($id); break;

Bien vu, effectivement !! Chapeau !! big_smile

roadster31 wrote:

... mais serait-il possible d'avoir aussi une variable simple #NOUVEAU ?

Je vois ce que tu veux dire, je me suis posé la question aussi d'avoir une variable simple #PROMO afin de l'utiliser dans un #FILTRE_egalite ...

C'est ça keske tu voulais dire , non ?

Mais à qui poses-tu la question ? à l'équipe d'Octolys pour savoir s'ils sont d'accord pour l'intégrer ?

-----------------------------------------------

Correction du "Bug" (mais en est-ce un ?) à propos des devises (dans #PROMO, #PRIX, etc ...) :

forum.thelia.fr/viewtopic.php?pid=29932#p29932

.

Last edited by Captain_FLAM (02-06-2010 14:16:24)


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

Offline


Je crois que je ne poste pas au bon endroit, désolé.


OpenStudio Toulouse

Offline


.
Correction de Problème avec les ' (apostrophes) dans les données / formulaires


@roadster31 : mais si, mais si, tu es toujours le bienvenu pour poster ici wink
.

Last edited by Captain_FLAM (04-06-2010 00:01:39)


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool

Offline


.
Nouvelle correction "Parrainage"

Voir 1er post
.


»» Version Thélia : 1.4.3.1 : prise sur le SVN ««
»» Programmeur Freelance ««  cool