RssControl Nette2.0-beta PHP 5.3

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

Ahoj lidičky,
prosím mohl by někdo osvítit tvorbu Rss kanálu na nové verzi Nette FW 2.0 beta a PHP 5.3?
Zkouším to teď rozjet, ale pořád se mi nedaří
Ideálně upravit a rozšířit stávající popis v doplňcích

Mooc díky

frosty22
Člen | 373
+
0
-

Zdravím,
zrovna teď jsem to programoval, akorát tedy jsem nepoužil ten doplněk, v podstatě na tom nic není, takže pokud by ti stačilo bez komponenty tak:

ATOM.latte

{contentType application/xml; charset=utf-8}
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Titulek stránky</title>
<updated>{?echo date("c", strtotime($updated))}</updated>
<id>{plink //:Front:Sitemap:atom}</id>
<rights>Copyright (c) {? echo date("Y")}, WebSite, a.s.</rights>
<link rel="self" type="application/atom+xml" href="{plink //:Front:Sitemap:atom}"></link>
<icon>{plink //:Front:Homepage:}favicon.ico</icon>
<author>
    <name>WebSite, a.s.</name>
    <uri>{plink //:Front:Homepage:}</uri>
    <email>info@website.cz</email>
</author>

{foreach $links as $link}
<entry>
    <id>{plink //:Front:Page:detail, link_id => $link["link_id"]}</id>
    <link href="{plink //:Front:Page:detail, link_id => $link["link_id"]}"></link>
    <published>{?echo date("c", strtotime($link["inserted"]))}</published>
    <updated>{?echo date("c", strtotime($link["updated"]))}</updated>
    <title>{$link["name"]}</title>
    <summary>{$link["description"]}</summary>
</entry>
{/foreach}

</feed>

RSS.latte

{contentType application/xml; charset=utf-8}
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Titulek stránek</title>
<link>{plink //:Front:Homepage:}</link>
<description>Popis stránek</description>
<copyright>Copyright (c) {? echo date("Y")}, WebSite, a.s.</copyright>
<pubDate>{?echo date("r", strtotime($updated))}</pubDate>
<docs>{plink //:Front:Sitemap:rss}</docs>

{foreach $links as $link}
<item>
    <guid>{plink //:Front:Page:detail, link_id => $link["link_id"]}</guid>
    <title>{$link["name"]}</title>
    <link>{plink //:Front:Advert:detail, link_id => $link["link_id"]}</link>
    <description>{$link["description"]}</description>
    <pubDate>{?echo date("r", strtotime($link["updated"]))}</pubDate>
</item>
{/foreach}

</channel>
</rss>

A v presentru jen něco jako:

<?php
    public function renderChannel()
    {
	// datum poslední modifikace
	$this->template->updated = $this->context->page->getLastModified();

	// seznam linků
	$this->template->links = $this->db->query(...);
    }
?>

Editoval frosty22 (19. 8. 2011 13:30)

kralik
Člen | 230
+
0
-

výpis proměných links je ok

ale nefunguje mi

<?php
 $this->template->updated = $this->context->page->getLastModified();
?>

Hlásí mi to: Cannot read an undeclared property Nette\Context::$page

nevěděl bys prosím jak to vyřešit?

Mooc díky

Editoval kralik (24. 8. 2011 14:55)

Patrik Votoček
Člen | 2221
+
0
-

však ti ta chyba přesně říká kde je problém… Pro jistotu ještě její překlad: Nemohu číst nedefinovanou vlastnost v Nette\Context::$page

Tj. v kontextu neexistuje žádné $page