Arama Sonuçları — searchresult.tpl
Bu şablon, arama yapıldıktan sonra bulunan haberlerin ve yorumların listesini üretir. Sonuçlar sayfa sayfa gelir; her sonuç kendi etiketleriyle basılır.
| Konu | Ayrıntı |
|---|---|
| İşleyen dosya | engine/modules/search.php — sonuçlar show.custom.php ile basılır |
| Haber araması | engine/modules/show.custom.php (kısa haber motoru) |
| Yorum araması | engine/classes/comments.class.php — lastcomments modu |
| Sayfalama | Ayrıca navigation.tpl yüklenir — Arama Formu ile birlikte çalışır |
| Kullanıldığı adres | index.php?do=search&subaction=search |
Dört blok, iki eksen
Şablonun tamamı iki sorunun cevabına göre parçalara ayrılır:
| Blok | Eksen | Ne zaman kalır? |
|---|---|---|
[searchposts]…[/searchposts] | Sonuç türü | Haber sonuçları (arama kapsamı "her yerde" veya "etiket") |
[searchcomments]…[/searchcomments] | Sonuç türü | Yorum sonuçları (arama kapsamı "başlıkta" seçilmişse) |
[fullresult]…[/fullresult] | Görünüm | "Haberleri göster" seçiliyken — tam kart, tarihli ve görselli |
[shortresult]…[/shortresult] | Görünüm | "Yalnızca başlıkları göster" seçiliyken — tek satırlık sonuç |
!
Bu dört blok gerçek şablon bloğu DEĞİLDİR
Motorun blok mekanizmasıyla değil, sayfa üretildikten sonra düz metin
aramasıyla (
preg_replace / str_ireplace) temizlenirler.
Bunun üç önemli sonucu vardır:
- Eşini yazmayı unutursanız etiket çıktıda düz metin olarak görünür —
örn. sayfada
[searchposts]yazısı çıkar. - İç içe koyamazsınız. İçeride eşleşme tembel (
.+?) olduğundan yanlış yerden kesilir. - İçlerindeki
[if]gibi normal koşullar çalışır — çünkü motor önce şablonu derler, temizlik sonra olur.
Haber sonuçları — kullanılabilir etiketler
[searchposts] içinde kısa haber motoru etiketleri çalışır.
Yani Kısa Makale sayfasındaki ailenin
neredeyse tamamı burada da geçerlidir:
| Etiket | İçeriği |
|---|---|
{title}, {title limit="60"} | Haber başlığı (kısaltılabilir) |
[full-link] · {link} | Habere bağlantı |
{short-story}, {short-story limit="200"} | Kısa metin |
{category}, {category-url}, {link-category} | Kategori adı, adresi ve bağlantı etiketi |
{author} | Yazar |
{date}, {date=Y-m-d}, [day-news] | Tarih — biçim ve "bugünün haberi" koşulu |
{views}, {comments-num} | Okuma ve yorum sayısı |
{image-1} … {image-N} | Habere eklenmiş görseller |
[fixed]…[/fixed] | Haber "sabitlenmiş" ise kalır (öne çıkan sonuç için) |
[new] / [not-new], [updated] | Yeni / güncellenmiş haber koşulları |
[category=N]…[/category], [catlist=1,2]…[/catlist] | Kategoriye göre koşullu içerik |
[xfgiven_x] · [xfvalue_x] | Ek alan (Ek Alanlar) |
[edit]…[/edit] | Yetkiliye düzenleme bağlantısı |
i
En kolay yol: hazır şablonu çağırın
Tüm bu etiketleri yeniden yazmak yerine
{include file="shortstory.tpl"}
kullanın. Böylece arama sonuçları, sitenin diğer listeleriyle
birebir aynı görünür ve tek noktadan yönetilir.
Yorum sonuçları — kullanılabilir etiketler
[searchcomments] içinde yorum motoru çalışır. Bu motor,
Yorumlar şablonundaki "son yorumlar"
(lastcomments) modunun aynısıdır:
| Etiket | İçeriği |
|---|---|
{news_title}, {news-link} | Yorumun ait olduğu haberin başlığı ve adresi |
{comment}, {comment limit="220"} | Yorum metni |
{author}, {foto} | Yorum yazan ve avatarı |
{date} | Yorum tarihi |
{comment-id} | Yorumun kimliği (bağlantı hedefi) |
Örnek
<div class="search-results">
[searchposts]
[fullresult]
{include file="shortstory.tpl"}
[/fullresult]
[shortresult]
<article class="result-line">
<a href="{link}">{title}</a>
<span class="result-line__meta">{date=Y-m-d} · {comments-num}</span>
</article>
[/shortresult]
[/searchposts]
[searchcomments]
[fullresult]
{include file="comments.tpl"}
[/fullresult]
[shortresult]
<article class="result-line">
<a href="{news-link}">{news_title}</a>
<span class="result-line__meta">{author} · {date}</span>
</article>
[/shortresult]
[/searchcomments]
</div>
Örnek — sabitlenmiş sonucu vurgulama
<article class="result-card[fixed] result-card--pinned[/fixed]">
<span class="chips">{category}</span>
<h2>[full-link]{title}[/full-link]</h2>
<p>{short-story limit="220"}</p>
<span class="meta">{author} · <time>{date}</time></span>
</article>
[fixed] yalnızca sabitlenmiş haberlerde kalır; sınıfı bu koşulla ekleyerek
öne çıkan sonuçları görsel olarak ayırabilirsiniz.
Sık yapılan hatalar
| Hata | Sonuç |
|---|---|
[searchposts]'u kapatmamak | Sonuçların altında düz metin olarak görünür |
| Dört bloğu iç içe koymak | Tembel eşleşme yanlış yerden keser, sonuçlar bozulur |
{link}'i yorum bloğunda kullanmak | Yorum tarafında haber adresi {news-link}'tir |
{short-story}'yu show.full etiketleriyle karıştırmak | Sonuç listesinde tam makale etiketleri yoktur |
| Ağır HTML kullanmak | Bu şablon yüzlerce kez tekrarlanır; sayfa şişer |
{include file="shortstory.tpl"} içinde zaten ağır bir tasarım | Sonuçlar çok yavaş açılır |
Kontrol listesi
- Dört bloğun eşlerini de yazdım (açılış + kapanış).
- Blokları iç içe koymadım.
- Haber tarafında
{include file="shortstory.tpl"}ile tutarlılığı sağladım. - Yorum tarafında
{news_title}/{news-link}kullandım. - Hem "haberleri göster" hem "başlıkları göster" modunu canlıda denedim.
- Sayfalamayı kontrol ettim (birkaç sayfa sonuç ürettim).