snakeyes Posted May 13, 2009 Share Posted May 13, 2009 Bonjour,j'ai ajouté une partie Actualité sur le site que je suis en train de développer.j'aimerais avoir les actualités qui défilent verticalement comme le bloc promo de Olecorrej'ai dupliqué le bloc promo en bloc news et je voudrais le réadapter.Mais ne connaissant pas smarty, je vous demande de l'aide.ma table News est contituée des zones suivantes : id, titre, texte, dateje voudrais afficher le titre et le texte de la news.dans le script PHP :je pense qu'il faut modifié les lignes suivantes : $smarty->assign(array( 'products' => Product::getPricesDrop(intval($params['cookie']->id_lang)), 'nbProducts' => $nbProducts)); dans le script tpl : {if isset($news)} {foreach from=$news item=new name=news} <!-- Affichage du titre -->{$news.titre|truncate:35|escape:'htmlall':'UTF-8'} {/foreach} {l s='All specials' mod='blocknewscaroussel'} {else}{l s='No specials at this time' mod='blocknewscaroussel'} {/if} j'ai essayé de modifier la table Product par News, mais je n'ai pas de résultat.Pouvez-vous m'aider. Link to comment Share on other sites More sharing options...
moncler Posted May 13, 2009 Share Posted May 13, 2009 Salut,Avant d assigner les variables smarty il faut d abord les recuperer (via une requete SQL) en php.Peut tu poster ce code? Link to comment Share on other sites More sharing options...
snakeyes Posted May 13, 2009 Author Share Posted May 13, 2009 voici la requete SQL :$result = mysql_query("SELECT texte, date, titre, id_news FROM news ORDER BY id_news DESC"); Link to comment Share on other sites More sharing options...
snakeyes Posted May 14, 2009 Author Share Posted May 14, 2009 vous faut-il d'autres renseignements pour résoudre mon problème Link to comment Share on other sites More sharing options...
moncler Posted May 14, 2009 Share Posted May 14, 2009 Salut,Ta requete semble bonne, le mieux est que tu place tous le code ici si tu n y arrive pas.En principe c'est pas compliquer il faut juste verifier que tu recuperes bien les données apres ta requete et ensuite a l'assigner ds smarty "news"=>$news directement, en supposant que news est ton tableau, et ensuite dans le tpl :{foreach from=$news item=new}{$new.link}etc.../foreach Link to comment Share on other sites More sharing options...
snakeyes Posted May 15, 2009 Author Share Posted May 15, 2009 il y a juste un petit problème que je ne comprends pas au niveau de smarty.je n'utilise à aucun moment la requête précédemment citée ; dans le module sur les produits de Olecorre que j'ai pu récupérer, il n'y a aucune requete de ce type.voici le module récupérer :http://www.prestashop.com/forums/viewthread/15208/developpement_et_modules/module_promotion_avec_carousselfaut-il affectercette requete dans un script avant d'utiliser le module Caroussella table News est une nouvelle table que j'ai créée. Link to comment Share on other sites More sharing options...
moncler Posted May 16, 2009 Share Posted May 16, 2009 Dans le module carousel la requete est effectuée dans la fonction Product::getPricesDropCe qui compte est que ta requete soit effectuée d une maniere ou d une autre dans la fonction hookXXXXXX qui est appellée avant chaque affichage du module.Cette requete sera donc lancée et son resultat assigné dans smarty a chaque fois que la page sera chargée.Il faut voir smarty juste comme un objet qui se charge d afficher les pages (via sa methode display), auquel il faut fournir avant les informations qui seront utilisé dans le tpl Link to comment Share on other sites More sharing options...
snakeyes Posted May 19, 2009 Author Share Posted May 19, 2009 j'ai bien compris que la fonction est effectuée dans la fonction Product::getPricesDrop.mais ou se trouve la fonction hookXXXXX ?ma table News doit aussi commencer obligatoirement par le préfixe ps comme les autres tables ?encore quelques questions ; je n'avance pas sur ce sujet. Link to comment Share on other sites More sharing options...
moncler Posted May 19, 2009 Share Posted May 19, 2009 Quand je dit hookXXXXX, il faut remplacer XXXXX par le hook correspondant.Par exemple la fonction Product::getPricesDrop precedente est appellée dans hookRightColumn, qui est elle meme appellé si le module est greffé au hook RightColumn (dans position)Toute les fonctions hook sont declarées dans la classe de ton module.Ta table news doit se nommer de la meme maniére qu elle est appellée dans ta requete, donc pas obligatoirement avec le prefixe.Le prefixe c est juste pour reconnaitre les tables lié a prestashop dans la base de donnée si par hasard il y a d autre table. Link to comment Share on other sites More sharing options...
snakeyes Posted May 20, 2009 Author Share Posted May 20, 2009 Ma partie Actualité se trouve sur la colonne de gauche donc dans la fonction hookLeftColumnou dois-je intégrer la requete SQL sur la nouvelle table News ?je pense que le .tpl est correct, mais le .php ne fonctionne pas :voici le source sur la fonction hookRightColumn du php:function hookRightColumn($params) {global $smarty; //print_r(Product::getRandomSpecial(intval($params['cookie']->id_lang))); $smarty->assign(array( 'products' => Product::getPricesDrop(intval($params['cookie']->id_lang)), 'nbProducts' => $nbProducts)); je dois modifier l'assignation dans le tablea products qui doit devenir news mais que dois-je écrire ?existe t-il une documentation sur cette partieMerci pour vos réponses Link to comment Share on other sites More sharing options...
moncler Posted May 20, 2009 Share Posted May 20, 2009 Ma partie Actualité se trouve sur la colonne de gauche donc dans la fonction hookLeftColumnou dois-je intégrer la requete SQL sur la nouvelle table News ? Oui, mais il vaut mieux prevoir tout les hook ou ton module est suceptible d etre greffer.Si tu as du code qui se repete a chaque hook il est plus pratique de faire une petite fonction separerée et de l appeller ds chaque fonction hookXXXXX (par exemple l assignement a smarty du resultat de ta requete)je pense que le .tpl est correct, mais le .php ne fonctionne pas :voici le source sur la fonction hookRightColumn du php:function hookRightColumn($params) {global $smarty; //print_r(Product::getRandomSpecial(intval($params['cookie']->id_lang))); $smarty->assign(array( 'products' => Product::getPricesDrop(intval($params['cookie']->id_lang)), 'nbProducts' => $nbProducts)); je dois modifier l'assignation dans le tablea products qui doit devenir news mais que dois-je écrire ? Il faut remplacer le nom des variable selon ou sera stocker le resulat de ta requete, et celui que tu veux transmettre au tpl (cf le post precedent)existe t-il une documentation sur cette partie Il me semble qu il y a un tuto pour faire des modules mais je ne sais pas ce qu il raconte.Essaye de faire une recherche sur le forum.Merci pour vos réponses de rien et bon courage ;-) 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