THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline


fait voir la partie de ton code en php

Offline


bah j'ai un peu honte pour le moment....:/
<label>
<input type="text" name="textfield" id="longueur" value="#VALEUR"/>
</label>

j'avais prévenu.... wink

Offline


Je ne comprend pas tout.
Ce que tu montre c'est la où le client rentre la valeur de la longueur qu'il cherche ????

Last edited by greichka (17-04-2008 14:10:47)

Offline


euh.... oui... c'est un champ de saisie libre quoi....oups cé dans le html mais dans le php y'a rien enfin c'est comme les autres:
<?php
    $fond="test2.html";
    $pageret=1;
    include("fonctions/moteur.php");
?>
test2.html étant la page où j'ai mes différents critères...le début donne ça:
<head>
    #INCLURE "meta.html"

<link href="styles.css" rel="stylesheet" type="text/css" />
    <script src="sources/backtothehtml.js" type="text/javascript"></script>
</head>

<body>
<table>
<form action="recherche.php" method="post" id="formRech">
            <input type="hidden" id="caracteristique" name="caracteristique" />
            <input type="hidden" id="caracdisp" name="caracdisp" />
           
            <input type="hidden" id="prixmin" name="prixmin" />
            <input type="hidden" id="prixmax" name="prixmax" />
            <tr>
            <td width="125" height="28" align="left" valign="middle">
            <select name="id_rubrique" class="formtri#FILTRE_vide(#RUBRIQUE_ID||select)">
            <option selected="selected">Collection</option>
            <option value="">------</option>
            <option value="">Toutes</option>
            <THELIA_collection type="RUBRIQUE" profondeur="1" parent="0" classement="manuel"> 
            <option value="#ID" #FILTRE_egalite(#RUBRIQUE_ID||#ID||selected="selected")>#TITRE</option>
            <THELIA_sscollect type="RUBRIQUE" parent="#ID" classement="manuel">
            <option value="#ID" #FILTRE_egalite(#RUBRIQUE_ID||#ID||selected="selected")>   #TITRE</option>
            </THELIA_sscollect>
            </THELIA_collection>
            </select>            </td>
            <td width="125" align="left" valign="middle"><select id="marque" class="formtri#FILTRE_courcarac(#CARACTERISTIQUE_ID||8||select)">
            <option selected="selected" value="">nb étagères</option>
            <option value="">------</option>
            <option value="">Toutes</option>
            <THELIA_marque type="CARACDISP" caracteristique="8" classement="alpha"> 
            <option value="#ID-" #FILTRE_courcarac(#CARACTERISTIQUE_DISP||#ID||selected="selected")>#TITRE</option>
            </THELIA_marque>
                                                    </select></td>
            <td width="125" align="left" valign="middle">

Offline


Dans ton fichier recherche.php il te suffit juste de récupérer les champs avec :

$_POST["le nom du champ de saisie"]

Mais pour que cela marche il faut que tu rajoute name="la même chose que dans l'id".

Offline


attends je récapépète pour être sur d'avoir compris
j'ai en fait 5 fichiers:
- test2.php /test2.html : là où l'utilisateur définit ses critères de recherche
- recherche.php/recherche.html : là où l'utilisateur récupère les résultats
- le script .js avec la fct rechercher dedans

dans test2.html: je mets ça:
<label>
<input type="text" name="textfield" id="longueur" name="longueur"/>
</label>
dans test2.php : je mets ça:
<?php
    $fond="test2.html";
    $pageret=1;
    $POST["longueur"]
    include("fonctions/moteur.php");
?>
dans le .js, si l'id de la caractéristique longueur est 1, je mets ça:
       if(document.getElementById('longueur').value){
                document.getElementById('caracteristique').value+="1-";
                document.getElementById('caracdisp').value+=document.getElementById('longueur').value;
        }
et dans recherche.html, je laisse la boucle comme ça?:
<THELIA_PRODTR type="PRODUIT" caracteristique="#CARACTERISTIQUE_ID" caracdisp="#CARACTERISTIQUE_DISP" prixmin="#PRODUIT_PRIXMIN" prixmax="#PRODUIT_PRIXMAX" rubrique="#RUBRIQUE_ID" bloc="5" num="4" classement="inverse">?

Offline


sanfred wrote:

dans test2.html: je mets ça:
<label>
<input type="text" name="textfield" id="longueur" name="longueur"/>
</label>

