navodila za pisanje diplomskih nalog um feri - core.ac.uk · skripta na strani odjemalca se ukvarja...

42
Mitja Rogl Sistem za spletno arhiviranje Diplomsko delo Maribor, september 2012

Upload: others

Post on 01-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Mitja Rogl

Sistem za spletno arhiviranje

Diplomsko delo

Maribor, september 2012

Page 2: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje

Diplomsko delo

Študent: Mitja Rogl

Študijski program: Univerzitetni študijski program

Informatika in tehnologije komuniciranja

Smer: Tehnologije komuniciranja

Mentor: Dr. Marko Hölbl

Somentor: Asistent Jaka Polutnik

Page 3: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

i

Page 4: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

ii

.

ZAHVALA

Zahvaljujem se mentorju za pomoč in

vodenje pri opravljanju diplomskega dela.

Prav tako se zahvaljujem somentorju za

koristne napotke med izdelavo

diplomskega dela.

Posebna zahvala velja staršem, ki so mi

omogočili študij, ter moji punci Tinkari, ki

mi je stala ob strani.

Page 5: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

iii

Sistem za spletno arhiviranje

Ključne besede: spletna aplikacija, PHP, MySQL, spletni arhiv, AJAX, JQuery, Javascript

UDK: 004.738.5:005.921.1¨746¨(043.2)

Povzetek

V diplomski nalogi je predstavljena aplikacija, ki smo jo razvili v sklopu diplomskega dela.

Spletna aplikacija je namenjena uporabnikom, ki želijo hraniti svoje osebne vsebine in

imeti pregled nad njimi.

Vsebina diplomske naloge obsega predstavitev primarnih tehnologij PHP in MySQL ter

drugih podpornih tehnologij. Prav tako zajema opis aplikacije od analize zahtev, do

predstavitev posameznih komponent aplikacije in predstavitve delovanja ter uporabe

spletne aplikacije.

Rezultat dela je spletna aplikacija, s katero lahko dodajamo različne vsebine. Aplikacija

nam omogoča pregled statističnih podatkov, hitro iskanje in pregledovanje vsebin v

arhivu.

Page 6: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

iv

System for web archiving

Key words: web application, PHP, MySQL, web archive , AJAX, JQuery, Javascript

UDK: 004.738.5:005.921.1¨746¨(043.2)

Abstract

The degree presents a web application, which we developed within the degree work. The

web application is designed for users who want to store their personal content and have a

control on them.

The degree’s content includes the presentation of the primary technologies PHP and

MySQL and other assistive technologies. It also includes a description of the application,

requirements analysis, presentation of individual application components and it also

presents how the application works.

The result of our work is web application, which enables us to add different contents. The

application enables us to view statistics, search faster and browse contents in the archive.

Page 7: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

v

KAZALO

1 UVOD ....................................................................................................................................... 1

2 SPLETNE APLIKACIJE .................................................................................................... 2

2.1 Programski jezik PHP .................................................................................................................. 3

2.2 Delovanje programskega jezika PHP ........................................................................................... 4

2.3 Podatkovna baza MySQL ............................................................................................................. 7

2.4 SQL ............................................................................................................................................... 9

3 SPLET 2.0 ............................................................................................................................ 11

3.1 Značilnosti Spleta 2.0 .................................................................................................................. 11

3.2 Tehnologija HTML5 in CSS3 ..................................................................................................... 13

3.3 Tehnologija Javascript ................................................................................................................ 13

3.4 Tehnologija AJAX ...................................................................................................................... 14

4 NAČRTOVANJE SPLETNE APLIKACIJE ............................................................... 17

4.1 Analiza zahtev ............................................................................................................................. 17

4.2 Podatkovna baza ......................................................................................................................... 18

4.3 Uporabniški vmesnik .................................................................................................................. 20

4.4 Poslovna logika ........................................................................................................................... 22

5 DELOVANJE SPLETNE APLIKACIJE ..................................................................... 24

5.1 Prijava in registracija ................................................................................................................. 24

5.2 Vpisovanje in pregled vsebin ...................................................................................................... 24

Page 8: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

vi

5.3 Statistika ..................................................................................................................................... 25

6 ZAKLJUČEK ...................................................................................................................... 27

7 VIRI IN LITERATURA ................................................................................................... 28

8 PRILOGE ............................................................................................................................. 30

8.1 CD z datotekami spletne aplikacije ............................................................................................ 30

KAZALO SLIK

SLIKA 2.1 MODEL DELOVANJA SPLETNE APLIKACIJE [6] ......................................................... 3

SLIKA 2.2 KLIC DINAMIČNE SPLETNE STRANI ......................................................................... 5

SLIKA 2.3 KLIC STATIČNE SPLETNE STRANI ............................................................................ 5

SLIKA 2.4 PRIMER IZVAJANJA PHP KODE ............................................................................... 7

SLIKA 2.5 SPLETNA APLIKACIJA Z UPORABO PODATKOVNE BAZE ........................................... 8

SLIKA 3.1 SESTAVLJANKA SPLET 2.0 .................................................................................... 12

SLIKA 3.2 KORAKI IZDELOVANJA SPLETNE APLIKACIJE ........................................................ 12

SLIKA 3.3 PRIMERJAVA KLASIČNE SPLETNE APLIKACIJE IN SPLETNE APLIKACIJE Z UPORABO

AJAX-A [10] ................................................................................................................. 15

SLIKA 4.1 E-R DIAGRAM SPLETNE APLIKACIJE ..................................................................... 19

SLIKA 4.2 PRIMARNI MENI IN SPODNJI DEL (NOGA) SPLETNE APLIKACIJE .............................. 21

SLIKA 4.3 PRIKAZ VSEBINSKEGA DELA SPLETNE APLIKACIJE ................................................ 21

SLIKA 4.4 STRUKTURA IZGRADNJE SPLETNE APLIKACIJE ...................................................... 23

SLIKA 5.1 REGISTRACIJA IN PRIJAVA V SISTEM ..................................................................... 24

SLIKA 5.2 PRIKAZ STATISTIČNIH PODATKOV ........................................................................ 26

Page 9: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

vii

SEZNAM KRATIC

PHP –– Hypertext Preprocessor/Hipertekstovni preprocesor

SQL –– Structured Query Language/Strukturiran poizvedovalni jezik

AJAX –– Asynchronous JavaScript And XML/Asinhroni JavaScript in XML

HTML –– HyperText Markup Language/Hipertekstovni označevalni jezik

XHTML –– Extensible HyperText Markup Language/Razširljiv Hipertekstovni

označevalni jezik

CSS –– Cascading Style Sheets/Kaskadni slog

ANSI –– American National Standards Institute/Ameriški Nacionalni inštitut za

standarde

ISO –– International Organization for Standardization/Mednarodna organizacija

za standardizacijo

API –– Application Programming Interface/Aplikacijski programski vmesniki

ASP –– Active Server Pages/Aktivne strežniške strani

IIS –– Internet Information Services/Internetne informacijske storitve

RSS –– Rich Site Summary/Zgoščeni povzetek strani

URL –– Uniform Resource Locator/Enolični krajevnik vira

