Hızlı Arama Sonuçları — fastsearchresult.tpl

Bu şablon, arama kutusuna yazarken açılan açılır sonuç listesini üretir. Bir sayfa değil, AJAX ile dönen bir HTML parçasıdır.

KonuAyrıntı
İşleyen dosyaengine/ajax/search.php — sonuçlar show.custom.php ile basılır
Adresindex.php?controller=ajax&mod=search (POST)
Gönderilen alanquery — aranan kelime (en çok 90 karakter)
Açan JSFastSearch() / dle_do_search() — public/js/dle_js.js
Yanıt türüDüz HTML parçası (JSON değil)
Sonuç sayısıfastsearch_result ayarı — 1 ile 1000 arası, varsayılan 5

Çalışma koşulları — üçü birden şart

Dosyanın en başında sert bir kapı vardır; koşullardan biri eksikse istek sayfa hiç işlenmeden reddedilir:

KoşulNerede ayarlanır?Eksikse
fast_search açıkSistem ayarları → aramaYanıt: error
allow_search izniÜye gruplarıYanıt: error
Geçerli user_hashSayfa içinde otomatik üretilirOturum hatası mesajı
!
"error" yanıtı kullanıcıya görünmez Bu uç nokta parça döndürdüğü için hata mesajı ekrana basılmaz; JavaScript sessizce boş liste gösterir. Kullanıcı "arama çalışmıyor" der, sunucu tarafında ise izin sorunu vardır. Sorun ararken önce izinleri kontrol edin.

Etiketler

Hazır tema yalnızca üç etiket kullanır, ancak arka planda çalışan motor kısa haber motorudur (show.custom.php). Yani Arama Sonuçları sayfasındaki haber ailesinin tamamı burada da geçerlidir:

Etiketİçeriği
{title}, {title limit="40"}Haber başlığı
{full-link} · {link}Habere bağlantı
{short-story}, {short-story limit="150"}Kısa metin
{category}, {link-category}Kategori
{author}, {date}Yazar ve tarih
{image-1}, {views}, {comments-num}Görsel ve sayaçlar (dikkatli kullanın — liste kısa olmalı)

Yanıtın yapısı

Sunucu, derlenen şablonun sonuna kendi ürettiği bir bağlantı ekler: "tüm sonuçları gör" bağlantısı. Yani açılır liste her zaman <derlenmiş şablon> + <tüm sonuçlar bağlantısı> olarak döner.

DurumDönen içerik
Sonuç varŞablon + "tüm sonuçları gör" bağlantısı
Sonuç yok"Sonuç bulunamadı" dil metni + "tüm sonuçları gör" bağlantısı
Statik sayfa eşleşmesiStatik sayfa adı/açıklaması üzerinden de öneri dönebilir

Örnek

<ul class="fastsearch-list">
    <li>
        <a href="{full-link}">
            <span class="fastsearch-list__title">{title}</span>
            <span class="fastsearch-list__text">{short-story limit="150"}</span>
        </a>
    </li>
</ul>
i
Sarmalayıcı liste etiketi yazmayın Şablon, tek bir sonucun gövdesidir; motor onu kaç sonuç varsa o kadar çoğaltır. Yukarıdaki örnekte <ul> dış katmanda olduğu için <li>'nin tekrarlanması doğru sonucu verir — motorun sonuçları nereye yerleştirdiğine göre sarmalayıcıyı ayarlayın.

İpucu: listede ne göstermeli?

GösterGöstermekten kaçın
Başlık (kısaltılmış), 1–2 satır metin, kategori Tarih, okuma sayısı, yorum sayısı, etiketler, tam metin

Bu liste kullanıcı yazarken tekrar tekrar üretilir. Ağır etiketler burada performansı doğrudan düşürür. Ayrıntı için Ana ve Global Etiketler.

Sık yapılan hatalar

HataSonuç
Tam HTML belgesi yazmak (<html>, <head>)Açılır listenin içinde sayfa içinde sayfa oluşur, biçim bozulur
{THEME}'yi görsel yolunda kullanmamakGörseller görünmez (bu şablonda {THEME} elle değiştirilir)
JSON beklemekYanıt düz HTML'dir; JSON.parse hata verir
Sayfa numarası/sayfalama eklemekBu listede sayfalama yoktur; asıl arama sayfasına yönlendirilir
Statik sayfa sonuçlarını yok saymakBazı eşleşmeler statik sayfalardan gelir; tasarımınız bunu da kapsamalı

Kontrol listesi

  • Şablon bir HTML parçası; belge etiketleri kullanmadım.
  • fast_search ayarı açık ve ilgili gruplarda allow_search var.
  • fastsearch_result sayısını makul tuttum (varsayılan 5).
  • Listede yalnızca hafif etiketler kullandım.
  • Sonuç yoksa görünen "bulunamadı" metnini kontrol ettim.
  • Açılır listeyi gerçek sitede, arama kutusuna yazarken test ettim.