Jump to content

Greffer un module non natif


riosrdw

Recommended Posts

Bonjour,

Sur mes pages produits, je cherche à monter au plus proche de l'image du produit un lecteur de musique.

Pour améliorer la situation, j'ai :
-Descendu le module réassurance du DisplayRéassurence vers le DisplayFooterProduit 
-Descendu le Boutons de partage sur réseaux sociaux du  displayProductAdditionalInfovers vers DisplayFooterProduit 
Le lecteur est bien monté, mais pas suffisamment, car plus le texte de ma description est long plus le lecteur descend.

L'Ideal, serait de pouvoir monter au même niveau que la description mais inverser les positions lecteur/description ça serait bien déjà exemple :
-Greffer ce lecteur de musique sur displayProductAdditionalInfovers ou DisplayRéassurence mais, P.S. limite ses positionnements. 
-Ou alors greffer cette description produits sur le DisplayFooterProduit mais, je ne trouve pas cette possibilité.

Une idée pour aider à améliorer cet affichage ?

Je suis sur PS 1.7.6 et je suis débutant.

Merci.

Sauuns titre 1.jpg

Link to comment
Share on other sites

Bonsoir,

Merci de votre réponse,

Je viens d'essayer, j'ai créé un hook, il est proposé lors d'une greffe d'un module natif, mais il n'est pas proposé lors de la greffe du module concerné. Aussi, je ne vois pas ou placer le hook créé, sans doute dans le code du thème mais ça dépasse mes compétences. 

Je verrais plus une solution en modifiant le fichier product.tpl  en déplacement le code  "description du produit" en bas de page.

J'arrive à trouver le code concerné, je peux le couper, mais je ne sais pas ou le placer pour qu'il reste en bas de la page produit.

Toute aide est la bien venue, Merci.

 

 

Link to comment
Share on other sites

Pouvez-vous poster le contenu de votre fichier /themes/classic/templates/catalog/product.tpl ?

il suffit d'y faire une petite modification pour avoir le résultat voulu ou alors de créer un thème enfant, overrider le fichier du template en question, etc....

Link to comment
Share on other sites