Page 10: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

1

1 UVOD

V okviru diplomskega dela smo izdelali spletno aplikacijo, ki je namenjena shranjevanju

najrazličnejših vsebin. Namen diplomske naloge in aplikacije je omogočiti učinkovito

hranjenje vsebin na spletu, dosleden pregled nad njimi in hitro iskanje zahtevane vsebine.

Za razvoj te aplikacije smo se odločili zato, ker se v današnjem svetu soočamo s hrambo

velikih količin najrazličnejših vsebin doma, v službi ali kje drugje, in zato je preglednost

nad vsebinami pomanjkljiva, določene vsebine pa pogosto pozabljene.

V diplomski nalogi smo naredili spletno aplikacijo, ki bo hranila podatke o najrazličnejših

vsebinah (knjige, avdio vsebine, video vsebine, besedila, grafični izdelki ...). Spletna

aplikacija, ki smo jo izdelali, predstavlja arhiv vsebin, ki nam opisujejo dejanske fizične

vsebine. S to aplikacijo bo posamezniku omogočeno dodajanje ali urejanje osebnih vsebin.

Vse vsebine so zbrane na enem mestu in jih lahko na enostaven način spremenimo ali

odstranimo. Za gradnjo aplikacije smo uporabili strežniški skriptni jezik PHP v

kombinaciji s podatkovno bazo MySQL.

Pri gradnji spletnih aplikacij je priporočljivo, da jih zgradimo tako, da lahko katerokoli

funkcionalnost odvzamemo in brez večjih težav dodamo novo funkcionalnost. S tem si

olajšamo kasnejše spreminjanje in nadaljnje razvijanje aplikacije. To smo upoštevali tudi v

tej diplomski nalogi pri razvijanju zgoraj omenjene aplikacije.

V drugem in tretjem poglavju bomo predstavili in opisali tehnologije, ki smo jih uporabili

pri razvijanju spletne aplikacije. Izpostavili bomo nekaj njihovih prednosti in slabosti ter

njihovo uporabo v spletni aplikaciji. Sledi opis načrtovanja spletne aplikacije, ki se nanaša

na analizo zahtev in posameznih komponent gradnje spletne aplikacije. Na koncu sledi še

predstavitev delovanja in uporabe spletne aplikacije.

Page 11: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

2

2 SPLETNE APLIKACIJE

Spletna aplikacija je kakršnakoli aplikacija, ki uporablja spletni brskalnik v smislu

odjemalca in je dostopna preko omrežja [9].

Odjemalec je v tem primeru vsak računalnik, ki je povezan z gostiteljskim računalnikom

(strežnik). Strežnik predstavlja računalnik, ki v omrežju zagotavlja neko storitev.

Odjemalec se uporablja v okolju odjemalec–strežnik za sklicevanje na program, ki ga

oseba uporablja, da zažene aplikacijo. Okolje odjemalec–strežnik je tisto, v katerem več

računalnikov izmenjuje informacije, kot na primer vnos podatkov v bazo podatkov [9].

Spletne aplikacije pogosto uporabljajo kombinacijo skript na strani strežnika (ASP (ang.

Active Server Pages), PHP (ang. Hypertext Preprocessor), itd.) in skripte na strani

odjemalca (Javascript). Skripta na strani odjemalca se ukvarja s predstavitvijo informacij,

medtem ko se skripta na strani strežnika ukvarja z vsemi kompleksnimi zadevami, kot so

shranjevanje, obdelovanje in pridobivanje informacij. Spletne aplikacije so se pojavile že

preden si je splet pridobil svojo obširno popularnost. Prve spletne aplikacije so bile

preproste, a v poznih devetdesetih se je začel tudi razvoj v smeri bolj kompleksnih

aplikacij. Večina današnjih spletnih aplikacij temelji na zgradbi odjemalec–strežnik.

Obstajajo pa tudi aplikacije, ki ne potrebujejo strežnika za shranjevanje podatkov [9].

Spletne aplikacije ne potrebujejo posebnih posodobitev, saj se vse nove funkcionalnosti

izvajajo na strežniku in se samodejno posredujejo uporabnikom. Spletna aplikacija lahko v

primerjavi z namizno aplikacijo zagotovi enake funkcionalnosti in ima prednost, ker deluje

na več platformah hkrati. Za delovanje potrebuje le spletni brskalnik. Za svoje delovanje

potrebujejo malo ali nič prostora na uporabnikovem disku. Spletna aplikacija lahko na

primer deluje kot urejevalnik besedil, shranjuje podatke in omogoča, da prenesemo

dokumente na naš osebni trdi disk [9].

Struktura naše spletne aplikacije je zgrajena iz triplastnega aplikacijskega modela, kot

prikazuje Slika 2.1. Prva plast predstavlja spletni brskalnik ali uporabniški vmesnik, preko

katerega vnašamo in pregledujemo podatke. Druga plast predstavlja tehnologije strežniških

jezikov kot so PHP… in spletni strežnik. S pomočjo le teh se podatki obdelajo in shranijo v

Page 12: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

3

podatkovno bazo oziroma jih lahko pridobimo in prikažemo v spletnem brskalniku. Tretja

plast je podatkovna baza, ki hrani različne podatke.

Slika 2.1 Model delovanja spletne aplikacije [6]

V okviru drugega poglavja smo v nadaljevanju predstavili primarne tehnologije PHP v

kombinaciji s podatkovno bazo MySQL in poizvedovalni jezik SQL (ang. Structured

Query Language). Ostale podporne tehnologije, ki smo jih omenili v uvodu, smo

predstavili v drugem poglavju.

2.1 Programski jezik PHP

PHP je bila prvotno kratica, ki je označevala osebno domačo stran (ang. Personal Home

Page). Ko se je pri uporabi PHP-ja zvišala njegova uporabnost in zmogljivost (in ko je bil

uporabljen v različne profesionalne namene), je prešel pomen kratice PHP v

»Hipertekstovni Predprocesor« [18].

Na uradni strani PHP-ja lahko zasledimo, da je PHP skriptni jezik, ki se široko uporablja v

splošne namene, poleg tega pa je še posebej primeren za razvoj spleta in je lahko vgrajen

Page 13: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

4

v HTML (ang. HyperText Markup Language). Da je lahko PHP vgrajen v obliki HTML

pomeni, da lahko v standardno HTML stran dodamo PHP in na koncu dobimo dinamične

rezultate. Ta atribut omogoča, da je PHP lahko dostopen za vsakogar, ki pri svojem delu

uporablja HTML jezik [18].

PHP je skriptni jezik, ki je nasproten programskemu jeziku: PHP je bil zasnovan za

ustvarjanje spletnih skriptov in ne za ustvarjanje samostojnih aplikacij (čeprav lahko z

nekaj dodatnega truda tudi v PHP ustvarimo aplikacije). PHP skript začne teči šele po

dogodku; na primer, ko uporabnik že predloži obliko ali pa gre na URL (ang. Uniform

Resource Locator) [18].

PHP deluje na strani strežnika, kar pomeni, da za izvajanje le tega potrebujemo namenski

