STRIX
Uvod: Revision 1

Uvod u STRIX engine


Svaka web stranica koju engine generira i koja ima svoj URL se strogo veže uz jednu kategoriju (/kategorija/). Za svaku stranicu, tj. kategoriju engine učitava iz baze njen izgled i sadržaj. Izgled stranice je određen pre-definiranim glavnim templateom (/template/) i rasporedom modula unutar nje. Moduli (/modules/) su funkcionalno neovisni dijelovi web stranice koji generiraju konačan sadržaj. Za svaku kategoriju, moduli se po želji odabiru i raspoređuju unutar nje (/layout/).

Više uređenih kategorija čini jedan site (/site/). Module je moguće definirati i za cijeli site, u kojem slučaju se oni prikazuju iznad ili ispod modula definiranih za pojedinu stranicu (/pre_layout/).

Engine podržava do 3 uređene (poredane) liste modula (npr. za lijevi, srednji i desni stupac). Podržana je i jedna ne-uređena (slobodna) lista modula, čija pozicija prikaza je definirana unutar glavnog templatea (npr. glavna navigacija, baneri, footer, breadcrumbs, datum i vrijeme i slične). Prilikom generiranja stranice, engine dohvati sve instance modula za trenutnu kategoriju, izvrši ih, a njihove generirane sadržaje posloži u glavni template.

Opisi glavnih relacija


kategorija

   Column | opis
 ------------+------------------------------------
 id | unique id svake kategorije
 url | uniqur url svake kategorija
 naziv | puni naziv (ime) kategorije
 knaziv | kratki naziv koji se ispisuje u navigaciji
 customize | - ne koristi se
 flags | - 0.bit - stranica je višejezična , ostali ništa
 template_id | id templatea koji se koristi prilkom generiranja stranice
 site_id | id sitea kojem stranica pripada
 description | opis (za search)
 keywords | ključne riječi (za search)
 lang | defaultni jezik stranice.
 lastchange | - ne koristi se
 redirecturl | ukoliko postoji, engine redirecta uneseni url
 special | kategorije za posebne namjene (nema ih u navigaciji)
 force_ssl | cijela stranica se isporučuje preko SSL

 Foreign-key constraints:
    "$3" FOREIGN KEY (site_id) REFERENCES site(id) ON UPDATE CASCADE ON DELETE
 CASCADE
    "$2" FOREIGN KEY (lang) REFERENCES lang(id) ON UPDATE CASCADE ON DELETE CASCADE
    "$1" FOREIGN KEY (template_id) REFERENCES "template"(id) ON UPDATE CASCADE ON
 DELETE CASCADE

site

      Column |
 ------------------+----------------
 id | unique id svakog sitea
 naziv | naziv sitea
 admin_mail | defaultni e-mail
 forcedesign | - defaultni design, ne korsti se
 default_template | - defualtni template, ne koristi se
 root | glavni (root) url site
 content_providers | id grupe content providera (admina)
 ordstr | za prkaz siteova u hijerarhiji

template

  Column |
 ----------+-------------
 id | uniqe id
 tfilename | ime filea glavnog templatea ('main.tpl').
 tflags | - ne koristi se
 design_id | id designa koji se koristi za template
 tname | puno ime templatea

 Foreign-key constraints:
    "$1" FOREIGN KEY (design_id) REFERENCES design(id)

Glavni template (tfilename) je html/smarty file, koji se svaki put koristi prilikom generiranje konačne stranice. U fileu su definirane pozicije za prikaz uređenih i slobodih modula, kao i includeovi za CSS i JS.

design

      Column |
 ------------------+--------------------
 id | unique id
 name | ime teme i foldera u /img/themes
 data | dio CSS-a koji se koristi
 special | true za administracijski site
 htmlareabodystyle | - ne korsti se (stlye za htmlarea)
 htmlareapagestyle | - ne korsti se (stlye za htmlarea)

layout

    Column |
 --------------+----------
 id | uniqe id svake instance PAGE modula
 user_id | - ne koristi se (id usera koji ga je postavio)
 kategorija_id | kategoria u kojoj se modul nalazi
 pozicija | 0,1,2 => uređene liste (stupci lijevo,sredina,desno); 3 => slobodni
 module_id | id modula koju se prikazuje
 redoslijed | integer po kojem se instance sortiraju unutar uređene liste DESC
 module_args | argumenti koji se šalju toj instanci modula (npr. title=nesto)
 state | stanje prikaza: 0 => prikazano, 1 => zarolano
 notitle | true ukoliko se ne želi prikazati naslov (titlebar) modula
 

 Foreign-key constraints:
    "$3" FOREIGN KEY (module_id) REFERENCES modules(id) ON UPDATE CASCADE ON DELETE CASCADE
    "$2" FOREIGN KEY (kategorija_id) REFERENCES kategorija(id) ON UPDATE CASCADE ON DELETE CASCADE
    "$1" FOREIGN KEY (user_id) REFERENCES users(id) ON UPDATE CASCADE ON DELETE CASCADE

pre_layout

   Column |
 ------------+----------
 layout_id | uniqe id svake instance SITE modula
 template_id | id templatea koji je vezan za site u kojem se pokazuje modul
 pozicija | isto kao i kod layout
 redoslijed | isto kao i kod layout, ako je <0 prikazuju se nakon layout modula
 module_id | isto kao i kod layout
 module_args | isto kao i kod layout
 notitle | isto kao i kod layout

 Foreign-key constraints:
    "$2" FOREIGN KEY (module_id) REFERENCES modules(id) ON UPDATE CASCADE ON DELETE CASCADE
    "$1" FOREIGN KEY (template_id) REFERENCES "template"(id) ON UPDATE CASCADE ON DELETE CASCADE

modules

  Column |
 ----------+----------------------
 id | unique id svakog modula
 name | sistemsko ime modula (ime filea bez '.php', npr. 'mod_docman')
 fname | opisno puno ime (ispisuje se kod odabira)
 hidden | true ako su skriveni (admin) moduli
 nocache | true ako se nikada ne želi koristit caching za taj modul
 pos | veličina: 0 => Large or small, 1 => Large, 2 => Small
 fdescript | opisni tekst (ispisuje se kod odabira)