Polskie wsparcie PrestaShop
PrestaShop => Moduły => Wątek zaczęty przez: saracoratello w Grudzień 29, 2011, 01:50:51 pm
-
Witam,
Chce wykorzystać moduł nowych produktów na danej zasadzie:
Na określonej pozycji np. Y będą się pojawiała określona ilość produktów z kategorii X.
Mój problem polega na tym że na jednej stronie będzie tych modułów 3 na rożnych pozycjach - w zależności od pozycji nowe produkty zaczytują się z innej kategori. Wystarczy zrobic powiedzmy inne tple oraz dodać funkcję w pliku blocknewproducts.php np. hookY i tu zwrocenie standardowej funkcji.
problem w tym żen ie wiem jak ją zmodyfikować tak aby zaczytywała te produkty z jednej kategorii. Czy macie może pomysł ?
Poniżej kod standardowej funkcji nowych produktów:
public function hookHome($params)
{
global $smarty;
$newProducts = Product::getNewProducts((int)($params['cookie']->id_lang), 0, (int)(Configuration::get('NEW_PRODUCTS_NBR')));
if (!$newProducts AND !Configuration::get('PS_BLOCK_NEWPRODUCTS_DISPLAY'))
return;
$smarty->assign(array('new_products' => $newProducts, 'mediumSize' => Image::getSize('medium')));
return $this->display(__FILE__, 'blocknewproducts.tpl');
}
oraz
public function getContent()
{
$output = '<h2>'.$this->displayName.'</h2>';
if (Tools::isSubmit('submitBlockNewProducts'))
{
if (!$productNbr = Tools::getValue('productNbr') OR empty($productNbr))
$output .= '<div class="alert error">'.$this->l('Please fill in the "products displayed" field.').'</div>';
elseif ((int)($productNbr) == 0)
$output .= '<div class="alert error">'.$this->l('Invalid number.').'</div>';
else
{
Configuration::updateValue('PS_BLOCK_NEWPRODUCTS_DISPLAY', (int)(Tools::getValue('always_display')));
Configuration::updateValue('NEW_PRODUCTS_NBR', (int)($productNbr));
$output .= '<div class="conf confirm"><img src="../img/admin/ok.gif" alt="'.$this->l('Confirmation').'" />'.$this->l('Settings updated').'</div>';
}
}
return $output.$this->displayForm();
}
-
fajnie było by gdyby było tak prosto jak sobie to wymyśliłeś ;)
oczywiście da sie coś takiego zrobić ale to nie tak prosto ;)
trzeba do każdego tpl zdefiniować kategorię jaką ma wyśietlać - przetworzyć to i wysłac do odpowiedniego tpl (oczywiście tpl trzeba powiesić na odpowiednich hookach)
-
No to wlasnie wiem i to wlasnie mam - potrzebuje wskazówek jak zdefiniować i przetworzyć tę kategorię. cała reszta jest już zrobiona
-
parametr $newproduct.category w tpl zwraca kategorię - to już wiem. tylko jak w phpie to uchwycić
-
Metoda bardzo łopatologiczna - w tplach ustawić ifa dla danej kategorii oraz ograniczenie że wyswietla tylko X pierwszych produktów, w konfiguracji jakąś wysoką liczbę nowych produktów i tple załatwią sprawę. Choć fajniej byłoby zrobić to poprawnie...
-
wszystko będzie cacy do czasu aż nie wejdą ci w konflikt zmienne lub nie zanczną się dublować ;) - i zmienisz coś w jednym module a posypie ci się reszta ;)
-
Stąd moje pytanie i prośba o pomoc ;-)