Ana içeriğe atla

Genel Bakış ve Dokümantasyon

A-Parser sorguları ve sonuçları biçimlendirmek için Template Toolkit şablon motoru kullanılır. Şablon motoru, şablonda belirtilen kurallara göre nihai bir dize (örneğin sorgular veya sonuçlar) oluşturmanıza olanak tanır. Template Toolkit birçok özelliğe sahiptir:

  • Koşul ve döngü desteği
  • Normal değişkenler (skalerler), diziler ve hash'ler (ilişkisel diziler) desteği
  • Değişkenler için metot desteği (dize uzunluğu, bul ve değiştir, dizi boyutu...)
  • Eklenti ve filtre desteği (tarih ve saat çıktısı ve biçimlendirmesi, HTML öğeleri oluşturma...)

Şablon motoru kullanım örneği

Template Toolkit resmi dokümantasyonu

Bu şablon motorunun en büyük avantajı, Rusça ve İngilizce dillerinde tam teşekküllü dokümantasyonun bulunmasıdır; aşağıda dokümantasyonun en önemli bölümlerine bağlantılar sunulmuştur:

  • Giriş - genel bilgiler
  • Sözdizimi - şablon yazım kuralları ve stili
  • Direktifler - koşullar, döngüler, filtreler, eklentiler ve makrolar
  • Değişkenler - değişkenlerin, dizilerin ve hash'lerin değerlerine erişim ve güncelleme
  • Sanal metotlar - değişkenleri, dizileri ve hash'leri işlemek için önceden tanımlanmış fonksiyonlar
  • Eklentiler ve Filtreler - şablon motorunun gelişmiş özellikleri, A-Parser aşağıdaki eklentileri destekler:
    • Date - biçimlendirilmiş tarih dizileri oluşturmak için
    • Dumper - veri yapısı dökümünü (dump) görüntülemek için
    • Format - printf sözdizimine dayalı biçimlendirme fonksiyonları oluşturmak için
    • HTML - HTML öğeleri oluşturmak ve HTML kodunu maskelemek (escape) için
    • Filter - bir eklenti yüklemesi yoluyla tanımlanan ve erişilebilen filtreleri oluşturmak ve kullanmak için
    • Math - her türlü matematiksel fonksiyonu kullanmak için
    • String - dizelerle çalışmak için ek metotlar uygular
    • Table - verileri tablo şeklinde sunmak için
    • URL - bağlantılar oluşturmak için
    • Wrap - paragrafları biçimlendirmek için
    • Iterator - bir veri kümesini dolaşmak için. İteratör, FOREACH direktifi tarafından dolaylı olarak otomatik olarak oluşturulur. Bu eklenti, belirtilen bir isimle açıkça bir iteratör oluşturmanıza olanak tanır

Kullanım örnekleri

Sık kullanılan şablon örnekleri

Math eklentisi kullanım örneği

Belirtilen sayıda bağlantıyı rastgele seçme:

[% limit = 5;
USE Math;
FOREACH i IN [1..5];
n = Math.rand(intlinks.size);
intlinks.$n.link _ "\n";
END %]

FOREACH döngüsü örneği

$serp dizisindeki tüm bağlantıları ve pozisyonlarını yazdırma:

[% FOREACH item IN p1.serp;
loop.count _ ' - ' _ item.link _ "\n";
END %]

WHILE döngüsü örneği

$serp dizisinden 3. sıradan başlayarak 5 adet çapa metni (anchor) yazdırma:

[% n = 2;
WHILE n < 7;
p1.serp.${n}.anchor _ "\n";
n = n + 1;
END %]

Koşul örneği

Değişkenin değerine bağlı olarak belirli verilerin çıktısını alma:

[% IF p1.totalcount < 1000;
query _ " - az\n";
ELSIF p1.totalcount < 1000;
query _ " - normal\n";
ELSE;
query _ " - çok\n";
END %]