Jump to content

Crear miniatura de un producto solo con su ID


R.ACE

Recommended Posts

Hola.

Estoy intentando mostrar la miniatura de un producto en una pagina generada por un modulo, pero el modulo solo me da el ID del producto.

Hay alguna funcion en prestashop 1.7 que me pueda dar la información del producto teniendo solo su ID.

Gracias de antemano.

Link to comment
Share on other sites

19 hours ago, burrots said:

Si en el tpl del modulo solo te da la ID, tendras q agregrale por php las variables q quieras mostrar de mas...

Suerte

Gracias por tu respuesta.

No tengo mucha idea de php y prestashop en general.

Estoy usando el modulo gratis para blog XpertBlog, pero abandonaron el proyecto.

Estoy intentando hacer que se muestre el producto del que se habla en el blog, pero el modulo solamente da su id.

intente usar:

     $products = Product::getProducts(3, 0, 500,'price','asc',14,'true');

    la cual me da la lista de productos.

 pero al momento de llamar a la miniatura en el tpl

{foreach from=$products item="product"}
                <div class="col-xs-6 col-md-3 card" >
                      {include file="catalog/_partials/miniatures/product.tpl" product=$product}
                </div>
   {/foreach}

me marca error "undefined index" de varios atributos de los productos

Edited by R.ACE (see edit history)
Link to comment
Share on other sites

Llamando asi los productos por Product::getProducts no puedes utilizar:

{include file="catalog/_partials/miniatures/product.tpl" product=$product}

Por eso te da el error undefined index

Intenta hacer tmb manualmente el tpl dnd se muestre la informacion que contiene $products

{include file="catalog/_partials/miniatures/product_min.tpl" product=$product}

Suerte

Link to comment
Share on other sites

17 minutes ago, burrots said:

Llamando asi los productos por Product::getProducts no puedes utilizar:

{include file="catalog/_partials/miniatures/product.tpl" product=$product}

Por eso te da el error undefined index

Intenta hacer tmb manualmente el tpl dnd se muestre la informacion que contiene $products

{include file="catalog/_partials/miniatures/product_min.tpl" product=$product}

Suerte

Lo estoy haciendo manual, pero ahora tengo otro problema.

Quiero la url de la imagen del producto. Encontre que en las clases esta link.php con la funcion "getImageLink".

uso este codigo: "$img_link = LinkCore::getImageLink($idm,$imi);"

Pero al momento de usarla me el error:

FatalThrowableError: Using $this when not in object context

en el archivo link.php, el cual no he modificado.

Edited by R.ACE (see edit history)
Link to comment
Share on other sites

2 minutes ago, R.ACE said:

Lo estoy haciendo manual, pero ahora tengo otro problema.

Quiero la url de la imagen del producto. Encontre que en las clases esta link.php con la funcion "getImageLink".

uso este codigo: "$img_link = LinkCore::getImageLink($idm,$imi);"

Pero al momento de usarla me el error:

FatalThrowableError: Using $this when not in object context

en el archivo link.php, el cual no he modificado.

Quita el core 🤣

Link::getImageLink($idm,$imi);

 

Link to comment
Share on other sites

8 minutes ago, burrots said:

Quita el core 🤣

Link::getImageLink($idm,$imi);

 

Me sigue dando el mismo error 😭

$img_link = Link::getImageLink($idm, $imi, 'small_default');

me da error aqui:

 Link.php line 816

el codigo en esa linea empieza aqui:

if ($this->allow == 1) {
                $uriPath = __PS_BASE_URI__.$idImage.($type ? '-'.$type : '').$theme.'/'.$name.'.jpg';
            } else {
                $uriPath = _THEME_PROD_DIR_.Image::getImgFolderStatic($idImage).$idImage.($type ? '-'.$type : '').$theme.'.jpg';
            }

Edited by R.ACE (see edit history)
Link to comment
Share on other sites

6 minutes ago, burrots said:

puedes pasar el codigo d lo q tienes hecho

quiero ver d dnd sacas $idm i $imi

 

$idm viene del $producto['link_rewrite']  me nombre de la url amigable de la imagen

$imi lo saco de la funcion "getCover($producto['id_product'])" me da el id de la imagen

asi que la funcion seria asi:

$img_link = getImageLink('exvoto-agave-con-mano', '803', 'small_default');

Edited by R.ACE (see edit history)
Link to comment
Share on other sites

5 minutes ago, R.ACE said:

$idm viene del $producto['link_rewrite']  me nombre de la url amigable de la imagen

$imi lo saco de la funcion "getCover($producto['id_product'])" me da el id de la imagen

asi que la funcion seria asi:

$img_link = getImageLink('exvoto-agave-con-mano', '803', 'small_default');

estas en un tpl o php?

Creo q el problema es q estas en tpl y no lo pones bien, prueba asi:

$link->getImageLink('exvoto-agave-con-mano', '803', 'small_default')

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

5 minutes ago, burrots said:

estas en un tpl o php?

Creo q el problema es q estas en tpl y no lo pones bien, prueba asi:

$link->getImageLink('exvoto-agave-con-mano', '803', 'small_default')

Gracias, ya funciono.

Aunque lo estaba haciendo en el php, no se porque pasaba ese error.

tuve que ponerlo en el tpl.

Link to comment
Share on other sites

8 minutes ago, R.ACE said:

Gracias, ya funciono.

Aunque lo estaba haciendo en el php, no se porque pasaba ese error.

tuve que ponerlo en el tpl.

El problema antes era q en php intentabas llamar un funcion no estatica sin haber creado antes el objeto, seria asi:

$link = New Link();

$link->getImageLink('exvoto-agave-con-mano', '803', 'small_default');

 

Aunque seria mejor asi aun:

$this->context->link->getImageLink('exvoto-agave-con-mano', '803', 'small_default');

Por si tmb te sirve

Suerte

Edited by burrots (see edit history)
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...