Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Simon Gliha
UPORABA OGRODJA CAKEPHP PRI IZDELAVI SPLETNIH PORTALOV
Diplomsko delo
Maribor, september 2010
I
Diplomsko delo univerzitetnega študijskega programa
UPORABA OGRODJA CAKEPHP PRI IZDELAVI SPLETNIH PORTALOV
Študent: Simon Gliha
Študijski program: UNI R-IT
Mentor: izred. prof. dr. Milan Ojsteršek
Maribor, september 2010
II
ZAHVALA
Zahvaljujem se mentorju za pomoč in predvsem
navdušenje nad spletnim programiranjem. Prav
tako se zahvaljujem zelo dobrim prijateljem iz
društva HC, ki so mi omogočili praktično uporabo
izdelka in kreativno podporo.
Posebna zahvala velja staršem, ki so mi omogočili
študij ter sredstva za le tega.
III
UPORABA OGRODJA CAKEPHP PRI IZDELAVI SPLETNIH
PORTALOV
Ključne besede: spletni portali, ogrodje, PHP, CakePHP, model-prikaz-krmilnik
UDK: 004.45:004.738.5(043.2)
Povzetek
V teoretičnem delu diplomskega dela smo opisali proces izdelave spletnega portala
(oblikovna podoba, načrtovanje podatkovne baze, uporabniške funkcionalnosti, uredniške
funkcionalnosti). V praktičnem delu smo z uporabo ogrodja CakePHP izdelali lasten
portal. Uporabili smo arhitekturo model-prikaz-krmilnik.
IV
DEVELOPING WEB PORTALS WITH THE HELP OF CAKEPHP
FRAMEWORK
Key words: web portals, framework, PHP, CakePHP, model-view-controller
UDK: 004.45:004.738.5(043.2)
Abstract
In the theoretical part of the thesis, we have described the web portal development(web
user interface design, database design, user and administration part of the web application).
In the practical part of our work we used the CakePHP framework to build our web portal.
We used the model-view-controller architecture.
V
KAZALO
1 UVOD ........................................................................................................................... 1
2 IDEJA TER PRVI KORAKI ..................................................................................... 2
2.1 IDEJA TER PRVOTEN VIDEZ IN NJEGOVE PREOBRAZBE ............................................. 2
2.2 ZAHTEVANE FUNKCIONALNOSTI ............................................................................. 3
2.3 UREDITEV STREŢNIKA IN GOSTOVANJA .................................................................. 4
3 VIDEZ .......................................................................................................................... 5
3.1 SHEMA SPLETNEGA PORTALA ................................................................................. 5
3.2 UPORABNIŠKI IN UREDNIŠKI VMESNIKI ................................................................... 5
3.3 LOGOTIP ................................................................................................................. 7
3.4 OZADJA .................................................................................................................. 7
3.5 DIGITALIZIRANI ELEMENTI ..................................................................................... 8
4 PODATKOVNA BAZA .............................................................................................. 9
4.1 ZASNOVA PODATKOVNE BAZE ................................................................................ 9
4.2 UREDITEV PODATKOVNE BAZE ............................................................................. 10
5 OGRODJE ................................................................................................................. 11
5.1 PREDSTAVITEV CAKEPHP .................................................................................... 11
5.2 DELO S PODATKOVNO BAZO ................................................................................. 11
5.3 PRIKAZ SPLETNEGA PORTALA ............................................................................... 12
5.4 DELOVANJE GRADNIKOV OGRODJA CAKEPHP ..................................................... 13
6 UPORABNIŠKE FUNKCIONALNOSTI .............................................................. 14
6.1 SPLOŠNE FUNKCIONALNOSTI REGISTRIRANIH UPORABNIKOV ............................... 14
6.2 ZAČETNA STRAN ................................................................................................... 14
6.3 AKTUALNA DOGAJANJA ........................................................................................ 15
6.4 DOGODKI .............................................................................................................. 15
6.5 HRANA ZA MISLI ................................................................................................... 16
6.6 GALERIJA ............................................................................................................. 16
6.7 KONTAKTI ............................................................................................................ 17
6.8 FORUM ................................................................................................................. 17
VI
7 UREDNIŠKE FUNKCIONALNOSTI .................................................................... 18
7.1 UREJANJE IN DODAJANJE PODATKOV V AKTUALNA DOGAJANJA ........................... 18
7.2 UREJANJE IN DODAJANJE PODATKOV V DOGODKE ................................................ 19
7.3 UREJANJE IN DODAJANJE PODATKOV V GALERIJO ................................................. 19
7.4 OBVESTILA ........................................................................................................... 20
7.5 UPRAVLJANJE UPORABNIKOV IN UREDNIKOV ....................................................... 20
7.6 STATUSNO SPOROČILO .......................................................................................... 21
8 RAZVOJNE FAZE ................................................................................................... 22
8.1 ZAČETNA FAZA ..................................................................................................... 22
8.2 FAZA NAČRTOVANJA ............................................................................................ 22
8.3 PROIZVODNA FAZA ............................................................................................... 22
8.4 NADZORNA FAZA .................................................................................................. 23
9 ZAKLJUČEK ............................................................................................................ 24
10 LITERATURA .......................................................................................................... 25
11 PRILOGE ................................................................................................................... 27
11.1 ZGOŠČENKA Z IZVORNO KODO .............................................................................. 27
11.2 NASLOV ŠTUDENTA .............................................................................................. 27
VII
SLIKOVNO KAZALO
Slika 2.1: Zasnova izgleda ..................................................................................................... 2
Slika 2.2: »Popestren« izgled ................................................................................................ 3
Slika 2.3: Končna podoba ...................................................................................................... 3
Slika 3.1: Shema spletnega portala ........................................................................................ 5
Slika 3.2: Vmesnik za registracijo in prijavo ........................................................................ 6
Slika 3.3: Uporabniška orodna vrstica s svojimi vmesniki ................................................... 6
Slika 3.4: Uporabniška orodna vrstica z uredniškimi funkcionalnostmi ............................... 6
Slika 3.5: Vsebinska orodna vrstica ter vmesnik za blog ...................................................... 6
Slika 3.6: Vsebinska orodna vrstica ter vmesnik za dogodke ............................................... 6
Slika 3.7: Vsebinska orodna vrstica ter vmesnik za galerijo ................................................. 6
Slika 3.8: Logotip društva z včrtano Fibonaccijevo spiralo .................................................. 7
Slika 3.9: Logotip spletnega portala z obrezano Fibonaccijevo spiralo ................................ 7
Slika 3.10: Paleta ozadij ........................................................................................................ 7
Slika 3.11: Besedilo glave ..................................................................................................... 8
Slika 3.12: Logo glave ........................................................................................................... 8
Slika 3.13: Osnova za meni ................................................................................................... 8
Slika 3.14: Dodatek glave ...................................................................................................... 8
Slika 3.15: Dodatek glave ...................................................................................................... 8
Slika 3.16: Posebno ozadje .................................................................................................... 8
Slika 4.1: Podatkovna baza spletnega portala ..................................................................... 10
Slika 5.1: Arhitektura .......................................................................................................... 13
Slika 6.1: Prikaz začetne strani ............................................................................................ 14
Slika 6.2: Splošni prikaz bloga ............................................................................................ 15
Slika 6.3: Pogled posameznega prispevka v blogu ............................................................. 15
VIII
Slika 6.4: Splošni prikaz dogodkov ..................................................................................... 15
Slika 6.5: Prikaz posameznega dogodka ter njegove lokacije ............................................. 15
Slika 6.6: Hrana za misli ..................................................................................................... 16
Slika 6.7: Splošni prikaz galerije ......................................................................................... 16
Slika 6.8: Prikazovanje video posnetka v galeriji................................................................ 16
Slika 6.9: Splošni prikaz kontaktov ..................................................................................... 17
Slika 6.10: Splošni prikaz foruma ....................................................................................... 17
Slika 7.1: Primer statusnega spročila za javne uporabnike ................................................. 21
IX
UPORABLJENE KRATICE
PHP – orodja za osebno spletno stran (angl. Hypertext Preprocessor, izvorno Personal
Home Page Tools)
MIT – Massachusetts inštitut za tehnologijo(angl. Massachusetts Institute of Technology)
SQL – strukturirani povpraševalni jezik (angl. Structured Query Language)
HTML – označevalni jezik za izdelavo spletnih strani (angl. HyperText Markup Language)
XML – razširljiv označevalni jezik (angl. Extensible Markup Language)
JSON – JavaScript objektni zapis (angl. JavaScript Object Notation)
PDF – dokument prenosljive oblike (angl. Portable Document Format)
DJ – didţej (angl. Disc Jockey)
HC – hedonistična kreativnost (angl. Hedonistic Creativity)
Stran 1
1 UVOD
V današnjem času so spletni portali zelo razširjeni. Uporabljajo se za objavljanje novic,
zabavo med prostim časom, komunikacijo, izmenjavo mnenj, iskanje pomoči in preprosto
deljenje osebnih dogodkov z drugimi uporabniki.
Spletni portali so bili v devetdesetih letih zelo iskano blago. Ko so postali spletni
brskalniki v poznih devetdesetih letih bolj razširjeni, so si vsa večja podjetja ustvarila svoj
spletni portal in s tem poskušala zasesti del internetnega trţišča[20].
Obstaja veliko vrst spletnih portalov kot so spletni portali podjetij, vlad, obveščevalnih
sluţb, borz in tudi raznih gostiteljev, ki ponujajo ţe narejene spletne portale. Primeri javnih
spletnih portalov so AOL, iGoogle, MSNBC, Netvibes in Yahoo![19].
V okviru diplomskega dela smo izdelali portal, prilagojen potrebam društvene organizacije
Hedonističnih Kreativcev, ki jo je ustanovila skupina dobrih prijateljev v namen širjenja
zabave in kulture med ljudi z motom »create, share ... enjoy«. Spletni portal jim bo sluţil
kot idealno komunikacijsko orodje za dokumentiranje ter arhiviranje preteklih dogodkov in
obveščanje ljudi po celotnem svetu o novih bliţajočih se dogajanjih. Celotni kreativni
nastanek tega spletnega portala je spremljalo veliko preobrazb in novih odkritij, ki so
opisane v nadaljnem delu diplomskega dela.
V drugem poglavju bomo predstavili prvotno pobudo in zamisel društva HC za izdelavo
spletnega portala. V tretjem poglavju smo predstavili celoten razvoj izgleda in gradnikov
spletnega portala. V četrtem poglavju si bomo ogledali zasnovo in opis uporabljene
podatkovne baze. V petem poglavju bomo predstavili ogrodje CakePHP. V šestem in
sedmem poglavju si bomo ogledali uporabniške in uredniške funkcionalnosti za
upravljanje s spletnim portalom. V osmem poglavju smo prešli vse faze razvoja celotnega
projekta. V devetem poglavju smo povzeli celoten potek dela iz naše ter iz uporabniške
strani.
Stran 2
2 IDEJA TER PRVI KORAKI
Ideja za spletni portal je nastala sočasno z idejo za ustanovitev društva, ki koristi spletni
portal. Glede izgleda portala je preteklo veliko razprav z društvom, saj so prvotni člani
imeli veliko zamisli [1]. Osnovno idejo in razvijanje podobe si lahko pogledate v
podpoglavjih 2.1 in 2.2. Poudarek je še posebej na funkcionalnostih spletnega portala, ki so
društvu v korist ter olajšajo določena dela [2]. Te omenjene funkcionalnosti so navedene v
podpoglavju 2.3.
Za realizacijo celotnega projekta smo potrebovali tudi spletno gostovanje [3], o katerem je
več napisano v podpoglavju 2.4.
2.1 Ideja ter prvoten videz in njegove preobrazbe
Prvotnih zamisli za izgled je bilo zelo malo. Osnovna ideja pri nastajanju spletnega portala
je bila preprostost in elegantnost (sl. 2.1). Izbrana barvna paleta je bila pri tem nekoliko
bolj ekstravagantna in po kasnejših ugotovitvah tudi zelo neprimerna in neuporabna.
Slika 2.1: Zasnova izgleda
Kljub kritikam smo skušali prvotni izgled (sl. 2.1) popestriti (sl. 2.2), kar je vodilo do
končne ugotovitve, da takšna barvna paleta in slog ne prideta v upoštev. Vizualni izgled je
bil namreč popolnoma nepregleden in utrujajoč za uporabnike.
Stran 3
Slika 2.2: »Popestren« izgled
Kasneje smo na podlagi nove iniciative izgled popolnoma prenovili. Nastala je zelo
kreativna podoba s privlačnim izgledom (sl. 2.3).
Slika 2.3: Končna podoba
2.2 Zahtevane funkcionalnosti
Člani društva so izrazili ţeljo po informiranju uporabnikov o društvenih dogodkih in
aktivnostih ter kje in kako se bo vse skupaj dogajalo. Izraţena je bila tudi zahteva, da bi
imeli preprost sistem komuniciranja za hitro obveščanje in kompleksnejši sistem
komuniciranja, ki omogoča bolj organizirano komunikacijo s celotnim društvom ter
Stran 4
posamezniki. Glede na te zahteve in podane predloge so se nato določile naslednje
funkcionalnosti:
- preprosti blog sistem za sprotno objavljanje društvenih dejanvnosti,
- sistem vodenja dogodkov za natančno določanje časa ter lokacij dogajanja in
moţnost povezave teh dogodkov z vsebino iz bloga ali spleta,
- napredna galerija za predstavitev slik in avdiovizualnega materiala,
- preprost sistem sporočil, ki je integriran v sam spletni portal za komunikacijo med
uporabniki,
- samostoječi forum, vgrajen v podobo spletnega portala.
2.3 Ureditev strežnika in gostovanja
Ponudnika za spletno gostovanje ni bilo potrebno dolgo iskat, saj je ta trg prenasičen.
Zanesli smo se na dobre izkušnje s ponudnikom [3] iz preteklosti, kar se je tudi skozi potek
celotnega projekta izkazalo za pravilno odločitev. Tamkajšnji zaposleni so nam nudili ne
samo takojšnjo uporabniško podporo, temveč tudi pomoč pri določenih razhroščevanjih.
Stran 5
3 VIDEZ
Končna podoba je bila v veliki večini zasnovana ročno in nato digitalizirana ter obdelana s
pomočjo orodja Adobe Photoshop CS5 kot je prikazano v podpoglavju 3.5. To orodje
vključuje veliko večino uporabniških vmesnikov, ki so predstavljeni v podpoglavju 3.3 in v
vseh ozadjih iz podpoglavja 3.4.
Posamezni razdelki celotne podobe spletnega portala so predstavljeni v podpoglavju 3.1. V
podpoglavju 3.2 je predstavljen logotip spletnega portala, ki je bil ustvarjen s tako
imenovanim pravilom »zlatega razmerja«.
3.1 Shema spletnega portala
Osnovni videz spletnega portala je razdeljen v dve skupini, kjer je vsebina statična in
dinamična. Ti dve skupini sestavljajo trije elementi, dva elementa, ki se ne spreminjata, v
statičnem delu ter vsebinski del, ki spreminja svoje ozadje in vsebino (sl. 3.1).
Slika 3.1: Shema spletnega portala
3.2 Uporabniški in uredniški vmesniki
Uporabniški vmesnik je razdeljen v tri večje skupine:
- meni, ki je predstavljen v podpoglavju 3.1,
- vmesnik za registracijo in prijavo (sl. 3.2) in
- uporabniška orodna vrstica, ki vsebuje vsa moţna opravila, ki so uporabniku na
razpolago (sl. 3.3).
Stran 6
Uredniški vmesnik je veliko bolj obširen. Sestavljata ga dve večji skupini orodij, ki imata
na razpolago ogromno različnih moţnosti:
- uporabniška orodna vrstica (sl. 3.3), ki ima na razpolago več opravil kot tista za
navadne uporabnike (sl. 3.4),
- vsebinska orodna vrstica, s katero lahko upravljamo blog (sl. 3.5), dogodke (sl.
3.6) in galerijo (sl. 3.7).
Slika 3.2: Vmesnik za registracijo in prijavo
Slika 3.3: Uporabniška orodna vrstica s
svojimi vmesniki
Slika 3.4: Uporabniška orodna vrstica z
uredniškimi funkcionalnostmi
Slika 3.5: Vsebinska orodna vrstica ter
vmesnik za blog
Slika 3.6: Vsebinska orodna vrstica ter
vmesnik za dogodke
Slika 3.7: Vsebinska orodna vrstica ter
vmesnik za galerijo
Stran 7
3.3 Logotip
Logotip spletnega portala (sl. 3.9) ter logo društva (sl. 3.8) sta narisana v pravilu zlatega
razmerja [8], ki ga lahko definiramo kot razmerje dveh daljic ali stranic pravokotnika.
Razmerje med najkrajšo in najdaljšo daljico je enako razmerju med najdaljšo daljico in
njuno vsoto. To razmerje je pribliţno 1.6180339887... S pomočjo tega lahko narišemo
Fibonaccijevo spiralo med kvadrati naraščajoče velikosti, ki so med seboj v zlatem
razmerju.
To zlato razmerje je navdušilo neštete matematike, arhitekte in slikarje ţe od davnih časov.
Nekateri trdijo, da je to najbolj opevano število v celotni zgodovini matematike.
Slika 3.8: Logotip društva z včrtano
Fibonaccijevo spiralo
Slika 3.9: Logotip spletnega portala z
obrezano Fibonaccijevo spiralo
3.4 Ozadja
Ozadja (sl. 3.10) se dinamično spreminjajo ter so barvno usklajena z menijem iz
podpoglavja 3.1. Tudi vsebina je posledično barvno usklajena z ozadji.
Slika 3.10: Paleta ozadij
Stran 8
3.5 Digitalizirani elementi
Določeni gradniki končnega videza so bili ustvarjeni na bolj kreativen način in šele nato
spremenjeni v digitalno obliko. Največ teh elementov sestavlja glavo spletnega portala in
meni. En element pa je uporabljen kot gradnik ozadja.
Slika 3.11: Besedilo glave
Slika 3.12: Logo glave
Slika 3.13:
Osnova za meni
Slika 3.14: Dodatek glave
Slika 3.15: Dodatek glave
Slika 3.16: Posebno ozadje
Stran 9
4 PODATKOVNA BAZA
Za izbiro vrste podatkovne baze je bilo potrebno upoštevati več dejavnikov. Ti so bili:
- katere vrste podatkovnih baz podpira ogrodje CakePHP [6],
- katere vrste podatkovnih baz ponuja naš spletni gostitelj [3],
- katere vrste podatkovnih baz podpira forum, ki je sočasno tudi kompatibilen s
ogrodjem CakePHP [7],
- baza, s katero se upravlja brez teţav in je zastonjska.
Glede na zgoraj navedene kriterije je ostala samo ena vrsta podatkovne baze. To je vedno
bolj popularna vrsta podatkovnih baz, ki deluje kot streţnik in ponuja sočasen dostop
veliko uporabnikom. Imenuje se MySQL [4]. Kot poizvedovalni jezik uporablja SQL [5],
ki nam omogoča zelo preprosto in hitro delo nad podatkovno bazo s svojimi ukaznimi
rutinami.
4.1 Zasnova podatkovne baze
Potrebno je bilo zasnovati dve ločeni podatkovni bazi. Prvo bazo smo potrebovali za
celoten spletni portal, drugo bazo pa za samostoječ forum, ki je podatkovno skorajda
neodvisen od spletnega portala.
Podatkovna baza za spletni portal je morala vsebovati naslednje entitete:
- uporabniki z atributi: ime (niz), priimek (niz), uporabniško ime (niz), geslo (niz),
email (niz), status (število),
- blog z atributi: naslov (niz), besedilo (niz), datum nastanka (datum), datum
spremembe (datum),
- komentarji na blogu z atributi: naslov (niz), besedilo (niz), datum nastanka
(datum), avtor (niz),
- dogodki z atributi: naslov (niz), besedilo (niz), datum dogodka (datum), povezava
(niz), lokacija (niz),
- sporočila z atributi: pošiljatelj (niz), prejemnik (niz), naslov (niz), besedilo (niz),
prebrano (število),
- galerija z atributom: celotno ime datoteke (niz).
Seveda je ta zasnova bila nepopolna. Končen izgled podatkovne baze je predstavljen v
podpoglavju 4.2 (sl. 4.1).
Podatkovna baza za forum je bila ţe urejena, potrebno jo je bilo še samo vstaviti in urediti
na streţniku MySQL.
Stran 10
4.2 Ureditev podatkovne baze
Baza spletnega portala je bila dokončno urejena proti koncu samega poteka dela (sl. 4.1),
saj so se določene vrednosti v entitetah in še celotne entitete naknadno dodajale. Baza
foruma ni potrebovala dodatnega urejevanja kot je omenjeno v podpoglavju 4.1.
Slika 4.1: Podatkovna baza spletnega portala
Stran 11
5 OGRODJE
Naše izbrano ogrodje je CakePHP. CakePHP je odprtokodno ogrodje, ki ga bomo
podrobneje opisali v podpoglavju 5.1. Ogrodje CakePHP je zasnovano po konceptu Ruby
on Rails, ki je odprtokodno ogrodje za hitro razvijanje spletnih aplikacij, zato vsebuje
preproste in uporabne metode za dostop do podatkov v podatkovni bazi. Te metode bomo
obdelali v podpoglavju 5.2. Ogrodje CakePHP nam omogoča še ločen prikaz podatkov kot
bo opisano v podpoglavju 5.3. Ta prikaz (sl. 3.1) je lahko razdeljen na en statični del
oziroma lupino ali predlogo in na dinamični del oziroma vsebino. Vsebina se sproti
spreminja oziroma se oblikuje glede na zahteve, ki jih pošiljamo gradnikom. Le te bomo
podrobneje pogledali v podpoglavju 5.4.
5.1 Predstavitev CakePHP
CakePHP je odprtokodno spletno ogrodje za razvijanje spletnih aplikacij, napisano v
spletnem programskem jeziku PHP. Ogrodje CakePHP je oblikovano po konceptih Ruby
on Rails ter uveljavljeno pod skupno MIT licenco [12]. Razvoj ogrodja CakePHP [9] se je
pričel v letu 2005, ko je Ruby on Rails postajal vedno bolj popularen. CakePHP ni direkten
prehod od Ruby on Rails za PHP, temveč je implementacija mnogih njenih koristnih
konceptov. Od samega začetka razvoja se je skupina razvijalcev zelo povečala, kar je tudi
prineslo mnogo podprojektov. Od tega sta najbolj popularna naslednja dva:
- CakeForge [10] je brezplačna storitev za odprtokodne razvijalce. Ponuja streţnika
za vodenje različic, sistema za razhroščevanje, razne vrste komunikacije in popolno
shranjevanje vseh moţnih podatkov.
- TheChaw [11] je odprtokodna aplikacija, razvita na CakePHP, za opravljanje
preprostih opravil, potrebnih za gostovanje kode, podajanje informacij in
pridobivanje odzivov s celega sveta.
5.2 Delo s podatkovno bazo
V ogrodju CakePHP lahko upravljamo z mnogimi vrstami podatkovnih baz, ampak kot je
razloţeno v poglavju 4, je naša izbrana baza vrste MySQL.
Za povezavo ogrodja CakePHP s podatkovno bazo imamo vse potrebne nastavitve v eni
datoteki »app/config/database.php« [6], kar tudi vključuje varnostno indentifikacijo, saj
imajo dandanes podatki največjo vrednost in jih je tudi zato potrebno primerno zaščititi.
Ogrodje CakePHP ima tudi svoj pravopisni sistem za povezovanje tabel z modeli [13].
Pravila za razredna imena modelov so takšna, da morajo biti ta imena v ednini in
»CamelCased«, kar pomeni, da so pisana brez presledkov in da se posamezne besede
pričnejo z veliko začetnico. V našem primeru je to »Blog«, »BlogComment« in
»BlogCategory«.
Stran 12
Za imena modelom dodeljenih tabel iz podatkovne baze pa so pravila drugačna. Imena
morajo biti v mnoţini, v primeru več besed pa so ločene s podčrtaji. V našem primeru je to
»blogs«, »blog_comments« in »blog_categories«.
Glede na pravopisna pravila se oblikujejo tudi avtomatsko ustvarjeni tuji ključi v tabelah.
Torej, če imamo povezavo med tabelo »blogs« in »blog_comments« bo tabela
»blog_comments« vsebovala tuj ključ »blog_id«.
Za osnovno uporabo ima ogrodje vgrajene metode za pridobivanje [14], shranjevanje [15]
in brisanje [16] podatkov iz naše podatkovne baze. Te metode so zelo uporabne, če se
ravnamo po zgoraj navedenih pravilih ter opravljamo naše podatkovne poizvedbe iz
krmilnikov do modelov, ki predstavljajo točno določene podatke. Naprimer:
$this->Blog->find('all');
Poizvedba nam vrne vse zapise v tabeli »blogs«.
Pri naprednejši uporabi pa je uporaba kompleksnejša in je potreben direkten pristop. Če
ţelimo narediti poizvedbo za vse komentarje, ki pripadajo določenemu vnosu v blog in pri
tem ne ţelimo ustvariti novega krmilnika ter modela ter jima dodeliti vseh ostalih metod,
ki smo jih uporabljali, enostavno definiramo novo funkcijo v razredu modela »Blog« ter
uporabimo ukaz:
$this->query('SELECT * FROM blog_comments WHERE id LIKE $iskan_id');
Tako lahko iz enega modela opravimo vse SQL poizvedbe nad vsemi tabelami v
podatkovni bazi, brez upoštevanja pravil poimenovanja.
5.3 Prikaz spletnega portala
Ogrodje CakePHP nam omogoča različne oblike izhoda zahtevanih podatkov [17]. Ti
podatki so najpogosteje v html, xml ali json obliki, vendar je moţen tudi pretok podatkov
in oblikovanje tega pretoka v datoteke, ki jih lahko uporabniki snamejo s spleta, kot
naprimer .pdf dokumente.
V našem primeru smo uporabnikom podatke podajali v obliki html. Ta prikaz je bil
sestavljen iz dveh delov (sl. 3.1).
Prvi del je statični del oziroma predloga, ki se ne spreminja. V tem delu se prikaţejo
podatki, ki morajo biti uporabniku ves čas na voljo.
Drugi del je dinamična vsebina oziroma »pogled«. Ta dinamična vsebina se oblikuje glede
na uporabnikove zahteve, ki se posredujejo krmilnikom, kjer se s pomočjo modelov
pridobi ţeljeni izhod, ki se nato posreduje v ţeljeni »pogled«. Ta se ponovno naloţi v
predlogo in uporabniku poda zahtevane podatke.
Ti podatki se lahko prikazujejo na dva različna načina.
Prvi način je preprost, saj podatke oziroma niz podatkov, ki bodo prikazu na razpolago,
nastavimo direktno v krmilniku. To storimo z metodo »set«, uporabimo pa jo lahko takole:
$this->set('BlogPosts', 'posts');
Drugi način je manj priporočljiv, saj lahko povzroči izgubo zmogljivosti ter odzivnosti
ogrodja ob uporabi v zankah ali čem podobnim. To je metoda »requestAction«, ki pa je
direkten klic določene funkcije v krmilniku ali modelu in izgleda takole:
Stran 13
$this->requestAction('/comments/latest');
5.4 Delovanje gradnikov ogrodja CakePHP
Ogrodje CakePHP je zasnovano na arhitekturni obliki »model, view, controller« oziroma
»model, pogled, krmilnik« [18].
Ta arhitektura omogoča ločitev uporabniškega pogleda od celotnega procesa obdelave
podatkov ter izvajanja metod nad njimi. V tem primeru nam pogled sluţi le kot izhod
podatkov ter vmesnik za posredovanje zahtev. Vse ostalo se odvija med ločenimi
komponentami modelov, ki skrbijo za dostop in opravljanje s podatki in krmilniki, ki
prejemajo uporabniške zahteve in izvajajo različne metode nad podatki, pridobljenimi od
modelov. Ti dve komponenti lahko popravljamo in menjujemo ločeno, brez da bi bilo
potrebno posegati v uporabniški prikaz podatkov (sl. 5.1).
Ta vrsta arhitekture je bila prvič omenjena leta 1979. Od takrat se je razvilo ogromno
različic, vendar je osnovna oblika še vedno popularna.
Ta arhitektura se uporablja v ogromno ogrodjih za razvijanje spletnih aplikacij v sledečih
programskih jezikih: ABAP Objects, Actionscript, C++, CFML, Groovy, Java, Javascript,
Informix 4GL, Lua, Perl, PHP, Python, Ruby, Smalltalk.
Slika 5.1: Arhitektura
Polne črte prikazujejo direkten prenos podatkov, črtkane pa prirejen prenos podatkov.
Posamezni gradniki arhitekture:
- »View« skrbi za prikaz ţeljenih oziroma posredovanih podatkov.
- »Controller« prejme uporabniško zahtevo in opravlja različne metode nad ţeljenim
izhodom ter posreduje podatke pogledu.
- »Model« predstavlja podatke tabel v podatkovni bazi ter nam omogoča dostop do
poizvedb iz drugih tabel.
Stran 14
6 UPORABNIŠKE FUNKCIONALNOSTI
V tem poglavju bomo predelali vse funkcionalnosti, ki so bile zahtevane za spletni portal
in so na razpolago javnim ter registriranim uporabnikom.
6.1 Splošne funkcionalnosti registriranih uporabnikov
Vsem registriranim uproabnikom in urednikom so na razpolago sledeče funkcionalnosti:
- login($x = null) – Prijava v spletni portal
Ob prijavi v spletni portal se preverijo zahtevani indentifikacijski podatki, v
primeru napačnega vnosa je uporabnik o tem primerno obveščen. V obeh primerih
uporabnik ostane na strani oziroma prispevku, kjer se je skušal vpisati.
- logout($x = null) – Odjava iz spletnega portala
Če je uporabnik bil prijavljen v spletni portal, ga odjavi in vrne na lokacijo, kjer se
je odjavil, če ta lokacija ni varnostno zaščitena. V nasprotnem primeru ga o tem
obvesti ter preusmeri na najbliţjo javno lokacijo.
- messages() – Prejeta sporočila in ustvarjanje novih sporočil
Uporabnik lahko preveri svoja pretekla in nova sporočila ter drugim uporabnikom
pošlje nova sporočila. Prikazana prejeta sporočila so primerno razvrščena ter
oblikovana, če so bila ţe prebrana ali ne.
- viewmessage($id = null) – Prikaz prejetega sporočila
Uporabnik lahko posamezna sporočila, ki so mu bila namenjena in obstajajo v
podatkovni bazi, prebere, v nasprotnem primeru je primerno obveščen.
- deleteMessage($id, $y) – Brisanje sporočil
Uporabnik lahko izbrano lastno sporočilo izbriše, če le to obstaja v podatkovni
bazi, v nasprotnem primeru je primerno obveščen.
6.2 Začetna stran
Na začetni strani (sl. 6.1) je prikazano kratko pozdravno besedilo, slika na trenutno
tematiko dogajanja v društvu in naslovi ter povezave do zadnjih petih prispevkov v blogu.
Slika 6.1: Prikaz začetne strani
Stran 15
6.3 Aktualna dogajanja
V aktualnih dogajanjih (sl. 6.2) oziroma blogu so prikazane vse dodane objave kot v
spletnem dnevniku. Vanj se lahko dodajajo besedila, slike in veliko različnega audio-
vizualnega materiala.
Za jasen pregled je blog našega spletnega portala urejen v kategorije, ki jih upravljalci
določajo sami.
Posamezne prispevke je moţno komentirati in komentarje urejati (sl. 6.3).
Slika 6.2: Splošni prikaz bloga
Slika 6.3: Pogled posameznega prispevka v
blogu
6.4 Dogodki
V dogodkih so prikazana dogajanja kot so razni koncerti, gledališki nastopi, nastopi DJ-
jev, plesni nastopi, delavnice in razne druge stvari.
Prikaz je razdeljen na dva dela, na pretekle in prihajajoče dogodke, ki so razvrščeni po
datumu dogodka (sl. 6.4).
Ob pogledu posameznih dogodkov je omogočen tudi prikaz lokacije dogodka (sl. 6.5).
Slika 6.4: Splošni prikaz dogodkov
Slika 6.5: Prikaz posameznega dogodka ter
njegove lokacije
Stran 16
6.5 Hrana za misli
Hrana za misli (sl. 6.6) bo v prihodnje vključena kot društveni projekt pri sodelovanju
dogajanja EPK (Evropske Prestolnice Kulture) in bo sluţila kot zbiralnik kreativnih idej ter
ustvarjanj tujih in domačih avtorjev.
Slika 6.6: Hrana za misli
6.6 Galerija
V galeriji (sl. 6.7) je na zelo preprost način prikazan ves slikovni ter avdio-vizualni
material (sl. 6.8) društva. Za delovanje celotne galerije je potreben samo vstavek Adobe
Flash Player. Prednost tovrstne galerije je, da preprečuje zlorabo prikazanih podatkov, saj
ima dostop do njih samo ta galerijski vmesnik.
Slika 6.7: Splošni prikaz galerije
Slika 6.8: Prikazovanje video posnetka v
galeriji
Stran 17
6.7 Kontakti
V kontaktih so prikazane splošne informacije za obiskovalce (sl. 6.9), da lahko
kontaktirajo društvo ali posamezne skrbnike spletnega portala.
Slika 6.9: Splošni prikaz kontaktov
6.8 Forum
Forum (sl. 6.10) je za javne uporabnike primeren samo za pridobivanje podatkov, saj v
primeru, če niso prijavljeni, ne morejo dodajati prispevkov. Prijavljeni uporabniki dobijo
tudi dostop do društvenega dela foruma, kjer se razpravlja o društvenih zadevah.
Slika 6.10: Splošni prikaz foruma
Stran 18
7 UREDNIŠKE FUNKCIONALNOSTI
Uredniki imajo veliko različnih moţnosti za dodajanje in obdelavo podatkov, prikazanih
uporabnikom. V tem poglavju so predstavljene vse uredniške funkcinalnosti in njihovo
delovanje.
7.1 Urejanje in dodajanje podatkov v aktualna dogajanja
Za urejanje aktualnih dogajanj mora urednik imeti primerne privilegije. Te ima, če je
urednik aktualnih dogajanj, moderator ali administrator. V ostalih primerih mu je z
varnostnimi pogoji onemogočen vizualni prikaz uredniškega orodja ter direktni dostop do
krmilniških metod.
Uredniki imajo na razpolago naslednje krmilniške metode:
- add() - Dodajanje novih prispevkov
Če so izpolnjena vsa zahtevana vnosna polja, se podatki zapišejo v bazo podatkov.
Pri tem je urednikom na razpolago vstavek TinyMCE, ki omogoča uporabo
obogatenega teksta za vnos vsebine.
- edit($id = null, $returnTo = null) - Urejanje ţe vnesenih prispevkov
Ob izbiri prispevka, ki ga ţelimo urejati, se ta poišče v bazi in če obstaja, se vnosna
polja napolnijo z ţe obstoječimi podatki. V nasprotnem primeru se urednika
primerno obvesti. Ob končanem urejanju se ponovno preverijo vsa zahtevana
vnosna polja in nato se ţe obstoječi zapis v podatkovni bazi posodobi z novimi
podatki. Urednik lahko urejanje tudi prekine. V obeh primerih se urednik vrne na
začetno stran, kjer je dal zahtevo za urejanje prispevka.
- delete($id) - Brisanje prispevkov
Če prispevek obstaja, bo iz baze podatkov odstranjen. V napsrotnem primeru bo
urednik primerno obveščen.
- addCathegory($title) - Dodajanje kategorij
Nova kategorija bo dodana v bazo podatkov samo v primeru, če ta še ne obstaja, v
nasprotnem primeru bo urednik primerno obveščen.
- delete_category($id) - Brisanje ţe obstoječih kategorij
Če kategorija obstaja, bo iz baze podatkov odstranjena. V nasprotnem primeru bo
urednik primerno obveščen. Vsi prispevki, ki so bili v izbrisani kategoriji, se bodo
ohranili kot nerazvrščeni prispevki in jim bo moţno kategorijo ponovno dodeliti.
- delete_comment($id, $returnTo) - Brisanje lastnih in drugih komentarjev na
prispevek
Če komentar obstaja, bo iz baze podatkov odstranjen. V nasprotnem primeru bo
urednik primerno obveščen. V vsakem primeru se urednik vrne na začetno stran,
kjer je dal zahtevo za brisanje komentarja.
Stran 19
7.2 Urejanje in dodajanje podatkov v dogodke
Za urejanje dogodkov mora urednik imeti primerne privilegije. Te ima, če je urednik
dogodkov, moderator ali administrator. V ostalih primerih mu je z varnostnimi pogoji
onemogočen vizualni prikaz uredniškega orodja ter direkten dostop do krmilniških metod.
Uredniki imajo na razpolago naslednje krmilniške metode:
- add() - Dodajanje novih dogodkov
Podatki se zapišejo v bazo podatkov, če so izpolnjena vsa zahtevana vnosna polja.
Pri tem je urednikom na razpolago več vstavkov:
- Vstavek TinyMCE, ki omogoča uporabo obogatenega teksta za vnos vsebine.
- Vstavek GoogleMaps, ki omogoča določanje lokacije dogodka z enojnim
klikom na zemljevid.
- Vstavek TimePicker, ki omogoča izbiro datuma in časa dogodka z uporabniku
prijaznim vmesnikom.
- edit($id = null, $returnTo = null) - Urejanje ţe vnesenih dogodkov
Ob izbiri dogodka, ki ga ţelimo urejati, se ta poišče v bazi in če obstaja, se vnosna
polja napolnijo z ţe obstoječimi podatki. To vključuje tudi vmesnik GoogleMaps
ter TimePicker. V nasprotnem primeru se urednika primerno obvesti. Ob končanem
urejanju se ponovno preverijo vsa zahtevana vnosna polja in nato se ţe obstoječi
zapis v podatkovni bazi posodobi z novimi podatki. Urednik lahko urejanje tudi
prekine. V obeh primerih se urednik vrne na začetno stran, kjer je dal zahtevo za
urejanje dogodka.
- delete($id) - Brisanje dogodkov
Če dogodek obstaja, bo iz baze podatkov odstranjen. V nasprotnem primeru bo
urednik primerno obveščen.
7.3 Urejanje in dodajanje podatkov v galerijo
Za urejanje galerije mora imeti urednik primerne privilegije. Te ima, če je urednik galerije,
moderator ali administrator. V ostalih primerih mu je z varnostnimi pogoji onemogočen
vizualni prikaz uredniškega orodja ter direktni dostop do krmilniških metod.
Uredniki imajo na razpolago naslednje krmilniške metode:
- albums() – Dodajanje novih albumov
Nov album se doda v bazo podatkov, če so izpolnjena vsa zahtevana vnosna polja
in če ne obstaja noben album z enakim imenom. V nasprotnem primeru bo urednik
primerno obveščen.
- edit($id = null) - Urejanje ţe dodanih albumov
Ob izbiri albuma, ki ga ţelimo urejati, se ta poišče v bazi. Če obstaja, se vnosna
polja napolnijo z ţe obstoječimi podatki. V nasprotnem primeru se urednika
primerno obvesti. Ob končanem urejanju se ponovno preverijo vsa zahtevana
Stran 20
vnosna polja in nato se ţe obstoječi zapis v podatkovni bazi posodobi z novimi
podatki. Urednik lahko urejanje tudi prekine.
- delete($id) – Brisanje albumov
Če album obstaja, bo odstranjen iz baze podatkov. V nasprotnem primeru bo
urednik primerno obveščen. Iz baze bodo odstranjene tudi vse slike tega albuma in
datoteke iz streţnika.
- upload($id = null) – Dodajanje slik
Ob izbiri obstoječega albuma lahko urednik poljubno dodaja slike ter avdio-
vizualni material. Ob primernosti podatkov bodo le ti dodani v podatkovno bazo ter
naloţeni na določeno lokacijo na streţniku. V nasprotnem primeru bo urednik
primerno obveščen.
- manage($id) – Uredniški prikaz slik v albumu
Ob izbiri obstoječega albuma so prikazane vse slike tega albuma ter moţnosti, ki
jih urednik lahko izvaja.
- deleteImage($id, $album_id) – Brisanje slik
Ob izbiri obstoječega albuma in obstoječe slike bo njen zapis odstranjen iz baze
podatkov ter bo odstranjena datoteka iz streţnika. V nasprotnem primeru bo
urednik primerno obveščen.
- thumbnail($id, $album_id) – Določanje prikazne slike albuma
Ob izbiri obstoječega albuma in obstoječe slike bo ta slika obrezana ter na novo
nastali obrezek shranjen na streţnik in uporabljen kot prikazna slika izbranega
albuma. V nasprotnem primeru bo urednik primerno obveščen.
Za delovanje galerije je na določeni lokaciji potreben dokument xml, v katerem so
zapisane vse reference do slik ter albumov, ki jih ţelimo prikazati. Te reference se
spreminjajo z metodo RefreshGallery(), ki se izvede vzporedno z vsako od zgoraj
naštetih metod.
7.4 Obvestila
Za pošiljanje obvestil mora imeti urednik primerne privilegije. Te ima, če je moderator ali
administrator. V ostalih primerih mu je z varnostnimi pogoji onemogočen vizualni prikaz
uredniškega orodja ter direktni dostop do krmilniških metod.
Obvestila so sporočila, ki se pošljejo vsem uporabnikom, vključno pošiljatelju.
7.5 Upravljanje uporabnikov in urednikov
Za upravljanje uporabnikov mora imeti urednik primerne privilegije. Te ima, če je
moderator ali administrator. V ostalih primerih mu je z varnostnimi pogoji onemogočen
vizualni prikaz uredniškega orodja ter direktni dostop do krmilniških metod.
Uredniki imajo na razpolago naslednje krmilniške metode:
Stran 21
- changeStatus($id, $status) – Spreminjanje uporabniškega in uredniškega
statusa
Urednik ima na razpolago seznam, v katerem je zabeleţen trenutni status
uporabnika ali urednika, ter izbiro ostalih statusov, ki so mu na razpolago. Le
urednik s statusom administratorja lahko določa ali odvzema statuse
administratorjem in moderatorjem. Moderator tega ne more. Na izbiro je tudi
moţnost onemogočenja računa, kar ne odstrani uporabniškega računa, vendar
uporabniku odvzame moţnost prijave v svoj račun.
- aktiviraj($id) – Aktiviranje novih uporabnikov
Urednik lahko ob registraciji novega uporabnika njegov račun aktivira, saj je ta
privzeto onesposobljen, dokler niso njegovi podatki preverjeni.
- delete($id) – Brisanje uporabnikov in urednikov
Urednik lahko odstrani obstoječe uporabnike in urednike. Samo urednik s statusom
administratorja lahko odstrani moderatorje in administratorje. Moderator tega ne
more.
7.6 Statusno sporočilo
Pri popolnoma vseh uredniških in uporabniških storitvah, ne glede na določene pravice, je
vsem na voljo statusno sporočilo, ki vse obvešča o trenutnem dogajanju, ki ga opravljajo
na spletnem portalu.
Slika 7.1: Primer statusnega spročila za javne uporabnike
Stran 22
8 RAZVOJNE FAZE
Celoten projekt je bil zelo obširen, zato je tudi prešel skozi veliko faz razvoja, ki jih bomo
pogledali v naslednjih podpoglavjih.
8.1 Začetna faza
V začetni fazi smo se posvetovali z uporabniki in se pozanimali, kaj potrebujejo. V tem
primeru so uporabniki imeli dobro predstavo o tem, kaj si ţelijo. Opravljene so bile sledeče
točke:
- zamisel, kako rešiti zastavljene zahteve,
- nabiranje predlogov in idej, kako se lotiti in izvesti projekt,
- pregled nad ţe izvedenimi projekti.
8.2 Faza načrtovanja
V fazi načrtovanja so potekali še manjši posveti z oţjo skupino uporabnikov. Tukaj je
prišlo do manjših nesporazumov, ki pa smo jih hitro razrešili. Opravljeno je bilo sledeče:
- iskanje gostitelja,
- iskanje primernega ogrodja za izdelavo spletnega portala,
- iskanje primernega delovnega okolja ter drugih pomoţnih aplikacij,
- nabiranje predlogov za izgled spletnega portala.
8.3 Proizvodna faza
V proizvodni fazi smo vso delo opravljali sami. Potrebovali smo le par kratkih posvetov za
razrešitev nejasnosti pri določenih funkcionalnostih. Pojavile so se tudi teţave z ogrodjem
na oddaljenem streţnuku, vendar smo jih s pomočjo tehničnih svetovalcev gostitelja hitro
odpravili. Opravljene so bile sledeče stvari:
- zasnova in izvedba podatkovne baze,
- izdelava materiala za podobo spletnega portala,
- izdelava osnovnega izgleda spletnega portala,
- izdelava posameznih komponent ogrodja,
- sprotno razhroščevanje,
- prenos spletnega portala iz lokalnega streţnika na spletni streţnik.
Stran 23
8.4 Nadzorna faza
V nadzorni fazi je bilo vso delo ţe zaključeno, zato smo lahko pričeli spremljati dogajanje
na spletnem portalu. Le to se je odvijalo brez večjih teţav. Pojavile so se le manjše teţave
glede določenih varnostnih aspektov pri moderatorjih, ki pa so bile takoj odpravljene.
Opravljene so bile sledeče stvari:
- opazovanje delovanja spletnega portala ter uporabnikov,
- razhroščevanje spregledanih napak,
- opazovanje streţniške obremenitve,
- opazovanje obremenitve podatkovne baze,
- testiranje morebitnih varnostnih lukenj.
Stran 24
9 ZAKLJUČEK
V diplomskem delu smo opisali proces izdelave spletnega portala (oblikovna podoba,
načrtovanje podatkovne baze, uporabniške funkcionalnosti, uredniške funkcionalnosti). V
praktičnem delu smo z uporabo ogrodja CakePHP izdelali lasten portal. Uporabili smo
arhitekturo model, prikaz in krmilnik. Glede na obširnost projekta s spletnim portalom smo
prišli do veliko novih ugotovitev.
Ogrodje CakePHP je zelo razširjeno, zato najdemo na spletu veliko gradnikov, ki jih lahko
vključimo v lasten portal. Če ima uporabnik popolnoma nove zahteve, za katere še ne
obstajajo ustrezni gradniki je potrebno vloţiti precej napora v gradnjo le-teh. Največja
teţava je dokumentacija razvijalcev, ki je zelo slabo napisana in ni primerna za nekoga, ki
se s tem ogrodjem prvič sreča. Zato je na začetku potrebno poseči po vodičih drugih
programerjev, da lahko razumemo opise in razlage v dokumentaciji ogrodja.
Kljub začetnim teţavam se takoj opazijo prednosti ogrodja, kot je sporočanje napak,
manjkajočih datotek ter navodil, kako teţave rešiti.
V pomoč so nam tudi tako imenovani pomočniki, ki jih lahko poljubno vključimo v same
krmilnike. Naprimer pomočnik html nam pomaga pri hitri izdelavi spletnih obrazcev
Delo z uporabniki nam je bilo v veliko pomoč skozi celoten potek projekta. Vloţili so
ogromno lastnega truda v zasnovo spletnega portala, njegovo polnjenje in razhroščevanje.
Delo ter posveti z uporabniki so potekali brez večjih teţav ali komplikacij. Izpolnjene so
bile vse njihove zahteve, za kar so bili zelo hvaleţni.
Stran 25
10 LITERATURA
[1] Društvo Hedonističnih Kreativcev, Maribor, 11.10.2009,
Ţan Lebe – Zapisnik, str. 2, točka 4,
http://hedonistic-creativity.org/app/webroot/zapisniki/zapisnik0.pdf
(obiskano 11.10.2009).
[2] Društvo Hedonističnih Kreativcev, Maribor, 20.2.2010,
Ţiga Brdnik – Zapisnik, str. 1 - 2, točka 1,
http://hedonistic-creativity.org/app/webroot/zapisniki/zapisnik1.pdf
(obiskano 20.2.2010).
[3] Spletno gostovanje ter pomoč pri upravljanju streţniških opravkov,
https://www.bluehost.com/ (obiskano 16. 5. 2009).
[4] Splošen opis SQL programskega jezika,
http://en.wikipedia.org/wiki/SQL (obiskano 11.9.2010)
[5] Splošen opis MySQL streţniškega sistema,
http://en.wikipedia.org/wiki/MySQL (obiskano 11.9.2010).
[6] Dokumentacija ogrodja CakePHP za konfiguracijo dostopa do podatkovne baze,
http://book.cakephp.org/view/40/Database-Configuration (obiskano 16.3.2010).
[7] Spletna dokumentacija SimpleMachines foruma za podatkovne baze,
http://docs.simplemachines.org/index.php?topic=357.0 (obiskano 11.9.2010).
[8] Celoten opis in zgodovina zlatega razmerja,
http://en.wikipedia.org/wiki/Golden_ratio (obiskano 11.9.2010).
[9] Splošno o CakePHP, http://en.wikipedia.org/wiki/CakePHP (obiskano 12.9.2010).
[10] Podprojekt razvijalne ekipe CakePHP, http://cakeforge.org/ (obiskano 12.9.2010).
Stran 26
[11] Podprojekt razvijalne ekipe CakePHP, http://thechaw.com/ (obiskano 12.9.2010).
[12] Splošno o MIT licenci, http://en.wikipedia.org/wiki/MIT_License
(obiskano 13.9.2010).
[13] CakePHP dokumentacija za splošno opravljanje s podatki v podatkovni bazi,
http://book.cakephp.org/view/903/Model-and-Database-Conventions
(obiskano 13.9.2010).
[14] CakePHP dokumentacija za poizvedbe iz podatkovne baze,
http://book.cakephp.org/view/73/Retrieving-Your-Data (obiskano 16.3.2010).
[15] CakePHP dokumentacija za pisanje v podatkovno bazo,
http://book.cakephp.org/view/75/Saving-Your-Data (obiskano 16.3.2010).
[16] CakePHP dokumentacija za brisanje iz podatkovne baze,
http://book.cakephp.org/view/516/Deleting-Data (obiskano 16.3.2010).
[17] CakePHP dokumentacija o prikazovanju,
http://book.cakephp.org/view/1078/Views (obiskano 16.3.2010).
[18] Splošen opis MVC arhitekture,
http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller
(obiskano 13.9.2010).
[19] Splošno o spletnih portalih, http://en.wikipedia.org/wiki/Web_portal
(obiskano 15.9.2010).
[20] Splošen opis konca obdobja »Dot-com«,
http://en.wikipedia.org/wiki/Dot-com_bubble (obiskano 15.9.2010).
Stran 27
11 PRILOGE
11.1 Zgoščenka z izvorno kodo
11.2 Naslov študenta
Simon Gliha
Begova 53
2000 Maribor
Tel.študenta: 031 752 969
e-mail študenta: [email protected]
IZJAVA O ISTOVETNOSTI TISKANE IN ELEKTRONSKE VERZIJE
DIPLOMSKEGA DELA IN OBJAVI OSEBNIH PODATKOV DIPLOMANTOV
Ime in priimek diplomanta-tke: _______________________________________________
Vpisna številka: ___________________________________________________________
Študijski program: _________________________________________________________
Naslov diplomskega dela: ___________________________________________________
________________________________________________________________________
Mentor: __________________________________________________
Somentor: __________________________________________________
Podpisani-a ________________________ izjavljam, da sem za potrebe arhiviranja oddal
elektronsko verzijo zaključnega dela v Digitalno knjiţnico Univerze v Mariboru.
Diplomsko delo sem izdelal-a sam-a ob pomoči mentorja. V skladu s 1. odstavkom 21.
člena Zakona o avtorskih in sorodnih pravicah (Ur. l. RS, št. 16/2007) dovoljujem, da se
zgoraj navedeno zaključno delo objavi na portalu Digitalne knjiţnice Univerze v Mariboru.
Tiskana verzija diplomskega dela je istovetna elektronski verziji, ki sem jo oddal za objavo
v Digitalno knjiţnico Univerze v Mariboru.
Podpisani izjavljam, da dovoljujem objavo osebnih podatkov, vezanih na zaključek študija
(ime, priimek, leto in kraj rojstva, datum diplomiranja, naslov diplomskega dela) na
spletnih straneh in v publikacijah UM.
Datum in kraj: Podpis diplomanta-tke:
___________________________