Tu ne peut pas mettre deux fois name dans la même balise.


dans test2.php : je mets ça:
<?php
    $fond="test2.html";
    $pageret=1;
    $POST["longueur"]
    include("fonctions/moteur.php");
?>
C'est pas ici qu'il faut le rajouter mais dans fonction/moteur.php tu fait :

(tu verrat il y en a plein d'autre comme ça!)
if(!isset($_REQUEST['longueur'])) $longueur=""; else $longueur=$_REQUEST['longueur'];

cela va créer une variable avec la longueur et ainsi de suite pour les autres variables de ta recherche.

puis dans le :
switch($action){Un peut plus bas dans moteur.php tu rajoute :.

case 'recherche' : recherche($longueurEt tout les variables que tu a besoin.); break;

Cela va chercher la fonction recherche dans le fichier fonction/action.php :

dans ce fichier tu rajoute :

function recherche($longueur ....){

Là tu met le code de ta recherche et à la fin tu fait la redirection vers la page ou tu veut afficher le résultat de ta recherche.
}

Pour le resste ça a l'air bon.

Offline


euh.... je croyais qu'il ne fallait pas toucher à moteur.php?
y'a pas moyen sans toucher à moteur.php?
En tout cas merci pour ton aide !

Offline


Question bête : dans la boucle produit, je passe un certain nombre de valaurs à caractéristique, la plupart étant associées à un caracdisp mais d'autres à caracval... Thelia s'y retrouvera ou pas?

  • manu
  • faï tot petar miladiu

Offline


non non pas besoin de toucher au moteur pour rajouter des actions tu te fais un plugin Recherche tu crées le fichier Recherche.class.php et dans la class tu utilise la fonction action().

Ca permet de rajouter des actions sans toucher au moteur, j'ai donné un exemple hier sur ce post : http://forum.thelia.fr/viewtopic.php?id=718


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

Offline


Me reste plus qu'à apprendre le php quoi... wink

Offline


Allez, au risque de passer pour un balireau, voici le code php de mon recherche.class.php:

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

	
	function Recherche(){
			$this->Baseobj();	
		}

		function charger($id){
		
	
		}


		function init(){
		}

		
		function destroy(){
		}
		
		function boucle($texte, $args){
			// récupération des arguments
			$att1= lireTag($args, "att1");
			$att_val1= lireTag($args, "att_val1");
			$att2= lireTag($args, "att2");
			$att_val2= lireTag($args, "att_val2");
			$att3= lireTag($args, "att3");
			$att_val3= lireTag($args, "att_val3");
			$att4= lireTag($args, "att4");
			$att_val4= lireTag($args, "att_val4");
			$att5= lireTag($args, "att5");
			$att_val5= lireTag($args, "att_val5");
			
			$search ="";
			$res="";

			// préparation de la requête
			if($att1!="") and ($att_val1!="") $search.=" and \"$att1\"=\"$att_1\"";
			if($att2!="") and ($att_val2!="") $search.=" and \"$att2\"=\"$att_2\"";
			if($att3!="") and ($att_val3!="") $search.=" and \"$att3\"=\"$att_3\"";
			if($att4!="") and ($att_val4!="") $search.=" and \"$att4\"=\"$att_4\"";
			if($att5!="") and ($att_val5!="") $search.=" and \"$att5\"=\"$att_5\"";
		
	
			$query_resultat = "select distinct caracval.produit as prod from caracteritiquedesc, caracval where caracteritiquedesc.id=caracval.caracteritique $search";
			$resul_rech = mysql_query($query_resultat, $recherche->link);
			$nbres = mysql_numrows($resul_rech);
			if(!$nbres) return "";

			while( $row = mysql_fetch_object($resul_rech)){
				$temp = str_replace("#ID_PRO", "$row->prod", $temp);
		
				$res .= $temp;
			}

			return $res;

			
			}

			
		
		function action(){
		
	 	
	 	}			
			
		}

	}


?>

qui dans mon idée pourrait s'utiliser comme ça:

<THELIA_cherche type="RECHERCHE" att1="longueur" att_val1=$longueur>                                                      
          et là on met une boucle Thelia qui affiche la liste des produits avec #ID=#ID_PRO 
</THELIA_cherche>

ca marcherait ça ou .... pas du tout

Offline

Offline


Bon j'abandonne. Je n'y arrive pas et je ne sais pas pourquoi. Et vu que ça n'a l'air d'intéresser personne, je me contenterai des listes déroulantes ou j'irai voir ailleurs

