x

Glavna poglavlja

  1. LimeSurvey Cloud u usporedbi s LimeSurvey CE
  2. Vodič za brzi početak - LimeSurvey 3.0+
  3. Instalacija - LimeSurvey CE
  4. Kako izraditi dobar upitnik (vodič)
  5. Početak rada
  6. Administriranje LimeSurveya
  7. Upitnici - uvod
  8. Postavke upitnika
  9. Izbornik upitnika
  10. Struktura upitnika
  11. Pitanja - uvod
  12. Skupine pitanja - uvod
  13. Upitnici - upravljanje
  14. Opcije alatne trake upitnika
  15. Višejezični upitnik
  16. ExpressionScript Engine - Vodič za brzi početak
  17. Nekategorizirane i napredne značajke
  18. Opći FAQ
  19. Rješavanje problema
  20. Zaobilazna rješenja
  21. Licenca
  22. Popis izmjena po verzijama
  23. Dodaci
 Actions

ExpressionScript Engine - Vodič za brzi početak

From LimeSurvey Manual

Ova je stranica možda strojno prevedena i može sadržavati pogreške. Prikaži engleski izvornik · Poboljšaj ovaj prijevod
This page is a translated version of the page ExpressionScript Engine - Quick start guide and the translation is 100% complete.


Vodič za brzi početak

Unutar LimeSurveya svoje upitnike možete dodatno prilagoditi pomoću ExpressionScripta (skraćeno: ES). Napomena: "ExpressionScript se u ranijim verzijama zvao Expression Manager (EM). Ako negdje naiđete na naziv Expression Manager, riječ je samo o starom nazivu za ES."

ES se može koristiti za određivanje sljedećeg:

  1. Navigacija/grananje - omogućuje da odgovori ispitanika promijene redoslijed prikaza pitanja;
  2. Prilagodba/umetanje (piping) - pomaže vam u oblikovanju pitanja (primjerice pozivanjem na prethodne odgovore ili prilagodbom rečenica prema dobi ili spolu ispitanika) ili u izradi prilagođenih izvješća (poput rezultata procjene ili prilagođenih savjeta);
  3. Provjera - osigurava da odgovori zadovoljavaju određene kriterije, poput minimalnih i maksimalnih vrijednosti ili određenog obrasca unosa.

ES nudi intuitivan način za određivanje logike za svaku od tih značajki. Gotovo sve što možete zapisati kao standardnu matematičku jednadžbu valjani je izraz.

ES trenutačno omogućuje pristup 70 funkcija i može se jednostavno proširiti kako bi podržavao još njih. Također vam omogućuje pristup vašim varijablama pomoću čitljivih naziva varijabli (umjesto SGQA naziva).

Sljedeći odjeljci prikazuju glavna mjesta na kojima se koristi ES.


Relevantnost (upravljanje navigacijom/grananjem)

Neki upitnici koriste "Goto logiku", pri kojoj ste, ako na Pitanje1 odgovorite opcijom C, preusmjereni na Pitanje5. Takav je pristup vrlo ograničen jer ga je teško provjeriti. Štoviše, lako se pokvari kada je potrebno promijeniti redoslijed pitanja. S druge strane, ES koristi Booleove jednadžbe relevantnosti za određivanje svih uvjeta pod kojima pitanje može biti valjano. Ako je pitanje relevantno, prikazuje se; u suprotnom nije primjenjivo i u bazu podataka se pohranjuje vrijednost "NULL".

Napomena: Ovo je slično onome što se može učiniti putem uređivača uvjeta, ali ES vam omogućuje da jednostavno odredite mnogo složenije i moćnije kriterije (i omogućuje korištenje naziva varijable umjesto SGQA identifikatora).




Kako biste bolje razumjeli koncept relevantnosti, usredotočimo se na sljedeći upitnik koji izračunava indeks tjelesne mase (BMI) ispitanika. Za preuzimanje kliknite na sljedeću poveznicu: Primjer upitnika s indeksom tjelesne mase.

Jednadžba relevantnosti prikazana je u nastavku u stupcu Relevantnost iza naziva varijable. Vrijednosti relevantnosti za weight, weight_units, height i height_units sve su 1 (zadana vrijednost), što znači da se ta pitanja uvijek prikazuju. Međutim, relevantnost za BMI je {!is_empty(height) and !is_empty(weight)}, što znači da će se BMI izračunati samo ako ispitanik unese vrijednost i za visinu i za težinu (čime se izbjegava rizik od pogreške dijeljenja s nulom). Također, pitanje "Report" prikazuje se samo ako ispitanik odgovori na sva četiri glavna pitanja (height, heightunits, weight, weightunits).



Napomena: Gornja slika potječe iz datoteke s logikom upitnika koja vam omogućuje da potražite sintaktičke pogreške prije aktiviranja upitnika.


Relevantnost se prikazuje i može se uređivati kada:

  • želite pregledati/urediti relevantnost na razini pitanja
  • želite pregledati/urediti relevantnost na razini grupe


Pregled / uređivanje relevantnosti na razini pitanja

Ova jednadžba izračunava indeks tjelesne mase (BMI). Pitanje se postavlja samo ako osoba unese svoju visinu i težinu.



Ovo je zaslon za uređivanje pitanja "BMI".



Imajte na umu da pri unosu jednadžbe relevantnosti ne koristite vitičaste zagrade.


Pregled / uređivanje relevantnosti na razini grupe

Usredotočimo se sada na drugi primjer - jednostavan upitnik za popis stanovništva. Za preuzimanje kliknite na sljedeću poveznicu: Primjer upitnika za popis stanovništva.

