Jump to content

Ajouter un hook dans product footer


Recommended Posts

Bonjour,

 

J'ai télécharger le module "facebooklike", et j'essaie d'ajouter un hook pour que le bouton like de facebook, se place en bas de la photos des produits.

Par défault, lors de l’installation le bouton like, se place à droite de la photos.

 

J'ai ajouté l'appel suivant " {$HOOK_FACEBOOK_LIKE}" dans le fichier product.tlp de mon théme , après la ligne,"{$HOOK_PRODUCT_FOOTER}" ligne 399 du fichier.

 

 

{$HOOK_PRODUCT_FOOTER}

{$HOOK_FACEBOOK_LIKE}

<!-- description and features -->

{$HOOK_FACEBOOK_LIKE}

{if $product->description || $features || $accessories || $HOOK_PRODUCT_TAB || $attachments}

<div id="more_info_block" class="clear">

<ul id="more_info_tabs" class="idTabs idTabsShort">

 

 

Puis dans le back office, j'ai gregffé un le hook sur le product footer, mais la j'ai un message m'indiquant que le hook ne peux être greffer a cette endroit.

 

Quelqu'un peux t-il m'aider ??

Link to comment
Share on other sites

De toute façon, ça ne peut pas marcher, tu crées un hook que tu n'enregistres même pas dans la base de données.

 

De plus, il existe déjà un hook pour caler quelque chose en dessous des images produits : "extraLeft"

 

Voilà.

Link to comment
Share on other sites

Bonsoir,

 

Merci pour vos réponses, j'ai essayé le placé cela dans "Extra actions on the product page (left column)", mais cela place le module sur la droite de l'image, comme dans le print screan.

 

Faut-il créer un hook dans le product footer pour avoir le module en dessous de l'image ?

 

Merci de votre aide

post-289471-0-66412700-1321992091_thumb.jpg

Link to comment
Share on other sites

Salut.

 

Pas du tout normal. Je viens de vérifier, au cas où, et moi c'est parfait. Mis à part qu'ils l'ont mis comme des culs, c'est en dessous de l'image..

 

hookprestashop.jpg

 

Donc, comme je l'ai dit, ils ont mis le hook comme des culs (au-dessus de IMPRIMER et AGRANDIR, ils auraient dû le mettre en dessous, m'enfin, ça se change.. !).

 

Donc deux possibilités :

- quelqu'un (ou toi) a touché ton product.tpl, du coup, le hook ne correspond plus à sa description et il serait intéressant de remettre le hook à sa place.

- ton template qui met le bouton facebooklike est mal stylé (peut être un position "absolute" foireux ou je ne sais quoi).

 

Peux-tu copier le code du fichier TPL du module facebooklike qui est intégré normalement dans le hook extraLeft ?

De même, peux tu me montrer une partie (pas tout !!) du code du product.tpl où se trouve ça : HOOK_EXTRA_LEFT. Par exemple, moi c'est ça :

 

<!-- usefull links-->
 <ul id="usefull_link_block">
  {if $HOOK_EXTRA_LEFT}{$HOOK_EXTRA_LEFT}{/if}
  KIKOO LE HOOK EST ICI !
  <li><a href="javascript:print();">{l s='Print'}</a><br class="clear" /></li>
  {if $have_image && !$jqZoomEnabled}
  <li><span id="view_full_size" class="span_link">{l s='View full size'}</span></li>
  {/if}
 </ul>

 

Edit: et ta version Prestashop.

Link to comment
Share on other sites

Super,

Merci pour les explications, c'est une version 1 4 4 1

Mais je n'ai rien touché sur le fichier product.tlp de mon théme

 

Ci- dessous le code du product.tlp

 

<!-- left infos-->
<div id="pb-left-column">
 {if $product->description_short OR $packItems|@count > 0}
 <div id="usefull_link_block">
  {if $HOOK_EXTRA_LEFT}{$HOOK_EXTRA_LEFT}{/if}
  <a href="javascript:print();"><img src="{$img_dir}print.png" title="{l s='Print'}"></a>
  {if $have_image && !$jqZoomEnabled}
  <span id="view_full_size" class="span_link"><img src="{$img_dir}zoom.png" title="{l s='View full size'}" /></span>
  {/if}
 </div>
 <div id="short_description_block">
  {if $product->description_short}
   <div id="short_description_content" class="rte align_justify">{$product->description_short}</div>
  {/if}
  {if $product->description}
  <p class="buttons_bottom_block"><a href="javascript:{ldelim}{rdelim}" class="button">{l s='More details'}</a></p>
  {/if}
  {if $packItems|@count > 0}
   <h3>{l s='Pack content'}</h3>
   {foreach from=$packItems item=packItem}
 <div class="pack_content">
  {$packItem.pack_quantity} x <a href="{$link->getProductLink($packItem.id_product, $packItem.link_rewrite, $packItem.category)}">{$packItem.name|escape:'htmlall':'UTF-8'}</a>
  <p>{$packItem.description_short}</p>
 </div>
   {/foreach}
  {/if}
 </div>
 {/if}