strežnik. Strežniška aplikacija, kot je Apache ali IIS (ang. Internet Information Services),

je nujno potrebna in vsi PHP skripti morajo biti dostopni preko URL naslova. Različica

križne-platformne tehnologije pomeni, da PHP deluje na različnih operacijskih sistemih

kot so Windows, Unix (in njegove številne različice) in Macintosh. Potrebno pa je

poudariti še eno pozitivno lastnost PHP-ja. To je, da PHP skripti, ki so napisani na enem

strežniku, običajno delujejo tudi na drugem strežniku, z malo spremembami ali pa celo

brez njih [18].

PHP predstavlja temelj naše spletne aplikacije, saj nam predstavlja celotno strukturo, s

katero smo zgradili spletno aplikacijo. Prednost pri samem kodiranju je bila ta, da za

razvoj nismo potrebovali nikakršnih posebnih razvijalskih orodij, saj smo lahko kodo pisali

neposredno v beležnico. Vendar smo zaradi večje podpore uporabili tudi druga brezplačna

razvijalska orodja.

2.2 Delovanje programskega jezika PHP

PHP je strežniško naravnan jezik, kar pomeni, da se napisana skripta izvaja na

gostiteljevem računalniku, ki ga imenujemo strežnik. Ko gre obiskovalec na spletno stran,

ki je napisana v PHP, jo strežnik prebere in procesira glede na scenarije, ki so zapisani v

skripti (Slika 2.2). PHP koda narekuje strežniku, kako naj se spletna stran sestavi, pošlje se

tudi HTML koda do spletnega brskalnika, ki jo brskalnik prebere kot standardno HTML

stran [18].

Page 14: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

5

Slika 2.2 Klic dinamične spletne strani

Slika 2.3 prikazuje klasični klic strani in odgovor na zahtevo. Če strežniška skriptna koda

ni vključena, lahko zaženemo HTML strani v brskalniku brez uporabe strežnika. Za spletni

brskalnik in za uporabnika ni opazne razlike med dokumentoma domov.html in

domov.php, toda bistvena razlika je v tem, kako je bila spletna stran zgrajena [18].

Slika 2.3 Klic statične spletne strani

Page 15: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

6

Spodaj so navedene nekatere glavne značilnosti PHP-ja, ki predstavljajo prednost pri

njegovem delovanju in uporabi:

Odprto koden.

Enostavno ga vključimo v HTML.

Platformno neodvisen, deluje na vseh platformah.

Enostavna povezava z MySQL.

Veliko spletne podpore.

Dokumentacija v različnih jezikih.

Enostaven za učenje.

Stabilen.

Enostavna povezava z uporabnimi knjižnicami.

Visok nivo varnosti [17].

V PHP poznamo proceduralno in objektno orientirano programiranje. Slednje je

namenjeno za ponovno uporabo in lažje vzdrževanje ter pregledovanje. V okviru PHP se je

razvilo tudi veliko okvirov, ki nam omogočajo gradnjo blokov in oblikovno strukturo za

hiter razvoj aplikacij. Okvirji kot so CakePHP, Symfony, CodeIgniter, Yii Framework in

Zend okvirji omogočajo podobne funkcionalnosti kot drugi aplikacijski okvirji.

Spodnja Slika 2.4 prikazuje izvajanje PHP kode, ki se izvede na strežniku in se nato pošlje

na uporabnikov brskalnik v obliki HTML. HTML se dinamično sestavi na strežniku.

V času razvijanja aplikacije nam je bila v veliko pomoč spletna podpora, ki nam je nudila

veliko pomoči in primerov pri gradnji spletne aplikacije.

Page 16: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

7

Slika 2.4 Primer izvajanja PHP kode

2.3 Podatkovna baza MySQL

Podatkovna baza je skupek podatkov, ki opisujejo isto temo oz. cilj. Uporabnik dostopa do

teh podatkov, ne da bi moral vedeti, kako so ti podatki organizirani v podatkovni bazi. Do

te podatkovne baze lahko dostopajo le uporabniki, ki imajo dovoljen dostop [1].

MySQL je svetovno znana odprtokodna podatkovna baza. Najpogosteje se uporablja v

kombinaciji s PHP. MySQL programska oprema se nahaja v podatkovnem strežniku, ki

shranjuje dejanske podatke [19].

MySQL je relacijska baza podatkov, ki lahko deluje kot samostojen podatkovni strežnik ali

pa v kombinaciji z ostalimi tehnologijami. Vse poizvedbe se izvršujejo z jezikom SQL [2].

MySQL odlikuje visoka zanesljivost, hitro delovanje, prilagojenost in nenehen razvoj.

Strežnik MySQL lahko upravljamo na dva načina: s pomočjo grafičnega uporabniškega

vmesnika (MyAdmin,MySQL Front …) ali pa z ukazno vrstico. Slednje je počasnejše in

pri veliki bazi podatkov postane tudi precej nepregledno [2].

Z vključitvijo podatkovne baze v spletno aplikacijo je lahko nekaj podatkov generiranih s

strani PHP, pridobljenih iz MySQL, kot to prikazuje Slika 2.5. To omogoča, da je vsebina

Page 17: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

8

na strani generirana dinamično in je tudi bolj prilagodljiva, namesto, da je direktno

zapisana v HTML. MySQL je odprtokodna aplikacija, podobno kot PHP – to pomeni, da je

namenjena za prosto uporabo in z možnostjo direktnega spreminjanja izvorne kode [18].

PHP nam v kombinaciji s podatkovno bazo MySQL omogoča hitro in zanesljivo

delovanje, kot bomo tudi kasneje spoznali. Prav tako ima MySQL integriranih nekaj

funkcionalnosti v obliki generiranja kode PHP, kar nam je še dodatno olajšalo delo pri

razvijanju aplikacije.

Slika 2.5 Spletna aplikacija z uporabo podatkovne baze

Spodaj smo navedli nekatere glavne značilnosti, ki ponazarjajo, zakaj smo uporabili

podatkovno bazo MySQL.

Glavne značilnosti so:

Večprocesorski način delovanja.

Podpira različne programerske vmesnike.

Podpira različne operacijske sisteme.

Podpira več različnih in daljših nizov v stolpcih.

Hitro združevanje podatkov.

Podpora funkcijam SQL z lastno optimizirano knjižnico.

Mešanje tabel iz različnih zbirk pri povpraševanju za podatki.

Podpira različne pisave in nabore znakov.

Page 18: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

9

Fiksna in prilagodljiva dolžina vpisov.

Pomoč v spletni obliki.

2GB+ podatkov na tabelo.

Licenca GNU.

Podpira različne nabore znakov [15].

2.4 SQL

SQL je standarden, interaktiven in programski jezik za pridobivanje informacij in

posodabljanje informacij v podatkovni bazi. Čeprav je SQL ANSI (ang. American

National Standards Institute) in ISO (ang. International Organization for Standardization)

standard, veliko podatkovnih baz podpira lastniške SQL razširitve standardnega jezika

[13].

SQL jezik se ne uporablja za splošne namene, kot npr. C++ ali Java. Namesto tega je

strogo namenjen delu s podatki v relacijskih bazah [16].

