Polskie wsparcie PrestaShop
PrestaShop => Wygląd => Wątek zaczęty przez: kruger30 w Sierpień 24, 2016, 10:24:05 pm
-
Witam serdecznie wszystkich.Jestem świeży jeżeli chodzi o presta. Porobiłem już parę kursów z obsługi podstawowej i jest to dla mnie w miarę czytelne.
Mam zapytanie odnośnie modyfikacji szablonu na presta.
Do tej pory nie miałem okazji tworzenia żadnego sklepu ale czas przyszedł na to. Tworzyłem szablony na drupal i wordpress.
Korzystam z standardowego szablonu presta czyli default-bootstrap. Boostrap jest dla mnie jak najbardziej na tak ponieważ łatwo się go modyfikuję. Zbadałem już mniej więcej katalog szablonu i wiem ze jest oparty na smarty.
Moje pytanie jest :
1 ) jak można dodać kolejny „miejsce” na umieszczanie w np. modułu cms lub np. listy kategorii.
W wordpress były to widgety a na drupalu regiony i bloki.
Czy na prestashop można w podobny sposób dodawać takie miejsca ?
Mam np. stopke
<div class=”row”>
<div class=”col-12”>
Chciałbym tutaj dodawać np blok z cms lub np liste kategorii
</div>
</div>
Proszę o podpowiedź :)
-
Musisz zarejestrować hook w dowolnym module, który posiadasz linijka:
public function install()
{
return
parent::install()
&& $this->registerHook('mojzaczep');
}
spowoduje dodanie do bazy danych hooka
następnie w tpl wywołujesz tego hooka:
{hook h = "mojzaczep"}
no i oczywiście podpinasz dany moduł, który chcesz wyświetlić do tego zaczepienia.
Natomiast Ty piszesz bardziej o widgetach jak w Wordpress, a ta funkcjonalność będzie dopiero w wersji 1.7.
Jeśli zaś chcesz wstawić cokolwiek wystarczy, że dopiszesz funkcję w smarty - a klasy w PS masz gotowe wystarczy się do nich odwołać [katalog classes]
-
Przepraszam wyraziłem się źle. Tzn w wordpress tworzyłem miejca dla widgetów. Mogłem w szablonie utworzyć miejsce a następnie z panelu admina umieścić tam widget który np okazywał ostatnie post.
W drupalu tworzyło się regiony a w tych regionach można było osadzać bloki które miały różne funkcjonalności.
W presta chciałbym mieć podobną kontrole. Np mam
<div class="row">
<Div class="col-md-6"> cos </div>
<Div class="col-md-6"> cos </div>
</div>
A chciałbym zamienić na
<div class="row">
<Div class="col-md-4"> cos </div>
<Div class="col-md-4"> nowe miejsce dla modułow</div>
<Div class="col-md-4"> cos </div>
</div>
Jak dobrze rozumiem to hooki umożliwiają pozycje dla modułów ?
-
tak dokładnie :)
-
Ok ostatnia rzecz:)
Tzn mam np moduł. blocktags i plik blocktags.tpl.
Dodaje w tym pliku ten kod ?
public function install()
{
return
parent::install()
&& $this->registerHook('mojzaczep');
}
A potem w tpl daje {hook h = "mojzaczep"} ?
-
Tak, tylko jeszcze w kontrolerze modułu musisz dopisać obsługę tego hooka "mojzaczep".
-
i podczas pisania wątków musisz stosować znaczniki "code" taki przycisk nad okienkiem pisania wiadomości #
-
Wyczytałem na stronie prestyshop
- Tworzenie własnego hook'a
Dodanie do bazy danych wpisu.
INSERT INTO `ps_hook` (`name`, `title`, `description`) VALUES ('nameOfHook', 'The name of your hook', 'This is a custom hook!');
A jak mogę wywołać w tym hook'u się np blockcart
Na stronie presty jest kod
{hook h='nameOfHook' mod='blockcart'}
Czy w folderze modules/blockcart w pliku php musze dodać cos jeszcze ? czy w folderze szablonu w folder themes/nazwa//modules/blockcart ?
-
tylko w pliku php modułu
najłatwiej zarejestrować nowego hooka dodając go do instrukcji instalacyjnej modułu - skorzystaj z wyszukiwarki forum podawaliśmy dość szczegółową instrukcję