Ci- dessous le code du facebooklike.php

 

<script type=text/javascript">
FB.Event.subscribe('edge.create', function(targetUrl) {ldelim}
_gaq.push(['_trackSocial', 'facebook', 'like', targetUrl]);
{rdelim});
FB.Event.subscribe('edge.create', function(targetUrl) {ldelim}
_gaq.push(['_trackSocial', 'facebook', 'unlike', targetUrl]);
{rdelim});
FB.Event.subscribe('edge.create', function(targetUrl) {ldelim}
_gaq.push(['_trackSocial', 'facebook', 'send', targetUrl]);
{rdelim});
</script>
{if $fl_default_hook}
<li>
{else}
{* If you're using a custom hook, you can customize
the following div with the style you want.
If the share / send box appear cut off, add position: absolute to the style*}
<div class="facebook_container">
{/if}
<div>
 <fb:like send="{$fl_send}" show_faces="{$fl_faces}" layout="{$fl_layout}" width="{$fl_width}" font="{$fl_font}" action="{$fl_text}" colorscheme="{$fl_color}"></fb:like>
</div>
{if $fl_default_hook}
</li>
{else}
</div>
{/if}
{* Old method <iframe src="http://www.facebook.com/plugins/like.php?href=&layout={$fl_layout}&show_faces=&width={$fl_width}&font={$fl_font}&action={$fl_text}&colorscheme={$fl_color}&height={$fl_height}" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:{$fl_width}px; height:{$fl_height}px;" allowTransparency="true"></iframe>*}

Link to comment
Share on other sites

Hum...

 

Bizarre, on a pas le même code concernant le HOOK. Et c'est pas la version qui va changer grand chose..

 

Tu peux caler un "JE SUIS ICI" de cette manière :

 

JE SUIS ICI{if $HOOK_EXTRA_LEFT}{$HOOK_EXTRA_LEFT}{/if}JE SUIS ICI

 

et me dire où est-ce qu'ils apparaissent.. histoire de cibler le problème : est-ce que ça vient vraiment de l'emplacement du hook ou est-ce que c'est ta div qui est mal stylé. Dans le premier cas, c'est vraiment bizarre car d'après les lignes d'en dessous, y'a "Imprimer" et "Agrandir" qui se trouve justement en dessous de l'image. Dans le second cas, c'est que tu as calé un style qui pète tout le design.

 

Ton site est sur internet ou en local ? Histoire qu'on puisse voir...

Link to comment
Share on other sites

Tiens, je viens de me rendre compte qu'ils ont inversé la colonne de droite et celle de gauche ("pb-right-column" et "pb-left-column" sont inversés, ou alors on a pas la même gauche et la même droite :D). Bref, là n'est pas le problème.

 

Ah beh si en fait... hehe ! Je viens de regarder ton code (product.tpl) et je pense que t'as pas de bol avec ta version. Ça a dû être corrigé juste après. Essaie plutôt de mettre sur le hook rightColumn ! Avec un peu de chance, c'est inversé...

 

D'après le code source de ton site, le style de ton module a l'air correct donc ça vient pas de ton module, mais bien du placement du hook.

 

Essaie donc ce que je t'ai dit, si ça marche pas, tu me passes le code complet de ton product.tpl et je verrais si on peut ou on peut déplacer pour que ça marche.

Link to comment
Share on other sites

Bonjour,

 

J'ai placé un petit message type "je suis la" sur le right, la position à l'air de me convenir.

 

Ensuite, j'ai placé le hook dans le extra right du fichier product.tlp.

 

Puis, j'ai tenté de l'ajouter au niveau des modules a greffer dans le back office "extra action on the product page right columm", mais j'ai le message "ce module, ne peux être placé sur le hook".

 

Je n'arrive plus a avancer, pour avoir le bouton afficher.

 

Pouvez vous m'aider ,

 

Faut-il que je créer un enregistrement dans la table des hook de prestashop au préalable ?

 

 

 

{*
* 2007-2010 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 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:
* http://opensource.org/licenses/osl-3.0.php
* 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 http://www.prestashop.com for more information.
*
*  @author Prestashop SA <[email protected]>
*  @copyright  2007-2010 Prestashop SA
*  @version  Release: $Revision: 1.4 $
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registred Trademark & Property of PrestaShop SA
*}
{include file="$tpl_dir./errors.tpl"}
{if $errors|@count == 0}
<script type="text/javascript">
// <![CDATA[
// PrestaShop internal settings
var currencySign = '{$currencySign|html_entity_decode:2:"UTF-8"}';
var currencyRate = '{$currencyRate|floatval}';
var currencyFormat = '{$currencyFormat|intval}';
var currencyBlank = '{$currencyBlank|intval}';
var taxRate = {$tax_rate|floatval};
var jqZoomEnabled = {if $jqZoomEnabled}true{else}false{/if};
//JS Hook
var oosHookJsCodeFunctions = new Array();
// Parameters
var id_product = '{$product->id|intval}';
var productHasAttributes = {if isset($groups)}true{else}false{/if};
var quantitiesDisplayAllowed = {if $display_qties == 1}true{else}false{/if};
var quantityAvailable = {if $display_qties == 1 && $product->quantity}{$product->quantity}{else}0{/if};
var allowBuyWhenOutOfStock = {if $allow_oosp == 1}true{else}false{/if};
var availableNowValue = '{$product->available_now|escape:'quotes':'UTF-8'}';
var availableLaterValue = '{$product->available_later|escape:'quotes':'UTF-8'}';
var productPriceTaxExcluded = {$product->getPriceWithoutReduct(true)|default:'null'} - {$product->ecotax};
var reduction_percent = {if $product->specificPrice AND $product->specificPrice.reduction AND $product->specificPrice.reduction_type == 'percentage'}{$product->specificPrice.reduction*100}{else}0{/if};
var reduction_price = {if $product->specificPrice AND $product->specificPrice.reduction AND $product->specificPrice.reduction_type == 'amount'}{$product->specificPrice.reduction}{else}0{/if};
var specific_price = {if $product->specificPrice AND $product->specificPrice.price}{$product->specificPrice.price}{else}0{/if};
var specific_currency = {if $product->specificPrice AND $product->specificPrice.id_currency}true{else}false{/if};
var group_reduction = '{$group_reduction}';
var default_eco_tax = {$product->ecotax};
var ecotaxTax_rate = {$ecotaxTax_rate};
var currentDate = '{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}';
var maxQuantityToAllowDisplayOfLastQuantityMessage = {$last_qties};
var noTaxForThisProduct = {if $no_tax == 1}true{else}false{/if};
var displayPrice = {$priceDisplay};
var productReference = '{$product->reference|escape:'htmlall':'UTF-8'}';
var productAvailableForOrder = {if (isset($restricted_country_mode) AND $restricted_country_mode) OR $PS_CATALOG_MODE}'0'{else}'{$product->available_for_order}'{/if};
var productShowPrice = '{if !$PS_CATALOG_MODE}{$product->show_price}{else}0{/if}';
var productUnitPriceRatio = '{$product->unit_price_ratio}';
var idDefaultImage = {if isset($cover.id_image_only)}{$cover.id_image_only}{else}0{/if};
// Customizable field
var img_ps_dir = '{$img_ps_dir}';
var customizationFields = new Array();
{assign var='imgIndex' value=0}
{assign var='textFieldIndex' value=0}
{foreach from=$customizationFields item='field' name='customizationFields'}
{assign var="key" value="pictures_`$product->id`_`$field.id_customization_field`"}
customizationFields[{$smarty.foreach.customizationFields.index|intval}] = new Array();
customizationFields[{$smarty.foreach.customizationFields.index|intval}][0] = '{if $field.type|intval == 0}img{$imgIndex++}{else}textField{$textFieldIndex++}{/if}';
customizationFields[{$smarty.foreach.customizationFields.index|intval}][1] = {if $field.type|intval == 0 && isset($pictures.$key) && $pictures.$key}2{else}{$field.required|intval}{/if};
{/foreach}
// Images
var img_prod_dir = '{$img_prod_dir}';
var combinationImages = new Array();
{if isset($combinationImages)}
{foreach from=$combinationImages item='combination' key='combinationId' name='f_combinationImages'}
 combinationImages[{$combinationId}] = new Array();
 {foreach from=$combination item='image' name='f_combinationImage'}
  combinationImages[{$combinationId}][{$smarty.foreach.f_combinationImage.index}] = {$image.id_image|intval};
 {/foreach}
{/foreach}
{/if}
combinationImages[0] = new Array();
{if isset($images)}
{foreach from=$images item='image' name='f_defaultImages'}
 combinationImages[0][{$smarty.foreach.f_defaultImages.index}] = {$image.id_image};
{/foreach}
{/if}
// Translations
var doesntExist = '{l s='The product does not exist in this model. Please choose another.' js=1}';
var doesntExistNoMore = '{l s='This product is no longer in stock' js=1}';
var doesntExistNoMoreBut = '{l s='with those attributes but is available with others' js=1}';
var uploading_in_progress = '{l s='Uploading in progress, please wait...' js=1}';
var fieldRequired = '{l s='Please fill in all required fields' js=1}';
{if isset($groups)}
// Combinations
{foreach from=$combinations key=idCombination item=combination}
 addCombination({$idCombination|intval}, new Array({$combination.list}), {$combination.quantity}, {$combination.price}, {$combination.ecotax}, {$combination.id_image}, '{$combination.reference|addslashes}', {$combination.unit_impact}, {$combination.minimal_quantity});
{/foreach}
// Colors
{if $colors|@count > 0}
 {if $product->id_color_default}var id_color_default = {$product->id_color_default|intval};{/if}
{/if}
{/if}
//]]>
</script>
{include file="$tpl_dir./breadcrumb.tpl"}
<div id="primary_block" class="clearfix">
<h1>{$product->name|escape:'htmlall':'UTF-8'}</h1>
{if isset($adminActionDisplay) && $adminActionDisplay}
<div id="admin-action">
 <p>{l s='This product is not visible to your customers.'}
 <input type="hidden" id="admin-action-product-id" value="{$product->id}" />
 <input type="submit" value="{l s='Publish'}" class="exclusive" onclick="submitPublishProduct('{$base_dir}{$smarty.get.ad}', 0)"/>
 <input type="submit" value="{l s='Back'}" class="exclusive" onclick="submitPublishProduct('{$base_dir}{$smarty.get.ad}', 1)"/>
 </p>
 <div class="clear" ></div>
 <p id="admin-action-result"></p>
 </p>
</div>
{/if}
{if isset($confirmation) && $confirmation}
<p class="confirmation">
 {$confirmation}
</p>
{/if}
<!-- right infos-->
<div id="pb-right-column">
 <!-- product img-->
 <div id="image-block">
 {if $have_image}
  <img src="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'large')}"
   {if $jqZoomEnabled}class="jqzoom" alt="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'thickbox')}"{else} title="{$product->name|escape:'htmlall':'UTF-8'}" alt="{$product->name|escape:'htmlall':'UTF-8'}" {/if} id="bigpic" width="{$largeSize.width}" height="{$largeSize.height}" />
 {else}
  <img src="{$img_prod_dir}{$lang_iso}-default-large.jpg" id="bigpic" alt="" title="{$product->name|escape:'htmlall':'UTF-8'}" width="{$largeSize.width}" height="{$largeSize.height}" />
 {/if}
 </div>
 {if isset($images) && count($images) > 0}
 <!-- thumbnails -->
 <div id="views_block" {if isset($images) && count($images) < 2}class="hidden"{/if}>
 {if isset($images) && count($images) > 3}<span class="view_scroll_spacer"><a id="view_scroll_left" class="hidden" title="{l s='Other views'}" href="javascript:{ldelim}{rdelim}">{l s='Previous'}</a></span>{/if}
 <div id="thumbs_list">
  <ul id="thumbs_list_frame">
   {if isset($images)}
 {foreach from=$images item=image name=thumbnails}
 {assign var=imageIds value="`$product->id`-`$image.id_image`"}
 <li id="thumbnail_{$image.id_image}">
  <a href="{$link->getImageLink($product->link_rewrite, $imageIds, 'thickbox')}" rel="other-views" class="thickbox {if $smarty.foreach.thumbnails.first}shown{/if}" title="{$image.legend|htmlspecialchars}">
   <img id="thumb_{$image.id_image}" src="{$link->getImageLink($product->link_rewrite, $imageIds, 'medium')}" alt="{$image.legend|htmlspecialchars}" height="{$mediumSize.height}" width="{$mediumSize.width}" />
  </a>
 </li>
 {/foreach}
   {/if}
  </ul>
 </div>
 {if isset($images) && count($images) > 3}<a id="view_scroll_right" title="{l s='Other views'}" href="javascript:{ldelim}{rdelim}">{l s='Next'}</a>{/if}
 </div>
 {/if}
 {if isset($images) && count($images) > 1}<p class="align_center clear"><span id="wrapResetImages" style="display: none;"><img src="{$img_dir}icon/cancel_16x18.gif" alt="{l s='Cancel'}" width="16" height="18"/> <a id="resetImages" href="{$link->getProductLink($product)}" onclick="$('span#wrapResetImages').hide('slow');return (false);">{l s='Display all pictures'}</a></span></p>{/if}
 <!-- usefull links-->
</div>
<!-- left infos-->
<div id="pb-left-column">
 {if $product->description_short OR $packItems|@count > 0}
 <div id="usefull_link_block">
  {if $HOOK_EXTRA_LEFT}{$HOOK_EXTRA_LEFT}{/if}
  <a href="javascript:print();"><img src="{$img_dir}print.png" title="{l s='Print'}"></a>
  {if $have_image && !$jqZoomEnabled}
  <span id="view_full_size" class="span_link"><img src="{$img_dir}zoom.png" title="{l s='View full size'}" /></span>
  {/if}
 </div>
 <div id="short_description_block">
  {if $product->description_short}
   <div id="short_description_content" class="rte align_justify">{$product->description_short}</div>
  {/if}
  {if $product->description}
  <p class="buttons_bottom_block"><a href="javascript:{ldelim}{rdelim}" class="button">{l s='More details'}</a></p>
  {/if}
  {if $packItems|@count > 0}
   <h3>{l s='Pack content'}</h3>
   {foreach from=$packItems item=packItem}
 <div class="pack_content">
  {$packItem.pack_quantity} x <a href="{$link->getProductLink($packItem.id_product, $packItem.link_rewrite, $packItem.category)}">{$packItem.name|escape:'htmlall':'UTF-8'}</a>
  <p>{$packItem.description_short}</p>
 </div>
   {/foreach}
  {/if}
 </div>
 {/if}
 {if isset($colors) && $colors}
 <!-- colors -->
 <div id="color_picker">
  <p>{l s='Pick a color:' js=1}</p>
  <div class="clear"></div>
  <ul id="color_to_pick_list">
  {foreach from=$colors key='id_attribute' item='color'}
   <li><a id="color_{$id_attribute|intval}" class="color_pick" style="background: {$color.value};" onclick="updateColorSelect({$id_attribute|intval});$('#wrapResetImages').show('slow');" title="{$color.name}">{if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}<img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$color.name}" width="20" height="20" />{/if}</a></li>
  {/foreach}
  </ul>
  <div class="clear"></div>
 </div>
 {/if}
 {if ($product->show_price AND !isset($restricted_country_mode)) OR isset($groups) OR $product->reference OR (isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS)}
 <!-- add to cart form-->
 <form id="buy_block" action="{$link->getPageLink('cart.php')}" method="post">
  <!-- hidden datas -->
  <p class="hidden">
   <input type="hidden" name="token" value="{$static_token}" />
   <input type="hidden" name="id_product" value="{$product->id|intval}" id="product_page_product_id" />
   <input type="hidden" name="add" value="1" />
   <input type="hidden" name="id_product_attribute" id="idCombination" value="" />
  </p>
  <!-- prices -->
  {if $product->show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}
  <p class="price">
   {if !$priceDisplay || $priceDisplay == 2}
 {assign var='productPrice' value=$product->getPrice(true, $smarty.const.NULL)}
 {assign var='productPriceWithoutRedution' value=$product->getPriceWithoutReduct(false, $smarty.const.NULL)}
   {elseif $priceDisplay == 1}
 {assign var='productPrice' value=$product->getPrice(false, $smarty.const.NULL)}
 {assign var='productPriceWithoutRedution' value=$product->getPriceWithoutReduct(true, $smarty.const.NULL)}
   {/if}
   {if $product->on_sale}
 <img src="{$img_dir}onsale_{$lang_iso}.gif" alt="{l s='On sale'}" class="on_sale_img"/>
 <span class="on_sale">{l s='On sale!'}</span>
   {elseif $product->specificPrice AND $product->specificPrice.reduction AND $productPriceWithoutRedution > $productPrice}
 <span class="discount">{l s='Reduced price!'}</span>
   {/if}
   <br />
   <span class="our_price_display">
   {if $priceDisplay >= 0 && $priceDisplay <= 2}
 <span id="our_price_display">{convertPrice price=$productPrice}</span>
  {if $tax_enabled}
   {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}
  {/if}
   {/if}
   </span>
   {if $priceDisplay == 2}
 <br />
 <span id="pretaxe_price"><span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span> {l s='tax excl.'}</span>
   {/if}
   <br />
   </p>
   {if $product->specificPrice AND $product->specificPrice.reduction}
 <p id="old_price"><span class="bold">
 {if $priceDisplay >= 0 && $priceDisplay <= 2}
  {if $productPriceWithoutRedution > $productPrice}
   <span id="old_price_display">{convertPrice price=$productPriceWithoutRedution}</span>
    {if $tax_enabled}
	 {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}
    {/if}
  {/if}
 {/if}
 </span>
 </p>
   {/if}
   {if $product->specificPrice AND $product->specificPrice.reduction_type == 'percentage'}
 <p id="reduction_percent">{l s='(price reduced by'} <span id="reduction_percent_display">{$product->specificPrice.reduction*100}</span> %{l s=')'}</p>
   {/if}
   {if $packItems|@count}
 <p class="pack_price">{l s='instead of'} <span style="text-decoration: line-through;">{convertPrice price=$product->getNoPackPrice()}</span></p>
 <br class="clear" />
   {/if}
   {if $product->ecotax != 0}
 <p class="price-ecotax">{l s='include'} <span id="ecotax_price_display">{$ecotax_tax_inc|convertAndFormatPrice}</span> {l s='for green tax'}</p>
   {/if}
   {if !empty($product->unity) && $product->unit_price_ratio > 0.000000}
 <p class="unit-price"><span id="unit_price_display">{convertPrice price=($productPrice / $product->unit_price_ratio)}</span> {l s='per'} {$product->unity|escape:'htmlall':'UTF-8'}</p>
   {/if}
   {*close if for show price*}
  {/if}
  {if isset($groups)}
  <!-- attributes -->
  <div id="attributes">
  {foreach from=$groups key=id_attribute_group item=group}
  {if $group.attributes|@count}
  <p>
   <label for="group_{$id_attribute_group|intval}">{$group.name|escape:'htmlall':'UTF-8'} :</label>
   {assign var="groupName" value="group_$id_attribute_group"}
   <select name="{$groupName}" id="group_{$id_attribute_group|intval}" onchange="javascript:findCombination();{if $colors|@count > 0}$('#wrapResetImages').show('slow');{/if};">
 {foreach from=$group.attributes key=id_attribute item=group_attribute}
  <option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if} title="{$group_attribute|escape:'htmlall':'UTF-8'}">{$group_attribute|escape:'htmlall':'UTF-8'}</option>
 {/foreach}
   </select>
  </p>
  {/if}
  {/foreach}
  </div>
  {/if}
  <p id="product_reference" {if isset($groups) OR !$product->reference}style="display: none;"{/if}><label for="product_reference">{l s='Reference :'} </label><span class="editable">{$product->reference|escape:'htmlall':'UTF-8'}</span></p>
  <!-- quantity wanted -->
  <p id="quantity_wanted_p"{if (!$allow_oosp && $product->quantity == 0) OR $virtual OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}>
   <label>{l s='Quantity :'}</label>
   <input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product->minimal_quantity > 1}{$product->minimal_quantity}{else}1{/if}{/if}" size="2" maxlength="3" {if $product->minimal_quantity > 1}onkeyup="checkMinimalQuantity({$product->minimal_quantity});"{/if} />
  </p>
  <!-- minimal quantity wanted -->
  <p id="minimal_quantity_wanted_p"{if $product->minimal_quantity <= 1 OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}>{l s='You must add '}<b id="minimal_quantity_label">{$product->minimal_quantity}</b>{l s=' as a minimum quantity to buy this product.'}</p>
  {if $product->minimal_quantity > 1}
  <script type="text/javascript">
   checkMinimalQuantity();
  </script>
  {/if}
  <!-- availability -->
  <p id="availability_statut"{if ($product->quantity == 0 && !$product->available_later) OR ($product->quantity != 0 && !$product->available_now) OR !$product->available_for_order OR  $PS_CATALOG_MODE} style="display :none;"{/if}>
   <span id="availability_label">{l s='Availability:'}</span>
   <span id="availability_value"{if $product->quantity == 0} class="warning-inline"{/if}>
 {if $product->quantity == 0}{if $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{else}{$product->available_now}{/if}
   </span>
  </p>
  <!-- number of item in stock -->
  <p id="pQuantityAvailable"{if $display_qties != 1 OR $product->quantity <= 0 OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}>
   <span id="quantityAvailable">{$product->quantity|intval}</span>
   <span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='item in stock'}</span>
   <span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='items in stock'}</span>
  </p>
  <!-- Out of stock hook -->
  <p id="oosHook"{if $product->quantity > 0} style="display: none;"{/if}>
   {$HOOK_PRODUCT_OOS}
  </p>
  <p class="warning_inline" id="last_quantities"{if ($product->quantity > $last_qties OR $product->quantity == 0) OR $allow_oosp OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if} >{l s='Warning: Last items in stock!'}</p>
  {if $product->online_only}
   <p>{l s='Online only'}</p>
  {/if}
  <p{if (!$allow_oosp && $product->quantity == 0) OR !$product->available_for_order OR (isset($restricted_country_mode) AND $restricted_country_mode) OR $PS_CATALOG_MODE} style="display: none;"{/if} id="add_to_cart" class="buttons_bottom_block"><input type="submit" name="Submit" value="{l s='Add to cart'}" class="exclusive" /></p>
  {if isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS}{$HOOK_PRODUCT_ACTIONS}{/if}
  <div class="clear"></div>
 </form>
 {/if}
 {if $HOOK_EXTRA_RIGHT}{$HOOK_EXTRA_RIGHT}{/if}
 {$HOOK_FACEBOOK_LIKE}  
