Polskie wsparcie PrestaShop
PrestaShop => Błędy => Wątek zaczęty przez: guru79 w Marzec 15, 2010, 09:14:44 pm
-
Witam...
Zmuszony pewnym błędem ale i zębem czasu uaktualniłem wersję 1.1.0.5 do wersji 1.2.2.2.
Na razie wszystko działa...Prócz bloku Polecane produkty na stronie głównej v0.9.
Do tej pory za każdym odświeżeniem strony produkty na stronie w tym bloku losowo się zmieniały.k..
Niestety po aktualizacji presty blok wygląda tak, że za każdym odświerzeniem strony produkty w tym bloku pozostają te sam i nie losują się...W zasadzie śmiem twierdzić że pokazuje ostatnie np. 16 produktów dodanych do sklepu.
Czy ktoś się już z tym spotkał, albo potwierdza u niego na nowej wersji Presty takie działanie?
Przemek
-
Proponuje zainstalować moduł "homefeaturedcustom". Poszukaj na forum prestashop.com
-
Tak faktycznie moduł 0.9 nie jest przewidziany pod nowszą prestę. Ściągłem ten i jest OK.
Dziękuję.
-
sorry, że odkopuję temat. Do mojego szablonu sklepu przystosowany jest ten moduł, da się coś z nim zrobić aby działał prawidłowo tzn pokazywał zdjęcia losowo ?
-
Jeśli dobrze pamiętam -> W zapleczu prestashop (http://www.selljus.pl), w zakładce moduły istnieje możliwość konfiguracji tego modułu ... ustawienia wyświetlania losowych produktów... .
Należy odszukać moduł na liście modułów i kliknąć -> konfiguruj.
-
w modules/homefetured/homefeatured.php zastap funkcje hookHome:
function hookHome($params)
{
global $smarty;
$category = new Category(1, Configuration::get('PS_LANG_DEFAULT'));
$nb = (int)(Configuration::get('HOME_FEATURED_NBR'));
$products = $category->getProducts((int)($params['cookie']->id_lang), 1, (1000));
shuffle($products);
array_splice($products, ($nb ? $nb : 8));
$smarty->assign(array(
'products' => $products,
'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
'homeSize' => Image::getSize('home')));
return $this->display(__FILE__, 'homefeatured.tpl');
}
-
właśnie o to chodziło wielkie dzięki !!
-
Odświeżam temat, bo mam pytanie ściśle powiązane z nim.
Jak to zrobić w wersji 1.5.4? Niestety ta porada wygasła, teraz już wersja 1.5 wypiera stare presty :)
-
czy 1.3 czy 1.4 czy tez "wspirajaca" (co by to nie znaczylo 1.5 misisz zastosowac 'shuffle' dla dla produktow i dopiero je wyslac do tablicy, tak jak w przykladzie, zmienia sie tyko metoda pozyskania pierwotnych produktow.
-
:/ a możesz tak konkretnie napisać jak zrobiłeś to poprzednio - znajdź "to" i za mień na "to"
-
znadz 'to': linijke odpowiedzialna za pobieranie produktow i zamienic na 'to': shuffle()
masz powyzej gotowca, zmiana dotyczy dokladnie jednej linijki, wystarczy odrobina checi w przeanalizowanie kodu wpis po wpisie. jezlei checi brak do do tego stworzona jest kategoria Rynek na tym forum. forum ma pomagac w rozwiazywaniu problemow a nie non stop dawac gotowce...
-
Odgrzewam ponieważ jest ściśle powiązane z tematem.
znadz 'to': linijke odpowiedzialna za pobieranie produktow i zamienic na 'to': shuffle()
masz powyzej gotowca, zmiana dotyczy dokladnie jednej linijki, wystarczy odrobina checi w przeanalizowanie kodu wpis po wpisie. jezlei checi brak do do tego stworzona jest kategoria Rynek na tym forum. forum ma pomagac w rozwiazywaniu problemow a nie non stop dawac gotowce...
Ja zrobiłem analogiczne ale w moim przypadku nie losuje ze wszystkich produktów promowanych (dodanych do kategorii głównej) lecz miesza wybranych kilka. Niezależnie ile produktów ustawię do wyświetlenie to bierze sobie jakąś paczkę produktów i miesza na stronie te konkretne:/
Nie wiem jak to obejść czy mógłbyć mi dorzucić jeszcze jakąś wskazówkę?
Presta 1.5.6.2if (!$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 :, "position");
shuffle($products);
array_splice($products, ($nb ? $nb : 6));
$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'));
-
a skad sie to wzielo:
($nb ? $nb :, "position")
skad ', "positionn" '? tutaj ma byc liczba ilosci maksymalnej ilosci produktow branych do wyboru. w chwili obecnje twoje zapytanie wyglada tak przy ustawieniach w panelu ilsoci do wyswietlenia np 10szt: potrzebuje do wyboru 10szt, jezeli ta wartosc nei jest okreslona to wybierz ilosc ', "position"' - ktora raczej nie jest int()
-
a skad sie to wzielo:
($nb ? $nb :, "position")
skad ', "positionn" '?
dzięki za odp.
Tak wyglądał oryginalny plik, ja tego nie zmieniałem, ale jak w ustawieniach modułu wpisuję ilość produktów które ma wyświetlać to się zmienia czyli funkcja jednak działa. Wstawiłem "z ręki" tam liczbę 9 i w polecanych nie wyświetlił się żaden produkt, musi być "posiotion".
On zmienia ilość wyświetlanych produktów i miesza produkty, ale jak zaznaczę, że ma wyświetlać 9 produktów to bierze pierwsze 9 z kategorii "Główna" i je między sobą miesza miejscami, nie bierze już kolejnych 200 produktów, zawsze pierwsze 9 (w tym przypadku) produktów. Jak wpisze 16 to będzie pierwsze 16 itd.
Znalazłem, że ile produktów ma się wyświetlac w polecanych zapisane jest w bazie `ps_configuration`--> HOME_FEATURED_NBR
-
raczej nie jest to rozwiazanie z oryginalnego, tylko jakiegos dogranego... niewiadomego pochodzenia ;) wyglada na to, ze ktos zmienil sobie klase getProduct zeby pobieral po pozycji produktu, ale to wymagalo raczej zmiany kontrolera. to nie jest standardowe rozwiazanie. w standardzie wyglada to tak:
$products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 8));
czyli analizujac sam nawias, $nb - czyli wartosc wpisana w konfiguracji modulu jako ilosc wyswietlana (gdzie sie zapisuje to juz malo wazne, ale tak, wlasnie we spomnianej lokalizacji) i dalej po '?' jezlei nie istnieje ta wartosc (puste pole w konfiguracji to bierz domyslna wartosc '8'. ale tak czy tak musi byc tutaj cyfra a nie string, jak w twoim wypadku.
analizujac dalej... jezeli chcesz wybieraz z wiekszej ilsoci to musisz tutaj dac wybor z wiekszej ilosci, czyli wywalic w tym miejscu calkiem $nb i dac wartosc do analizy przez getProduct(), a ilosc $nb ustalasz w koncowej fazie shufle.
mowiac gotowcem: zamiast ($nb ? $nb : 8) dajesz stala wartosc np. 500 i dopiero z tych 500 poszuflowanych wybierasz ilosc $nb w array_splice()
-
8) ustalałem co trzeba wpisac żeby pojawił się uśmieszek spoko, zaraz będę to testował
-
a przepraszam, tam byla '8', ale to nie istotne, to domyslna ilosc wysweitlanych obrazow, jak pisalem, generujaca sie w momencie nie wypelnienia pola $nb (ilosci) w konfiguracji modulu