STRIX
Uvod: Revision 6

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). Site služi za zgodno grupiranje npr. prava pristupa ili dizajna.

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). Ovi moduli će se prikazivati na svim stranicama koje imaju isti template.

 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).

 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

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

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

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

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

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

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

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)