Offline


Bonjour Sanfred,

Je veins d'arriver sur thélia (1 semaine et des brouettes).
Bon, moi j'y capt un peu mais ce n'est pas la joie.
De plus, avant d'arriver sur thélia j'en ai essayé d'autres, comme joomla. Et ba joomla, je n'ai jamais réussi à faire qqes chose (organisation des table merdique, administration sans fond, site indémarrable ....).

Et là, j'ai quand même réussi à l'installer (mon site web), à le rendre fonctionnel avec thélia. Bon je ne dit pas, il y a plein de truc à faire design et tout et tout. mais voilà, ça marche.
Et puis, vous croyez quoi, que tout est documenté correctement, pfff dans nos rêves les plus fou. Il faut savoir que l'informatique est en constante évolution et qu'il est très difficile de tout documenter. Et pi, un informaticien ça code, ça documente pas ;-)

De toute manière, c'est comme le permis de conduir, il faut apprendre pour conduir et ba voilà, je pense qu'ici c'est pareil.
Effectivement, il faut des bases, et bien nous voulons faire notre site web avec nos paluches et ba il faut dabord connaire les bases de la programmation pour éviter de se faire larguer.
Sinon, on paye un société pour faire notre site.

Allez, courage, nous y arriverons.
Stefan69
(ps: 69 ce n'est pas la position du tétris ;-) 'est le dep :-))))

Last edited by stefan69 (28-04-2008 20:28:09)

Offline


Bonjour à toutes et à tous,

yoan wrote:

En effet THELIA n'est pas orienté "débutants". THELIA demande des pré-requis indispensables.

Je suis tout à fait d'accord avec toi, et j'en profite pour remercier Octolys d'avoir mis le code de THelia à disposition.

Au regard des sites qui ont été faits avec THELIA, j'en déduis que pas mal de gens s'en sortent très bien.

Cela semble être effectivement le cas, mais en lisant la documentation sur le wiki et les discussions dans les forums, j'ai l'impression que pas mal de gens ne parviennent pas à s'en sortir, au risque de de les voir délaisser Thelia au profit d'une autre solution d'e-commerce open source...

La documentation reste à étoffer, c'est clair, je ne vais pas dire le contraire. Cependant ce n'est pas vraiment très compliqué.

Que la documentation reste à étoffer, c'est évident et je suis prêt à participer. En revanche je ne partage pas ton avis quand tu dis que ce n'est pas compliqué.

Il manque par exemple (je le dis après avoir galéré et fait sans succès des tests pendant des heures avant de parvenir à mes fins) des exemples de boucles fonctionnelles.

Prenons le cas de la boucle STOCK :

http://wiki.thelia.fr/index.php/La_boucle_STOCK

Ok, on peut voir la liste des paramètres entrant et sortant, on comprend que cette boucle n'est utilisable que si on a des déclinaisons de produits, qu'elle ne fonctionnera que dans les conditions suivantes :

La boucle STOCK ne s'utilise qu'avec des produits ayant été doté d'une déclinaison.
Elle permet d'afficher le stock disponible par déclinaisons d'un produit
et s'utilise donc imbriquée dans une boucle type DECLINAISON ou DECLIDISP par exemple.

Un exemple de code de boucle serait bienvenu, non ?

Je le dis comme je le pense, et j'espère que les développeurs de Thela ne le prendront pas mal. C'est très frustrant de savoir que Thelia est un logiciel puissant, superbement écrit (je pratique les logiciels libre depuis longtemps et je n'ai jamais vu un truc aussi propre, modulable et adaptable) ; puis de ne pas parvenir à comprendre comment faire telle ou telle chose parce que la documentation indiquant comment implémenter telle ou telle boucle ne propose pas un exemple concret...

  • yoan
  • Cofondateur Thelia

Offline


Eric, je suis d'accord avec toi.

Je suis moi même frustré lorsque j'utilise un logiciel libre et que je ne trouve pas de documentation.

Nous allons essayer d'améliorer tout ça dès qu'on aura un peu de temps.

Merci pour ton post constructif.


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline


Salut Yoan,

yoan wrote:

Je suis moi même frustré lorsque j'utilise un logiciel libre et que je ne trouve pas de documentation.

Nous allons essayer d'améliorer tout ça dès qu'on aura un peu de temps.

Chouette ! Merci encore pour ton remarquable boulot...