Polskie wsparcie PrestaShop
PrestaShop => Wygląd => Wątek zaczęty przez: pierzo w Maj 07, 2011, 03:14:04 pm
-
Witam
Mam prośbę czy ktoś mógłby krok po kroku napisać jak dodać nowy hook w Presta 1.4.1.0?
Tak domyślnie dla "nowyhook" ze ścieżkami dostępu do plików, które należ modyfikować.
Próbowałem już sposobów:
http://landofcoder.com/download/guides-docs/docs-guide-prestashop/128-how-to-add-new-hook-in-prestashop-14.html
i
http://www.prestashop.com/forums/viewthread/90040/P0/integration/solved_how_to_add_new_hook_in_prestashop_1_dot_4
Oczywiście nie działa.
Jestem już skrajnie wyczerpany nerwowo z tego powodu. Robie jak piszą inni użytkownicy presty, nie mam żadnych literówek, odświeżam serwer (pracuje lokanie na Xampp 1.7.4) czyszczę cache przeglądarki FF4, logout/login tak dla pewności i nadal nic.
Koniecznie muszę zrobić swoją skórkę i możliwość utworzenia własnego hook'a jest mi niezbędna.
Z góry dzięki, pozdro
-
http://ardianys.com/64_how-to-add-new-hook-prestashop-engine-modification-tutorial-series.html
-
http://ardianys.com/64_how-to-add-new-hook-prestashop-engine-modification-tutorial-series.html
Tak to też na początku przerabiałem, autor tamtego tutka nie napisał tego na początku ale jego porady dotyczą starszej wersji Presty. Tak więc ten link odpada całkowicie.
-
Musze poszukać bo gdzieś to znalazłem kiedys ale link mi umknął.
Zerknij tutaj http://www.ecartservice.net/07022011/tired-of-hooks-try-a-plugin-prestashop-1-4/
-
Musze poszukać bo gdzieś to znalazłem kiedys ale link mi umknął.
Zerknij tutaj http://www.ecartservice.net/07022011/tired-of-hooks-try-a-plugin-prestashop-1-4/
:) już zerkałem, szkoda że ten plugin działa za smarty 2, wolałbym pozostać przy 3.
Dziwię się że tak trudno dokopać się do tych informacji (działających informacji).
Modyfikacja layoutu to podstawa i to powinno być uproszczone.
Dzięki że się starasz mi pomóc.
-
Z tego co pamiętam to trzeb dać w katalogu override plik FrontControler.php, w bazie dodać nowy hook, w kodzie strony też go wrzucić tam gdzie ma być... nawet mi się to udało. Jeszcze poszukam.
-
Napiszę wam jak to w tej chwili wygląda u mnie dla "nowyHook"
1. Najpierw zapisuję nowyhook w pliku FrontController.php.
Tworzę nowy plik w katalogu override\classes\FrontController.php z zawartością:
<?php
class FrontController extends FrontControllerCore
{
function displayHeader(){
parent::displayHeader();
$this->smarty->assign(array('HOOK_NOWY_HOOK' => Module::hookExec('nowyHook')));
}
}
?>
2. Dodaję nowy hook w bazie danych, przez zapytanie w phpmyadmin
INSERT INTO `moja_baza`.`ps_hook` (
`id_hook` ,
`name` ,
`title` ,
`description` ,
`position`
)
VALUES (
NULL , 'nowyHook', 'Nowy Hook, ', NULL , '1'
);
3. Tworzę nową funkcję o nazwie nowyHook w pliku modules/nowyhook/nowyhook.php
‘hook’ to prefix funkcji hook
<?php
function hooklnowyHook($params){
return $this->processHook( $params,"nowyHook");
}
?>
4. Dodajemy kod {$HOOK_NOWY_HOOK} w pliku theme/prestashop/header.tpl
<!-- Header -->
<div id="header">
<a id="header_logo" href="/{$base_dir}" title="{$shop_name|escape:'htmlall':'UTF-8'}">
<img class="logo" src="/{$img_ps_dir}logo.jpg?{$time}" alt="{$shop_name|escape:'htmlall':'UTF-8'}" {if $logo_image_width}width="{$logo_image_width}"{/if} {if $logo_image_height}height="{$logo_image_height}" {/if} />
</a>
<div id="header_right">
{$HOOK_TOP}
</div>
<div id="nowyhook">
{$HOOK_NOWY_HOOK} <--- tutaj
</div>
</div>
Jak ktoś może to niech mnie poprawi/uzupełni, napisze co trzeba zmienić/dodać w których plikach.
-
3. Tworzę nową funkcję o nazwie nowyHook w pliku modules/nowyhook/nowyhook.php
‘hook’ to prefix funkcji hook
Kod:
<?php
function hooklnowyHook($params){
return $this->processHook( $params,"nowyHook");
}
?>
A czasem nie dodajesz tylko nowy hook to juz istniejacych modulow w celu przerzucenia ich wlasnie do tego nowego zaczepu ?
-
3. Tworzę nową funkcję o nazwie nowyHook w pliku modules/nowyhook/nowyhook.php
‘hook’ to prefix funkcji hook
Kod:
<?php
function hooklnowyHook($params){
return $this->processHook( $params,"nowyHook");
}
?>
A czasem nie dodajesz tylko nowy hook to juz istniejacych modulow w celu przerzucenia ich wlasnie do tego nowego zaczepu ?
ja to spisałem z innego tutka, jak możesz mi wyjaśnić kwestię o której piszesz na jakimś przykładzie to byłbym wdzięczny. Napiszmy wszytko tak jak ma być i to przyklejmy dla potomności.
-
Jeżeli chcesz przerzucić (dla przykładu) blok newslettera, to w jego pliku .php musisz dodać właśnie tą funkcję pozwalającą na zainstalowanie/przeszczepienie modułu do tego nowego zaczepu.
-
Coś czuje że nam się wątek rozrośnie. Ja to rozumuje tak: Chcę mieć w templatce diva w dowolnym miejscu "instalje/tworzę" w nim nowego hook'a żeby mieć możliwość przenoszenia konkretnych modułów do niego. Teraz się okazuje, że jak mam już zainstal hook to musze grzebać w pliku konkretnego modułu żeby mu zezwolić przeniesienie?
Trzeba tworzyć moduł nowego hooka czy nie? Też mi się wydawało że poprostu mam dać znać preście, że tworzę nowe miejsce a nie nowy moduł. Ktoś jednak napisał w jakimś tutku, że trzeba tworzyć moduł.
Zajmuje się grafiką na codzień, w kodzie grzebię z konieczności więc jak możesz to pisz konkretnie o jakie funkcje chodzi w jakich plikach proszę.
-
Również próbuję dodać nowego Hook'a i mi nie działa. Mam prestę 1.4.2.5 PL.
W katalogu override/classes mam plik __FrontController.php
Gdy dodam tam plik FrontController.php (bez podkreślnika na początku) to mój sklep przestaje działać - nie wyświetla się nic.
Proszę, pomóżcie...