Navodila za izdelavo diplomske naloge

Podobni dokumenti
Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje:

IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko Projekt delno financira Evropska unija, in sicer iz Evropskega socialnega sklada

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, Verzija 1.0

PowerPointova predstavitev

Navodila za uporabo programske opreme OTRS verzija Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov

Gimnazija Bežigrad Peričeva Ljubljana OPERACIJSKI SISTEM Predmet: informatika

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk

CT_SLO_White Paper_ENG

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1

Slide 1

Elektronska pošta

Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnov

Navodilo za urejanje zavarovanj po šifri podlage za zavarovanje 033 prek portala e-vem Ljubljana, oktober 2015

Chapter 1

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1,

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA

POMOČ PREDSTAVITEV EKOSKLADOVNICE UPORABLJENA TERMINOLOGIJA REGISTRACIJA V EKOSKLADOVNICO PRIJAVA V EKOSKLADOVNICO OBJAVA PRISPEVKA ISKANJE PRISPEVKOV

Zadeva: Ponudba

SharePoint GRADNIKI ZA IZBOLJŠANE UPORABNIŠKE IZKUŠNJE

Univerza v Ljubljani Fakulteta za računalništvo in informatiko Rok Erjavec Aplikacija za upravljanje identifikatorjev in podatkov v sistemu z NFC nadz

