Jump to content

Recommended Posts

Salut,

 

Doresc sa ordonez invers produsele recomandate de pe site. Metoda din BO nu ma ajuta, deoarece am nevoie sa le ordonez pe toate, odata, nu unul cate unul. Teoretic, as modifica Query-ul SQL daca l-as gasi, sa pun un ORDER BY.. DESC, doar ca modul in care este scris Presta imi depaseste cunotintele actuale.

 

Banuiesc ca, codul ce se ocupa de extragerea produselor din DB este acesta:
 

public function hookDisplayHome($params)
{
if (!$this->isCached('homefeatured.tpl', $this->getCacheId('homefeatured')))
{
$category = new Category(Context::getContext()->shop->getCategory(), (int)Context::getContext()->language->id);
$nb = (int)Configuration::get('HOME_FEATURED_NBR');
$products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 8));
 
$this->smarty->assign(array(
'products' => $products,
'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
'homeSize' => Image::getSize(ImageType::getFormatedName('home')),
));
}
return $this->display(__FILE__, 'homefeatured.tpl', $this->getCacheId('homefeatured'));
}
 
Codul de mai sus l-am luat din module/homefeatured/homefeatured.php.
 
Banuiesc ca aici trebuie sa fac o filtrare descrescatoare sau ceva..
 
Are cineva o solutie? Problema e ca, poate le-as aranja cu un query SQL direct in DB, dar pe termen lung nu este o solutie.
 
Multumesc
Link to comment
Share on other sites

Salut,

Din BO nu rezolv mare chestie, stiam de solutia aia. Poate nu m-am descurcat eu cu ea, dar prin metoda aia trebuie sa le ordonez manual pe toate.

Anyway, am rezolvat problema. Pentru cine este interesat, sa inlocuiasca functia asta, la linia 117 (sau cel putin sa caute de unde incepe daca are eventual alte modificari ce vor altera numarul de linii).

 

public function hookDisplayHome($params)
{
if (!$this->isCached('homefeatured.tpl', $this->getCacheId('homefeatured')))
{
$category = new Category(Context::getContext()->shop->getCategory(), (int)Context::getContext()->language->id);
$nb = (int)Configuration::get('HOME_FEATURED_NBR');
$products = Product::getNewProducts((int) $params['cookie']->id_lang, 0, (int) Configuration::get('NEW_PRODUCTS_NBR'));
//shuffle($products);
$this->smarty->assign(array(
'products' => $products,
'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
'homeSize' => Image::getSize(ImageType::getFormatedName('home')),
));
}
return $this->display(__FILE__, 'homefeatured.tpl', $this->getCacheId('homefeatured'));
}
Link to comment
Share on other sites

Cred ca nu te-ai exprimat bine de la inceput.

 

In solutia data de tine vad ca ai schimbat Product::getProducts cu Product::getNewProducts, ceea ce este altceva - nu mai este vorba de produsele recomandate ci de cele noi.

 

Si vad ca ai pus un shuffle acolo (care apare si comentat). Ai spus la inceput ca vrei sa le ordonezi invers, nu aleatoriu. Solutia cu shuffle($products) este clasica.

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