S SQL lahko [16]:

Ustvarimo bazo, z vključno vsemi tabelami in relacijami.

Napolnimo podatkovne tabele.

Spremenimo podatke v tabelah.

Brišemo podatke iz tabel.

Pridobimo specifične informacije iz tabel.

Odobravamo in preklicujemo dostop do podatkovnih tabel.

Zaščitimo tabele pred korupcijo zaradi možnih konfliktov ali uporabniških napak.

Navedli smo nekaj osnovnih SQL ukazov za delo z bazo, ki prikazujejo uporabo SQL

ukazov. SELECT ukaz je namenjen za pridobivanje podatkov iz baze. Z UPDATE

ukazom posodobimo obstoječe podatke, ki so že v podatkovni bazi. DELETE ukaz je

namenjen brisanju podatkov iz podatkovne baze. Ukazom SELECT, UPDATE in

DELETE lahko dodamo tudi WHERE stavek, ki omogoča dodatno filtriranje podatkov.

Z INSERT ukazom izberemo in dodamo podatke v podatkovno bazo.

Page 19: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

10

Primeri uporabe osnovnih SQL ukazov

SELECT (izbiranje)

SELECT *

FROM uporabniki

WHERE Uporabnisko_ime='Mico' and Geslo='Rogl'

UPDATE (posodabljanje)

UPDATE uporabniki

SET Ime='Mitja', Priimek='Rogl',

Email='[email protected]',Uporabnisko_ime='Mico'

WHERE Uporabnisko_ime='Mico'

DELETE (brisanje)

DELETE FROM uporabniki

WHERE Uporabnisko_ime='Mico'

INSERT (dodajanje)

INSERT INTO uporabniki

VALUES('','Mitja','Rogl','[email protected]','Mico','Rogl')

Page 20: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

11

3 SPLET 2.0

Pojem Splet 2.0 razumemo kot drugo generacijo svetovnega spleta. Splet 2.0 v ospredje

postavlja:

splet kot platformo,

splet udeležencev,

večjo dinamičnost in boljšo organizacijo spletnih medijev.

Termin ne temelji na spremembi specifikacij, ampak na spremembah v dojemanju, razvoju

in uporabi svetovnega spleta [11].

3.1 Značilnosti Spleta 2.0

Pri spletu 2.0 se uporabljajo standardi HTML in CSS (ang. Cascading Style Sheets), saj to

omogoča delo v številnih platformah in pomaga pri večji dostopnosti. AJAX (ang.

Asynchronous JavaScript And XML) tehnologija se uporablja za gradnjo bogatih

uporabniških vsebin. Z uporabo AJAX so lahko spletne strani bolj funkcionalne in

intuitivne. V spletu 2.0 se podatki izmenjujejo z uporabo spletnih virov in spletnih storitev.

To pomeni, da enostavno prejemamo posodobitve vsebin iz spletnih mest, ki uporabljajo

spletne vire (npr. RSS (ang. Rich Site Summary)). Poleg tega lahko spletne storitve

omogočajo, da ena stran pridobi podatke iz drugih mest. V spletne strani pogosto

vključimo orodje za socialno mreženje, kot so npr. blogi in forumi, ki omogočajo

komuniciranje uporabnikov med seboj [20].

Čeprav nobena od teh funkcij ali vidikov razvoja, ki jih uporabljamo za izraz splet 2.0, ni

nova, opisuje sedanjo generacijo spletnih strani, ki dobro izkoristijo HTML in CSS.

Vendar pa to ne pomeni, da je stran, ki uporablja katero od teh funkcij, nujno tudi dobra

[20]. V naši spletni aplikaciji smo uporabili veliko elementov HTML5 in CSS3, ki so

naredili stran bolj bogato, s tem pa smo tudi izboljšali uporabniško izkušnjo.

Kot prikazuje spodnja Slika 3.1, vidimo tri glavne sestavine, ki predstavljajo splet 2.0:

Page 21: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

12

Preporod spletnega gospodarstva.

Nova raven tehnološke interaktivnosti med spletnimi stranmi in storitvami.

Digitalni domorodci predstavljajo novo družbo, ki izhaja iz nove vrste spletnih

skupnosti in socialnih mrež (spletni sistemi).

Slika 3.1 Sestavljanka splet 2.0

V okviru spleta 2.0 in razvijanja naše aplikacije smo se držali načela, kot ga prikazuje

naslednja Slika 3.2, s čimer smo olajšali spreminjanje in vzdrževanje spletne aplikacije.

Slika 3.2 Koraki izdelovanja spletne aplikacije

Splet 2.0

Ljudje Digitalni

domorodci

Proces Internetna ekonomija

Tehnologija Bralno/Pisalni

splet

HTML

vsebina

CSS Predstavitev

Javascript Obnašanje

Bogata uporabniška izkušnja

Page 22: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

13

3.2 Tehnologija HTML5 in CSS3

Tehnologija HTML5 je zadnja iteracija označevalnega jezika, ki vsebuje nove funkcije oz.

izboljšave obstoječih funkcij. Pri HTML5 ne gre za preoblikovanje prejšnjih različic

jezika, saj HTML5 vsebuje vse veljavne elemente iz prejšnjih različic HTML4 in XHTML

(ang. Extensible HyperText Markup Language) 1.0. Bil je zasnovan z osnovnimi načeli, da

deluje na vseh platformah, ter da je kompatibilen s starejšimi verzijami spletnih

brskalnikov. HTML5 ne predstavlja revolucije, ampak evolucijo. HTML5 zagotavlja, da

lahko spletni oblikovalci na enostaven način dosežejo večjo odzivnost spletne strani [5].

HTML5 nam ponujajo veliko različnih elementov, ki jih lahko uporabimo namesto

dosedanjih <div> elementov. Omogočajo nam lažje opisovanje in postavljanje elementov.

Prednost HTML5 je, da večina brskalnikov že v celoti podpira nove elemente [7].

V naši aplikaciji smo uporabili le nekaj elementov, ki jih je bilo smotrno uporabiti.

Še en ločen, a nič manj pomemben del oblikovanja spletne strani je Cascading Style Sheets

(CSS). CSS je stil jezika, ki opisuje, kako je HTML označevanje predstavljeno in

oblikovano. CSS3 je najnovejša različica CSS standarda. CSS3 vsebuje skoraj vse, kar je

vključeno v CSS2.1 (prejšnja različica). Prav tako dodaja nove funkcije, da bi razvijalcem

pomagala rešiti številne težave brez potrebe po kompleksnih skriptih in dodatnih slikah.

Nove funkcije v CSS3 omogočajo podporo za dodatne selektorje, dodajanje senc,

ukrivljanje robov, gradiente, več ozadij, animacije, transparentnost in mnogo več [5].

CSS3 nam je pomagal pri oblikovanju izgleda same spletne aplikacije, saj smo lahko

namesto vstavljanja slik uporabili nove gradnike iz CSS3. Z ustreznimi gradniki smo

povečali dinamičnost in izboljšali uporabniško izkušnjo pri uporabi spletne aplikacije.

3.3 Tehnologija Javascript

