Jump to content

[débutant] Personnalisation les templates tpl, smarty, variables prestashop


Recommended Posts

Bonjour,

Ma question est très basique mais je ne trouve pas la réponse dans l'aide ni en cherchant dans le forum.

Je connais un peu la syntaxe du CMS SPIP pour personnaliser les templates (les , les variables du genre #TITRE, #SOUSTITRE).

Je souhaitait commencer par personnaliser le module "blocknewproducts" dans lequel je vois :

<!-- MODULE Block new products -->

{l s='New products' mod='blocknewproducts'}

   {if $new_products}




{$product.name|escape:htmlall:'UTF-8'}{$product.description_short|strip_tags:htmlall:'UTF-8'|truncate:50} >" src="{$img_dir}bullet.gif"/>

{l s='All new products' mod='blocknewproducts'}
   {else}

{l s='No new product at this time' mod='blocknewproducts'}
   {/if}


<!-- /MODULE Block new products -->



Je me rend compte que malgré mes connaissances en PHP, la syntaxe des templates de prestashop m'est complètement inconnue. Je pense ne pas me tromper si je dis que les templates utilise Smarty, dont je ne connais rien à part le nom.

Ma question est donc : Ou trouver la liste des variables utilisables dans prestashop et autres parties de la syntaxe des templates prestashop pour les boucles, les conditions etc...

La documentation (http://www.prestashop.com/wiki/FR_Wiki_PrestaShop/) semble un peu pauvre au niveau du développement alors qu'elle est plutôt complète sur l'utilisateur global de l'interface proposée par prestashop. Par exemple, je trouve la documentation de SPIP bien faite pour le templating : http://www.spip.net/@?lang=fr

Merci aux pros de prestashop qui pourront m'aider :-) Jusqu'à maintenant je le trouve super !

Link to comment
Share on other sites

chaque tpl de smarty sont situés dans le cas de ton exemple pour les modules, dans le même répertoire que le fichier php du module.

Tu trouveras généralement un template tpl qui correspond soit au bloc latéral, soit au bloc de la partie centrale.

Toutes les variables qu'utilise smarty pour ces tpl, sont déclarés partout ! Mais je te conseille de rester sur l'usage des déclarations du module en lui même. Soit dans sa classe du module, exemple dans ton cas : /modules/blocknewproducts/blocknewproducts.php

ce module php va appeler la fonction

hookRightColumn($params)

pour définir le lieu de sa mise en place et peut aussi être déclaré en

hookLeftColumn($params)

, ou même encore

hookHome($params)

pour l'accueil

chaque variable utilisée par smarty dans son tpl associé blocknewproducts.tpl est déclaré soit par :

$smarty->assign('ma_variable', $ma_variable);

soit par :

$smarty->assign(array(
           ''ma_variable1' => $ma_variable1,
           ''ma_variable2' => $ma_variable2,
           ''ma_variable3' => $ma_variable3
       ));


etc.

Link to comment
Share on other sites

Merci pour cette belle réponse clair et détaillée, tu as tout à fait répondu à ma question.

Après une nuit à jouer avec prestashop, j'ai remarqué qu'il y avait déjà moyen de bien personnaliser les TPL avec le contenu d'exemple mis en BDD à l'install, mais je suis sûr que ton explication me sera rapidement utile.

Encore un grand merci :)

J'ai aussi des problèmes avec l'import csv si tu sais m'aider ça me sauverait bien :)

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...