{**
 * 2007-2020 PrestaShop and Contributors
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License 3.0 (AFL-3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * https://opensource.org/licenses/AFL-3.0
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to [email protected] so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
 * versions in the future. If you wish to customize PrestaShop for your
 * needs please refer to https://www.prestashop.com for more information.
 *
 * @author    PrestaShop SA <[email protected]>
 * @copyright 2007-2020 PrestaShop SA and Contributors
 * @license   https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
 * International Registered Trademark & Property of PrestaShop SA
 *}
{extends file=$layout}

{block name='head_seo' prepend}
  <link rel="canonical" href="{$product.canonical_url}">
{/block}

{block name='head' append}
  <meta property="og:type" content="product">
  <meta property="og:url" content="{$urls.current_url}">
  <meta property="og:title" content="{$page.meta.title}">
  <meta property="og:site_name" content="{$shop.name}">
  <meta property="og:description" content="{$page.meta.description}">
  <meta property="og:image" content="{$product.cover.large.url}">
  {if $product.show_price}
    <meta property="product:pretax_price:amount" content="{$product.price_tax_exc}">
    <meta property="product:pretax_price:currency" content="{$currency.iso_code}">
    <meta property="product:price:amount" content="{$product.price_amount}">
    <meta property="product:price:currency" content="{$currency.iso_code}">
  {/if}
  {if isset($product.weight) && ($product.weight != 0)}
  <meta property="product:weight:value" content="{$product.weight}">
  <meta property="product:weight:units" content="{$product.weight_unit}">
  {/if}
{/block}

{block name='content'}

  <section id="main" itemscope itemtype="https://schema.org/Product">
    <meta itemprop="url" content="{$product.url}">

    <div class="row product-container">
      <div class="col-md-6">
        {block name='page_content_container'}
          <section class="page-content" id="content">
            {block name='page_content'}
              <!-- @todo: use include file='catalog/_partials/product-flags.tpl'} -->
              {block name='product_flags'}
                <ul class="product-flags">
                  {foreach from=$product.flags item=flag}
                    <li class="product-flag {$flag.type}">{$flag.label}</li>
                  {/foreach}
                </ul>
              {/block}

              {block name='product_cover_thumbnails'}
                {include file='catalog/_partials/product-cover-thumbnails.tpl'}
              {/block}
              <div class="scroll-box-arrows">
                <i class="material-icons left">&#xE314;</i>
                <i class="material-icons right">&#xE315;</i>
              </div>

            {/block}
          </section>
        {/block}
        </div>
        <div class="col-md-6">
          {block name='page_header_container'}
            {block name='page_header'}
              <h1 class="h1" itemprop="name">{block name='page_title'}{$product.name}{/block}</h1>
            {/block}
          {/block}
          {block name='product_prices'}
            {include file='catalog/_partials/product-prices.tpl'}
          {/block}

          <div class="product-information">
            {block name='product_description_short'}
              <div id="product-description-short-{$product.id}" itemprop="description">{$product.description_short nofilter}</div>
            {/block}

            {if $product.is_customizable && count($product.customizations.fields)}
              {block name='product_customization'}
                {include file="catalog/_partials/product-customization.tpl" customizations=$product.customizations}
              {/block}
            {/if}

            <div class="product-actions">
              {block name='product_buy'}
                <form action="{$urls.pages.cart}" method="post" id="add-to-cart-or-refresh">
                  <input type="hidden" name="token" value="{$static_token}">
                  <input type="hidden" name="id_product" value="{$product.id}" id="product_page_product_id">
                  <input type="hidden" name="id_customization" value="{$product.id_customization}" id="product_customization_id">

                  {block name='product_variants'}
                    {include file='catalog/_partials/product-variants.tpl'}
                  {/block}

                  {block name='product_pack'}
                    {if $packItems}
                      <section class="product-pack">
                        <p class="h4">{l s='This pack contains' d='Shop.Theme.Catalog'}</p>
                        {foreach from=$packItems item="product_pack"}
                          {block name='product_miniature'}
                            {include file='catalog/_partials/miniatures/pack-product.tpl' product=$product_pack}
                          {/block}
                        {/foreach}
                    </section>
                    {/if}
                  {/block}

                  {block name='product_discounts'}
                    {include file='catalog/_partials/product-discounts.tpl'}
                  {/block}

                  {block name='product_add_to_cart'}
                    {include file='catalog/_partials/product-add-to-cart.tpl'}
                  {/block}

                  {block name='product_additional_info'}
                    {include file='catalog/_partials/product-additional-info.tpl'}
                  {/block}

                  {* Input to refresh product HTML removed, block kept for compatibility with themes *}
                  {block name='product_refresh'}{/block}
                </form>
              {/block}

            </div>

            {block name='hook_display_reassurance'}
              {hook h='displayReassurance'}
            {/block}

            {block name='product_tabs'}
              <div class="tabs">
                <ul class="nav nav-tabs" role="tablist">
                  {if $product.description}
                    <li class="nav-item">
                       <a
                         class="nav-link{if $product.description} active{/if}"
                         data-toggle="tab"
                         href="#description"
                         role="tab"
                         aria-controls="description"
                         {if $product.description} aria-selected="true"{/if}>{l s='Description' d='Shop.Theme.Catalog'}</a>
                    </li>
                  {/if}
                  <li class="nav-item">
                    <a
                      class="nav-link{if !$product.description} active{/if}"
                      data-toggle="tab"
                      href="#product-details"
                      role="tab"
                      aria-controls="product-details"
                      {if !$product.description} aria-selected="true"{/if}>{l s='Product Details' d='Shop.Theme.Catalog'}</a>
                  </li>
                  {if $product.attachments}
                    <li class="nav-item">
                      <a
                        class="nav-link"
                        data-toggle="tab"
                        href="#attachments"
                        role="tab"
                        aria-controls="attachments">{l s='Attachments' d='Shop.Theme.Catalog'}</a>
                    </li>
                  {/if}
                  {foreach from=$product.extraContent item=extra key=extraKey}
                    <li class="nav-item">
                      <a
                        class="nav-link"
                        data-toggle="tab"
                        href="#extra-{$extraKey}"
                        role="tab"
                        aria-controls="extra-{$extraKey}">{$extra.title}</a>
                    </li>
                  {/foreach}
                </ul>

                <div class="tab-content" id="tab-content">
                 <div class="tab-pane fade in{if $product.description} active{/if}" id="description" role="tabpanel">
                   {block name='product_description'}
                     <div class="product-description">{$product.description nofilter}</div>
                   {/block}
                 </div>

                 {block name='product_details'}
                   {include file='catalog/_partials/product-details.tpl'}
                 {/block}

                 {block name='product_attachments'}
                   {if $product.attachments}
                    <div class="tab-pane fade in" id="attachments" role="tabpanel">
                       <section class="product-attachments">
                         <p class="h5 text-uppercase">{l s='Download' d='Shop.Theme.Actions'}</p>
                         {foreach from=$product.attachments item=attachment}
                           <div class="attachment">
                             <h4><a href="{url entity='attachment' params=['id_attachment' => $attachment.id_attachment]}">{$attachment.name}</a></h4>
                             <p>{$attachment.description}</p
                             <a href="{url entity='attachment' params=['id_attachment' => $attachment.id_attachment]}">
                               {l s='Download' d='Shop.Theme.Actions'} ({$attachment.file_size_formatted})
                             </a>
                           </div>
                         {/foreach}
                       </section>
                     </div>
                   {/if}
                 {/block}

                 {foreach from=$product.extraContent item=extra key=extraKey}
                 <div class="tab-pane fade in {$extra.attr.class}" id="extra-{$extraKey}" role="tabpanel" {foreach $extra.attr as $key => $val} {$key}="{$val}"{/foreach}>
                   {$extra.content nofilter}
                 </div>
                 {/foreach}
              </div>  
            </div>
          {/block}
        </div>
      </div>
    </div>

    {block name='product_accessories'}
      {if $accessories}
        <section class="product-accessories clearfix">
          <p class="h5 text-uppercase">{l s='You might also like' d='Shop.Theme.Catalog'}</p>
          <div class="products">
            {foreach from=$accessories item="product_accessory"}
              {block name='product_miniature'}
                {include file='catalog/_partials/miniatures/product.tpl' product=$product_accessory}
              {/block}
            {/foreach}
          </div>
        </section>
      {/if}
    {/block}

    {block name='product_footer'}
      {hook h='displayFooterProduct' product=$product category=$category}
    {/block}

    {block name='product_images_modal'}
      {include file='catalog/_partials/product-images-modal.tpl'}
    {/block}

    {block name='page_footer_container'}
      <footer class="page-footer">
        {block name='page_footer'}
          <!-- Footer content -->
        {/block}
      </footer>
    {/block}
  </section>

