Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

шаблон для RSS ленты

312
22 ноября 2007 года
dead_star
392 / / 26.11.2006
пытаюсь сделать шаблон RSS ленты для шаблонизатора Smarty
долго ковырял спецуху
получилость что-то более или мение удобоворимое
[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 лента новостей успешно проходит валидацию
15
23 ноября 2007 года
shaelf
2.7K / / 04.05.2005
RSS Не нужно в таком виде отдавать, её нужно генерировать, выкладывать на серваке и так ~ раз в час. Тогда тебя не будет сильно заботить производительность скрипта.
312
23 ноября 2007 года
dead_star
392 / / 26.11.2006
Цитата: shaelf
RSS Не нужно в таком виде отдавать, её нужно генерировать, выкладывать на серваке и так ~ раз в час. Тогда тебя не будет сильно заботить производительность скрипта.



именно это я и делаю
именно раз в час
и именно раз в час я теряю на производительности

я собственно говоря спрашивал: "принебрегать ли такой потерей в производительности раз в час или все же стоит поискать другой способ?"

312
23 ноября 2007 года
dead_star
392 / / 26.11.2006
хотя да
вопрос глупый
потери незночительны
27K
23 ноября 2007 года
taj
39 / / 11.11.2007
Слегка не понял зачем её обновлять каждый час? Когда новые данные появляются (изменяющие текущую ленту), тогда и генерировать новый файл
312
23 ноября 2007 года
dead_star
392 / / 26.11.2006
Цитата: taj
Слегка не понял зачем её обновлять каждый час? Когда новые данные появляются (изменяющие текущую ленту), тогда и генерировать новый файл



ну впринцыпе так оно и делается и планируется
но для ленты нужны тексты которых нет поэтому пока я пользуюсь не своей лентой,
а когда обнавляется не своя лента новостей зарание не знаешь и поэтому нужно переодически проверять ее состояние

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог