x

Ana bölümler

  1. LimeSurvey Cloud ve LimeSurvey CE karşılaştırması
  2. Hızlı başlangıç kılavuzu - LimeSurvey 3.0+
  3. Kurulum - LimeSurvey CE
  4. İyi bir anket nasıl tasarlanır (kılavuz)
  5. Başlarken
  6. LimeSurvey'i Yönetme
  7. Anketler - giriş
  8. Anket ayarları
  9. Anket menüsü
  10. Anket yapısı
  11. Sorular - giriş
  12. Soru grupları - giriş
  13. Anketler - yönetim
  14. Anket araç çubuğu seçenekleri
  15. Çok dilli anket
  16. ExpressionScript Motoru - Hızlı başlangıç kılavuzu
  17. Kategorize edilmemiş ve gelişmiş özellikler
  18. Genel SSS
  19. Sorun giderme
  20. Geçici çözümler
  21. Lisans
  22. Sürüm değişiklik günlüğü
  23. Eklentiler
 Actions

ExpressionScript Motoru - Hızlı başlangıç kılavuzu

From LimeSurvey Manual

Bu sayfa makine çevirisiyle çevrilmiş olabilir ve hatalar içerebilir. İngilizce orijinali göster · Bu çeviriyi iyileştir
This page is a translated version of the page ExpressionScript Engine - Quick start guide and the translation is 100% complete.


Hızlı başlangıç kılavuzu

LimeSurvey içinde, ExpressionScript (kısaca: ES) kullanarak anketlerinizi daha ayrıntılı biçimde özelleştirebilirsiniz. Not: "ExpressionScript, önceki sürümlerde Expression Manager (EM) olarak adlandırılıyordu. Herhangi bir yerde Expression Manager ifadesini görürseniz, bu yalnızca ES'nin eski adıdır."

ES ile aşağıdakiler belirtilebilir:

  1. Gezinme/Dallanma - yanıtlayıcının verdiği yanıtların, soruların görüntülenme sırasını değiştirmesine olanak tanır;
  2. Uyarlama/Yönlendirme (Piping) - soruyu ifade etmenize (önceki yanıtlara atıfta bulunmak veya cümleleri deneklerinizin yaşına ya da cinsiyetine göre çekimlemek gibi) ya da özel raporların (değerlendirme puanları veya uyarlanmış öneriler gibi) nasıl oluşturulacağına yardımcı olur;
  3. Geçerlilik - yanıtların en küçük ve en büyük değerler ya da belirli bir giriş deseni gibi belirli ölçütleri karşılamasını sağlar.

ES, bu özelliklerin her birinin mantığını belirtmek için sezgisel bir yol sunar. Standart bir matematiksel denklem olarak yazabileceğiniz hemen her şey geçerli bir ifadedir.

ES şu anda 70 fonksiyona erişim sağlar ve daha fazlasını desteklemek üzere kolayca genişletilebilir. Ayrıca değişkenlerinize insan tarafından okunabilir değişken adlarıyla (SGQA adları yerine) erişmenizi sağlar.

Sonraki bölümlerde ES'nin kullanıldığı başlıca yerler gösterilmektedir.


İlinti (Gezinme/Dallanma Denetimi)

Bazı anketler "Goto Logic" (şuraya git mantığı) kullanır; örneğin Question1 sorusunu C seçeneğiyle yanıtlarsanız Question5 sorusuna yönlendirilirsiniz. Bu yaklaşım doğrulanması zor olduğundan çok sınırlıdır. Ayrıca soruların sırasını değiştirmeniz gerektiğinde kolayca bozulur. Öte yandan ES, bir sorunun geçerli olabileceği tüm koşulları belirtmek için Boolean ilinti denklemleri kullanır. Soru ilintiliyse gösterilir, aksi takdirde uygulanamaz ve veritabanında "NULL" değeri saklanır.

Not: Bu, Koşul düzenleyicisi ile yapılabilenlere benzer; ancak ES çok daha karmaşık ve güçlü ölçütleri kolayca belirtmenizi sağlar (ayrıca SGQA tanımlayıcıları yerine değişken adını kullanmanıza olanak tanır).