{/block}
 

Link to comment
Share on other sites

Sauvegardez votre fichier (il y a un backup ici pour le coup ;) ) remplacez par ce fichier (il est à renommer correctement), allez vider le cache de la boutique et ca devrait être bon.

En revanche, attention, cette méthode "barbare" ou j'ai simplement déplacé un block du template disparaitra dès lors que vous ferez une mise a jour du thème, il faudrait créer un thème enfant et appliquer cette modification dessus ou refaire la modification si vous mettez à jour le template ou en utilisez un autre.

riosrdw_product.tpl

Edited by HeineFR (see edit history)
Link to comment
Share on other sites

Bonjour,

Oui, je viens de l'appliquer sur la boutique de production et ça fonctionne bien.

Bien que l'idéal, serait  de pouvoir monter (greffer) le lecteur au même niveau de la description en laissant celle-ci à sa place initial en raison des prochaines mises ajours comme vous le dites. Aussi sur certains produits il y a  une dizaine d'extraits à l'écoute ce qui fait descendre la description créant un vide à côté du lecteur. exemple: https://sonsdelanature.com/sonotherapie/acouphenes-hyperacousie/23-testeur-d-acouphenes.html

Je ne suis pas du métier et cette modification est déjà une amélioration considérable, car le client cherche d'abord à écouter avant de lire la description détaillée.

Merci beaucoup, c'est résolu.

 

Edited by riosrdw (see edit history)
Link to comment
Share on other sites

Ce type de modification étant "simple", il ne serait pas très compliqué de la refaire si ce fichier venait à changer dans les prochaines versions.

En revanche, une multitude de modification comme ceci nuira fortement aux mises à jour, regardez comment fonctionnent les thèmes enfants si vous voulez que ce soit propre.

Au final, l'idéal pour vous serait que la description du produit reste à l'endroit initial et que dans cette description soit présent sur la gauche, en colonne, votre lecteur avec la description texte a coté.

  • Like 1
Link to comment
Share on other sites

 

3 minutes ago, HeineFR said:

En revanche, une multitude de modification comme ceci nuira fortement aux mises à jour, regardez comment fonctionnent les thèmes enfants si vous voulez que ce soit propre.

Je ne connais pas le fonctionnement des thèmes enfants, je regarderais ça.

 

5 minutes ago, HeineFR said:

Au final, l'idéal pour vous serait que la description du produit reste à l'endroit initial et que dans cette description soit présent sur la gauche, en colonne, votre lecteur avec la description texte a coté.

Oui, serait l'idéal mais le module semble compliqué à déplacer et cette façons est déjà très 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...