Splošni pogoji poslovanja 1. Uvodna določba 1) Splošni pogoji poslovanja so pravni dogovor med končnim uporabnikom (fizična ali pravna oseba, v nadalj

Smernice Sodelovanje med organi na podlagi členov 17 in 23 Uredbe (EU) št. 909/ /03/2018 ESMA SL

CODEKS IP KAMERA

Microsoft Word - eDenar - navodila za uporabo osebnega portala clana doc

PowerPointova predstavitev

SPLETNA PRIJAVA NA IZPITE ZA DIJAKE Dijaki se na izpite prijavite na novem portalu novi.lopolis.si z istim uporabniškim imenom in geslom, kot ga upora

Microsoft Word - M docx

PowerPointova predstavitev

NAVODILA ZA UPORABO K01-WIFI Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shr

David Zakelšek SPLETNA PODPORA UČENJU MATEMATIKE Diplomsko delo Maribor, september 2013

(Microsoft Word - Nakupovalni vodi\350 po angle\232kih spletnih trgovinah - IzAnglije)

PowerPointova predstavitev

Zbor vodnikov Planinske zveze Slovenije, je na podlagi 12

Microsoft Word - DGSF - Preverjanje veljavnosti ZPIZ e-dokumentov - V.1.0

Navodila Trgovina iCenter

(Microsoft Word - MSDN AA Navodila za \232tudente FS.doc)

Vaja 3 Kopiranje VM in namestitev aplikacij - strežnik SQL 2000 SP3a A. Lokalni strežnik Vmware ESX Dodajanje uporabnikov vajexx v skupino Vaje

Microsoft Word - pravilnik diploma_1.doc

PowerPoint Presentation

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

Na podlagi 24. in 25. člena Zakona o varstvu osebnih podatkov (Ur. list RS, št. 94/07), sprejema ravnatelj javnega zavoda Dijaški dom Nova Gorica nasl

Diapozitiv 1

Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj n

Navodila za uporabo aplikacije mlist - neposredni mentorji za Zdravniško zbornico Slovenije pripravila Gooya, interaktivni mediji, d.o.o. Ljubljana, m

NAVODILA ZA IZPOLNJEVANJE ELEKTRONSKEGA OBRAZCA ZA PRIJAVO IN PREKLIC DIGITALNIH POTRDIL Verzija Datum Opis sprememb dokumenta dokumenta

Računalniški praktikum Projektna naloga - Izdelava spletne strani Avtor: Matej Tekavčič Skupina: Matej Tekavčič - koordinator Simon Vrhovnik Tine Kavč

bob p. p Ljubljana Tel.: (cena klica na minuto je 1 z DDV) Posebni pogoji uporabe storitve moj bob

COBISS3/Medknjižnična izposoja

Vaja04_Ver02

Slajd 1

PowerApps

DES

VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC

PowerPoint Presentation

Spletno raziskovanje

Nejc Rebernjak RAZVOJ MOBILNE APLIKACIJE SHOPLY Diplomsko delo Maribor, september 2018

Vedno pod nadzorom, kjerkoli že ste

NASLOV PREDAVANJA IME IN PRIIMEK PREDAVATELJA

Microsoft Word - predpisi_ePoslovanje_1_.doc

N

Navodilo Telemach

Microsoft PowerPoint - seminar_ pptx

POROČILO

Šolski center Celje Srednja šola za kemijo, elektrotehniko in računalništvo ELEKTRONSKA REDOVALNICA RAZISKOVALNA NALOGA AVTORJI Aleš Budna Jure Ulaga

Pogodba

Microsoft Word - M doc

Navodila za študente

PowerPoint Presentation

Navodila za pripravo spletnih oglasov

Macoma katalog copy

PRAVILA IN POGOJI NAGRADNE IGRE NOGOMETNI UTRINEK SPLOŠNE DOLOČBE 1. člen Organizator nagradne igre je Nogometna zveza Slovenije, Predoslje 40 a, 4000

Navodila in pravila za sodelovanje v nagradni igri "Marcus & Martinus" 1. člen (splošne določbe) Ta pravila določajo način izvedbe nagradne igre»marcu

Microsoft Word - NAVODILA ZA UPORABO.docx

Orodje za izvoz podatkov

PowerPoint Presentation

Microsoft Word - P-2_prijava

Linksys PLEK500 User Guide

VISOKOŠOLSKI STROKOVNI ŠTUDIJ Računalništvo in informatika informatika POROČILO PRAKTIČNEGA IZOBRAŽEVANJA V podjetju Oblikovanje.com d.o.o. Murska Sob

Diplomsko delo visokošolskega strokovnega študija Informatika v organizaciji in managementu SPLETNA REŠITEV ZA ISKANJE TERMINOV IN LOKACIJ PREDAVANJ M

Microsoft PowerPoint - Sequi_SecDAy.ppt

N

Miluma Trader Miluma Trader navodila: V nadaljevanju sledijo osnovna navodila, kako začeli uporabljati Miluma Trader. 1. Preverite spletno stran Ta po

Interaktivni atlas slovenskih narecnih besed

Microsoft PowerPoint - petek A-sambolicbeganovic [Read-Only] [Compatibility Mode]

Navodila za nastavitev mail odjemalca na ios in Android napravah TELEFONI iphone (ios 12) Predlagamo, da do svoje študentske e-pošte dostopate s pomoč

Microsoft Word - M docx

SPLOŠNI POGOJI

Microsoft Word - CN-BTU4 Quick Guide_SI

Microsoft Word - Splosni pogoji za uporabnike storitve_ONA_ doc

Spoznajmo PowerPoint 2013

Microsoft Word - 021_01_13_Pravilnik_o_zakljucnem delu

PowerPointova predstavitev

EVROPSKA PRAVNA FAKULTETA V NOVI GORICI

Postopek poracuna 2007 za JU

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

Na podlagi 154

Arjan Topolovec PROFILIRANJE SPLETNIH APLIKACIJ Diplomsko delo Maribor, september 2010

IZVEDBENI SKLEP KOMISIJE - z dne marca o določitvi meril za ustanavljanje in vrednotenje evropskih referenčnih mrež in

Broj: UD-___-2009

Transkripcija:

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: Študijski program: Mentor: Simon Gliha UNI R-IT 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.13: Osnova za meni Slika 3.14: Dodatek glave Slika 3.12: Logo 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 audiovizualnega 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 DJjev, 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 avdiovizualni 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: simon.gliha@gmail.com

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: