Komponente služe za izvlačenje podataka preko SQL upita uz određene uslove koji se mogu proslediti.
U odeljku "Components" se nalaze komponente (recordsets) koje se koriste na odabranom templejtu. Sa desne strane se nalazi "Add new" dugme koje služi za dodavanje nove komponente.
Prilikom dodavanje nove komponente, otvara se prozor gde se na vrhu nalazi "AJAX" čekboks gde se obeležava da li je komponenta "AJAX" ili ne (ako se komponenta inicijalno učitava onda čekboks ne treba da bude obeležen, u suprotnom treba). Sledeće polje je "Komponenta" i tu se definiše da li je tip komponente "HTML recordset" ili "Elastycsearch". U sledeće polje se upisuje jedinstveni naziv te komponente, i on ne sme da bude duži od 16 karaktera! Polje "Naziv" definiše kako će se zvati komponenta.
Edit - dugme koje otvara postavke komponente (polja objašnjenja u pasusu iznad)
HTML - dugme koje otvara kod editor gde se unosi kod HTML predloška koji će se ili inicijalno igradini na stranici, ili će stići kao odgovor na poziv te komponente (response)
Query - otvara kod editor gde se unosi kod od SQL upita. Važno je da se prilikom pisanja SQL upita, na početku stavi broj "2" da bi se upit uspešno izvršio!
Postoje dva tipa varijabli koje se mogu koristiti u upitu:
- !QS!naziv_varijable!QS!: varijabla koja se prosleđuje kao parametar prilikom poziva funkcije "loadcontent"
- !QQ!naziv_varijable_u_kolačiću!QQ!: varijabla koja se uziva iz vrednosti kolačića (cookie)
Za pozivanje komponente i izvlačenje podataka koristi se funckija "loadcontent" čiji poziv izgleda ovako:
loadcontent(component, data, callback)
Funkcija "loadcontent" se sastoji od tri parametra:
"- component: jedinstveni naziv komponente koja se poziva
- data: svi potrebni ulazni parametri za poziv komponente u formi objekta {}
- callback: funkcija koja se okida prilikom izvršenja upita komponente
Primer koda pozivanja komponente:
loadcontent("google", {template: template, ajax: "T", jsont: "T", naziv_varijable: "naziv"}, function (response){
var json = JSON.parse(response)
console.log(json)
})
U data objektu funkcije "loadcontent" moraju da se nalaze neki standardni parametri (koji se koriste uvek) i vrednosti varijabli ("!QS!naziv_varijable!QS!") ako ih ima u upitu.
Standardni parametri, koji se koriste uvek, su sledeći:
"-template: definiše templejt na kome se nalazi ta komponenta (npr "Wrapper", "Landing pages"...)
- ajax: uvek mora da bude "T" jer se komponenta poziva naknadno (a ne inicijalno sa učitavanjem stranice) preko funkcije "loadcontent"
- jsont: stavlja se "T" ako je potrebno da se vrednost odgovora (response) dobije u JSON formatu koji je naknatno potrebno parsirati
- notpublished:
Vrednost varijable se prosleđuje tako što se stavi naziv varijable i onda njena vrednost, kao u primeru koda iznad. Vrednost koja se prosleđuje može biti fiksna ili vrednost neke druge varijable.