Lattissimo – šablony bez presenteru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
janmichek
Člen | 2
+
0
-

Hoja, dávám do fora toto jednoduché demo, které jsem sám postrádal.
Jednoduchý router vezme poslední parametr z url, najde stejně pojmenovanou šablonu a zobrazí ji s includovanými předky.

Možná bude někdo nadávat, že jsem nepochopil filosofii presenteru, ale tak tomu není.
Frontendisti, kteří chtějí vytvořit sajtu s pár podstránkami a nechtějí duplikovat header bez nutnosti tvoření prázdných presenterů, myslím ocení.

GitHub

F.Vesely
Člen | 368
+
0
-

Stejneho dosahnes, kdyz si Routu upravis na new Route('<action>', 'Homepage:default') a do slozky templates/Homepage nahazis concat.latte, welcome.latte, atd. Rozhodne nemusis pro kazdou stranku vytvaret prazdne Presentery.

Jan Tvrdík
Nette guru | 2595
+
+4
-

Jde to ještě zjednodušit.

$router[] = new Route('[<path>/]', function ($presenter, $path) {
    if (!$path) {
        $path = 'welcome';
    }

    $filename = __DIR__ . '/templates/' . $path . '.latte';

    if (!is_file($filename)) {
        $filename = __DIR__ . '/templates/error.latte';
    }

    $template = $presenter->createTemplate()->setFile($filename);
    $template->templateName = $path;

    return $template;
});
potapnik
Člen | 127
+
0
-

@JanTvrdík to vypadá skvěle, kde se ale vyklube ten $presenter?

greeny
Člen | 405
+
+1
-

Myslím že v tomle případě je to MicroPresenter

esorimer
Člen | 114
+
0
-

Viz taky Micro-blog, konkrétně TemplateRouter

janmichek
Člen | 2
+
0
-

Jan Tvrdík napsal(a):

Jde to ještě zjednodušit.

$router[] = new Route('[<path>/]', function ($presenter, $path) {
    if (!$path) {
        $path = 'welcome';
    }

    $filename = __DIR__ . '/templates/' . $path . '.latte';

    if (!is_file($filename)) {
        $filename = __DIR__ . '/templates/error.latte';
    }

    $template = $presenter->createTemplate()->setFile($filename);
    $template->templateName = $path;

    return $template;
});

Díky Jane, toto je elegantní řešení. Nebude ti vadit, když ho použiju v mém příkladu?

Felix
Nette Core | 1186
+
+2
-

@janmichek

Driv jsem zkousel neco podobneho s Klein.PHP – jednoduchy router v PHP.

Tohle je komplet standalone Latte, bez containeru apod.

https://github.com/…einPHP-Latte

Treba se ti to bude hodit ;-)