</div>
</div>
{if $quantity_discounts}
<!-- quantity discount -->
<ul class="idTabs">
<li><a style="cursor: pointer" class="selected">{l s='Quantity discount'}</a></li>
</ul>
<div id="quantityDiscount">
<table class="std">
 <tr>
  {foreach from=$quantity_discounts item='quantity_discount' name='quantity_discounts'}
   <th>{$quantity_discount.quantity|intval}
   {if $quantity_discount.quantity|intval > 1}
 {l s='quantities'}
   {else}
 {l s='quantity'}
   {/if}
   </th>
  {/foreach}
 </tr>
 <tr>
  {foreach from=$quantity_discounts item='quantity_discount' name='quantity_discounts'}
   <td>
   {if $quantity_discount.price != 0 OR $quantity_discount.reduction_type == 'amount'}
 -{convertPrice price=$quantity_discount.real_value|floatval}
   {else}
    -{$quantity_discount.real_value|floatval}%
   {/if}
   </td>
  {/foreach}
 </tr>
</table>
</div>
{/if}
{$HOOK_PRODUCT_FOOTER}
<!-- description and features -->
{if $product->description || $features || $accessories || $HOOK_PRODUCT_TAB || $attachments}
<div id="more_info_block" class="clear">
<ul id="more_info_tabs" class="idTabs idTabsShort">
 {if $product->description}<li><a id="more_info_tab_more_info" href="#idTab1">{l s='More info'}</a></li>{/if}
 {if $features}<li><a id="more_info_tab_data_sheet" href="#idTab2">{l s='Data sheet'}</a></li>{/if}
 {if $attachments}<li><a id="more_info_tab_attachments" href="#idTab9">{l s='Download'}</a></li>{/if}
 {if isset($accessories) AND $accessories}<li><a href="#idTab4">{l s='Accessories'}</a></li>{/if}
 {$HOOK_PRODUCT_TAB}
