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.

KonuAyrıntı
Üreten dosyaengine/rss.php
Şablontemplates/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 adresEşdeğeriKapsam
/rss.xml/index.php?mod=rssAna 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.

BlokNe 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
i
XML’in kabuğunu siz yazmazsınız <?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
i
Akış “ziyaretçi” gözüyle üretilir Akış, grup 5 (ziyaretçi) yetkileriyle oluşturulur. Yalnızca belirli üye gruplarına açık içerikler akışa girmez. Bu kasıtlı bir güvenlik davranışıdır; kısıtlı içeriğin akışta çıkmasını beklemeyin.

Ş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

AyarEtkisi
allow_rssKapalıysa akış içeriği yerine sabit bir “offline” öğesi döner
rss_numberAkışta kaç haber olacağı
rss_params<rss> etiketine eklenecek ek XML nitelikleri
allow_yandex_dzenDzen akışını açar
rss_dzenparamsDzen 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ülGörevi
engine/rss.php Bu sayfa: sitenin kendi akışını yayımlar (dışa aktarma).
admin.php?mod=rss
Yetki: 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

HataSonuç
rss.tpl’yi tema klasörüne koymakYok sayılır — motor kökteki dosyayı okur
CDATA / XML kaçışlarını bozmakAkış geçersiz olur; okuyucular hata verir
[turbo] bloğu yazmakHer zaman silinir; etkisi olmaz
Kısıtlı içeriğin akışta çıkmasını beklemekAkış 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ırmakYanlış 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_rss açık; rss_number makul.
  • Dzen kullanıyorsam allow_yandex_dzen açık ve rssmode=dzen geçiliyor.
  • Akışı bir okuyucuda veya tarayıcıda (/rss.xml) açıp geçerliliğini doğruladım.