Jump to content

sacar imagenes miniatura


mmcfly

Recommended Posts

Estimados,

 

Actualmente estoy obteniendo la imagen principal del producto y categorías con la función getImageLink, mi consulta es como puedo sacar las demás imágenes del mismo producto, esas que aparecen en el lightbox o en el carro.

 

por ahora solo saco la imagen principal la que esta en la portada, pero necesito las demás que pertenecen al mismo producto.

 

 

 

ojala me puedan entender.

 

 

gracias.

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

Hola,

 

Lo que indicas tendrás que hacerlo desde la función correspondiente o desde el controlador que quieras (si lo quieres en las categorías CategoryController.php), para ello tendrías que usar la función: getImages($id_lang, Context $context = null) estilo:

foreach($products as $key => $product)
{
    $new_product = New Product($product['id_product'], false);
    $products[$key]['images'] = $new_product->getImages($this->context->language->idd);
}

otra opción sería crear un archivo /override/classes/Product.php con el siguiente contenido:

<?php
/*
* 2007-2015 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-2015 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

class Product extends ProductCore
{
    public function getImages2($id_product, $id_lang, Context $context = null)
    {
        return Db::getInstance()->executeS('
			SELECT image_shop.`cover`, i.`id_image`, il.`legend`, i.`position`
			FROM `'._DB_PREFIX_.'image` i
			'.Shop::addSqlAssociation('image', 'i').'
			LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
			WHERE i.`id_product` = '.(int)$id_product.'
			ORDER BY `position`'
        );
    }    
}

esta función te permitiría usarlo en los .tpls {$images = Product::getImages2($product.id_product, $cookie->id_lang)} todo depende de lo que necesites.

 

Un saludo.

Link to comment
Share on other sites

probé lo que pusiste y no funciono y esta claro que estoy haciendo algo mal.

 

te cuento lo que estoy haciendo:

 

quiero dejar en claro que pasando el id de un producto yo obtengo la imagen del producto.

 

lo que quiero es que pasando un solo id del producto me devuelva todas las imágenes que están relacionadas a ese producto.

 

 

bueno esto fue lo que hice:

 

tengo un archivo php llamado rnoa_light.php y en ese archivo pongo las siguientes lineas

 

require_once $_SERVER["DOCUMENT_ROOT"].'/config/config.inc.php';
require_once $_SERVER["DOCUMENT_ROOT"].'/init.php';
 
 
para la imagen del producto uso getImageLink y para las categorias getCatImageLink y funciona todo ok.
 
pero probe el metodo images asi:
 
$id_product = $_GET["id"];
 
 
$new_product = New Product($id_product, false);
$products[]['images'] = $new_product->getImages(Context::getContext()->language->idd);
 
y me devuelve esto
 
Array ( [0] => Array ( [images] => Array ( [0] => Array ( [cover] => 1 [id_image] => 35 [legend] => [position] => 1 ) ) ) )
 
despues cambie idd po id asi Context::getContext()->language->id
 
y devuelve esto:
 
Array ( [0] => Array ( [images] => Array ( [0] => Array ( [cover] => 1 [id_image] => 35 [legend] => Pilar de cicatrización Ø 4.6 mm x 7 L (Estándard Titanio) [position] => 1 ) ) ) )
 
 
 
PD: probé también la consulta sql y devuelve lo mismo
Edited by mmcfly (see edit history)
Link to comment
Share on other sites

Hola,

 

No entiendo a que te refieres, con eso ya te devuelve el array correctamente con los ID de las imágenes y para sacar la URL con la función que has indicado al principio:

$new_product = New Product($product['id_product'], false, Context::getContext()->language->id);
$images = $new_product->getImages(Context::getContext()->language->id);
foreach($images as $image)
{
    $url_image = $this->context->link->link->getImageLink($new_product->link_rewrite, $image['id_image'], 'home_default');
}

Un saludo.

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