</ul>
<div id="more_info_sheets" class="sheets align_justify">
{if $product->description}
 <!-- full description -->
 <div id="idTab1" class="rte">{$product->description}</div>
{/if}
{if $features}
 <!-- product's features -->
 <ul id="idTab2" class="bullet">
 {foreach from=$features item=feature}
  <li><span>{$feature.name|escape:'htmlall':'UTF-8'}</span> {$feature.value|escape:'htmlall':'UTF-8'}</li>
 {/foreach}
 </ul>
{/if}
{if $attachments}
 <ul id="idTab9" class="bullet">
 {foreach from=$attachments item=attachment}
  <li><a href="{$base_dir}attachment.php?id_attachment={$attachment.id_attachment}">{$attachment.name|escape:'htmlall':'UTF-8'}</a><br />{$attachment.description|escape:'htmlall':'UTF-8'}</li>
 {/foreach}
 </ul>
{/if}
{if isset($accessories) AND $accessories}
 <!-- accessories -->
 <ul id="idTab4" class="bullet">
  <div class="block products_block accessories_block clearfix">
   <div class="block_content">
 <ul>
 {foreach from=$accessories item=accessory name=accessories_list}
  {assign var='accessoryLink' value=$link->getProductLink($accessory.id_product, $accessory.link_rewrite, $accessory.category)}
  <li class="ajax_block_product {if $smarty.foreach.accessories_list.first}first_item{elseif $smarty.foreach.accessories_list.last}last_item{else}item{/if} product_accessories_description">
   <h5><a href="{$accessoryLink|escape:'htmlall':'UTF-8'}">{$accessory.name|truncate:22:'...':true|escape:'htmlall':'UTF-8'}</a></h5>
   <div class="product_desc">
    <a href="{$accessoryLink|escape:'htmlall':'UTF-8'}" title="{$accessory.legend|escape:'htmlall':'UTF-8'}" class="product_image"><img src="{$link->getImageLink($accessory.link_rewrite, $accessory.id_image, 'medium')}" alt="{$accessory.legend|escape:'htmlall':'UTF-8'}" width="{$mediumSize.width}" height="{$mediumSize.height}" /></a>
    <a href="{$accessoryLink|escape:'htmlall':'UTF-8'}" title="{l s='More'}" class="product_description">{$accessory.description_short|strip_tags|truncate:70:'...'}</a>
   </div>
   <p class="product_accessories_price">
    {if $accessory.show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}<span class="price">{displayWtPrice p=$accessory.price}</span>{/if}
    <a class="button" href="{$accessoryLink|escape:'htmlall':'UTF-8'}" title="{l s='View'}">{l s='View'}</a>
    {if $accessory.available_for_order AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}<a class="exclusive button ajax_add_to_cart_button" href="{$link->getPageLink('cart.php')}?qty=1&id_product={$accessory.id_product|intval}&token={$static_token}&add" rel="ajax_id_product_{$accessory.id_product|intval}" title="{l s='Add to cart'}">{l s='Add to cart'}</a>{/if}
   </p>
  </li>
 {/foreach}
 </ul>
   </div>
  </div>
 </ul>
{/if}
{$HOOK_PRODUCT_TAB_CONTENT}
</div>
</div>
{/if}
<!-- Customizable products -->
{if $product->customizable}
<ul class="idTabs">
 <li><a style="cursor: pointer">{l s='Product customization'}</a></li>
