2ab Posted March 23, 2011 Share Posted March 23, 2011 Bonsoir à toute la communauté !Voilà, je débute en programmation Smarty et je coince sur le projet suivant : :red: A partir d'un formulaire, le visiteur choisira un article puis donnera des dimensions dans deux champs distincts.Ces trois informations serviront pour faire des calculs et rechercher un article selon ces paramètres.Pour la réalisation du projet, j'ai dupliqué les fichiers contact-form.tpl et contact-form.php.Ce n'est peut être pas la meilleure solution car je ne souhaite pas envoyer les informations par mail, mais simplement récupérer mes trois paramètres... On verra plus tard les adaptations à faire.Je bloque dès le premier champs qui doit permettre au visiteur de sélectionner l'article comme on peut choisir le destinataire du message du contact-form. Je n'arrive pas à relier dynamiquement ce champs avec la table article, j'ai une jolie liste vide. >J'ai mis les fichiers TPL et PHP triturés et une image écran du formulaire en pièces jointes car le site n'est pas encore en ligne.Merci par avance de vos conseils calcul tpl.txt calcul php.txt Link to comment Share on other sites More sharing options...
Broceliande Posted March 23, 2011 Share Posted March 23, 2011 A mon sens, "getCategories" ne retourne pas un objet de classe.Tu ne dois donc pas acceder à tes valeurs avec . mais avec ->eg: {$category->name|escape:'htmlall':'UTF-8'} Link to comment Share on other sites More sharing options...
2ab Posted March 23, 2011 Author Share Posted March 23, 2011 Merci Broceliande pour cette première piste.Je viens de modifier la ligne 21 du fichier TPL en remplaçant le . par ->J'ai effacé les données de navigations de Chrome et affiché la page du formulaire.La liste reste vide.Hormis ce problème de "." je n'arrive pas à comprendre comment ce champs peut lire les articles ??Idem pour le contact-form.php, comment ce formulaire arrive-t-il à lire les informations de la tab AdminContacts ??Une autre idée ? Link to comment Share on other sites More sharing options...
Broceliande Posted March 23, 2011 Share Posted March 23, 2011 {$category["name"]|escape:'htmlall':'UTF-8'} non plus ?Dans ton code php tu as : $smarty->assign('categories', Category::getCategories(intval($cookie->id_lang))); Ce qui m'échappe c'est ce que tu veux lister, et ton niveau de compréhension de ce que tu fais actuellement.Category::getCategories charge la liste des categories actives dans une langue donnée, et non des produits.Si tu veux des produits d'une catégory c'est plutôt $category->getProducts(...) mais il faut avoir instancié $category, si tu veux tous les produits actifs, c'est plutot Product::getProducts(..) etc ...A chaque besoin correspond une solution différente...Une fois l'objet ou le tableau de résultats obtenu dans le php , il est 'passé' à smarty par le biais d'un $smarty->assign('mavaleur', $mavaleur); Selon le cas de figure, ce peut être donc une simple variable, un tableau , ou un objet ...Une autre remarque , ton menu déroulant n'affiche rien mais sa longueur semble indiquer qu'il a plusieurs éléments Link to comment Share on other sites More sharing options...
2ab Posted March 24, 2011 Author Share Posted March 24, 2011 Bonsoir,Pour ce qui est de ce que je veux lister : - Ma liste de choix devrait m'afficher les produits d'une catégorie précise. L''id_catégory affichée dans le back-office est 8Pour ce qui est de mon niveau de compréhension de ce que je fais : asymptotique à zéro car je débute. Là est le problème car je n'interprète pas ou mal le code. Existe-t-il un site Smarty pour les nuls où on trouve l'explication des syntaxes complexes ??J'ai essayé de modifier le code :1) Afficher tous les produits, pour m'entrainer sur un cas simple ... $smarty->assign('produits', Product::getProducts(intval($cookie->id_lang))); sans changer le reste du code dans le les fichiers php et tpl, ca ne marche pas ce qui me semble être normal.Puis j'ai modifié les lignes du fichier php elseif (!($id_product = intval(Tools::getValue('id_product'))) OR !(Validate::isLoadedObject($product = new product(intval($id_product), intval($cookie->id_lang))))) $errors[] = Tools::displayError('please select a product in the list'); et dans le fichier tpl {l s='Item'} {l s='-- Choose --'} {foreach from=$produits item=product} {$product.name|escape:'htmlall':'UTF-8'} {/foreach} {foreach from=$produits item=product} {$product.description|escape:'htmlall':'UTF-8'} {/foreach} Ça ne marche pas non plusPour ce qui est d'afficher les produits d'une catégory j'ai essayé : $mavaleur = 8; $smarty->assign('category', $mavaleur); $smarty->assign('produits', $category->getProducts(intval($cookie->id_lang))); Le code est-il bon ? Si oui que faut il modifier dans le reste du code car pour l'instant le résultat est au niveau de mon savoir faire... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now