Javascript je interpretiran (in ni preveden) objektno orientiran programski jezik, ki je bil

razvit za uporabo skupaj z ostalimi spletnimi orodji. Ni namenjen za uporabo kot

samostojen programski jezik. Zasnovan je tako, da deluje skupaj z HTML za kreiranje

interaktivnih spletnih strani. Javascript se uporablja za pisanje aplikacij na strani

uporabnikovega brskalnika, kar pomeni, da se bo Javascript koda poslala na uporabnikov

računalnik, ko se spletna stran naloži. Koda JavaScript se potem izvaja po vrsticah, ki jih

nato interpretira uporabnikov brskalnik. Javascript je eden izmed skriptnih jezikov, katerih

namen je dostop in spreminjanje komponent obstoječega vmesnika – v tem primeru je

Page 23: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

14

vmesnik HTML dokument. Javascript je omejen na probleme, ker ne podpira dostopa do

zunanjih virov podatkov, ne glede na to, ali se nahajajo na lokalnem računalniku ali na

oddaljenem strežniku. Glavni izziv pri učenju HTML/JavaScript je, da ni popolnoma

standardizirano okolje. Raznolike oblike HTML in JavaScript povzročata težave tudi za

izkušene programerje. HTML ali Javascript dokumente lahko ustvarimo s katerim koli

tekstovnim oblikovalnim programom, ker sta tako HTML kot tudi Javascript tekstovna

dokumenta. Tudi najosnovnejša aplikacija Windowsa, beležnica, je ustrezna izbira. Ko

enkrat ustvarimo HTML ali Javascript dokument, lahko le tega poženemo v brskalniku [4].

Knjižnica JQuery je ustvarjena za pomoč spletnim oblikovalcem in razvijalcem pri pisanju

in JavaScript interakciji za hitro in jedrnato vrsto zavitih metod okoli domačih funkcij

Javascript. JQuery ne ponuja novih funkcionalnosti, vendar prevzame obstoječe Javascript

APIje (ang. Application Programming Interface) in jih ponudi na enostaven način skozi

JQuery sintakso [14].

Knjižnica JQuery nam je bila v veliko pomoč pri doseganju dinamičnosti in interaktivnosti

spletne aplikacije; to smo dosegli s pomočjo gradnikov Slider, Slide-up/down. Tehnologija

JavaScript nam je v kombinaciji z knjižnico JQuery omogočala, da smo razvili določene

funkcionalnosti na strani samega odjemalca.

3.4 Tehnologija AJAX

Ajax je kratica za asinhroni Javascript in XML (ang. Extensible Markup Language).

Čeprav AJAX ne predstavlja tehnologije, ampak stil programiranja na nevsakdanji način,

ki omogočajo razvijalcu izgradnjo aplikacije, ki je bolj privlačna in prijazna do

uporabnika, brez osveževanja celotne strani. AJAX nam omogoča dodatno plast med

uporabnikovim brskalnikom in strežnikom. Hkrati izvede strežniško komunikacijo v

ozadju, strežniku odda zahteve ter nato prikaže obdelane rezultate, kot to prikazuje Slika

3.3. Rezultate lahko enostavno integriramo na spletno stran brez osveževanja ali

ponovnega nalaganja strani [8].

AJAX uporablja asinhroni prenos podatkov med brskalnikom in strežnikom, ki omogoča,

da zahteva manjše dele informacij namesto celotne strani [12].

AJAX lahko izboljša izkušnjo uporabnikov strani, vendar jo lahko tudi poslabša, kadar se

le ta uporablja neustrezno. Pomembno je, da uporabniki krmarijo skozi vsebine z dobrimi

Page 24: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

15

starimi hiperpovezavami. AJAX je najbolje uporabiti poleg tradicionalnih spletnih

razvojnih paradigem, namesto da jih spreminjamo ali nadomeščamo [3].

Slika 3.3 prikazuje razliko med klasično spletno aplikacijo, ki za vsak zahtevek osveži

celotno stran, medtem, ko s pomočjo AJAX-a obdelamo in osvežimo le del strani. Razliko

pri uporabi AJAX-a lahko vidimo, kadar stran vsebuje veliko podatkov, naloženih iz

podatkovne baze in bi vsako ponovno osveževanje pripeljalo do počasnega nalaganja

spletne strani.

Tehnologijo AJAX smo uporabili v aplikaciji, da smo nekatere funkcionalnosti izvedli v

ozadju (asinhrono), brez ponovnega osveževanja strani.

Slika 3.3 Primerjava klasične spletne aplikacije in spletne aplikacije z uporabo AJAX-a

[10]

Spodaj so naštete nekatere glavne prednosti in slabosti AJAX-a.

PREDNOSTI:

Omogoča, da se ustvarjajo hitre in intuitivne spletne aplikacije.

Spodbuja razvoj vzorcev in okvirov, ki zmanjšujejo čas razvoja skupnih nalog.

Omogoča uporabo obstoječih tehnologij in funkcij, ki so že na voljo v vseh

sodobnih spletnih brskalnikih.

Page 25: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

16

Omogoča uporabo mnogih obstoječih razvijalskih znanj[3].

SLABOSTI:

Dodajanje AJAX-a na spletno stran brez predhodnega analiziranja ali razloga lahko

zmanjšuje učinkovitost spletne strani.

Ker iskalni mehanizmi ne izvedejo JavaScript kode med indeksiranjem strani, ne

morejo indeksirati kakršne koli vsebine, ki je ustvarjena s JavaScriptom.

JavaScript je lahko onemogočen na brskalnikovi strani, zaradi katere je AJAX

neuporaben.

Nazaj in Naprej gumbi v brskalnikih ne proizvedejo enakega rezultata tako kot pri

klasičnih spletnih straneh, razen, če je AJAX aplikacija programirana tako, da

podpira nalaganje in shranjevanje stanja [3].

Page 26: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

17

4 NAČRTOVANJE SPLETNE APLIKACIJE

4.1 Analiza zahtev

V sklopu analize zahtev smo sprva predstavili problem, ki se navezuje na arhiviranje

različnih vsebin. Potrebno je bilo definirati začetne zahteve, za katere je bilo zaželeno, da

bi se implementirale v spletni aplikaciji. Naš cilj je bil, da bi spletna aplikacija omogočala

shranjevanje različnih vrst spletnih vsebin, ki bi nam predstavljale opis dejanske fizične

vsebine. Aplikacija bi omogočala dodajanje različnih vsebin, ki bi jih vsak uporabnik

opisal s svojimi atributi. Vse vsebine bi bile zbrane na enem mestu, poleg tega pa bi jih

bilo možno na enostaven način spreminjati ali odstraniti iz arhiva. Spletna aplikacija bi

omogočala enostavno in hitro iskanje po arhivu oziroma napredno za zahtevnejše

uporabnike. Vse vsebine bi bile pod nadzorom uporabnika, ki bi za dostop do podatkov v

arhivu potreboval avtorizacijo. V sklopu analize pa je bilo poleg tega potrebno narediti tudi

okviren uporabniški vmesnik. Naš cilj je bil uporabiti tehnologiji HTML5 in CSS3, s

