Popüler Haberler — topnews.tpl

Bu şablon, sitenin en çok beğenilen haberlerini gösteren küçük listeyi üretir. Genellikle kenar çubuğunda "Ayın en iyileri" gibi bir başlık altında yer alır.

KonuAyrıntı
İşleyen dosyaengine/modules/topnews.php
Çıktı yeriresult['topnews'] — yani {topnews}
ÖnbellekEvet — topnews olarak önbelleğe alınır
Sonuç sayısıtop_number ayarı

Haberler nasıl seçilir?

Liste rastgele değildir; belirli bir sıralama ve zaman penceresi vardır:

KuralAyrıntı
Zaman aralığıSon bir ay içinde yayımlanan haberler
Onay durumuYalnızca yayımlanmış (approve = 1) haberler
Sıralama1) Puan (beğeni) · 2) Yorum sayısı · 3) Okuma sayısı · 4) Tarih

Etiketler

Etiketİçeriği
{title}, {title limit="40"}Haber başlığı (kısaltılabilir)
{link}Habere bağlantı
{category}, {link-category}Kategori adı ve bağlantılı hâli
{date}, {date=Y-m-d}Tarih
{image-1} … {image-N}Haber görselleri
[xfgiven_x] · [xfvalue_x]Ek alanlar — bu listede de çalışır
!
Bu listede YOK olan etiketler Aşağıdaki etiketler bu şablonda doldurulmaz (kaynak kod bunları topnews için hesaplamaz):
  • {short-story} — kısa metin yoktur
  • {views} — okuma sayısı yoktur (sıralamada kullanılsa bile)
  • {comments-num} — yorum sayısı yoktur
  • {author} — yazar yoktur
Bu şablon başlık + tarih + kategori + görsel için tasarlanmıştır.

Sarmalayıcıyı siz yazmazsınız

Şablon tek bir öğedir: bir liste satırı (<li>) veya bir kart. Haberlerin sayısı kadar çoğaltılır. Sarmalayıcı (<ul>, <ol>, <div>) main.tpl veya kenar çubuğu şablonunda, {topnews} etiketinin çevresinde yer alır.

<section class="widget">
    <h2>Ayın en iyileri</h2>
    <ol class="popular-list">
        {topnews}
    </ol>
</section>

Yani topnews.tpl içine <ol> koymamalısınız; koyarsanız her haber için ayrı bir liste oluşur.

Örnek — topnews.tpl

<li class="popular-item">
    <a class="popular-item__link" href="{link}" title="{title}">
        <span class="popular-item__title">{title}</span>
        <span class="popular-item__meta">
            <span>{category}</span>
            <time>{date}</time>
        </span>
    </a>
</li>

Görselli bir tasarım isterseniz:

<li class="popular-card">
    [image-1]
        <a href="{link}" class="popular-card__media">
            <img src="{image-1}" alt="{title}" loading="lazy">
        </a>
    [/image-1]
    <div class="popular-card__body">
        <a href="{link}">{title limit="50"}</a>
        <small>{category} · {date=Y-m-d}</small>
    </div>
</li>

Sık yapılan hatalar

HataSonuç
{short-story} veya {views} kullanmakBoş kalır — bu şablonda hesaplanmaz
Şablon içine <ul>/<ol> koymakHer haber için ayrı liste oluşur
{title}'ı uzun bırakmakUzun başlıklar kenar çubuğunu taşar — limit kullanın
Değişiklikten sonra önbelleği temizlememekListe eski kalır (bir ay penceresi + önbellek)

Kontrol listesi

  • Şablon tek bir liste öğesi; sarmalayıcı dışarıda.
  • Yalnızca bu şablonda gerçekten var olan etiketleri kullandım.
  • Başlıkları limit ile kısaltıp taşmayı engelledim.
  • Önbelleği temizleyip listeyi kontrol ettim.