İlinti kavramını daha iyi anlamak için, anket katılımcılarının Vücut Kitle İndeksini (VKİ) hesaplayan aşağıdaki ankete odaklanalım. İndirmek için şu bağlantıya tıklayın: Vücut Kitle İndeksi anket örneği.

İlinti denklemi aşağıda, değişken adından sonra İlinti sütununda gösterilmektedir. weight, weight_units, height ve height_units için ilinti değerlerinin hepsi 1'dir (varsayılan değer); yani bu sorular her zaman görüntülenir. Ancak BMI için ilinti {!is_empty(height) and !is_empty(weight)} şeklindedir; bu da BMI'nin yalnızca denek hem boy hem kilo değeri girerse hesaplanacağı anlamına gelir (böylece sıfıra bölme hatası alma riski ortadan kalkar). Ayrıca "Report" sorusu yalnızca yanıtlayıcı dört ana soruyu (height, heightunits, weight, weightunits) da yanıtlarsa gösterilir.



Not: Yukarıdaki görsel, anketi etkinleştirmeden önce sözdizimi hatalarını aramanıza olanak tanıyan anket mantık dosyasından alınmıştır.


İlinti şu durumlarda gösterilir ve düzenlenebilir:

  • soru düzeyindeki ilintiyi görüntülemek/düzenlemek istediğinizde
  • grup düzeyindeki ilintiyi görüntülemek/düzenlemek istediğinizde


Soru Düzeyindeki İlintiyi Görüntüleme / Düzenleme

Bu denklem Vücut Kitle İndeksini (VKİ) hesaplar. Yalnızca kişi boyunu ve kilosunu girerse sorulur.



Bu, "BMI" sorusunun düzenleme ekranıdır.



Bir ilinti denklemi girerken süslü parantez kullanmadığınıza dikkat edin.


Grup Düzeyindeki İlintiyi Görüntüleme / Düzenleme

Şimdi başka bir örneğe, basit bir nüfus sayımı anketine odaklanalım. İndirmek için şu bağlantıya tıklayın: Nüfus sayımı anketi örneği.

İlk sayfa, sizinle kaç kişinin yaşadığını sorar ve bunu "cohabs" değişkeninde saklar. Bu sayfa yalnızca birden fazla birlikte yaşayan kişiniz varsa gösterilir (sizinle birlikte yaşayan ikinci kişi için gösterilir). Ayrıca p2name, p2age ve p2sum, yalnızca her birinden önceki soru yanıt içeriyorsa görüntülenir.



Dolayısıyla grubun da soru düzeyinde ilinti ölçütleri vardır; bu nedenle bazı sorular yalnızca kendilerinden önceki belirli soruları yanıtladıysanız görünür (örn. p2name yanıtlandıysa p2age görüntülenir). ES, Grup ve Soru düzeyindeki ilintiyi sizin için birleştirir. Bir gruptaki sorular yalnızca grup bir bütün olarak ilintiliyse sorulur. Ardından grup içindeki soruların yalnızca ilintili olan alt kümesi sorulur.

Cohabitant 2 grubunun grup düzeyindeki ilintisini düzenlemeye ait ekran görüntüsü:



Bir ilinti denklemi girerken küme parantezlerini kullanmadığınıza dikkat edin.

Özelleştirme/Aktarma

ES, basit ve karmaşık koşullu özelleştirmeleri kolayca yapmanızı sağlar. Bazen yalnızca basit bir yerine koyma işlemine ihtiyaç duyarsınız; örneğin "[Ürün] satın aldığınızı belirttiniz. Bu ürünle ilgili en çok neyi beğendiniz?" gibi. Bazen de "[Bay/Bayan] [Soyadı], anketimizi tamamlamak ister misiniz?" gibi koşullu bir yerine koyma gerekir. Bu durumda kişinin cinsiyetine göre "Bay veya Bayan" ifadesini kullanmak istersiniz. Başka durumlarda ise (örneğin matematiksel bir hesaplamaya dayalı) daha da karmaşık bir yerine koyma gerekebilir. ES, bu özelleştirme/aktarma türlerinin tümünü destekler.


Koşullu denklemler

Vücut Kitle İndeksi örneği, kişilerin boy ve kilolarını iki farklı birimde (cm veya inç, kg veya lb) girmelerine izin verirken BMI değerini hesaplama olanağını gösterir:



