Jump to content

Jak zobrazit více obrázků produktu v product-list.tpl?


vasikgreif

Recommended Posts

Zdravím, chtěl bych v product-list zobrazit u každého produktu i jeho druhý a třetí obrázek. Zatím jsem ale nepřišel na to, jak je identifikovat, tzn. jak říct "pokud má produkt více obrázků, vezmi druhý a zobraz ho tady". Máte někdo nápad jak na to? Díky

Link to comment
Share on other sites

Zdravím, chtěl bych v product-list zobrazit u každého produktu i jeho druhý a třetí obrázek. Zatím jsem ale nepřišel na to, jak je identifikovat, tzn. jak říct "pokud má produkt více obrázků, vezmi druhý a zobraz ho tady". Máte někdo nápad jak na to? Díky


pouzit to s product.tpl<!-- thumbnails -->)
+ upravit/zmenit v css
Link to comment
Share on other sites

pouzit to s product.tpl<!-- thumbnails -->)
+ upravit/zmenit v css


Díky za tip, do product-listu jsem vložil (z product.tpl):
        <!-- thumbnails -->

       {if count($images) > 3}{l s='Previous'}{/if}


               {foreach from=$images item=image name=thumbnails}
               {assign var=imageIds value=`$product->id`-`$image.id_image`}

getImageLink($product->link_rewrite, $imageIds, 'thickbox')}" rel="other-views" class="thickbox {if $smarty.foreach.thumbnails.first}shown{/if}" title="{$image.legend|htmlspecialchars}">
getImageLink($product->link_rewrite, $imageIds, 'medium')}" alt="{$image.legend|htmlspecialchars}" height="{$mediumSize.height}" width="{$mediumSize.width}" />


               {/foreach}


       {if count($images) > 3}{l s='Next'}{/if}



ale nic se mi nezobrazilo. Dělám něco špatně?

Link to comment
Share on other sites

Zkusil jsem vložit část která se zabývá obrázky:

[removed]
// <![CDATA[

// Images
var img_prod_dir = '{$img_prod_dir}';
var combinationImages = new Array();
{foreach from=$combinationImages item='combination' key='combinationId' name='f_combinationImages'}
   combinationImages[{$combinationId}] = new Array();
   {foreach from=$combination item='image' name='f_combinationImage'}
       combinationImages[{$combinationId}][{$smarty.foreach.f_combinationImage.index}] = {$image.id_image|intval};
   {/foreach}
{/foreach}

combinationImages[0] = new Array();
{foreach from=$images item='image' name='f_defaultImages'}
   combinationImages[0][{$smarty.foreach.f_defaultImages.index}] = {$image.id_image};
{/foreach}


//]]>
[removed]



A pořád nic. Podle mého je potřeba přidat něco do product.php, ale nemám ponětí co...

Link to comment
Share on other sites

  • 3 months later...

Tak se mi to nakonec podařilo s pomocí odkazu od vasikgreif vykoumat a není to ani tak složité, jak se zprvu zdálo:

1. Do souboru /classes/product.php vložit do třídy Product funkci:

    public function    getImages($id_lang)
   {
       return Db::getInstance()->ExecuteS('
       SELECT i.`cover`, i.`id_image`, il.`legend`
       FROM `'._DB_PREFIX_.'image` i
       LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.intval($id_lang).')
       WHERE i.`id_product` = '.intval($this->id).'
       ORDER BY `position`');
   }



2. V souboru /category.php najít řádky (někde okolo 56. řádku):

        if ($category->id != 1)
       {
           $nbProducts = $category->getProducts(NULL, NULL, NULL, $orderBy, $orderWay, true);
           include(dirname(__FILE__).'/pagination.php');
           $smarty->assign('nb_products', $nbProducts);
           $cat_products = $category->getProducts(intval($cookie->id_lang), intval($p), intval($n), $orderBy, $orderWay);
       }



...a nahradit je tímto:

        if ($category->id != 1)
       {
           $nbProducts = $category->getProducts(NULL, NULL, NULL, $orderBy, $orderWay, true);
           include(dirname(__FILE__).'/pagination.php');
           $smarty->assign('nb_products', $nbProducts);
           $cat_products = $category->getProducts(intval($cookie->id_lang), intval($p), intval($n), $orderBy, $orderWay);
     foreach ($cat_products as &$product) {
       $product['images'] = Product::getImagesById(intval($cookie->id_lang), $product['id_product']);
       foreach($product['images'] as &$image) {
         $image['id_image'] = $product['id_product'].'-'.$image['id_image'];
       }
     }
       }



3. V souboru /themes/[moje_tema]/product-list.tpl najít cyklus:

{foreach from=$products item=product name=products}



...a do něj na vhodné místo vložit:

          {foreach from=$product.images item=image name=images}
getImageLink($product.link_rewrite, $image.id_image, 'home')}" alt="{$image.legend|escape:'htmlall':'UTF-8'}" width="{$homeSize.width}" height="{$homeSize.height}" />
         {/foreach}



Hodně štěstí! Vojtěch

Link to comment
Share on other sites

  • 6 months later...
  • 2 weeks later...

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