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)