pomočjo katerih lahko na enostaven način dosežemo bogate učinke na uporabniškem

vmesniku.

Za širši pregled in informacije o vsebinah smo dodali statistiko celotne spletne aplikacije.

Glede na vsebine v arhivu bi bile na voljo različne statistike:

Število vseh vsebin v arhivu.

Število vsebin glede na tip vsebine.

Vsebine glede na letnice.

V okviru študije problema arhiviranja smo identificirali različne funkcionalnosti, ki naj bi

jih vključili v spletno aplikacijo. Glede na različne možne funkcionalnosti, smo vsaki

izmed njih določili prioriteto. Na podlagi prioritet smo se odločili za iterativen razvoj

spletne aplikacije. Spodaj so naštete glavne funkcionalnosti glede na iteracije.

1. Iteracija:

a. Osnoven uporabniški vmesnik.

b. Prijava in registracija.

c. Vpisovanje in izpisovanje vsebin.

Page 27: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

18

d. Osnovno iskanje.

e. Spreminjanje vsebin.

f. Dodajanje poljubnih tipov in atributov.

2. Iteracija:

a. Statistika vsebin.

b. Napredno iskanje.

c. Uporaba tehnologij AJAX in JQuery.

3. Iteracija:

a. Uporaba grafov za prikaz statistike.

b. Izpis vsebin v .pdf dokument.

4.2 Podatkovna baza

Podatkovna baza predstavlja temelj spletne aplikacije, saj je kasnejše spreminjanje

strukture le te težavno in zamudno. Pri kreiranju E-R diagrama smo morali biti pazljivi, še

posebej pri povezavah med entitetami, ki so morale biti premišljeno narejene. Potrebno je

identificirati posamezne entitete in v okviru le teh dodati še ustrezne atribute, ki bodo

opisovali posamezno vsebino. Ker so se atributi in tipi dodajali dinamično je bilo potrebno

optimizirati entitete, ki bi lahko bile med seboj odvisne. V podatkovni bazi imamo tri

glavne entitete (Slika 4.1): Tip, Atributi in Uporabniki. V ospredju je vmesna entiteta

Vsebine, ki je odvisna od vseh treh entitet. Uporabnik ima možnost, da sam dodaja

poljubne tipe in atribute vsebin. Tip predstavlja vsako vrsto vsebine, kot je npr. knjiga,

film, video … Entiteta Atributi pa opisuje atribute, s katerimi lahko opišemo posamezno

vsebino, npr. naziv, letnica, avtor … Entiteta Uporabniki je namenjena evidenci

uporabnikov, ki so registrirani v spletno aplikacijo. Posebej je potrebno izpostaviti tudi

atribut st_dela, ki združuje posamezne zapise v tabeli v celoto, kar pomeni, da vemo,

katero vsebino sestavljajo posamezni zapisi. Vsaka točno določena vsebina je sestavljena

iz: tipa (npr. knjiga, film …), opisnih atributov (naziv, letnica …) in uporabnika, ki je to

vsebino vnesel v arhiv.

Page 28: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

19

E-R diagram, ki je prikazan na spodnji Slika 4.1, smo kreirali s programom MySQL

WorkBench. Tabele smo kreirali s pomočjo spletne aplikacije PHP myAdmin in ročno

dodali nekaj testnih podatkov.

Slika 4.1 E-R diagram spletne aplikacije

SQL poizvedbe smo napisali in preizkušali neposredno s pomočjo spletne aplikacije PHP

myAdmin, ki nam nudi tudi dodatno pomoč pri pisanju SQL poizvedb. Razvili smo

poseben PHP razred, ki je vseboval funkcije s poizvedbami. To nam je omogočilo, da smo

lahko določene poizvedbe večkrat uporabili, namesto da bi jih neposredno vpisovali v

skripte.

V spodnjem delu je prikazan primer funkcije za osnovno iskanje po arhivu, ki nam

omogoča prikaz vsebin glede na podan vhodni parameter »$iskalni_niz«.

S pomočjo spodnje poizvedbe najprej povežemo tabele preko tujih ključev in prikažemo le

tiste rezultate, ki so enaki parametru »$iskalni_niz«. Nato rezultate grupiramo glede na

»st_dela«. Atribut »st_dela« povezuje med seboj vse zapise v tabeli, ki se navezujejo na

isto vsebino.

Page 29: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

20

SELECT tip.naziv,(atributi.naziv) AS Naziv,

vsebine.vrednost,uporabniki.ime,st_dela

FROM tip,vsebine,atributi, uporabniki

WHERE tip.id_tipa=vsebine.id_tipa AND

atributi.id_atributa=vsebine.id_atributa AND

uporabniki.id=vsebine.id_uporabnika AND vsebine.vrednost like

'%$iskalni_niz%'

GROUP BY st_dela

Programska koda 1: Iskanje podatkov iz baze

4.3 Uporabniški vmesnik

Namen uporabniškega vmesnika je, da je uporabniku čim bolj prijazen in mu omogoča, da

na enostaven način doseže želen učinek. Upoštevali smo dobre prakse in ločili vsebino

(HTML) od dejanske predstavitve (CSS). Manj pozornosti smo namenili oblikovanju

ozadja in se v večji meri osredotočili na oblikovanje same vsebine. Uporabili smo 3D

učinke, ki pritegnejo pozornost na samo vsebino. Kot lahko zasledimo, so vse sodobne

spletne aplikacije zelo odzivne in dinamične in tudi mi smo sledili temu trendu. To smo

dosegli z uporabo novih funkcij HTML5 in CSS3, ki omogočajo, da brez večjega napora

dosežemo želen učinek. Naš cilj je bil, da bi uporabili čim več sedanjih tehnologij, kot so

HTML5 in CSS3, saj nam te omogočajo izgradnjo bogatega uporabniškega vmesnika. Z

uporabo knjižnice JQuery smo poskrbeli za bogate učinke na strani samega brskalnika.

Uporabniški vmesnik ima centrirano orientacijo in fiksno postavitev, kar nam je omogočilo

dober nadzor nad prikazom strani. Uporabili smo mnogo beline, s pomočjo uporabe

mešanice treh barv, ki prinašajo primerno razpoloženje. Z uporabo gradientov smo

zmanjšali »plastičnost« spletne strani in dosegli mehak občutek prostora v ozadju. Želeli

smo narediti vmesnik, ki je zgrajen na osnovi posameznih gradnikov, ki jih lahko na

enostaven način odstranimo oziroma dodamo. Izogibali smo se klasičnemu izgledu strani,

ki je uokvirjen in nasičen z nepotrebnimi elementi. Zato smo na strani uporabili le tiste

gradnike, ki imajo nekakšen smisel.

Page 30: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

21

Vmesnik je sestavljen iz štirih glavnih delov: primarnega vrhnjega menija, sekundarnega

stranskega menija, vsebinskega dela in spodnjega dela (noge). Primarni meni (Slika 4.2) je

pritrjen na vrh zaslona, sestavljen je iz logotipa, navigacijskih povezav ter hitrega iskanja

po strani. V hitro iskanje je vključena funkcija za samo dokončanje, ki uporabniku olajša

