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.
| Konu | Ayrıntı |
|---|---|
| İşleyen dosya | engine/modules/topnews.php |
| Çıktı yeri | result['topnews'] — yani {topnews} |
| Önbellek | Evet — 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:
| Kural | Ayrıntı |
|---|---|
| Zaman aralığı | Son bir ay içinde yayımlanan haberler |
| Onay durumu | Yalnızca yayımlanmış (approve = 1) haberler |
| Sıralama | 1) 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
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
| Hata | Sonuç |
|---|---|
{short-story} veya {views} kullanmak | Boş kalır — bu şablonda hesaplanmaz |
Şablon içine <ul>/<ol> koymak | Her haber için ayrı liste oluşur |
{title}'ı uzun bırakmak | Uzun başlıklar kenar çubuğunu taşar — limit kullanın |
| Değişiklikten sonra önbelleği temizlememek | Liste 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ı
limitile kısaltıp taşmayı engelledim. - Önbelleği temizleyip listeyi kontrol ettim.