Renderování akce do souboru

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

Ahoj, mám stránky v nette a chtěl bych generovat offline verzi. Myslel jsem si, že bych přenastavil routování a postupně si nechal renderovat akce do souboru, které bych někam uložil a z toho pak udělal zip. Např. články jsou identifikovatelné pomocí id, tak bych si vyhledal všechny články a v cyklu získával obsah, který bych ukládal do souborů clanek_<id>.html.

Je možné zavolat nějakým způsobem akci (pomocí názvu presenteru, akce a případných parametrů) a získat výsledné html?

Je možné pro toto generování dočasně změnit routování a práva uživatele (generovat může jen admin, ale ve výsledku by neměly být odkazy na administrační funkce)?

Nebo vás napadá nějaké lepší řešení?

Díky

vlki
Člen | 218
+
0
-

vifo napsal(a):

Ahoj, mám stránky v nette a chtěl bych generovat offline verzi. Myslel jsem si, že bych přenastavil routování a postupně si nechal renderovat akce do souboru, které bych někam uložil a z toho pak udělal zip. Např. články jsou identifikovatelné pomocí id, tak bych si vyhledal všechny články a v cyklu získával obsah, který bych ukládal do souborů clanek_<id>.html.

Aby se nestalo, že na něco zapomeneš;) Ale obecně proč ne. Možná radší ukládat do cache. A při generování offline verze si do cache pro stránky sáhnout.

Je možné zavolat nějakým způsobem akci (pomocí názvu presenteru, akce a případných parametrů) a získat výsledné html?

Nedávné úpravy ve výstupech aplikace by ti tohle měly umožnit. Vytvářel bys PresenterRequesty a odchytával PresenterResponse, jejíž obsah bys ukládal do souboru.

Je možné pro toto generování dočasně změnit routování a práva uživatele (generovat může jen admin, ale ve výsledku by neměly být odkazy na administrační funkce)?

Vůbec nechápu, co tím chceš říci:)

Nebo vás napadá nějaké lepší řešení?

Díky

Co třeba ukládat tu offline verzi v procesu přidávání článku, nebo co to má být? Pokud bys generoval při zobrazování, zbytečně by se protahovalo. Při přidávání/úpravě, která se provede jen párkrát tě to netrhá. A budeš to mít kompletně pod kontrolou.

vifo
Člen | 4
+
0
-

Díky.

vlki napsal(a):
Aby se nestalo, že na něco zapomeneš;) Ale obecně proč ne. Možná radší ukládat do cache. A při generování offline verze si do cache pro stránky sáhnout.

Stejně bych musel generovat dvě verze (protože budou obsahovat různé odkazy).

Nedávné úpravy ve výstupech aplikace by ti tohle měly umožnit. Vytvářel bys PresenterRequesty a odchytával PresenterResponse, jejíž obsah bys ukládal do souboru.

Díky za tip, určitě zkusím.

Je možné pro toto generování dočasně změnit routování a práva uživatele (generovat může jen admin, ale ve výsledku by neměly být odkazy na administrační funkce)?

Vůbec nechápu, co tím chceš říci:)

Router jsem myslel tak, že by se automaticky v obsahu stránky (pro offline) používaly jiné odkazy (např. clanek5.html namísto /clanek/5). O odkazy by se postaral presenter (na základě routovacích pravidel) a nemusel bych parsovat výstup. U uživatelských práv mně šlo o to, že offline verzi může generovat jen přihlášený uživatel (který je v roli administrátora), ale když je admin, tak se mu na stránce zobrazuje třeba odkaz „Editovat stránku“ a tento odkaz bych v offline verzi nechtěl.

Co třeba ukládat tu offline verzi v procesu přidávání článku, nebo co to má být? Pokud bys generoval při zobrazování, zbytečně by se protahovalo. Při přidávání/úpravě, která se provede jen párkrát tě to netrhá. A budeš to mít kompletně pod kontrolou.

Nevím, jestli by to šlo – články obsahují odkazy na další články (i stránky, které se na ten článek odkazují), takže by se muselo vygenerovat vše, co je s přidávanou/editovanou stránkou nějak svázané. A když už musím generovat víc stránek, tak už to můžu rovnou udělat všechno. Toto bude možná na pořadu dne, až (jestli vůbec) budou stránky moc rozsáhlé.

DocX
Člen | 154
+
0
-

vifo napsal(a):
Nevím, jestli by to šlo – články obsahují odkazy na další články (i stránky, které se na ten článek odkazují), takže by se muselo vygenerovat vše, co je s přidávanou/editovanou stránkou nějak svázané. A když už musím generovat víc stránek, tak už to můžu rovnou udělat všechno. Toto bude možná na pořadu dne, až (jestli vůbec) budou stránky moc rozsáhlé.

Když budeš při ukládání stránky generovat offline soubor už od začátku, nebudeš muset tohle řešit. Případně při zavedení téhle funkce naráz vygeneruješ vše a pak už jen když se něco změní.

fiso
Člen | 32
+
0
-

Čo tak použiť wget na celý web? Určite je to oveľa jednodušie :)