</ul>
<div class="customization_block">
 <form method="post" action="{$customizationFormTarget}" enctype="multipart/form-data" id="customizationForm">
  <p>
   <img src="{$img_dir}icon/infos.gif" alt="Informations" />
   {l s='After saving your customized product, remember to add it to your cart.'}
   {if $product->uploadable_files}<br />{l s='Allowed file formats are: GIF, JPG, PNG'}{/if}
  </p>
  {if $product->uploadable_files|intval}
  <h2>{l s='Pictures'}</h2>
  <ul id="uploadable_files">
   {counter start=0 assign='customizationField'}
   {foreach from=$customizationFields item='field' name='customizationFields'}
 {if $field.type == 0}
  <li class="customizationUploadLine{if $field.required} required{/if}">{assign var='key' value='pictures_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field}
   {if isset($pictures.$key)}<div class="customizationUploadBrowse"><img src="{$pic_dir}{$pictures.$key}_small" alt="" /><a href="{$link->getUrlWith('deletePicture', $field.id_customization_field)}"><img src="{$img_dir}icon/delete.gif" alt="{l s='Delete'}" class="customization_delete_icon" width="11" height="13" /></a></div>{/if}
   <div class="customizationUploadBrowse"><input type="file" name="file{$field.id_customization_field}" id="img{$customizationField}" class="customization_block_input {if isset($pictures.$key)}filled{/if}" />{if $field.required}<sup>*</sup>{/if}
   <div class="customizationUploadBrowseDescription">{if !empty($field.name)}{$field.name}{else}{l s='Please select an image file from your hard drive'}{/if}</div></div>
  </li>
  {counter}
 {/if}
   {/foreach}
  </ul>
  {/if}
  <div class="clear"></div>
  {if $product->text_fields|intval}
  <h2>{l s='Texts'}</h2>
  <ul id="text_fields">
   {counter start=0 assign='customizationField'}
   {foreach from=$customizationFields item='field' name='customizationFields'}
 {if $field.type == 1}
  <li class="customizationUploadLine{if $field.required} required{/if}">{assign var='key' value='textFields_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field}
   {if !empty($field.name)}{$field.name}{/if}{if $field.required}<sup>*</sup>{/if}<textarea type="text" name="textField{$field.id_customization_field}" id="textField{$customizationField}" rows="1" cols="40" class="customization_block_input" />{if isset($textFields.$key)}{$textFields.$key|stripslashes}{/if}</textarea>
  </li>
  {counter}
 {/if}
   {/foreach}
  </ul>
  {/if}
  <p style="clear: left;" id="customizedDatas">
   <input type="hidden" name="quantityBackup" id="quantityBackup" value="" />
   <input type="hidden" name="submitCustomizedDatas" value="1" />
   <input type="button" class="button" value="{l s='Save'}" onclick="javascript:saveCustomization()" />
  </p>
 </form>
 <p class="clear required"><sup>*</sup> {l s='required fields'}</p>
</div>
{/if}
{if $packItems|@count > 0}
<div>
 <h2>{l s='Pack content'}</h2>
 {include file="$tpl_dir./product-list.tpl" products=$packItems}
</div>
{/if}
{/if}

 

Merci

Link to comment
Share on other sites

Vu que tu es passé de leftColum à rightColumn, il faut changer aussi ça dans la table.

 

Il va falloir réinstaller le module mais avant ça :

 

- Va dans le fichier PHP du module

- Va dans la fonction install()

- Tu devrais trouver un truc du style $this->registerHook('leftColumn').

 

Il faut changer en "rightColumn".

 

Ensuite, désinstalle et réinstalle le module.

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