Jump to content
  • 0

Blok promocji na stronie głównej


Skarbona

Question

Witam,

 

Chciałbym podpiąć blok promocji na stronie głównej(na Home Page Tab).

 

Dodałem ten kod do blockspecial.tpl

public function hookDisplayHomeTab($params)
	{
		if (!$this->isCached('tab.tpl', $this->getCacheId('specialproducts-tab')))
			$this->_cacheProducts();

		return $this->display(__FILE__, 'tab.tpl', $this->getCacheId('specialproducts-tab'));
	}
	public function hookdisplayHomeTabContent($params)
	{
		if (Configuration::get('PS_CATALOG_MODE'))
			return;
		
		// We need to create multiple caches because the products are sorted randomly
		$random = date('Ymd').'|'.round(rand(1, max(Configuration::get('BLOCKSPECIALS_NB_CACHES'), 1)));

		if (!Configuration::get('BLOCKSPECIALS_NB_CACHES') || !$this->isCached('blockspecials.tpl', $this->getCacheId('blockspecials|'.$random)))
		{
			if (!($special = Product::getRandomSpecial((int)$params['cookie']->id_lang)) && !Configuration::get('PS_BLOCK_SPECIALS_DISPLAY'))
				return;

			$this->smarty->assign(array(
				'special' => $special,
				'priceWithoutReduction_tax_excl' => Tools::ps_round($special['price_without_reduction'], 2),
				'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')),
			));
		}

		return $this->display(__FILE__, 'blockspecials.tpl', (Configuration::get('BLOCKSPECIALS_NB_CACHES') ? $this->getCacheId('blockspecials|'.$random) : null));
	}

Próbując teraz podpiąć w pozycjach Blok Promocji do DisplayHomeTab lub DisplayHomeTabContent pojawia mi się informacja: "This module cannot be transplanted to this hook." W złym miejscu próbuje podpiąć, co jeszcze powinnem wykonać?

Link to comment
Share on other sites

23 answers to this question

Recommended Posts

  • 0

W pliku blockspecials.php do:

    public function install()
    {
        if (!Configuration::get('BLOCKSPECIALS_NB_CACHES'))
            Configuration::updateValue('BLOCKSPECIALS_NB_CACHES', 20);
        $this->_clearCache('blockspecials.tpl');

        $success = (
            parent::install()
            && $this->registerHook('header')
            && $this->registerHook('addproduct')
            && $this->registerHook('updateproduct')
            && $this->registerHook('deleteproduct')
        );

dodaj:

&& $this->registerHook('DisplayHomeTab')

&& $this->registerHook('DisplayHomeTabContent')

 

Zresetuj moduł "blockspecials"

 

W templatce blockspecial.tpl nic nie musisz dodawać.

Link to comment
Share on other sites

  • 0

Żeby się wyświetlił ten blok na stronie głównej to już trochę więcej roboty.

Trzeba stworzyć dwie dodatkowe templatki tab.tpl i blockspecials-home.tpl.

Trzeba też przerobić blockspecials.php żeby te templatki ładowały się na home dodając funkcje:

hookDisplayHomeTab

hookdisplayHomeTabContent

 

Weź za wzorzec moduł "blockbestsellers" i przerób identycznie "blockspecials".

Link to comment
Share on other sites

  • 0

Czy udało się komuś przerobić blockspecials.php? O ile tab.tpl i blockspecials-home.tpl są proste w stworzeniu to przerobienie blockspecials.php na wzór  blockbestsellers.php to już inna bajka i chyba te dwa moduły nie były robione przez jednego człeka.

Może ktoś by zrobił taki alternatywny płatny moduł...

Edited by eljelj (see edit history)
Link to comment
Share on other sites

  • 0

Czy udało się komuś przerobić blockspecials.php? O ile tab.tpl i blockspecials-home.tpl są proste w stworzeniu to przerobienie blockspecials.php na wzór  blockbestsellers.php to już inna bajka i chyba te dwa moduły nie były robione przez jednego człeka.

Może ktoś by zrobił taki alternatywny płatny moduł...

 

już jakiś czas temu utworzyłem taki moduł: zakładka z promocjami prestashop 1.6

użyj kodu blockspecialstab - duża zniżka ;)

Link to comment
Share on other sites

  • 0

Extra działa, wielkie dzięki

 

ale..

 

Mam pewien problem. Jak promocje ustawie sobie jako pierwsza zakładka  to jest OK.

