WebBlocks Polls

Çok dilli, tek veya çok seçenekli anketler oluşturun; yerel Poll bloğuyla sitenize yerleştirin ve toplu sonuçları inceleyin. Bu rehber Polls 0.1.4 sürümünü belgeler.

Gereksinimler ve kurulum

PHP 8.3 veya üzerini ve WebBlocks CMS ^1.92.1 kullanın. Uyumlu ZIP paketini Polls katalog sayfasından indirin. Sistem → Eklentiler bölümünden yükleyip etkinleştirin ve veritabanı kurulumunun başarıyla tamamlandığını kontrol edin. Anketler bölümünü açıp anketin ait olacağı siteyi seçin.

Anket oluşturma

Anket ekle seçeneğini kullanın; dahili bir ad ve next-workshop gibi kalıcı bir tanımlayıcı girin. Bloklar bu tanımlayıcıyı kaydeder; anketi yerleştirdikten sonra değiştirmeyin. Soruyu ve en az iki boş olmayan seçeneği girin. Bir anket en fazla yirmi seçenek satırı destekler.

Her seçmenin bir seçenek belirlemesi için Tek seçim, birden fazlasını seçebilmesi için Çoklu seçim kullanın. Yayımladığınız her dil için soruyu, isteğe bağlı açıklamayı ve seçenek etiketlerini yönetin. Eklenti, altı CMS dili için yönetim ve oylama arayüzü çevirileri sağlar; anketin sorusu ve seçenekleri sizin içeriğinizdir.

Örneğin bir atölye anketi “Sırada hangi atölyeyi düzenleyelim?” sorusunu Fotoğrafçılık, Seramik ve İllüstrasyon seçenekleriyle sorabilir. Metni ve çevirileri gözden geçirirken Taslak olarak kaydedin.

Yayımlama ve Poll bloğunu yerleştirme

Anketin üç durumu vardır: Taslak, Yayımlandı ve Kapalı. İsteğe bağlı Başlangıç ve Bitiş değerleri oylama dönemini sınırlar. Hazır olduğunda anketi yayımlayın ve seçmenleri davet etmeden önce zamanlamayı kontrol edin.

Sayfa oluşturucuda eklentinin yerel Poll bloğunu ekleyip o siteye ait anketi seçin. Blok türü tanımlayıcısı webblocks-polls::poll değeridir; API ile oluşturulan bloklar kalıcı anket tanımlayıcısını plugin_settings.poll içinde tutar. Sayfayı önizleyin, doğru soru ve seçenekleri doğrulayın, ardından normal sayfa yayın akışını izleyin. Anketi yayımlamak, bloğunu içeren sayfayı yayımlamaz.

Sonuçların ne zaman görüneceğini seçme

İstenen deneyime göre Sonuçları göster ayarını belirleyin:

  • Her zaman (always): oylama formu yerine toplu sonuçları gösterir.
  • Oy verdikten sonra (after_vote): ziyaretçi oy verdikten sonra sonuçları gösterir.
  • Kapandıktan sonra (after_close): anket açık değilken sonuçları gösterir.
  • Asla (never): sonuçları herkese açık göstermez.

Bu ayarlar sonuçların genel görünürlüğünü denetler. Yetkili operatörler sonuçları inceleyebilir ve toplu CSV verisi dışa aktarabilir. Anketleri görüntüleme, Anketleri yönetme ve Anket sonuçlarını dışa aktarma ayrı eklenti izinleridir.

0.1.4 sürümünde Kapandıktan sonra, anketin güncel açık/kapalı hesabını kullanır. Bir taslak veya başlangıç zamanı henüz gelmemiş anket için de sonuç gösterebilir. Taslağı yayımlanmış sayfalara koymayın; açılmadan önce sonuçları gizli kalması gereken zamanlanmış bir ankette Oy verdikten sonra veya Asla kullanın.

Oylama ve gizlilik

Oylama; CSRF koruması, yol başına hız sınırları ve takma kimlikli HMAC seçmen parmak izi kullanır. Eklenti ham ziyaretçi IP adreslerini saklamaz. Tekrarlı oyu engelleme pratik bir caydırıcıdır; oturum veya ağ değiştirmek başka bir oya izin verebilir. Kişi başına doğrulanmış tek oy gerektiren anketlerde farklı bir doğrulama süreci kullanın.

Dahili API

Etkin eklenti yollarını CMS keşfi ve OpenAPI'ye ekler:

  • GET /webadmin/api/polls ve GET /webadmin/api/polls/{poll}, polls.read gerektirir.
  • POST /webadmin/api/polls ve PATCH /webadmin/api/polls/{poll}, polls.write gerektirir.
  • GET /webadmin/api/polls/{poll}/results, polls.read gerektirir.

Soruyu ve çevrilmiş seçenek etiketlerini, yetkili site kapsamı ve dille gönderin. Kurulu sürümün veri sözleşmesi için keşfi kullanın. Yönetim API'leri token ile kimlik doğrulaması gerektirir; herkese açık CSRF korumalı oylama akışının yerini almaz.

Blok beklenen anketi göstermiyorsa seçilen tanımlayıcıyı, anketin sitesini, eklenti etkinliğini, yayın durumunu ve zamanlamayı kontrol edin. Sonuçlar gizliyse anketi değiştirmeden önce Sonuçları göster ayarını inceleyin. Kaydetme başarısızsa en az iki seçeneğin etiketi olduğunu ve bitiş zamanının başlangıçtan sonra geldiğini doğrulayın.

Eklentilere genel bakışa dönün, katalog sürümünü inceleyin veya Internal Content API başvurusunu kullanın.