Jump to content

Modificar crossselling.tpl


elkiff69

Recommended Posts

Hola soy nuevo por aqui, 

 

quisiera modificar crossselling.tpl para donde pone "LOS CLIENTES QUE COMPRARON ESTE PRODUCTO TAMBIÉN HAN COMPRADO..." y sustituir "ESTE PRODUCTO" por el nombre del producto en cuestión. El caso es que no se si esta leído el nombre del producto para poder mostrarlo, creo que si, pero no doy con la tecla.

 

El trozo de codigo se que es este pero no consigo mostrar el nombre del producto.

 

<h3 class="productscategory_h2 page-product-heading">
            {if $page_name == 'product'}
                {l s='Customers who bought this product also bought:' mod='crossselling'} <a style="color: #555454" class="product_name"><strong>{$product->name|escape:'html':'UTF-8'}</strong></a>
            {else}
                {l s='We recommend' mod='crossselling'}
            {/if}

        </h3> 

 

Alguien me puede echar un cable.... no soy muy experto.

 

Gracias

Link to comment
Share on other sites

Pues no es tan sencillo. Tienes que añadir el nombre del producto como variable a la plantilla ya que no lo tienes (tienes el de los productos "relacionados")

 

por lo que tienes que ir a crossselling.php y en hookProductFooter sacar el nombre del producto y meterlo en la plantilla para luego poder acceder a él en crossselling.tpl

 

//sacas el nombre del producto

$prodName=..

  $this->smarty->assign(
                    array('prodName'=> $prodName,

......

 

 

en la plantilla crossselling.tpl

en lugar de

 {l s='Customers who bought this product also bought:' mod='crossselling'}

{l s='Los clientes que compraron %s también compraron:' sprintf=$prodName mod='crossselling'}
Link to comment
Share on other sites

Hola de nuevo,
 
he seguido tu recomendación y ahora me he atascado con el siguiente error/notice:

 

NOTICE: ARRAY TO STRING CONVERSION IN /HOME/DGFWFFSP/PUBLIC_HTML/CLASSES/TRANSLATE.PHP ON LINE 271
LOS CLIENTES QUE COMPRARON ARRAY TAMBIÉN COMPRARON:

 

en crossselling.php lo he dejado así:

   /**
     * Returns module content for product footer
     */
    public function hookProductFooter($params)
    {
        $cache_id = 'crossselling|productfooter|'.(int)$params['product']->id;
		
		//sacar el nombre del producto
		$q_prodName = 'SELECT p.name 
				FROM '._DB_PREFIX_.'product_lang p 
				WHERE p.id_product = '.(int)$params['product']->id.'
				AND p.id_shop = 1 
				AND p.id_lang = 1';
		$prodName = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($q_prodName);		
				
        if (!$this->isCached('crossselling.tpl', $this->getCacheId($cache_id))) {
            $final_products_list = $this->getOrderProducts(array($params['product']->id));
			
            if (count($final_products_list) > 0) {
				$this->smarty->assign(
                    array(
                        'prodName'=> $prodName,
			'orderProducts' => $final_products_list,
                        'middlePosition_crossselling' => round(count($final_products_list) / 2, 0),
                        'crossDisplayPrice' => Configuration::get('CROSSSELLING_DISPLAY_PRICE')
                    )
                );
            }
        }

        return $this->display(__FILE__, 'crossselling.tpl', $this->getCacheId($cache_id));
    }

en crossselling.tpl 

<h3 class="productscategory_h2 page-product-heading">
            {if $page_name == 'product'}
                <!--{l s='Customers who bought this product also bought:' mod='crossselling'}-->
				{l s='Los clientes que compraron %s también compraron:' sprintf=$prodName mod='crossselling'}
			{else}
                {l s='We recommend' mod='crossselling'}
            {/if}
</h3>

Gracias de antemano por tu ayuda

Link to comment
Share on other sites

No hace falta que hagas una consulta para sacar el nombre, añade

  $product = new Product((int)Tools::getValue('id_product'), true, $this->context->language->id, $this->context->shop->id);

Luego en el array 

'prodName'=> $product->name,
  • Like 1
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...