Haber İçi Anketler — poll.tpl

poll.tpl, habere bağlı anketi üretir. Anketler bir haberin yanında oluşturulur ve haberin kartında ya da tam metninde görünür.

KonuAyrıntı
İşleyen dosyaengine/modules/poll.php
Çıktı$tpl->result['poll']
Şablona basanHaber şablonundaki {poll} etiketi
Ne zaman yüklenir?Haberin bir anketi varsa ([poll] bloğu doluysa)
✕
Haber içi anket ile sitedeki oylama AYRI şeylerdir
  • Haber içi anket → poll.tpl · engine/modules/poll.php · çıktı result['poll'] · {poll} etiketi
  • Sitedeki oylama → vote.tpl · engine/modules/vote.php · çıktı result['vote'] · {vote} etiketi
İkisi farklı modüllerdir ve çıktıları birbirini etkilemez. Yanlış dosyayı düzenlemek, saatler kaybettiren en yaygın şablon hatasıdır.

Etiketler

Etiketİçeriği
{title}Anketin başlığı
{question}Asıl soru metni
{votes}Toplam oy sayısı
{news-id}Anketin bağlı olduğu haberin ID'si
{list}Seçenekler (oy verme) veya sonuç çubukları
{close-date}Anketin kapanacağı tarih

Blok koşulları

BlokNe zaman görünür?
[not-voted]…[/not-voted]Ziyaretçi henüz oy vermemişse (oy verme biçimi)
[voted]…[/voted]Ziyaretçi oy vermişse (sonuç biçimi)
[closed]…[/closed]Anket kapalıysa (sonuçlar gösterilir)
[not-closed]…[/not-closed]Anket açıksa

Haber şablonundaki karşılığı

{poll} etiketi bu şablonda değil, haber şablonunda kullanılır. Haberin anketi olup olmadığını kontrol etmek için:

[poll]
    <aside class="poll-box">
        {poll}
    </aside>
[/poll]

[not-poll]
    <!-- Bu haberde anket yok -->
[/not-poll]

Bu iki blok shortstory.tpl, fullstory.tpl ve statik sayfa şablonunda kullanılabilir.

Tam örnek

<div class="poll">
    <strong class="poll-title">{title}</strong>
    <p class="poll-question">{question}</p>

    [not-closed]
        [not-voted]
            <div class="poll-options">{list}</div>
        [/not-voted]
    [/not-closed]

    [voted]
        <div class="poll-results">{list}</div>
        <small>{votes} oy kullanıldı</small>
    [/voted]

    [closed]
        <div class="poll-results">{list}</div>
        <small>Anket kapandı: {close-date}</small>
    [/closed]
</div>

Oylama kuralları

KuralDavranış
Çoklu seçim Anket çoklu seçime izin veriyorsa seçenekler onay kutusu, aksi hâlde radyo düğmesi olarak basılır.
Aynı ziyaretçi Oy kaydı varsa ziyaretçiye oy verme biçimi değil, sonuçlar gösterilir.
İzin Üye grubunun anket izni yoksa oy verilemez.
Kapalı anket Kapanış tarihi geçmişse yalnızca sonuçlar görünür.
!
Önbellek açıkken oy kaydı atlanır Anket önbellekten servis edildiğinde oy kaydı denetimi yapılamaz. Bu yüzden anketlerin önbelleklenmesi, çok ziyaretli sitelerde tutarlılık sorunlarına yol açabilir.

Yazdırma görünümünde

Haberin yazdırma sürümünde (print.tpl) anket hiç yüklenmez. Yazdırma şablonunda {poll} kullanmanız boş çıktı verir.

Kontrol listesi

  • Doğru dosyayı düzenliyorum (poll.tpl, vote.tpl değil).
  • [not-voted] ve [voted] bloklarının ikisi de var.
  • Kapalı anket durumu ([closed]) ele alındı.
  • Haber şablonunda [poll] / [not-poll] sarmalayıcısı var.
  • Mobilde seçenekler ve sonuç çubukları düzgün görünüyor.