Přesměrovaná www v {block content}

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

Ahoj,
potřeboval bych se zeptat – mám externí stránku, u které bych chtěl, aby se mi zobrazila v těle webu a ne vyskakovala (mám jí současně jako a href=„…“ target=„blank“). Jak se to dá udělat? Mám vytvořit šablonu a vní provést redirect?

greeny
Člen | 405
+
0
-

file_get_contents?

Editoval greeny (12. 3. 2015 21:07)

jimstreet
Člen | 14
+
0
-

To jsem zkoušel, ale vycucne mi to celou stranku a totálně mi to rozhodí styly. A rozhodí celý web (i když bloky uzavřu)

chikeet
Člen | 160
+
+1
-

Chceš na tu stránku přesměrovat, nebo jen u sebe na webu zobrazit její obsah?

Pokud chceš přesměrovat, tak redirect, ale určitě ne v šabloně, protože už na začátku renderování šablony se posílá výstup a s tím už nepřesměruješ. Takže redirect v action metodě presenteru (viz životní cyklus presenteru ).

Pokud chceš zobrazit obsah, tak nejlíp asi v render metodě presenteru – předat si do šablony obsah stránky, který chceš zobrazit, a pak ho v šabloně vložit do stránky.

Nějak takhle:

Presenter:

public function renderSomething(){
    // ...
    $rawContent = file_get_contents('http://www.example.com');
    // ... zpracování surového obsahu na to, co chceš skutečně zobrazit
    $this->template->foreignPageContent = $rawContent;
    // ...
}

Šablona:

{$foreignPageContent|noescape}

Filtr noescape je záhodno používat, pokud proměnná obsahuje HTML a chceš, aby se zobrazilo stejně jako na té stránce, kterou taháš odjinud. Bez něj se obsah proměnné vyescapuje a zobrazí se ti surový HTML kód té stránky (viz výchozí latte filtry ).

Edit: nepsala jsem to, protože mi to přišlo samozřejmé, ale podle tvého popisu u sebe na webu nemáš dostupné styly, které patří k té stránce, a vkládáš tam celou stránku včetně tagů html, head a body. Nejjednodušší řešení v tvém případě bude vložit tu stránku do iframe. Tohle už ale není ani tak o Nette, jako spíš o základech HTML, takže doporučuju nastudovat ty.

BTW mazání příspěvků není úplně moc super, když na ně v mezičase někdo odpoví a pak ta odpověď postrádá kontext.

Editoval chikeet (12. 3. 2015 22:59)