wdrożenia PrestaShop

product-list.tpl + nr katalogowy i kategoria domyslna

  • 1 Odpowiedzi
  • 4014 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline design4VIP

  • user
  • Mieszkaniec
  • *****
  • 3,866
  • 131
    • design4VIP z innej strony...
  • PrestaShop: PS
  • Status: Programista
product-list.tpl + nr katalogowy i kategoria domyslna
« dnia: Luty 06, 2012, 10:15:47 am »
mam pytanie, jak dodac do listy produktow nr referencyjny oraz nazwe kategorii domyslej?

dodam ze PS 1.4.6.2 wraz z blocklayered

co juz znalazlem:
odnosnie nr referencyjnego: na innych forach niby podaja  aby dodac tylko {$product.reference}. niestety, podaja tez, ze takie cos nie dziala z wlaczonym blocklayered. maja racje... nie dziala ;/ wie ktos co z tym fantem?

odnosnie kategorii, narazie udalo mi sie poprzez {$product.id_category_default} wyswietlic nr kategorii. teraz pytanie jak pobrac jej nazwe?

z gory dzieki za wszelkie sugestie.
design4VIP z innej strony...

*

Offline design4VIP

  • user
  • Mieszkaniec
  • *****
  • 3,866
  • 131
    • design4VIP z innej strony...
  • PrestaShop: PS
  • Status: Programista
Odp: product-list.tpl + nr katalogowy i kategoria domyslna
« Odpowiedź #1 dnia: Luty 09, 2012, 03:54:11 pm »
nie ma chetnych do pomocy? a moze po prostu lenistwo w te zimowe dni ogarnia...

no nic... to sam sie podziele rozwiazaniem na swoje pytanie :D

Duza wina z problemi wyswietlania lezy po stronie BlockLayered

Rozwiazanie bez uzywania BL w productlist-tpl wystarczy wprowadzic:
<p>{$product.reference|escape:'htmlall':'UTF-8'}</p>
<p>{$product.category_default|escape:'htmlall':'UTF-8'}</p>

jezlei ktos uzywa BL to jeszcze do powyzszego w blocklayered.php:

w okolicach linii 2000 nalezy rozbudowac clase, czyli zamienic to co tam jest na:

$this->nbr_products = count($productIdList);

  if ($this->nbr_products == 0)
   $this->products = array();
  else
  {
   $n = (int)Tools::getValue('n', Configuration::get('PS_PRODUCTS_PER_PAGE'));
   $this->products = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
   SELECT p.id_product, p.on_sale, p.out_of_stock, p.available_for_order, p.quantity, p.minimal_quantity, p.id_category_default, p.customizable, p.show_price, p.`weight`, p.reference,
   p.ean13, pl.available_later, pl.description, pl.description_short, pl.link_rewrite, pl.name, i.id_image, il.legend,  m.name manufacturer_name, p.condition, p.id_manufacturer, cl.`name` AS category_default,
   DATEDIFF(p.`date_add`,
   DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new
   FROM '._DB_PREFIX_.'category_product cp
   LEFT JOIN '._DB_PREFIX_.'category c ON (c.id_category = cp.id_category)
   LEFT JOIN '._DB_PREFIX_.'product p ON p.id_product = cp.id_product
   LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (pl.id_product = p.id_product)
   LEFT JOIN '._DB_PREFIX_.'category_lang cl ON (p.id_category_default = cl.id_category AND cl.id_lang = '.(int)($cookie->id_lang).')
   LEFT JOIN '._DB_PREFIX_.'image i ON (i.id_product = p.id_product AND i.cover = 1)
   LEFT JOIN '._DB_PREFIX_.'image_lang il ON (i.id_image = il.id_image AND il.id_lang = '.(int)($cookie->id_lang).')
   LEFT JOIN '._DB_PREFIX_.'manufacturer m ON (m.id_manufacturer = p.id_manufacturer)
   WHERE p.`active` = 1 AND
   '.(Configuration::get('PS_LAYERED_FULL_TREE') ? 'c.nleft >= '.(int)$parent->nleft.' AND c.nright <= '.(int)$parent->nright : 'c.id_category = '.(int)$id_parent).'
   AND pl.id_lang = '.(int)$cookie->id_lang.'
   AND p.id_product IN ('.implode(',', $productIdList).')'
   .' GROUP BY p.id_product ORDER BY '.Tools::getProductsOrder('by', Tools::getValue('orderby'), true).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')).
   ' LIMIT '.(((int)Tools::getValue('p', 1) - 1) * $n.','.$n));
}
return $this->products;
}

milej zabawy ;)
design4VIP z innej strony...