Jump to content

Como obtener el nombre del producto en una plantilla


Recommended Posts

Estoy hace días dándole vueltas a este asunto sin conseguir hasta ahora dar con la solución.

 

Cree una serie de archivos para montar una landing page que muestre productos de una determinada categoría, para esto tome parte del código del modulo 'homefeatured'.

 

En la raiz del prestashop cree un archivo 'landingpage.php' con este codigo:

 

require(dirname(__FILE__).'/config/config.inc.php');
ControllerFactory::getController('LandingPageController')->run();

 

Luego genere un archivo llamado LandingPageController.php en la carpeta /controllers con este codigo:

 

class LandingPageControllerCore extends FrontController
{
public function displayContent()
{
 global $smarty;
 $category = new Category(4, Configuration::get('PS_LANG_DEFAULT'));
 $products = $category->getProducts((int)($params['cookie']->id_lang), 1, 6);
 $smarty->assign(array(
 'products' => $products,
 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
 'homeSize' => Image::getSize('landingpage')));

 parent::displayContent();
 self::$smarty->display(_PS_THEME_DIR_.'landingpage.tpl');
}
}

 

Por ultimo cree el archivo de la plantilla llamado landingpage.tpl en la carpeta del tema que estoy usando, con el siguiente código:

 

<div class="block_content">
 <ul>
 {foreach from=$products item=product name=LandingPageProducts}
  <li>
<h5><a href="{$product.link}">{$product.name}</a></h5>
<div class="product_desc"><a href="{$product.link}" title="{l s='More'}">{$product.description_short}</a></div>
<a href="{$product.link}" class="product_image"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home')}" /></a>
</li>
 {/foreach}
 </ul>
</div>

 

Acorte parte del codigo para hacerlo mas sencillo de comprender.

 

Lo extraño en todo esto es que si consigo traer la imagen del producto, links, precio y botones de Ver más y Agregar al carro, lo que no consigo es obtener el nombre del producto y su descripcion, intente varias formas y maneras, esta es mi primer experiencia con Prestashop y me gustaria poder aportar tanto como aprender, quien pueda darme una mano estare enormemente agradecido!

 

Quedo a la espera de los sabios comentarios de los expertos :)

Link to comment
Share on other sites

@shacker como consigo traer la tabla de idiomas? si puedes indicarme en el codigo que puse arriba como aplicarlo mejor aun, de todos modos es bueno saber de donde viene el nombre del producto.

 

@aQs por el momento sigo sin resolverlo, la verdad que finalmente opte como alternativa duplicar el modulo homefeautered y crear un hook para aplicarlo en la landingpage, de ese modo conseguí traer todos los datos de los productos de la categoría landingpage que genere, de cualquier modo conocer como resolver donde me quede con la idea inicial me parece de gran utilidad para otras situaciones. vi que en tu sitio conseguiste que al agregar los productos al carro de compras vuelen hacia el lugar correcto, mirando el código veo que sigue el css con position:absolute, esto lo corregiste modificando el script? si puedes enviame un pm comentándome que me resulta interesante conocer como.

Link to comment
Share on other sites

@shacker como consigo traer la tabla de idiomas? si puedes indicarme en el codigo que puse arriba como aplicarlo mejor aun, de todos modos es bueno saber de donde viene el nombre del producto.

 

@aQs por el momento sigo sin resolverlo, la verdad que finalmente opte como alternativa duplicar el modulo homefeautered y crear un hook para aplicarlo en la landingpage, de ese modo conseguí traer todos los datos de los productos de la categoría landingpage que genere, de cualquier modo conocer como resolver donde me quede con la idea inicial me parece de gran utilidad para otras situaciones. vi que en tu sitio conseguiste que al agregar los productos al carro de compras vuelen hacia el lugar correcto, mirando el código veo que sigue el css con position:absolute, esto lo corregiste modificando el script? si puedes enviame un pm comentándome que me resulta interesante conocer como.

Si el problema era en el js del modulo, yo sabia que el problema era ahi solo que encontrar un error cuando tu no lo haces habeces es dificil jejeje, el problema era que el js hacia referencia a un estilo equivocado, solo corregi eso y listo, el problema continua en el shopping-cart y supongo debe ser algo parecido, solo que este no se ve tan mal y no he tenido tiempo de revisarlo con calma.

En cuanto al problema que tenias con tu codigo creo que es en la linea

$products = $category->getProducts((int)($params['cookie']->id_lang), 1, 6);

Siguiendo la arquitectura del modulo tal vez ubieras intentado dejarlo un poco mas apegado, ubieas tratado manteniendo estas dos lineas, cambie la cantidad a mostrar puesto que esa se obtenia del getContent

 $nb = 20; // Cantidad de productos a mostrar
 $products = $category->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 10));

 

Bueno la cosa es que ya esta arreglado, si necesitas el modulo del carrito avisame por privado, saludos.

Link to comment
Share on other sites

Intente del modo que dices, manteniendo esas dos lineas, inicialmente lo tenia así y luego lo reduje a una porque no había necesidad de modificar las cantidades ya que siempre hay que mostrar 6.

De todos modos por el momento me quedo con la solución que implemente utilizando modulos y hooks que funciona muy bien. Gracias por la sugerencia y los comentarios :)

Link to comment
Share on other sites

shacker, aunque conseguí resolverlo de otra manera el titulo que puse se refería al primer mensaje. si te parece conveniente igualmente marcar el hilo como solucionado te doy la derecha, personalmente creo que confunde para quien crea que va conseguir una solución según lo que dice ese primer mensaje, incluso a mi me interesa saber si hay como resolverlo de esa forma.

decime que te parece mejor y lo aplico.

saludos!

Link to comment
Share on other sites

  • 2 weeks later...

shacker, aunque conseguí resolverlo de otra manera el titulo que puse se refería al primer mensaje. si te parece conveniente igualmente marcar el hilo como solucionado te doy la derecha, personalmente creo que confunde para quien crea que va conseguir una solución según lo que dice ese primer mensaje, incluso a mi me interesa saber si hay como resolverlo de esa forma.

decime que te parece mejor y lo aplico.

saludos!

Hola brother

Mira precisamente necesite hacer algo parecido a tu problema y bueno lo que debias cambiar para que te apareciera el nombre y la descripcion era:

Cambiar esta linea de tu codigo:

$products = $category->getProducts((int)($params['cookie']->id_lang), 1, 6);

Por esta:

$products = $category->getProducts((int)(self::$cookie->id_lang), 1, 6);

Me pasaba lo mismo que a ti, ahora si puedes cambiar el titulo a [sOLUCIONADO] hehehee, saludos.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...