Prva stranica pita koliko osoba živi s vama i to sprema u varijablu "cohabs". Ova se stranica prikazuje samo ako imate više od jednog supstanara (prikazuje se za drugu osobu koja živi s vama). Također, p2name, p2age i p2sum prikazuju se samo ako pitanje prije svakog od njih sadrži odgovor.



Dakle, grupa također ima kriterije relevantnosti na razini pitanja, tako da se neka pitanja pojavljuju samo ako ste prethodno odgovorili na određena pitanja (npr. p2age se prikazuje ako je odgovoreno na p2name). ES umjesto vas kombinira relevantnost na razini grupe i na razini pitanja. Pitanja u grupi postavljaju se samo ako je grupa kao cjelina relevantna. Tada se postavljaju samo ona pitanja unutar grupe koja su relevantna.

Evo snimke zaslona za uređivanje relevantnosti na razini grupe za Cohabitant 2:



Imajte na umu da pri unosu jednadžbe relevantnosti ne koristite vitičaste zagrade.

Prilagodba/Piping

ES vam omogućuje jednostavnu jednostavnu i složenu uvjetnu prilagodbu. Ponekad vam je potrebna samo jednostavna zamjena, na primjer: "Rekli ste da ste kupili [Proizvod]. Što vam se najviše svidjelo kod njega?". Ponekad vam je potrebna uvjetna zamjena, kao u primjeru "[Gospodin/Gospođa] [Prezime], biste li bili voljni ispuniti naš upitnik?". U ovom slučaju želite koristiti "gospodin ili gospođa" ovisno o spolu osobe. Ponekad je potrebna još složenija zamjena (primjerice na temelju matematičkog izračuna). ES podržava sve ove vrste prilagodbe/pipinga.


Uvjetne jednadžbe

Primjer indeksa tjelesne mase pokazuje mogućnost izračuna BMI-ja osobe, čak i kada joj se omogući da unese visinu i težinu u dvije različite jedinice (cm naspram inča i kg naspram lbs):



U ovom slučaju weightkg je {if(weightunits == "kg", weight, weight * 0.453592)}. Funkcija "if()" znači da ako ispitanik unese težinu u kilogramima, koristi se ta vrijednost, a u suprotnom se unesena vrijednost (alternativa su funte) množi s 0.453592 kako bi se pretvorila u kilograme. Varijabla heightm koristi sličan pristup za izračun visine osobe u metrima (visina u cm/100), čak i ako je visinu unijela u inčima (1 metar = 3.28084 inča).

BMI se izračunava ovako: {weightkg / (heightm * heightm)}.

Naposljetku, izvješće uvjetno prilagođava poruku ispitaniku i prikazuje mu što je unio. (npr. "Rekli ste da ste visoki 2 metra i da težite 70 kg.")

Na donjoj slici weightstatus koristi ugniježđene naredbe "if()" kako bi osobu svrstao u kategorije od pothranjene do izrazito pretile. Njegovu jednadžbu možete vidjeti provjerom njegove logike:



U prozoru za uređivanje ovog pitanja možete vidjeti dvije stvari:

  1. Pri prilagodbi izrazi moraju biti okruženi vitičastim zagradama
  2. Izrazi se mogu protezati kroz više redaka ako, kao u ovom slučaju, želite olakšati čitanje ugniježđene uvjetne logike.



Prilagođena pitanja, odgovori i izvješća

Napomena: Dinamička prilagodba možda neće raditi ako su opcije odgovora dostupne u padajućim izbornicima na istoj stranici pitanja. To je zato što prilagodba umeće oznaku <span> koja nije valjana unutar opcija izbornika.

BMI izvješće izgleda ovako:



Ovo je prozor za uređivanje istog pitanja.



Sve unutar vitičastih zagrada tretira se kao izraz i na prethodnoj je slici istaknuto bojama (sintaksa). Ako imate tipfelere (primjerice pogrešno napisane ili nedefinirane nazive varijabli ili funkcija), ES će prikazati pogrešku. U našem primjeru u nastavku:

  • heightunit.shown je nedefinirani naziv varijable (zapravo je heightunits.shown) i
  • "rnd()" je nedefinirana funkcija (ispravan naziv funkcije je "round()").

U oba slučaja pogreške su označene crvenim okvirom kako bi ih bilo lakše uočiti i ispraviti.



Također možete vidjeti da brzo možete izraditi složena izvješća, poput tablice unesenih vrijednosti ili prilagođenih savjeta.

Imajte na umu da pri svakoj prilagodbi izrazi moraju biti okruženi vitičastim zagradama kako bi LimeSurvey znao koji su dijelovi pitanja slobodan tekst, a koje treba obraditi ExpressionScript engine.


Provjera

ES kontrolira rad većine naprednih opcija pitanja. One određuju aspekte poput min/maks broja odgovora, min/maks pojedinačnih vrijednosti, min/maks zbroja vrijednosti te provjere podudaraju li se unesene vrijednosti s navedenim obrascima nizova znakova. Svaka vrijednost u tim poljima smatra se izrazom, pa možete imati min/maks kriterije sa složenim uvjetnim odnosima prema drugim pitanjima.

U svim tim slučajevima, budući da se napredni atribut pitanja uvijek smatra izrazom, pri njegovu navođenju ne koristite vitičaste zagrade.

Na stranici primjeri upitnika možete pronaći mnogo radnih primjera s raznim izrazima za provjeru.

ExpressionScript - prezentacija

Za više informacija o ExpressionScriptu i o tome kako možete koristiti različite izraze za poboljšanje svojeg upitnika, kliknite na sljedeću poveznicu.