W dniu 08.10.2015 13:46, Ernest napisał(a):
Witam !!!
W dniu 10/08/2015 o 12:55 PM, Tomasz Chiliński pisze:
W dniu 08.10.2015 12:50, Ernest napisał(a):
Witam !!!
Witam,
Panie Maćku, dzięki za wyjaśnienie i pomoc!
Zastanawiam się czy nie można w jakiś sposób dodać "automagicznie" ;) hook`ow przynajmniej przed wyświetleniem danego szablonu? Takie cuś załatwiłoby praktycznie wszystkie pluginy dodające coś do wyświetlanej treści.
Przed wyświetleniem na razie nie ma automatycznych hooków, ale przed ładowaniem już są. Mają nazwę 'nazwaplikuzkatalogumodules_on_load'. Nie widzę w sumie problemu, żeby zrobić automatyczne wywoływanie hooków 'nazwaplikuzkatalogumodules_before_display' - można to byłoby zrobić przez ExecuteHook(...) z metody display() w klasie LMSSmarty, tyle, że moduły zbierają różne informacje przed wywołaniem display(). Chociaż z drugiej strony możemy założyć, że do hooków '*_before_display', byłby przekazywany obiekt $SMARTY, a z takiego obiektu wszystko co zostało ustawione przez assign można odczytać jak również zmienić.
Jestem za ;) U siebie ustawiłem obiekt $SMARTY jako global i funkcją $SMARTY->getTemplateVars('nazwa_zmiennej_z_szablonu'); pobrałem dane przypisane przez $SMARTY->assign() Zauważyłem tylko, że jeżeli zmieniamy coś co było już przypisane do szablonu to należy wywołać jeszcze raz assign() dla tej zmiennej szablonu
Jeśli byłoby przez assignByRef() to wtedy nie ma opisywanego problemu, ale tak czy inaczej nie warto teraz zmieniać wszędzie assign() na assignByRef(), więc po prostu trzeba zrobić jeszcze raz assign(). Nowym hookiem będę jako hook_data przekazywał obiekt Smarty (czyli w praktyce w LMS będzie to LMSSmarty).