RSS export

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

Ahoj,

potřeboval bych poradit s RSS exportem novinek. Nemohu přijít na jednu věc. Mám v templates něco jako rss.phtml. dále tam mám ostatní soubory šablon, včetně @layout.phtml, který slouží jako základ a ostatní soubory se do něj vkládají ($content). Jak mám dosáhnout toho, aby se mi rss.phtml do tohoto nevkládalo a sloužilo jako samostatný soubor nezávislý na ostatních?

Možná problém řeším úplně špatně a správný postup je jiný.. v tom případě prosím a nastínění správného řešení.

Díky za odpověď.

vlki
Člen | 218
+
0
-

V Presenteru je na to přímo metoda.

Tobě jde o to, aby se nevygeneroval layout, takže…

<?php
class NejakyPresenter extends Presenter
{
...
	public function renderRss()
	{
		$this->setLayout(FALSE);
	}
...
}
?>
Cifro
Člen | 245
+
0
-

Alebo si pozri Skeleton príklad, ktorý je v distribúcii Nette v adresári Tools. Je tam FeedPresenter a šablona k tomu.

weckho
Člen | 94
+
0
-

Ahoj,

koukal jsem na toho skeletona a mám v tom presentru akorát:

	protected function startup()

	{

		// disables layout

		$this->setLayout(FALSE);

	}

Model chybí úplně.. Řeším teď problém, jak text z DB, který posílám do feedu jako description tag, očistit od HTML tagů. Mám v něm totiž odkazy. Nejsem si jistý, jestli tagy ve feedu mohou obsahovat odkazy, ale myslím, že by neměly.

Potom jsem se chtěl ještě zeptat, jestli tag description ve feedu má nějaká omezení co se týče počtu znaků, nebo jestli do toho normálně mohu posílat celý perex novinky?

Díky moc za rady.

Cifro
Člen | 245
+
0
-

Pozrel som do kódu jedneho zo svojich projektov či to tam nemam poriešené to html v RSS feede a našiel som tam iba poznámku :D

<?php
$rss .= $el ->create('description') ->setText($desc); // vypisovat v html formate?
?>

Do rss feedu môžeš dať celý text, nie len perex. Na internete je niekoľko vašnivých diskuzii či má byť v rss celý text alebo iba perex. Takže keď chceš obsah novinky tak kľudne daj. Obmedzenie na veľkosť to nemá.

V rss môžeš mať aj html, ale teraz neviem ako presne na to, bude to mať niečo spoločné s <[[cdata či ako sa to píše. Pozri si rss z lamer.cz, oni do rss davajú ofarbené mená, takže tam maju html. A html elementy odstraniš php funkciou strip_tags.

Editoval Cifro (7. 8. 2009 19:16)

Ondřej Mirtes
Člen | 1536
+
0
-

Zkoumal jsem problematiku RSS a HTML má být escapované – zkuste si to, &lt;strong&gt;tučný text&lt;/strong&gt; se ve Firefox RSS čtečce (a dalších) zobrazí jako tučný text. Nechce se mi hledat specifikaci, ale je to tak. Pokud to nechcete escapovat, je třeba nějakým způsobem použít to CDATA.

V Nette ve spojení s Texy na to funguje bezvadně konstrukce bez klasického vykřičníku:

{$text |texy}