RSS feed
Honlapom összeállításánál fontos szempont volt, hogy hírcsatorna is üzemeljen rajta.
Idézet a Wiki-ből:
Az RSS webes együttműködésre szolgáló XML állományformátumok családja, mely megkíméli a felhasználókat attól, hogy az ilyen megoldást használó szájtokat rendszeresen kelljen látogatniuk az új tartalom ellenőrzése miatt, vagy levélben kelljen értesítést kapniuk erről.
Továbbiak itt: Wiki
Szóval ezzel kényelmesebbé tehetem a honlap változásainak nyomonkövetését, akiket érdekelnek az álatalam írt cikkek (persze itt csak a kijelölt oldalakról van szó).
A továbbiakban nézzük meg, hogy hogyan lehet egy CMS Made Simple alapú honlap esetében hírcsatornát működtetni.
Jelenleg ehhez a CGFeedMaker (a cikk írásának idején 1.0.4 verzió) modul áll a rendelkezésünkre. (Előzőleg az RSS modul is ezt a célt szolgálta, de ez nem támogatott). Még egy kiegészítés a CGFeedMaker igényli a CGExtensions modul telepítését is.
A kiindulási alap, hogy van három Hír kategóriánk, amit szeretnénk majd külön hírcsatornában megjeleníteni:
- hírek_news
- blog_news
- tippek_news
1. lépés
Hozzunk létre feedeket és kategóriákat (az egyszerűség kedvéért mindjárt hármat - három feed, három kategória - , hogy azt is be tudjuk mutatni, hogyan lehet őket elkülöníteni egymástól).
Az új feedek:
/ Kiterjesztések / Calguys Feed Maker / Feeds / Add a new feed
- hirek
- blog
- tippek
A kategóriák:
- Hírek
- Blog
- Tippek
Amit nekünk kell beállítani az új feed létrehozásánál:
![]()
Itt figyelni, hogy a megfelelő feed-hez a megfelelő kategóriát és megfelelő oldalt jelöljünk meg!
2. lépés
Szerkesszük a kívánt feed sablonját az alábbiak szerint.
Most az egyszerűség kedvéért a hirek feed sablonját másolom ide (a többi feed analóg vele):
{* original rss feed template *} A vastagított rész a lényeges!
<?xml version="1.0"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
{* note: if you have not configured pretty urls or mod rewrite, the next line may fail when trying to validate the feed *}
<atom:link href="{$feed_url}" rel="self" type="application/rss+xml" />
<title>{$feed.title}</title>
{if isset($feed.link) && !empty($feed.link)}<link>{$feed.link}</link>{/if}
{if isset($feed.description) && !empty($feed.description)}<description>{$feed.description}</description>{/if}
{if isset($feed.copyright) && !empty($feed.copyright)}<copyright>{$feed.copyright}</copyright>{/if}
{if isset($generator)}<generator>{$generator}</generator>{/if}
{if isset($feed.managing_editor) && !empty($feed.managing_editor)}<managingEditor>{$feed.managing_editor}</managingEditor>{/if}
{if isset($admin_email)}<webMaster>{$admin_email} ({$admin_user->firstname} {$admin_user->lastname})</webMaster>{/if}
{if isset($feed.image) && !empty($feed.image)}
<image>
{if isset($feed.description) && !empty($feed.description)}<description>{$feed.description}</description>{/if}
{if isset($feed.link) && !empty($feed.link)}<link>{$feed.link}</link>{/if}
<title>{$feed.title}</title>
<url>{$file_location}/{$feed.image}</url>
</image>
{/if}
{* an example of how to create a feed from a call to the news module *}
{* you can use any smarty variable that is available in the news summary template *}
{* you can substitute this logic with output from any module that supports a summary
view, or possibly get artistic and mix output from different modules *}
{news category='hírek_news' assign='junk'}
{foreach from=$items item='entry'}
<item>
<title>{$entry->title|cms_html_entity_decode}</title>
<link>{$entry->moreurl}</link>
{capture assign='description'}{if isset($entry->summary)}{$entry->summary}{else}{$entry->content}{/if}{/capture}
<description>{$description|trim|strip_tags|summarize:40}</description>
<pubDate>{$entry->postdate|rfc_date}</pubDate>
<guid>{$entry->moreurl}</guid>
</item>
{/foreach}
</channel>
</rss>
3. lépés
Most pedig hívjuk meg a CGFeedmaker-t.
Vagy minden oldalba külön beteszed az alábbi sorok egyikét (vagy akár mindegyiket):
{CGFeedmaker action='autodiscovery' category='Tippek'} Vagy a sablon <head> részébe ezt:
{CGFeedmaker action='autodiscovery' category='Blog'}
{CGFeedmaker action='autodiscovery' category='Hírek'}
{CGFeedMaker action='autodiscovery' category='Hírek,Blog,Tippek'}
4. lépés
Ezek után már csak meg kell jeleníteni az oldalunkon a feed gombot (alapból a böngésző URL sávjában már ott van)
A kivánt helyre (nekem a sablon oldalsáv részében van) ezt a kódot kell beilleszteni:
<h2>Hírcsatornák</h2> (vagy ennek a variációit)
{CGFeedMaker action='rsslink' feed='hirek'}<br />
{CGFeedMaker action='rsslink' feed='blog'}<br />
{CGFeedMaker action='rsslink' feed='tippek'}
Ha saját képet szeretnénk használni:
{CGFeedMaker action='rsslink' feed='hirek' image='images/rss/rss.png' imageclass='rssImage'}
Az eredmény:
Hír kategória --> feed sablonba - news category='hírek_news' - A feedhez ezzel rendeled hozzá a híreket (vagy vica versa)
Feed kategória -->action='autodiscovery' category='Hírek' - Abba az oldalba, ahol a kívánt hír van (de lehet a sablonba is)
Behívás --> action='rsslink' feed='hirek' - Akárhová, ahol meg akarod jeleníteni az RSS gombot

