Witam.

@Chilan
Dałoby się wcisnąć "rejestrację" katalogów szablonów wtyczek gdzieś z automatu, tak żeby nie trzeba było w każdej wtyczce osobno ich dodawać?

Pozdrawiam
Michał Szmigielski
/ernesttar/

W dniu 11/10/2015 o 01:27 AM, loleo2 pisze:
Ernest bardzi Ci dziękuję. Teraz zaczęło działać.

W dniu 9 listopada 2015 11:09 użytkownik Ernest <ernest@poczta.tarman.pl> napisał:
Witam.

@loleo2
>Włączyłem, klikając na żarówkę z poziomu wtyczek. 
>A czy zawartość pliku którą przedstawiłem jest ok? Bo ja nie bardzo rozumiem dlaczego extends robimy >pliku layout.html a nie welcome.html,
Jak najbardziej możesz extends robić dla pliku welcome.html
Możesz nawet wybrać, który blok z oryginalnego pliku chcesz modyfikować(zastąpić, dopisać przed, dopisać po).

>po za tym jakie ma znaczenie nazwa pliku w templates oraz jesgo >umiejscowienie w strukturze katalogów, tzn. przykładowo welcome.html normlanie jest w >templates/default/welcome/ a tutaj włożony jest do /templates/welcome.
Co do umiejscowienia nowego pliku to w zasadzie nie jest (chyba) ważne byle był w katalogu templates w pluginie.

>Nie wiem np. czy może nie trzeba kasować zakeszowanego pliku w templates_c żeby to się odświerzyło?
>Jeśli zadaję pytania na kóre gdzieś jest już podpowedź to proszę o jakiegoś linka, bo ja jakoś nie trafiłem
Nie jest to konieczne.
Za to konieczne jest dopisanie do pluginu funkcji dodającej katalog templates z pluginu do ścieżki wyszukiwania szablonów czego w przykładowym nie ma:
Kod made by Jarosław Dziubek ;)

fragment pliku "ExamplePlugin.php":
class PluginExample extends LMSPlugin {
//(...)
    public function registerHandlers()
    {
        $this->handlers = array(
            'smarty_initialized' => array(
                'class' => 'WelcomeHandler',
                'method' => 'smartyInit'
            ),
//(...)

fragment pliku "handlers/WelcomeHandler.php":
class PluginExample
{
        /**
         * Sets plugin Smarty templates directory
         *
         * @param Smarty $hook_data Hook data
         * @return \Smarty Hook data
         */
        public function smartyInit(Smarty $hook_data)
        {
                $template_dirs = $hook_data->getTemplateDir();
                $plugin_templates = PLUGINS_DIR . '/ExamplePlugin/templates';
                array_unshift($template_dirs, $plugin_templates);
                $hook_data->setTemplateDir($template_dirs);
                return $hook_data;
        }
//(......)

Oczywiście przejrzyściej byłoby wrzucić toto do osobnej klasy "inicjalizacja_pluginu_xxx"


plik "templates/welcome/welcome.html ":
{extends file="welcome/welcome.html"}
{block name=welcome-right-panel}
testowa modyfikacja
{/block}

Pozdrawiam
/ernesttar/