Natomiast jak wrzucę promocję do następnych wtedy podświetlona jest domyślnie pierwsza (np polecane)  i jednocześnie promocje w np w trzeciej zakładce. Skutek  jest taki, że po odświeżeniu strony promocje w tej trzeciej zakładce  są nieaktywne i podświetlone, dopiero kliknięcie kolejnej zakładki  np drugiej wszystko działa jak powinno - jest tylko podświetlona zakładka kliknięta.

Mam nadzieję że dobrze to wyjaśniłem :) 

Edited by eljelj (see edit history)
Link to comment
Share on other sites

  • 0

Mam w logach błędy:

 

Undefined property: BlockSpecialsTab::$orderBy in .............../modules/blockspecialstab/blockspecialstab.php on line 68
Undefined property: BlockSpecialsTab::$orderWay in /modules/blockspecialstab/blockspecialstab.php on line 68
Undefined variable: random in ................/modules/blockspecialstab/blockspecialstab.php on line 70

Link to comment
Share on other sites

  • 0

Po włączeniu debugowania

Notice: Undefined property: BlockSpecialsTab::$orderBy in /var/www/sklep/modules/blockspecialstab/blockspecialstab.php on line 68 Notice: Undefined property: BlockSpecialsTab::$orderWay in /var/www/sklep/modules/blockspecialstab/blockspecialstab.php on line 68 Notice: Undefined variable: random in /var/www//sklep/modules/blockspecialstab/blockspecialstab.php on line 70

Link to comment
Share on other sites

  • 0

Po włączeniu debugowania

Notice: Undefined property: BlockSpecialsTab::$orderBy in /var/www/sklep/modules/blockspecialstab/blockspecialstab.php on line 68 Notice: Undefined property: BlockSpecialsTab::$orderWay in /var/www/sklep/modules/blockspecialstab/blockspecialstab.php on line 68 Notice: Undefined variable: random in /var/www//sklep/modules/blockspecialstab/blockspecialstab.php on line 70

nowa wersja została wydana 18 maja

czy została ona pobrana i wgrana?

Link to comment
Share on other sites

  • 0

Sprawdzałem i faktycznie ściągnąłem jeszcze raz pierwszą wersję ale 19.05 (?)  Dzisiaj operacje zrobiłem jeszcze raz i jest nowsza paczka - wygląda,że jest OK!. Jeszcze nie wiem jak to jest z tym problemem z jednoczesnymi podświetleniami przycisków, który opisywany jest także tutaj . Występuję to po chwili jak napełni się cache i podświetla zawsze dodatkowo te promocje.

Link to comment
Share on other sites

  • 0

Tak, do tego zmierzam. Podaję stronę sklep.crazyworldpets.pl

 

Przy okazji: błąd również występuje u mnie. Jednocześnie podświetla przyciski i przez to wyświetla podwójnie produktów(np. najnowsze i najpopularniejsze, czyli 2 razy po 8 produktów). Błąd zauważyłem jedynie w firefoxie. Trudno jest mi zdiagnozować bo jakich operacjach się pojawia błąd(nie ma żadnych jednoznacznych prawidłowości). Skorzystam z rad umieszczonych w wcześniejszym linków.

 

PS. Nie instalowałem jeszcze żadnych modułów dla nowości, więc występuje ten błąd na "domyślnym, czystym" szablonie.

Link to comment
Share on other sites

  • 0

Czy w BO SEO&URL - Wyłącz ustawienia bezpieczeństwa apache     dotyczy wyłączenia  mod_security?

 

Testuje różne ustawienia i na razie przy wyłączonej tej opcji jest jest w porządku.

Link to comment
Share on other sites

  • 0

@vekia dzięki. Zrobiłem te wymienione zmiany dla modułów w szablonie  i nie podświetlają się  :)

 

Natomiast nowa wersja blockspecialstab ma chyba błąd - nie wyświetla zadana ilość produktów w FO taka jak została zapisana w BO  :(

Link to comment
Share on other sites

  • 0

a czy te pozostałe produkty, których jest więcej nie są czasami pozostałością po innych zakładkach? w sensie, ta sekcja strony (te zakładki) mają jakieś dziwne problemy, np. mimo przełączenia zakładki produkty z tej wyłączonej wyświetlają się jednocześnie z tymi które włączyliśmy

daj znać - sprawdzam kod każdego z modułów który jest tam dołączony

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