Récemment
-
Urls bizarres dans la console search
PhenixSuite10 -
Erreurs 410 dans BO
PhenixSuite2 -
Images produit qui disparaissent
Bugs & Améliorations10 -
la classe search
Bugs & Améliorations2 -
Probleme depuis MAJ phenix 1.6.2.36
PhenixSuite8 -
[resolu] Le module mondial relay 3.4.5
Bugs & Améliorations1 -
controlleur fournisseurs.
Bugs & Améliorations11 -
J'en profite (la fougue de la jeunesse) (ah ah ah)
Bugs & Améliorations5 -
Bon dernier du jour mais cela me turlupine classe search
Bugs & Améliorations4 -
se connecter comme un client idntifié
Bugs & Améliorations1 -
la bonne blague
Discussion générale2 -
Passage de la 16.1.9 a la PhenixSuite 1.6.2.36
Bugs & Améliorations8 -
Echec de l'installation de Creative Elements
Bugs & Améliorations3 -
[Résolu] Modification données client dans l'admin
PhenixSuite10 -
googletagmanager
PhenixSuite2 -
2 téléphones obligatoires
PhenixSuite11 -
Liens qui disparaissent
PhenixSuite5 -
Smart cache JS et Iphone
PhenixSuite1 -
Hack ancien PS 1.6 avant mise à jour Phenix
PhenixSuite3 -
[RESOLU]Souci Revolut et Hipay
Modules11
Problème de lien vers tpl module custom
-
Bonjour,
Tout d'abord un grand merci à Eolia pour la dernière mouture de Phenix. La maj s'est faite sans souci. Et il y a maintenant le champ date_upd dans la table product_download ! Ce qui m'a permis de finaliser mon module permettant, d'une part, d'avoir sur la home une liste de produits dématérialisés récemment mis à jour (hors nouveaux produits), d'autre part, sur la fiche du produit, de pouvoir afficher la date de mise à jour du fichier. Super !
Mais je souhaite aller un peu plus loin et, dans le bloc sur la home, mettre un lien vers une page affichant tous les produits récemment mis à jour.
Dans le module, j'ai donc créé un fichier updproducts dans controller> front avec ceci :<?php class BlockUpdProductsUpdProductsModuleFrontController extends ModuleFrontController { public function initContent() { parent::initContent(); $updProducts = $this->module->getUpdProducts(); $this->context->smarty->assign([ 'upd_products' => $updProducts, 'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')), 'homeSize' => Image::getSize(ImageType::getFormatedName('home')) ]); $this->setTemplate('module:blockupdproducts/views/templates/front/updproducts.tpl'); } }
J'ai créé un tpl (updproducts.tpl) dans views/templates/front :
{capture name=path}{l s='Updated products'}{/capture} {block name='page_content'} <h1>{l s='Updated Products'}</h1> {if $upd_products} <div class="content_sortPagiBar"> <div class="sortPagiBar clearfix"> {include file="./product-sort.tpl"} {include file="./nbr-product-page.tpl"} </div> <div class="top-pagination-content clearfix"> {include file="./product-compare.tpl"} {include file="$tpl_dir./pagination.tpl"} </div> </div> {include file="./product-list.tpl" products=$upd_products} <div class="content_sortPagiBar"> <div class="bottom-pagination-content clearfix"> {include file="./product-compare.tpl"} {include file="./pagination.tpl" paginationId='bottom'} </div> </div> {else} <p>{l s='No updated products available.'}</p> {/if} {/block}
Et dans le tpl du bloc sur la home, j'ai ajouté le lien :
<a href="{$link->getModuleLink('blockupdproducts', 'updproducts')}" title="{l s='View all updated products'}">{l s='View all'}</a>
Mais cela débouche sur "Page introuvable". L'url du lien s'affiche ainsi :
https://monsite.fr/module/blockupdproducts/updproducts.J'ai cherché sur le Net, cela semble correct mais difficile de savoir si ce que j'ai trouvé s'applique à 1.7 ou à 1.6.
En relisant mon code, je pense que je devrai ajouter quelque chose pour qu'il trouve les tpl product-list etc, vu que c'est appelé depuis le module, mais ce n'est pas cela qui rend la page "introuvable".De plus, il faudrait que je puisse réécrire l'url dans SEO pour que cela ne soit pas le chemin du module mais c'est une autre question (et en nofollow noindex idéalement, avec url canonicale, mais là j'abuse).
Auriez-vous une piste pour moi ?
Merci d'avance
Et vraiment, Phenix est génial !! Merci encore Eolia, pour ce magnifique boulot !
-
$this->setTemplate('module:blockupdproducts/views/templates/front/updproducts.tpl');
module: c'est une typo à la 1.7
normalement $this->setTemplate('updproducts.tpl'); doit suffire.Un d( $updProducts); affiche quelque chose ou pas ?
-
@camille a dit dans Problème de lien vers tpl module custom :
De plus, il faudrait que je puisse réécrire l'url dans SEO pour que cela ne soit pas le chemin du module mais c'est une autre question
Pour ça il suffit d'aller dans la page SEO & URL et de créer la réécriture d'url.
Pour les nofollow/noindex il suffit de les rajouter dans votre lien <a>. De toute façon Google s'en cogne et ira quand même voir.