Bu durumda weightkg değeri {if(weightunits == "kg", weight, weight * 0.453592)} şeklindedir. Bu "if()" işlevi, katılımcı kilosunu kilogram cinsinden girdiyse bu değerin kullanılacağı, aksi halde (alternatif libredir) girilen değerin kilograma dönüştürülmesi için 0,453592 ile çarpılacağı anlamına gelir. heightm değişkeni de kişinin boyunu metre cinsinden (cm cinsinden boy/100) hesaplamak için benzer bir yaklaşım kullanır; boyunu inç olarak girmiş olsa bile (1 metre=3,28084 inç).

BMI şu şekilde hesaplanır: {weightkg / (heightm * heightm)}.

Son olarak rapor, katılımcının girdiği bilgileri ona göstererek iletiyi koşullu olarak özelleştirir. (ör. "2 metre boyunda olduğunuzu ve 70 kg ağırlığında olduğunuzu belirttiniz.")

Aşağıdaki görselde weightstatus, kişiyi zayıftan aşırı obeze kadar sınıflandırmak için iç içe "if()" ifadeleri kullanır. Denklemini mantığını inceleyerek görebilirsiniz:



Bu sorunun düzenleme penceresinde iki şey görebilirsiniz:

  1. Özelleştirmede ifadeler küme parantezleriyle çevrelenmelidir
  2. İfadeler, bu örnekte olduğu gibi, iç içe koşullu mantığın okunmasını kolaylaştırmak istediğinizde birden çok satıra yayılabilir.



Özelleştirilmiş sorular, yanıtlar ve raporlar

Not: Yanıt seçenekleri aynı soru sayfasında seçim kutularında sunuluyorsa dinamik özelleştirme çalışmayabilir. Bunun nedeni, özelleştirmenin seçim kutusu seçeneklerinin içinde geçerli olmayan bir <span> etiketi eklemesidir.

BMI raporu şöyle görünür:



Aynı sorunun düzenleme penceresi aşağıdadır.



Küme parantezleri içindeki her şey bir ifade olarak ele alınır ve önceki görselde sözdizimi vurgulamasıyla (renk kodlu) gösterilir. Yazım hatalarınız varsa (yanlış yazılmış veya tanımlanmamış değişken adları ya da işlevler gibi) ES bir hata gösterir. Aşağıdaki örneğimizde:

  • heightunit.shown tanımlanmamış bir değişken adıdır (doğrusu heightunits.shown) ve
  • "rnd()" tanımlanmamış bir işlevdir (doğru işlev adı "round()").

Her iki durumda da hataları fark etmeyi ve düzeltmeyi kolaylaştırmak için hatalar kırmızı bir kutu içinde gösterilir.



Girilen değerlerin tablosu veya özelleştirilmiş öneriler gibi karmaşık raporları da hızlıca oluşturabildiğinizi görebilirsiniz.

Lütfen unutmayın: LimeSurvey'in sorunun hangi bölümlerinin serbest metin, hangilerinin ExpressionScript motoru tarafından ayrıştırılacak ifade olduğunu bilmesi için tüm özelleştirmelerde ifadelerin küme parantezleriyle çevrelenmesi gerekir.


Doğrulama

ES, gelişmiş soru seçeneklerinin çoğunun nasıl çalışacağını denetler. Bunlar; en az/en çok yanıt sayısı, en az/en çok tekil değerler, en az/en çok toplam değerler ve girilen değerlerin belirtilen metin kalıplarıyla eşleşip eşleşmediğinin denetlenmesi gibi yönleri kontrol eder. Bu alanlardaki her değer bir ifade olarak kabul edilir; dolayısıyla diğer sorularla karmaşık koşullu ilişkileri olan en az/en çok ölçütleri tanımlayabilirsiniz.

Tüm bu durumlarda, gelişmiş soru özniteliği her zaman bir ifade olarak kabul edildiğinden, onu belirtirken küme parantezlerini kullanmazsınız.

Örnek anketler sayfasında çeşitli doğrulama ifadeleri içeren birçok çalışan örnek yer almaktadır.

ExpressionScript - sunum

ExpressionScript hakkında daha fazla bilgi edinmek ve anketinizi geliştirmek için farklı ifadeleri nasıl kullanabileceğinizi öğrenmek üzere lütfen aşağıdaki bağlantıya tıklayın.