iskanje po spletnem arhivu. Spodnji del oziroma noga dodaja povezave iz primarnega

menija.

Slika 4.2 Primarni meni in spodnji del (noga) spletne aplikacije

V vsebinskem delu, ki ga prikazuje Slika 4.3, se nahajajo posamezne vsebine, ki so

predstavljene s pomočjo tabele. Vsebinski del se prilagaja glede na število vrstic v tabeli.

Vsebuje osnovno iskanje in napredno iskanje, ki se na klik raztegne. Vsako vsebino lahko

po potrebi tudi pregledamo in uredimo njene podrobnosti.

Slika 4.3 Prikaz vsebinskega dela spletne aplikacije

Page 31: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

22

4.4 Poslovna logika

Poslovna logika zajema funkcionalno delovanje celotne aplikacije. Naš namen je bil, da

poslovno logiko aplikacije ločimo od kreiranja uporabniškega vmesnika (Slika 4.4). To

smo dosegli s tem, da smo naredili razred, ki je sestavljen iz posameznih funkcij. Funkcije

so nam omogočale prikaz posameznih podstrani spletne aplikacije. To nam je omogočilo,

da lažje spreminjamo in vzdržujemo spletno aplikacijo. Sklice na nove podstrani smo

naredili preko ID-jev, namesto da bi vedno znova ustvarili nov PHP dokument. Kot

prikazuje spodnja koda, za vsak unikaten ID uporabimo funkcijo, ki nam vrne vsebinski

del strani. ID v našem primeru predstavlja niz »dodajVsebino«. Spodnji primer prikazuje

dodajanje vsebin, kjer pridobimo izbran niz »dodajVsebino«in izvedemo funkcijo »$fun-

>DodajVsebino();«, ki nam vrne rezultat v obliki forme za dodajanje vsebin.

<a href="index.php?izbira=dodajVsebino">Dodaj vsebino</a>

switch($izbira)

{ case 'dodaj'://izberemo tip vsebine

$fun->Tip();

break;

case 'dodajVsebino'://dodajanje vsebine

$fun->DodajVsebino();

break;

.

.

.

default:

$fun->Index();

break;

}

Programska koda 2: primer klicanja posameznih podstrani

V nasprotnem primeru bi morali za vsako novo funkcionalnost narediti nov PHP

dokument, kar bi nam otežilo delo, ker bi imeli veliko število dokumentov. Prav tako bi se

pri nalaganju nove funkcionalnosti osvežila celotna stran. Spletna aplikacija je zgrajena

tako, da se osvežuje oziroma spreminja le vsebinski del strani, s čimer doprinesemo k višji

hitrosti nalaganja.

Page 32: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

23

Slika 4.4 prikazuje, kako je sestavljena struktura celotne spletne aplikacije, prednost takšne

strukture je lažje spreminjanje in dodajanje novih funkcionalnosti. Struktura je rahlo

sklopljena, kar omogoča, da lahko kakšen del strukture zamenjamo in dodamo novega.

Slika 4.4 Struktura izgradnje spletne aplikacije

Za bolj optimizirano delovanje spletne aplikacije smo poskrbeli z uporabo AJAX

tehnologije. Z uporabo AJAX-a smo v funkciji, ki uporablja knjižnico JQuery, pridobili

vse podatke iz forme in jih poslali dokumentu PHP, ki je te podatke obdelal ter vrnil

rezultat, ki smo ga nato izpisali na zaslon. Spodnja koda pridobi vse vhodne podatke iz

forme »#search« in jih pošlje dokumentu »Iskanje_napredno.php«, ki zahtevo obdela

in vrne rezultat, ki se izpiše v div »#seek«.

$.post('Iskanje_napredno.php', $("#search").serialize(),

function(data)

{$('#seek').html(data)});

Programska koda 3: primer obdelave podatkov z AJAX klicem

Uporabniški vmesnik

Poslovna logika

Podatkovna baza

Page 33: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

24

5 DELOVANJE SPLETNE APLIKACIJE

5.1 Prijava in registracija

Spletna aplikacija zahteva, da se za uporabo najprej registriramo v sistem. Pri registraciji

smo dodali vtičnik, ki pregleda moč gesla, ki daje uporabniku povratno informacijo o

ustreznosti gesla. Za vpis gesla v bazo smo uporabili šifrirni algoritem MD5, ki geslo

pretvori v unikatne nize cifer. Algoritem MD5 se uporablja v sodobnih aplikacijah za

zaščito gesla. V prijavo smo dodali obrazec za pozabljeno geslo, ki nam na elektronsko

pošto pošlje novo geslo, ki si ga lahko kasneje spremenimo.

Spodnja Slika 5.1 prikazuje obrazca za prijavo in registracijo novega uporabnika. Namen

prijave in registracije je, da ima vsak uporabnik svoj račun, preko katerega dostopa do

svojih vsebin.

Slika 5.1 Registracija in prijava v sistem

5.2 Vpisovanje in pregled vsebin

Za vpis in pregled vsebin moramo biti prijavljeni v sistem. Če želi uporabnik dodati novo

vsebino, mora najprej potrditi tip same vsebine, kar omogoča, da se vsebina kasneje shrani

pod ustrezen tip.

Page 34: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

25

Za vpisovanje novih vsebin smo uporabili seznam vseh možnih atributov, s katerimi lahko

uporabnik opiše svojo vsebino. S pomočjo tehnologije Javascript smo poskrbeli, da

atribute poljubno dodaja oziroma jih odstrani, brez da bi se stran ponovno naložila.

Takšen pristop omogoča uporabniku več svobode, saj mu ni potrebno izpolniti atributov, ki

niso relevantni. Pregled vsebin je narejen v tabelarični obliki, kar omogoča strukturiran

pregled vsebin. Vsako vsebino lahko na enostaven način izbrišemo iz arhiva. Tabela

vsebin ima svoj CSS stil; s tem smo dosegli, da je uporabniku čim bolj prijazna in odzivna.

Dodali smo osnovno in napredno iskanje po arhivu. Osnovno iskanje je namenjeno

iskanju po ključnih besedah v primeru, da uporabnik ne ve, kaj točno išče. Zato je

osnovnemu iskanju dodana še funkcionalnost za »samodokončevanje« iskalnih nizov, ki

uporabniku olajšajo iskanje po arhivu. Poleg tega je bilo dodano še napredno iskanje, ki

nam omogoča, da hitreje najdemo želeno vsebino. Napredno iskanje je namenjeno iskanju

točno določene vsebine, preko izbranega tipa in atributa. Uporabi se, ko imamo veliko

število vsebin v arhivu in z osnovnim iskanjem ne pridobimo iskane vsebine.

5.3 Statistika

Pod zavihkom statistika lahko najdemo več različnih statistik spletnega arhiva:

Število vseh vsebin.

Število vsebin glede na vrsto vsebine.

Število vsebin po letnicah.

Prikaz vsebin med dvema letnicama.

Statistika nam nudi dodatno informacijo o vsebinah, ki so shranjene v arhivu. Skozi

statistiko lažje beležimo stanje v arhivu. Za lažjo predstavitev smo dodali tudi grafičen

