aide prestashop PhenixSuite Help
    • Catégories
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Recherche
    • S'inscrire
    • Se connecter

    Problème de lien vers tpl module custom

    Planifier Épinglé Verrouillé Déplacé PhenixSuite
    3 Messages 2 Publieurs 490 Vues 2 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • C Hors-ligne
      camille
      dernière édition par

      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 !

      1 réponse Dernière réponse Répondre Citer 0
      • eoliaE Hors-ligne
        eolia
        dernière édition par

        $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 ?

        Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

        1 réponse Dernière réponse Répondre Citer 0
        • eoliaE Hors-ligne
          eolia
          dernière édition par

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

          Créateur de PhenixSuite. Pour plus d'infos : https://eoliashop.com

          1 réponse Dernière réponse Répondre Citer 0
          • Premier message
            Dernier message
          bug
          26 sujets
          1.6
          24 sujets
          front-office
          11 sujets
          1.5
          8 sujets
          1.7
          5 sujets
          système
          4 sujets
          administration
          3 sujets
          hack
          3 sujets
          module
          3 sujets
          performance
          3 sujets
          smtp
          3 sujets
          transporteurs
          3 sujets
          dashboard
          2 sujets
          https
          2 sujets
          paypal
          2 sujets
          promotions
          2 sujets