İlgili Haberler — relatednews.tpl

Bu şablon, okunan haberin altında gösterilen "ilgili haberler" listesini üretir. Habere bağlı olarak seçilen birkaç haber, küçük kartlar hâlinde listelenir.

KonuAyrıntı
İşleyen dosyaengine/modules/show.related.php
ÇağıranTam Makale (show.full.php) veya main.php
Çıktı yeri{related-news} etiketi / [related-news] bloğu
Ayarrelated_news açık olmalı
Sonuç sayısırelated_number ayarı
ÖnbellekHabere özel anahtarla önbelleğe alınabilir

İlgili haberler nasıl seçilir?

Bu liste otomatik oluşur. Seçim, haber kaydedilirken hesaplanan bir kimlik listesine dayanır:

  1. Kimlik listesi okunur Haberin kayıtlı "ilgili kimlikler" alanı kullanılır. Bu alan boşsa haberin kategorisi/etiketlerine göre hesaplanır.
  2. Yalnızca yayımlanmışlar gelir Onaylanmamış haberler listeye girmez.
  3. Sıra korunur Sonuçlar, kimlik listesindeki sırayla ve related_number kadar döner.
i
Tembel hesaplama İlgili haberler yalnızca şablonda {related-news} etiketi geçiyorsa hesaplanır. Etiketi kaldırırsanız motor bu listeyi hiç oluşturmaz — bu bir performans kazancıdır. Kullanmıyorsanız etiketi silmek daha iyidir.

Etiketler

Etiketİçeriği
{title}, {title limit="60"}Haber başlığı
{link}Habere bağlantı
{text}, {text limit="120"}Haberin kısa metni (HTML'den arındırılmış, kısaltılabilir)
{category}, {link-category}Kategori adı ve bağlantılı hâli
{date}, {date=Y-m-d}Tarih
{image-1} … {image-N} + [image-N] / [not-image-N]Görseller ve koşulları
[xfgiven_x] · [xfvalue_x]Ek alanlar — hazır temalar kapak görselini buradan alır
!
Bu şablonda YOK olan etiketler {views}, {comments-num}, {author}, {short-story} ve {full-story} bu listede doldurulmaz. Kısa metin için doğru etiket {text}'tir. (Bu, Arama Sonuçları'ndan farklıdır; orada tam bir haber motoru çalışır.)

Sarmalayıcı ve başlık

relatednews.tpl tek bir karttır; kaç ilgili haber varsa o kadar çoğaltılır. Bölüm başlığı ve sarmalayıcı, bunu kullanan şablonda (fullstory.tpl) [related-news] bloğu içine yazılır:

[related-news]
<section class="related">
    <h2>İlgili haberler</h2>
    <div class="related__grid">
        {related-news}
    </div>
</section>
[/related-news]

[related-news] bloğu, ilgili haber bulunduğunda kalır; bulunmazsa bölümün tamamı (başlık dâhil) silinir. Yani boş bir "İlgili haberler" başlığı görünmez.

i
{related-ids} Tam makale şablonunda {related-ids} etiketi, ilgili haberlerin virgülle ayrılmış kimlik listesini verir. Özel JavaScript veya harici bir servise veri göndermek isterseniz kullanışlıdır.

Örnek — relatednews.tpl

<article class="related-card">
    <a class="related-card__media" href="{link}" tabindex="-1">
        [image-1]
            <img src="{image-1}" alt="{title}" loading="lazy">
        [/image-1]
        [not-image-1]
            <span class="related-card__noimg"></span>
        [/not-image-1]
    </a>

    <div class="related-card__body">
        <span class="related-card__cat">{link-category}</span>
        <h3><a href="{link}">{title limit="70"}</a></h3>
        <p>{text limit="120"}</p>
        <time>{date=Y-m-d}</time>
    </div>
</article>

Sık yapılan hatalar

HataSonuç
{short-story} kullanmakBoş kalır — doğru etiket {text}
{views} / {comments-num} kullanmakBu şablonda hesaplanmaz
Bölüm başlığını relatednews.tpl içine koymakBaşlık her kart için tekrarlanır — başlık [related-news] bloğunda olmalı
[related-news] bloğunu kullanmamakİlgili haber yokken boş bir bölüm görünür
related_news ayarını kapatmak ve listeyi beklemekHiç ilgili haber üretilmez

Kontrol listesi

  • Şablon tek bir kart; sarmalayıcı ve başlık [related-news] bloğunda.
  • Yalnızca bu şablonda var olan etiketleri kullandım ({text}, {title limit}).
  • Görselleri [image-1] / [not-image-1] ile korudum.
  • related_news ayarı açık ve related_number makul.
  • İlgili haberi olmayan bir haberde bölümün görünmediğini test ettim.