prikaz v obliki tortnega diagrama, ki slikovno prikaže število vsebin glede na tip vsebine. S

statistiko smo želeli doseči, da uporabniku ponudimo širši pregled nad vsebinami in da

dobi informacijo o količini vsebin v arhivu.

Slika 5.2 prikazuje dejanski izgled statistike, ki se prikaže navadnemu uporabniku.

Sestavljena je iz prikaza števila vseh vsebin v arhivu. Dodani sta še dve tabeli, ki

prikazujeta število vsebin glede na letnico in število vsebin glede na tip vsebine, kot to

prikazuje Slika 5.2. V spodnjem delu je spustni seznam za prikaz po letnicah. Na koncu

Page 35: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

26

smo dodali še interaktiven drsnik, ki je namenjen prikazu vsebin med dvema letnicama.

Drsnik je bil izdelan s pomočjo knjižnice JQuery-ui, s katerim smo želeli uporabniku

olajšati iskanje vsebin med dvema letnicama.

Slika 5.2 Prikaz statističnih podatkov

Page 36: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

27

6 ZAKLJUČEK

V diplomskem delu smo najprej spoznali tehnologije, ki smo jih uporabili pri razvijanju

spletne aplikacije. Dodali smo še nekaj osnovnih primerov, ki prikazujejo delovanje

posamezne tehnologije. V drugem delu smo predstavili praktični del diplomskega dela.

Prikazali smo celoten cikel gradnje spletne aplikacije. Začeli smo pri ideji in zahtevah,

načrtovanju, opisu gradnje posameznih komponent in končali s prikazom delovanja

aplikacije. Pri razvijanju spletne aplikacije smo preizkusili in uporabili nove tehnologije, s

katerimi do zdaj še nismo delali, zato smo morali iskati pomoč preko spletnih virov. Kot

je že omenjeno, smo aplikacijo razvijali po iteracijah, kar nam je omogočilo, da smo

najprej razvili funkcionalnosti, ki so najbolj pomembne. S tem smo prišli do postopnega

dograjevanja spletne aplikacije.

Težave so se pojavile pri uporabi novih tehnologij, ki jih še nismo uporabljali, zato smo

morali v takšnem primeru najprej narediti demo primerek in ga nato vstaviti v spletno

aplikacijo. Spoznali smo, da je za dobro narejeno spletno aplikacijo potrebno imeti dober

načrt, saj le ta predstavlja temelje za kasnejšo gradnjo spletne aplikacije. Prav tako smo

ugotovili, da je pomembno, da si dobro pripravimo temelje in standarde kodiranja, saj nam

to omogoča lažje strukturiranje spletne aplikacije. Veliko smo se naučili pri uporabi

knjižnice JQuery, ki ima zares veliko spletno podporo in mnogo prednosti pri gradnji

današnjih spletnih aplikacij. Prednosti celotnega diplomskega dela predstavljata uporaba in

opis širokega spektra tehnologij, saj se nismo omejili le na primarne tehnologije, ampak

smo vključili tudi druge podporne tehnologije, ki dajejo aplikaciji večjo dinamičnost.

Zaključimo lahko, da nobena spletna aplikacija ni končna, vedno še lahko dodajamo nove

funkcionalnosti oziroma posodabljamo obstoječe. Potrebno se je zavedati, da ima razvita

spletna aplikacija svoje prednosti in pomanjkljivosti, kot vse druge spletne aplikacije.

Page 37: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

28

7 VIRI IN LITERATURA

[1] Bilke, Petra. Spoznajmo PHP in MySQL. Nova Gorica: Flamingo, 2002.

[2] Bohinc, Petra. e-uspeh. 17. Marec 2009. Dostopno na: http://www.e-

uspeh.com/kaj-je-mysql.html [8. avgust 2012].

[3] Brinzarea-Iamandi, Bogdan, Christian Darie, in Audra Hendrix. AJAX and PHP

Building Modern Web Applications,2ed. Birmingham: Packt, 2009.

[4] Brooks, David R. Guide to HTML, Javascript. Eagleville, PA 194403: Springer,

2011.

[5] Goldstein, Alexis, Louis Lazaris, in Estelle Weyl. HTML5 & CSS3 for the Real

World. Collingwood: SitePoint Pty. Ltd., 2011.

[6] Greenspan, Jay, in Brad Bulger. MySQL/PHP Database Applications. Foster City:

M&T Books, 2001.

[7] Kyrnin, Jennifer. Web design. brez datuma. Dostopno na:

http://webdesign.about.com/od/html5/a/html_5_whats_new.htm[13. avgust 2012].

[8] Moncur, Michael, in Phil Ballard. Teach Yourself Ajax, JavaScript and PHP All in

One. Indiana: Sams, 2008.

[9] Nations, Daniel. What is a Web Application? 2012. Dostopno na:

http://webtrends.about.com/od/webapplications/a/web_application.htm [1. avgust

2012].

[10] PHP Letter. brez datuma. Dostopno na: http://www.phpletter.com/Ajax-Center/

[13. avgust 2012].

[11] Polančič, Gregor. Socialno programje. Neobljavljeno delo. 2009.

[12] Refsnes, Hege, Ståle Refsnes, Jim Kai Refsnes, Egil Jan Refsnes, in Dobbs Kelly

Henthorne. Learn Javascript and AJAX with w3schools. Indianapolis, Indiana:

Wiley Publishing, Inc., 2010.

[13] Rouse, Margaret. SearchSQLServer. September 2005. Dostopno na:

http://searchsqlserver.techtarget.com/definition/SQL [9. avgust 2012].

[14] Rutter, Jake. Smashing JQuery. West Sussex: Wiley, 2011.

Page 38: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

29

[15] Štrancar, Matjaž, in Simon Klemen. PHP in MySQL na spletnem strežniku

Apache. Ljubljana: Pasadena, 2002.

[16] Taylor, Allen G. SQL all in one desk reference for dummies. Hoboken: Wiley

Publishing, 2007.

[17] tutorialchip.com. Web design library. 17. avgust 2012.

http://www.webdesign.org/web-programming/php/advantages-of-php-

programming.21905.html (poskus dostopa 20. avgust 2012).

[18] Ullman, Larry. PHP 6 and MySQL 5 for Dynamic Web Sites. Berkeley: Peachpit

Press, 2008.

[19] Ullman,Larry. PHP and MySQL for Dynamic Web Sites, Fourth Edition. Berkeley:

Peachpit Press, 2012.

[20] Zervaas, Quentin. Practical Web 2.0 Applications with PHP. New York: Apress,

2008.

Page 39: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja

Sistem za spletno arhiviranje UM FERI

30

8 PRILOGE

8.1 CD z datotekami spletne aplikacije

Diplomski nalogi je priložen CD, na katerem se nahajajo datoteke spletne aplikacije, ki

smo jo razvili.

Page 40: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja
Page 41: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja
Page 42: Navodila za pisanje diplomskih nalog UM FERI - core.ac.uk · Skripta na strani odjemalca se ukvarja s predstavitvijo informacij, medtem ko se skripta na strani strežnika ukvarja