RSS Dışa Aktarma
Bu sayfa, sitenizin kendi RSS akışını yayımlaması (dışa aktarma) ile
ilgilidir. Akışı engine/rss.php üretir ve çıktı, templates/rss.tpl
şablonundan beslenir. Sonuç bir HTML sayfası değil, XML belgesidir; haber
okuyucular, toplayıcılar ve arama motorları bu akıştan beslenir.
| Konu | Ayrıntı |
|---|---|
| Üreten dosya | engine/rss.php |
| Şablon | templates/rss.tpl — tema klasöründe değil, kökte |
| Ana adres | /rss.xml ↔ /index.php?mod=rss |
| Yanıt türü | application/xml; charset=utf-8 |
| Akış öğesi kaynağı | Şablon yalnızca <item> parçalarını sağlar |
| Yetki bağlamı | Akış ziyaretçi (grup 5) yetkileriyle üretilir |
| Şablon ayrıntısı | RSS Haber Yayını — rss.tpl |
rss.tpl temalar arasında paylaşılır
Motor, şablon dizinini $tpl->dir = ROOT_DIR . '/templates' olarak
ayarlar. Bu yüzden rss.tpl templates/ kökünde
durur ve bütün temalar tarafından paylaşılır. Tema klasörüne
kopyalanan bir rss.tpl yok sayılır.
Akış adresleri
Akış, farklı kapsamlarla yayımlanabilir. SEF karşılıkları
engine/classes/urls.class.php içinde tanımlıdır.
| SEF adres | Eşdeğeri | Kapsam |
|---|---|---|
/rss.xml | /index.php?mod=rss | Ana akış |
/{kategori}/rss.xml | /index.php?mod=rss&do=cat&category={kategori} | Yalnızca o kategorinin haberleri |
/user/{üye}/rss.xml | /index.php?mod=rss&subaction=allnews&user={üye} | Yalnızca o üyenin yayımladığı haberler |
/catalog/{katalog}/rss.xml | /index.php?mod=rss&catalog={katalog} | Katalog akışı |
İki mod: [rss] ve [dzen]
Şablon, iki akış biçimini tek dosyada barındırır. İstenen mod, rssmode istek
parametresiyle seçilir; seçilmeyen bloğun içeriği çıktıdan tamamen çıkarılır.
| Blok | Ne zaman kalır? |
|---|---|
[rss]…[/rss] | Normal RSS 2.0 modunda (varsayılan) |
[dzen]…[/dzen] | Yandex Dzen modunda (rssmode=dzen) — allow_yandex_dzen açık olmalı |
[turbo]…[/turbo] | Her zaman silinir — eski Turbo modu kaldırılmıştır, kullanılmamalıdır |
<?xml … ?>, <rss>, <channel>
ve kanal bilgileri (başlık, bağlantı, atom:link, language,
description) PHP tarafında üretilir. Şablonunuz
yalnızca öğe (<item>) parçalarını sağlar.
Öğe etiketleri
| Etiket | İçeriği |
|---|---|
{title} | Haber başlığı |
{rsslink} | Haberin tam adresi |
{rssauthor} | Haberin yazarı |
{rssdate} | Yayın tarihi — RFC 822 biçiminde (ör. Mon, 14 Apr 2025 09:30:00 +0300) |
{short-story} | Kısa metin |
{full-story} | Tam metin |
{category} | Kategori adı |
{link-category} | Kategori bağlantısı |
{news-id} | Haberin kimliği |
{images} | Habere ekli görsellerin enclosure listesi — yalnızca RSS modunda dolar |
Şablon örneği
[rss]<item>
<title>{title}</title>
<guid isPermaLink="true">{rsslink}</guid>
<link>{rsslink}</link>
<dc:creator>{rssauthor}</dc:creator>
<pubDate>{rssdate}</pubDate>
<category>{category}</category>
<description><![CDATA[{short-story}]]></description>
</item>[/rss]
[dzen]<item>
<title>{title}</title>
<link>{rsslink}</link>
<pdalink>{rsslink}</pdalink>
<guid>{rsslink}</guid>
<pubDate>{rssdate}</pubDate>
<category>index</category>
{images}
<content:encoded><![CDATA[{full-story}]]></content:encoded>
</item>[/dzen]
İlgili ayarlar
| Ayar | Etkisi |
|---|---|
allow_rss | Kapalıysa akış içeriği yerine sabit bir “offline” öğesi döner |
rss_number | Akışta kaç haber olacağı |
rss_params | <rss> etiketine eklenecek ek XML nitelikleri |
allow_yandex_dzen | Dzen akışını açar |
rss_dzenparams | Dzen akışı için ek XML nitelikleri |
Site kapalıysa (site_offline) veya allow_rss kapalıysa, gerçek
akış içeriği yerine hata yerine geçen sabit bir öğe basılır.
Karıştırılmaması gereken modüller
“RSS” adı üç ayrı işte geçer. Bu sayfa dışa aktarma ile ilgilidir.
| Modül | Görevi |
|---|---|
engine/rss.php |
Bu sayfa: sitenin kendi akışını yayımlar (dışa aktarma). |
admin.php?mod=rssYetki: admin_rss |
Dış RSS akışlarını haber olarak içe aktarır (tablo PREFIX_rss: url, description, allow_main, allow_rating, allow_comm, date, search, max_news, cookie, category, allow_source, lastdate). Bu dışa aktarma değildir. |
admin.php?mod=rssinform |
Dış RSS içeriğini sayfada blok olarak gösterir. Bkz. RSS Bilgilendirici. |
Akışı genişletme
Akışa yeni bir öğe alanı eklemek için templates/rss.tpl ve ilgili çıktı
üreticisi yamalanır. DLE’de eklenti mekanizması çekirdek dosyaları yamalayarak çalışır;
ayrıntı için bkz. Eklenti Mimarisi.
Sık yapılan hatalar
| Hata | Sonuç |
|---|---|
rss.tpl’yi tema klasörüne koymak | Yok sayılır — motor kökteki dosyayı okur |
| CDATA / XML kaçışlarını bozmak | Akış geçersiz olur; okuyucular hata verir |
[turbo] bloğu yazmak | Her zaman silinir; etkisi olmaz |
| Kısıtlı içeriğin akışta çıkmasını beklemek | Akış ziyaretçi gözüyle üretilir |
{THEME}’yi mutlak olmayan yolla kullanmak | Çıktıda tam adrese çevrildiğinden yol beklendiği gibi olmayabilir |
| Şablonu HTML gibi tasarlamak | Çıktı XML’dir; görsel biçimlendirme işe yaramaz |
| Dışa aktarmayı içe aktarma ile karıştırmak | Yanlış modül kullanılır |
Kontrol listesi
- Şablon dosyası
templates/rss.tpl(tema klasöründe değil). [rss]ve[dzen]bloklarının eşleri doğru yazıldı.[turbo]bloğu kullanmadım.<item>dışına etiket koymadım; XML kabuğu PHP tarafında üretiliyor.- CDATA ve XML kaçışları bozulmadı.
allow_rssaçık;rss_numbermakul.- Dzen kullanıyorsam
allow_yandex_dzenaçık verssmode=dzengeçiliyor. - Akışı bir okuyucuda veya tarayıcıda (
/rss.xml) açıp geçerliliğini doğruladım.