Polskie wsparcie PrestaShop

PrestaShop => Moduły => Wątek zaczęty przez: saracoratello w Grudzień 29, 2011, 01:50:51 pm

Tytuł: Modyfikacja modułu nowych produktów - zaczytywanie z jednej kategorii.
Wiadomość wysłana 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();
}
Tytuł: Odp: Modyfikacja modułu nowych produktów - zaczytywanie z jednej kategorii.
Wiadomość wysłana przez: sower w Grudzień 29, 2011, 02:11:57 pm
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)
Tytuł: Odp: Modyfikacja modułu nowych produktów - zaczytywanie z jednej kategorii.
Wiadomość wysłana przez: saracoratello w Grudzień 29, 2011, 02:14:11 pm
No to wlasnie wiem i to wlasnie mam - potrzebuje wskazówek jak zdefiniować i przetworzyć tę kategorię. cała reszta jest już zrobiona
Tytuł: Odp: Modyfikacja modułu nowych produktów - zaczytywanie z jednej kategorii.
Wiadomość wysłana przez: saracoratello w Grudzień 29, 2011, 02:38:05 pm
parametr $newproduct.category w tpl zwraca kategorię - to już wiem. tylko jak w phpie to uchwycić
Tytuł: Odp: Modyfikacja modułu nowych produktów - zaczytywanie z jednej kategorii.
Wiadomość wysłana przez: saracoratello w Grudzień 29, 2011, 02:41:46 pm
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...
Tytuł: Odp: Modyfikacja modułu nowych produktów - zaczytywanie z jednej kategorii.
Wiadomość wysłana przez: sower w Grudzień 29, 2011, 02:58:34 pm
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 ;)
Tytuł: Odp: Modyfikacja modułu nowych produktów - zaczytywanie z jednej kategorii.
Wiadomość wysłana przez: saracoratello w Grudzień 29, 2011, 03:02:21 pm
Stąd moje pytanie i prośba o pomoc ;-)