Jump to content

Défilement verticale sur actualités


Recommended Posts

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 Olecorre

j'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, date
je 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)}


{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

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

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_caroussel

faut-il affectercette requete dans un script avant d'utiliser le module Caroussel

la table News est une nouvelle table que j'ai créée.

Link to comment
Share on other sites

Dans le module carousel la requete est effectuée dans la fonction Product::getPricesDrop
Ce 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

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

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

Ma partie Actualité se trouve sur la colonne de gauche donc dans la fonction hookLeftColumn
ou 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 partie

Merci pour vos réponses

Link to comment
Share on other sites

Ma partie Actualité se trouve sur la colonne de gauche donc dans la fonction hookLeftColumn
ou 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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...