шаблон для RSS ленты
долго ковырял спецуху
получилость что-то более или мение удобоворимое
[HTML]<?xml version="1.0" encoding="{$coding}"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:yandex="http://news.yandex.ru">
<channel>
{if $atom} <atom:link href="{$atom}" rel="self" type="application/rss+xml" />
{/if}
<title>{$title}</title>
<link>{$link}</link>
<description>{$description}</description>
{if $language} <language>{$language}</language>
{/if}
{if $category} <category>{$category}</category>
{/if}
{if $lastBuildDate} <lastBuildDate>{$lastBuildDate}</lastBuildDate>
{/if}
{if $pubDate} <pubDate>{$pubDate}</pubDate>
{/if}
{if $copyright} <copyright>{$copyright}</copyright>
{/if}
{if $managinEditor} <managinEditor>{$managinEditor}</managinEditor>
{/if}
{if $webMaster} <webMaster>{$webMaster}</webMaster>
{/if}
{if $generator} <generator>{$generator}</generator>
{/if}
{if $docs} <docs>{$docs}</docs>
{/if}
{if $rating} <rating>{$rating}</rating>
{/if}
{if $ttl} <ttl>{$ttl}</ttl>
{/if}
{if $skipHours} <skipHours>{$skipHours}</skipHours>
{/if}
{if $skipDays} <skipDays>{$skipDays}</skipDays>
{/if}
{if $cloud} <cloud{if $cloud.domain} domain="{$cloud.domain}"{/if}{if $cloud.port} port="{$cloud.port}"{/if}{if $cloud.path} path="{$cloud.path}"{/if}{if $cloud.registerProcedure} registerProcedure="{$cloud.registerProcedure}"{/if}{if $cloud.protocol} protocol="{$cloud.protocol}"{/if} />
{/if}
{if $image}
<image>
{if $image.title} <title>{$image.title}</title>
{/if}
{if $image.url} <url>{$image.url}</url>
{/if}
{if $image.link} <link>{$image.link}</link>
{/if}
{if $image.description} <description>{$image.description}</description>
{/if}
{if $image.width} <width>{$image.width}</width>
{/if}
{if $image.height} <height>{$image.height}</height>
{/if}
</image>
{/if}
{if $textInput}
<textInput>
{if $textInput.title} <title>{$textInput.title}</title>
{/if}
{if $textInput.description} <description>{$textInput.description}</description>
{/if}
{if $textInput.name} <name>{$textInput.name}</name>
{/if}
{if $textInput.link} <link>{$textInput.link}</link>
{/if}
</textInput>
{/if}
{if $item}
{section name=i loop=$item}
<item>
{if $item.title} <title>{$item.title}</title>
{/if}
{if $item.link} <link>{$item.link}</link>
{/if}
{if $item.guid} <guid{if $item.guid.isPermaLink} isPermaLink="{$item.guid.isPermaLink}"{/if}>{$item.guid.title}</guid>
{/if}
{if $item.description} <description>{$item.description}</description>
{/if}
{if $item.author} <author>{$item.author}</author>
{/if}
{if $item.category}
{ if is_array($item.category[0])}
{section name=j loop=$item.category}
<category{if $item.category[j].domain} domain="{$item.category[j].domain}"{/if}>{$item.category[j].title}</category>
{/section}
{else }
<category{if $item.category.domain} domain="{$item.category.domain}"{/if}>{$item.category.title}</category>
{/if}
{/if}
{if $item.comments} <comments>{$item.comments}</comments>
{/if}
{if $item.pubDate} <pubDate>{$item.pubDate}</pubDate>
{/if}
{if $item.source} <source url="{$item.source.url}">{$item.source.title}</source>
{/if}
{if $item.enclosure} <enclosure url="{$item.enclosure.url}" length="{$item.enclosure.length}" type="{$item.enclosure.type}" />
{/if}
</item>
{/section}
{/if}
</channel>
</rss>[/HTML]
хотя тоже есть свои нюансы
скорость немного страдает, хоть все и кэшируется
можно поидее сделать все тоже самое только без Smarty. все своим кодом
можно былоб и не заморачиваться так, но мне охото реализовать MVC
короче
Основной вопрос нужноли так заморачиватся?
Если нет то как лучше реализовывать RSS ленту?
Если да то ваше мнение по поводу моего варианта?
Повозможности посоветуйте что можно изменить и как улучшить
PS сгенерированная rss лента новостей успешно проходит валидацию
RSS Не нужно в таком виде отдавать, её нужно генерировать, выкладывать на серваке и так ~ раз в час. Тогда тебя не будет сильно заботить производительность скрипта.
Цитата: shaelf
RSS Не нужно в таком виде отдавать, её нужно генерировать, выкладывать на серваке и так ~ раз в час. Тогда тебя не будет сильно заботить производительность скрипта.
именно это я и делаю
именно раз в час
и именно раз в час я теряю на производительности
я собственно говоря спрашивал: "принебрегать ли такой потерей в производительности раз в час или все же стоит поискать другой способ?"
вопрос глупый
потери незночительны
Слегка не понял зачем её обновлять каждый час? Когда новые данные появляются (изменяющие текущую ленту), тогда и генерировать новый файл
Цитата: taj
Слегка не понял зачем её обновлять каждый час? Когда новые данные появляются (изменяющие текущую ленту), тогда и генерировать новый файл
ну впринцыпе так оно и делается и планируется
но для ленты нужны тексты которых нет поэтому пока я пользуюсь не своей лентой,
а когда обнавляется не своя лента новостей зарание не знаешь и поэтому нужно переодически проверять ее состояние