elkiff69 Posted May 31, 2016 Share Posted May 31, 2016 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 More sharing options...
Enrique Gómez Posted June 1, 2016 Share Posted June 1, 2016 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 More sharing options...
elkiff69 Posted June 1, 2016 Author Share Posted June 1, 2016 Muchas gracias Enrique, voy a probar a ver. Voy a recuperar el código original, ya que con tanta prueba no se si lo tengo bien. Link to comment Share on other sites More sharing options...
elkiff69 Posted June 1, 2016 Author Share Posted June 1, 2016 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 271LOS 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 More sharing options...
ventura Posted June 1, 2016 Share Posted June 1, 2016 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, 1 Link to comment Share on other sites More sharing options...
elkiff69 Posted June 1, 2016 Author Share Posted June 1, 2016 Gracias perfecto... Marco como resuelto. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now