SVEUČILIŠTE U MOSTARU FAKULTET STROJARSTVA I RAČUNARSTVA ZAVRŠNI RAD Web Škola (HTML, CSS, JavaScript, PHP) Nermin Marić 840/RR Mostar, listopad 2013 SVEUČILIŠTE U MOSTARU FAKULTET STROJARSTVA I RAČUNARSTVA Prediplomski studij Smjer: Računarstvo Ime: Nermin Prezime: Marić Br. indeksa: 840/RR ZADATAK ZAVRŠNOG RADA Naslov: Web Škola ( HTML, CSS, JavaScript, PHP) Prijava rada: 01.10.2013. Rok za predaju: 30.11.2013. Rad predan: 29.10.2013. Mentor: _________________________ prof. dr. sc. Mirjana Bonković IZJAVA Izjavljujem da sam ovaj završni rad uradio samostalno uz pomoć navedene literature i uz konzultacije s mentoricom prof. dr. sc. Mirjanom Bonković kojoj se ovim putem posebno zahvaljujem. Nermin Marić _____________ SADRŢAJ 1. 2. UVOD ............................................................................................................................1 1.1 Web stranice .............................................................................................................1 1.2 Internet preglednik ...................................................................................................1 1.3 Web Server...............................................................................................................2 WEB DEVELOPMENT .................................................................................................3 2.1 HTML i CSS ............................................................................................................4 2.2 JavaScript (JS)..........................................................................................................7 2.3 PHP ..........................................................................................................................9 2.3.1 3. PHP Framework .............................................................................................. 10 PRAKTIČNI DIO ZAVRŠNOG RADA ....................................................................... 11 3.1 Početna stranica ...................................................................................................... 11 3.2 Zaglavlje ................................................................................................................ 15 3.3 Navigacija .............................................................................................................. 19 3.4 Stranice i podnožje ................................................................................................. 20 3.5 Online editor „TryIT“ ............................................................................................. 21 4. ZAKLJUČAK............................................................................................................... 23 5. LITERATURA ............................................................................................................. 24 6. SLIKE .......................................................................................................................... 25 7. KRATICE .................................................................................................................... 26 1. UVOD 1.1 Web stranice Internetke stranice ili web stranice se sastoje od niza HTML/xHTML dokumenata kojima se može pristupiti uz pomoć web preglednika. Web je jedan od servisa Interneta, koji upravo služi za prezentaciju web stranica pomoću HTTP protokola. Web stranica (web page) je HTML dokument koju omogućava prezentaciju teksta i poveznica, a dostupan je preko sve URL (web) adrese. Na web stranici se osim teksta mogu prikazati i multimedijski elementi (resursi) kao što su slike u digitalnom formatu, flash i shockwave animacije, zvuk, video i slično. Web stranice (web site) su kolekcija Internetskih resursa – HTML dokumenata, multimedijskih sadržaja, podataka i skripti. Složeniji sustavi web stranica (npr. Web shop) čine aplikaciju baziranu na posebnom hardveru i softveru. Dokumentima unutar web stranica se pristupa preko zajedničkog korijenskog URL-a, odnosno web adrese, koja se često naziva i homepage. Svi dokumenti su najčešće spremljeni na istom web serveru. Poveznice unutar HTML dokumenata povezuju dokumente u ureĎenu hijerarhijsku strukturu i time odreĎuje način na koji posjetitelj doživljava sadržaj stranica. Složenije web stranice koriste web aplikacije pisane u nekom od programskih jezika (PHP, ASP, JSP,...) za stvaranje sadržaja spajanjem pripremljenih grafičkih predložaka i sadržaja iz baze podataka (na poslužiteljskoj strani) i neki skriptni jezik poput JavaScript-a ili VBScript-a ( na klijentskoj strani). 1.2 Internet preglednik Internetski preglednik (web preglednik, web browser, Internet browser) je program koji korisniku omogućuje pregled web stranica i multimedijalnih sadržaja vezanih uz njih. Najpopularniji preglednici danas su: Google Chrome, Firefox, Opera, Safari. Svi navedeni su grafički programi (tj. osim teksta mogu prikazivati i vizualne sadržaje). 1 Osim grafičkih postoje i tekstualni preglednici koji mogu prikazivati samo tekst (npr. Links i lynx) i specijalizirani govorni preglednici kakve mogu koristiti slijepe osobe. HTML kao meta-jezik kojim se hipertekstualni dokumenti mogu opisivati je izmislio Tim Berners-Lee (djelatnik CERN-a) 1990./1991. godine. Prvi preglednici su bili strogo tekstualni, a veliku promjenu je 1993. godine donio NCSA Mosaic koji je izvorno bio UNIX aplikacija ali je ubrzo prenijet i na druge operativne sustave. Svaki Internetski preglednik je interpreter. Dakle, stranica je pisana u kodu koji preglednik nakon toga interpretira kao nešto svakome razumljivo. 1.3 Web Server Web server je računalo na kojem se nalaze web stranice. Kako je pristup svakom računalu odreĎen portovima (ulazima) koji su predstavljeni brojevima, tako je i pristup web serveru odreĎen portom, port za pristup web serveru je 80. Svaki server ima IP adresu, tako da kada se neka stranica posjećuje, odnosno neki server, zapravo se posjećuje adrea kao 98.34.65.243:80, gdje broj 80 govori da se radi o web serveru. Prostor na web serveru se može zakupiti kod davatelja usluga hostinga (posluživanja) stranica. Dakle, prilikom izraĎivanja stranica, da bi one bile dostupne na Internetu, potrebno je da se smjeste na neki web server. Web serveri obično dolaze u vidu clustera s velikim centrima podataka (en. data center). Naravno moguće je i od običnog računala napraviti web server, no to nije tako dobro rješenje iz nekoliko razloga. Kao prvo, web stranice smještene na serveru moraju biti stalno dostupne, što znači da računalo mora biti stalno uključeno i spojeno na Internet. TakoĎer je potrebno imati statičku IP adresu (iako postoje odreĎene „tehnike“ za instalaciju servera na računalo koje nema statički IP). Web server bi trebao imati stalnu IP adresu, kako bi mogli regitrirati domenu i tu domenu usmjeriti na dotični IP. Na taj način posjetitelji ne moraju pamtiti brojeve (IP) servera već samo adresu. 2 2. WEB DEVELOPMENT Web development je engleski naziv za sveukupan rad koji je potrebno uložiti za razvoj web stranice za Internet (World Wide Web) ili za intranet (privatnu mrežu). Web development ili razvoj web stranica se proteže od pravljenje najednostavnijih jednostraničnih, statičkih, stranica samo od teksta pa do najsloženijih Internet aplikacija za web. Web development se može podijeliti u mnogo kategorija, ali najčešća i najosnovnija podjela je na: Client side coding – kod koji se izvršava unutar korisnikovog pretraživača (klijenta) Server side coding – kod se izvršava na serveru Client side coding je kod kao HTML koji se izvršava u samom pretraživaču korisnika, lokalno, dok Server side coding kod se izvršava na web serveru koji generira odgovarajuću HTML stranicu koja se pošalje korisniku. Client side coding: AJAX (Asynchronus JavaScript) [Asinkroni JavaScript] pruža nove metode korištenja JS-a i drugih jezika kako bi poboljšao korisničko iskustvo. Flash – sveprisutni dodatak pretraživačima. JavaScript (JS) sveprisutna platforma za pravljenje i pružanje bogatih web aplikacija koje mogu raditi na mnogim ureĎajima. jQuery JS biblioteka dizajnirana da olakša i ubrza client-side kodiranje HTML-a. Microsoft Silverlight – Microsoft-ov dodatak pretraživačima koji omogućuje animacije, vektorsku grafiku i video visoke rezolucije, programirane korištenjem XAML i .NET programskih jezika. HTML 5 i CSS 3 – najnoviji predloženi HTML standard kombiniran sa najnovijim predloženim CSS standardom, podržava mnoge client-side funkcionalnosti koje pružaju drugi programski okviri kao što su Flash i Silverlight. 3 Server side coding: ASP - vlasništvo Microsoft-a ActiveVFP – otvoreni kod CSP – server-side ANSI C ColdFusion – vlasništvo Adobe-a (prethodno poznato kao Macromedia, a prije toga Allaire). CGI Erlang Groovy Java Lotus Domino Node.js Perl – otvoreni kod PHP – otvoreni kod Python – otvoreni kod Ruby – otvoreni kod WebDNA – vlasništvo WSC-a Websphere – vlasništvo IBM-a .NET – vlasništvo Microsoft-a 2.1 HTML i CSS HTML je kratica za HyperText Markup Language, što znači prezentacijski jezik za izradu web stranica. Hipertekst dokument stvara se pomoću HTML jezika. HTML jezikom oblikuje se sadržaj i stvaraju se hiperveze hipertext dokumenta. HTML je jednostavan za uporabu i lako se uči, što je jedan od razloga njegove opće prihvaćenosti i popularnosti. Svoju raširenost zahvaljuje jednostavnosti i tome što je od početka bio zamišljen kao besplatan i tako dostupan svima. Prikaz hipertekst dokumenta omogućuje web preglednik. Temeljna zadaća HTML jezika jest uputiti web preglednik kako prikazati hipertext dokument. Pri tome se nastoji da taj dokument izgleda jednako bez obzira o kojemu je web pregledniku, računalu i operacijskom sustavu riječ. HTML nije programski jezik niti su ljudi koji ga koriste programeri. Njime ne možemo izvršiti nikakvu zadaću, pa čak ni najjednostavniju operaciju zbrajanja ili 4 oduzimanja dvaju cijelih brojeva. On služi samo za opis naših hipertekstualnih dokumenata. Html datoteke su zapravo obične tekstualne datoteke, ekstenzija im je .html ili .htm. Osnovni graĎevni element svake stranice su znakovi (tags) koji opisuju kako će se nešto prikazati u web pregledniku. Povezice unutar HTML dokumenata povezuju dokumente u ureĎenu hijerarhijsku strukturu i time odreĎuju način na koji posjetitelj doživljava sadržaj stranica. Prva verzija HTML jezika objavljena je 1993. godine. U to je vrijeme bio još poprilično ograničen, pa nije bilo moguće čak ni dodati slike u HTML dokumente. Razvoj HTML-a nastavljen je prvom "imenovanom" verzijom – 2.0, no ni ona nije postala standardom. U ožujku 1995. W3C objavljuje verziju 3.0, koja donosi mogućnosti definicije tablica. Daljnji razvoj ove verzije HTML-a označilo je prihvaćanje "specifičnih" oznaka podržanih u tada najvećim i najprihvaćenijim web preglednicima. Tako su nastale mnoge duplikacije, pa je postojalo više oznaka koje su imale istu funkciju. Podebljani text, primjerice bilo je moguće definirati oznakom <b>, ali i oznakom <strong> . HTML4 predstavljen je u prosincu 1997., nastavio je s prihvaćanjem oznaka nametnutih od strane proizvoĎača različitih web preglednika, no istovremeno je pokrenuto i "čišćenje" standarda proglašavanje nekih od njih suvišnim. Manje promjene u specifikaciji ovog standarda predstavljene su u prosincu 1999., kada je predstavljena konačna verzija ovog jezika HTML4.01. Svaki HTML dokument sastoji se od osnovnih graĎevnih blokova - HTML elemenata. Svaki, pak, HTML element sastoji se od para HTML oznaki (engl. tag). TakoĎer, svaki element može imati i atribute kojim se definiraju svojstva tog elementa. Na samom početku HTML dokumenta preporučljivo je postaviti <!DOCTYPE> element, kojim se označava DTD (engl. Document Type Declaration), čime se definira točna inačica standarda koja se koristi za izradu HTML dokumenta. Nakon <!DOCTYPE> elementa, <html> elementom označava se početak HTML dokumenta. Unutar <html> elementa nalaze se i <head> element te <body> element. <head> element predstavlja zaglavlje HTML dokumenta u kojemu se najčešće specificiraju jezične značajke HTML dokumenta kao i sam naslov (engl. title) stranice. Pomoću odreĎenih HTML elemenata unutar zaglavlja dodaju se i stilska obilježja stranice, bila ona direktno ugraĎena (engl. embedded) ili dodana kao referenca na vanjsku CSS datoteku. Često se unutar zaglavlja još definiraju i skripte kreirane u JavaScript jeziku. U <body> elementu kreira se sadržaj HTML dokumenta, odnosno, stranice koju on reprezentira. 5 Svaka HTML oznaka (koja u paru kreira HTML element) počinje znakom < (manje od), a završava znakom > (više od). Zatvarajuća HTML oznaka kreira se na isti način kao i otvarajuća, ali se prije završnog znaka > dodaje i kosa crta / (engl. slash). Slika 1 Primjer jednostavnog HTML koda CSS je kratica od (eng.) Cascading Style Sheets. Radi se stilskom jeziku, koji se rabi za opis prezentacije dokumenta napisanog pomoću markup (HTML) jezika. Kako se web razvijao, prvotno su u HTML ubacivani elementi za definiciju prezentacije (npr. tag <font>), ali je dovoljno brzo uočena potreba za stilskim jezikom koji će HTML osloboditi potrebe prikazivanja sadržaja (što je prvenstvena namjena HTML-a) i njegovog oblikovanja (čemu danas služi CSS). Drugim riječima, stil definira kako prikazati HTML elemente. CSSom se ureĎuje sam izgled i raspored stranice. CSS možemo pisati unutar same HTML stranice, na dva načina: kao stilove u zaglavlju HTML dokumenta (tj. izmeĎu <style> i </style> elementa) Slika 2 Primjer pisanja stila unutar style tagova u zaglavlju unutar samih HTML tagova, npr. <p style="color: magenta;">Neki tekst</p> što daje: Neki tekst 6 ili ga možemo definirati u posebnom dokumentu i koristiti pomoću poziva: <link rel="stylesheet" href="dizajn.css" type="text/css"> ili na sljedeći način: Slika 3 Pozivanje vanjskog stila preko @import 2.2 JavaScript (JS) JavaScript je objektno orjentisan programski jezik namenjen dinamičkoj izradi web stranica. Koristi se u mnogim web stranicama za poboljšanje funkcionalnosti, validaciju formi, detekciju browsera, asinkronu komunikaciju sa serverom i još mnogo toga. Razvijen je 1995. godine od strane Netscape-a i koristi se kao client-side internet programski jezik. To znači da se izvršava na korisnikovom računalu u samom browser-u čime se postiže veća brzina rada, web aplikacije odgovaraju brže na korisnikove akcije i samim tim se postiže veća efikasnost. Predstavlja skripting jezik, što u prijvodu znači lagan programski jezik. JavaScript se u HTML dokument može dodati na dva načina. Pisanjem u sami HTML kod ili pisanjem u zasebnu datoteku (sa ekstenzijom .js) koju zatim pozivamo u HTML dokumentu. Obadva načina su pravila i ne postoji razlika u radu skripti. Pozivanje vanjskog fajla je dobro u slučaju kada se ista skripta koristi na više stranica. Browser čita HTML stranicu i prikazuje elemente redom kako dolazi do njih (interpreter), kada doĎe do JS skripte u kodu, prvo se izvrši kod skripte pa se nastavlja prikazivanje ostalih elemenata html-a. Slika 4 Primjer pozivanja javaskript koda iz vanjske datoteke 7 Slika 5 Primjer pisanja JS u HTML-u Postoje različiti načini pozivanja JavaScript koda, tj. različita mjesta gdje se on može smjestiti u kodu stranice. Prvi način je da se JavaScript kod stavi u zaglavlju, unutar <head> i </head> tagova, dok je drugi način da se piše unutar <body> </body> tagova tj. tijela stranice. Kod prvog načina skripta se učitava odma, prije učitavanja čitave stranice, dok se kod drugog načina skripta izvršava čim brovser naiĎe na nju. Moguće je postaviti neograničen broj skripti u stranicu, bilo da se radi o prvom ili o drugom načinu. JavaScrip je case-sensitiv, što znači da je osjetljiv na velika i mala slova, to znači da varijabla naziva test nije ista kao TEST ili Test i sl. Zbog toga je veoma važno paziti na velika i mala slova. JS za razliku od nekih drugih programskih jezike na zahtijeva specificiranje tipa varijable, to čak nije ni dozvoljeno. Ista varijabla može se koristiti za vrijednosti različitih tipova podataka, kao što su nizovi podataka, tj string (Hello world!), cijeli brojevi (42), vrijednost realnog broja (3,14) ili logičke vrijednosti (true / false). JS interpreter automatski konvertira tip podatka koji se nalazi u varijabli. Varijable se deklariraju ključnom riječi var. Slika 6 Primjer deklariranja varijabli u JS 8 Kao i u većini ostalih jezika i u JavaScript-u postoje biblioteke. Biblioteka predstavlja skup gotovih funkcija koje imaju širu primjenu i time omogućava korisniku lakše programiranje. Primjenjuju se kod olakšavanja i ubrzavanja programiranja, proširivanja funkcionalnosti pomoću gotovoih komponenti itd. Neke od popularnijih JavaScript biblioteka su jQuery, MooTools, Prototype i mnoge druge. 2.3 PHP PHP (rekursivni akronym i backronym za „PHP: Hypertext Preprocessor“, prije „Personal Home Page Tools“) je jedan programski jezik koji se orjentira po C i Perl sintaksi, namijenjen prvenstveno programiranju dinamičnih web stranica. PHP je kao slobodni softver distribuiran pod PHP licensnim uvjetima. PHP se ističe širokom podrškom raznih baza podataka i internet protokola kao i raspoloživosti brojnih programerskih knjižnica. Prve verzije su se zvale PHP/FI (Personal Home Page Tools/Forms Interpreter) i bile su skup perl skripti, koje je razvio Rasmus Lerdorf za brojanje posjeta na svojoj privatnoj web stranici. To je bilo negdje oko 1995. godine. Poslije, kada je nastala potreba za više funkcija razvio je novu verziju u programskom jeziku C, koja je mogla raditi s bazama podataka i omogućila je korisnicima programirati jednostavne dinamične web stranice. Rasmus je odlučio objaviti PHP kao slobodni softver, tako da ga svatko može poboljšati. Danas je PHP jedan od najzastupljenijih programskih jezika za programiranje web aplikacija. Vrline su mu jer je jako sličan C-u, lako se pamti, i lako se pamti svi većina kodova. 1997. godine PHP/FI 2.0 (druga inačica) bila je kult za nekoliko tisuća korisnika širom svijeta. Oko 50.000 webstranica imalo je potpis instalacije 'PHP/FI 2.0', što znači da je onda 1% svih web stranica na internetu koristilo PHP. Iako su i drugi korisnici doprinijeli izvornom kodu, bio je to projekt jedne jedine osobe. Ukratko nakon službenog izdanja 'PHP/FI 2.0'-a u studenom `97, bio je zamijenjen prvom alfa verzijom PHP-a 3 (PHP3). 9 PHP3 PHP4 PHP5 Sintaksa prve verzije je bila slična perlu, ali jednostavnija i skučena. Ipak je imala varijable kao perl, automatsku interpretaciju varijabli web formi i u HTML-u ukorijenjenu sintaksu. 2.3.1 PHP Framework PHP je jedan od najčešćih skriptnih jezika koji se koriste iz mnogo opravdanih razloga. Veoma je fleksibilan i lagan za korištenje. Dogaša se da je kodiranje u PHP-u često repetativno i dosadno. Upravo tu dolazi PHP framewoek, koji će poboljšati promociju i brže razvijanje aplikacije. Što štedi vrijeme i takoĎe pomaže u razvijanju aplikacija koje su stabilnije i smanjuje količinu nepotrebnog kodiranja. Ovo je jedan od glavnih razloga zašto mnogi developeri koriste framework, takoĎer je dobro i za početnike. Umjesto trošenja vremena na pisanje koda koji se ponavlja, dobiva se više vremena za kreiranje web aplikacije. Postoji više razloga zašto bi trebali koristiti PHP framework, prvi razlog je ubrzan proces razvijanja aplikacija, korištenje istog koda u sličnim projektima, što značajno štedi vrijeme i trud. Framework omogućava korištenje predefiniranih modela za obavljanje zadataka koji se šesto ponavljaju. Na ovaj način moguće je više se koncetrirati na samo razvijanje aplikacije, umjesto pravljenja osnova za razvijanje aplikacije. Još jedan veliki razlog zbog kojeg se koristi framework a to je stabilnost. Jednostavnost je jedan od najvećih aduta PHP-a i zbog toga mnogi preferiraju korištenje tog skriptnog jezika. Mešutim upravo to moće biti i najveća mana, za početnike je savršen jer je jednostavan za koristiti, ali je lako moguće da se piše pogrešan kod, tako da PHP aplikacija funkcionira, ali slučajno je otvorena neka sigurnosna rupa u kodu. To može dodatno da izloži aplikaciju napadima. Veoma je važno imati na umu koliko je PHP fleksibilan i da dopušta velik nivo slobode. Važno je pronaći sve propuste i mane u kodu i ispraviti ih. Za početnike i iskusne programere, framework će ubrzati cijeli proces programiranja i maksimalno eliminirati šanse za greške u kodu. 10 3. PRAKTIČNI DIO ZAVRŠNOG RADA Za praktični dio rada sam napravio stranicu web škole, koja korisnicima koji je posjete pruža materijale za učenje HTML-a, CSS-a, JavaScript-a i PHP-a. Na stranici se takoĎer nalazi online editor u kojem mogu pisati HTML kod i vidjeti u realnom vremenu kako izgleda dio koda koji su pisali. 3.1 Početna stranica U ovom dijelu završnog rada ću proći kroz dijelove kodova PHP datoteka koje pokreću ovu stranicu. Kako i pretraživač kada pristupi stranici prvu datoteku koju otvori je index, pa ću i ja tako početi sa kodom te stranice. Prve linije datoteke index.php, koja je ujedno početna i glavna stranica, čini funkcija za provjeru browsera. Zadatk ove funkcije je da provjeri s kojim browserom ili pretraživačem korisnik pristupa stranici, ako se radi o Internet Exploreru (IE) onda se otvori stranica „noIE.php“, koja korisnika upozorava da stranica ne radi kako treba u tom pretraživaču, u protivnom se nastavi normalno učitavati stranica. Slika 7 Funkcija provjere browsera 11 Funkcija u php se piše iza klučne riječi „function“, zatim se piše naziv funkcije, u ovom slučaju „get_user_browser()“ , funkcija ne prima nikakve parametre, a kao povratni podatak vraća točno (true) ako se radi o IE odnosno netočno (false) ako se radi o bilo kojem drugom pretraživaču. U varijablu „$u_agent“ spremamo podatak o kojem se agentu radi, tj. o kojem pretraživaču je riječ. Zatim korištenjem funkcije „preg_match“ usporedimo varijablu $u_agent sa stringom '/MSIE/i' i ako su stringovi jednaki onda se radi o IE i rezultat funkcije get_user_browser je true. Razlog zašto smo provjeravali o kojem je pretraivaču je riječ je to što stranica sadrži dijelove pisane u HTML5 i CSS3 i dijelove koji nisu optimizirani za IE,a rade na ostalim pretraživačima. Kada korisnik posjeti stranicu sa IE, otvori mu se stranica u kojoj je upozoren da ne radi stranica u IE i ponudi se par browsera koje može preuzeti i koristiti, kao na slici ispod. Slika 8 Prikaz stranice korištenjem IE Sljedeća linija koda je ujedno jedna od vaznijih zato što je ključna za učitavanje dijelova stranice. Slika 9 Globalna varijabla, ključ 12 Korištenjem naredbe „define“ definiramo globalnu varijablu naziva „theKey“ i postavimo joj vrijednost na 1. Ova varijabla je ključ koji se inicijalizira samo u index.php, i na taj način osigurava da je korisnik pristupio indexu, a index poziva ostale dijelove stranice kao što su zaglavlje, meni (izbornik), sadržaj, podnožje. Ovaj dio koda je prvi dio, a njegov drugio dio se nalazi u svim drugim source datotekama, kao što možemo vidjeti na sljedećoj slici dio koda iz header.php. Slika 10 Drugi dio koda vezan za ključ Slika 7 nam pokazuje u kodu da ako ključ nije definiran onda se stranica neće učitati, nego će se preusmjeriti pretraživač (browser) na index i na taj način osigurat da korisnik uvijek pristupa početnoj stranici, a ne slučajno da učita samo izbornik ili samo zaglavlje. Nakon što je ključ definiran u index.php, sljedeće linije koda služe za dinamičko pozivanje dijelova stranice, neki dijelovi su uvijek pozvani, a neki u ovisnosti od onoga što želimo, tj. koji dio smo odabrali putem izbornika. Slika 11 Pozivanje zaglavlje i izbornika U PHP-u možemo pozvati druge datoteke da se učitaju kao da su pisane u samom fajlu koji smo pokrenuli, korištenjem naredbe include 'naziv'; . Zaglavlje i meni su nam važni na svakoj stranici, zato se oni pozivaju (include-aju) bezuvijetno. Nakon zaglavlja i meni-a slijedi sadržaj stranice odijeljen u jednom div tagu, koji koristi klasu (class), id=“content“, gdje je definiran izgled sadržaja stranice. Sadržaj stranice se bira izbornikom, nakon što odaberemo šta želimo html,css,js ili php i odaberemo koje poglavlje želimo, dio koda prikazan na slici 9 pokazuje kako se korištenjem 2 varijable učitava datoteka 13 sa sadržajem onoga što smo odabrali. Varijabla cont može imati vrijednost html,css,js ili php da se učita datoteka sa željenim sadržajem ili može imati vrijednost „tryit“ da bi se učitao editor u kojem korisnik može pisati kod i vidjeti kako bi izgledao u istom browseru. Ako varijabla cont nema nikakvu dodijeljenu vrijednost, onda se učitava početna stranica dobrodošlice. Slika 12 Kod odrabira sadrţaja stranice Korištenjem $_GET preuzimamo vrijednost varijabli cont i n, varijabla n sadrži samo broj kojeg poglavlja želimo otvoriti. U varijablu $inc spremamo putanju do datoteke koju smo odabrali izbornikom, sav sadržaj se nalazi u zasebnom folderu content, a unutar tok foldera se nalaze folderi zasebno za html, css, js i php, au svakom od tih foldera se nalaze datoteke sa nazivom chapter_ i onda slijedi broj poglavlja i na kraju završava sa .html. Prateći sintasku php-a u jednu varijablu $inc smo spojili nekoliko stringova, gdje je jedan od tih stringova broj, tj. varijabla n. Nakon dodijeljivanja vrijednosti varijabli $inc, sljedeća varijabla samo učitava sadržaj datoteke include $inc; i na taj način smo dobili željeni sadržaj prikazan na stranici. 14 Slika 13 Kod dugmeta za vraćanje na vrh Slika 10 nam pokazuje liniju koda za prikazivanje dugmeta u desnom donjem kutu stranice za odlazak na početak (vrh) stranice. Naredbom echo samo ispišemo html kod u browseru gdje se treba pojaviti dugme, a njegov točan položaj izgled i uloga definirani su u klasi „go-top“. Slika 14 Dugmad za naprijed i nazad Datoteka page.php sadrži kod za listanje sadržaja unaprijed i nazad, ovu datoteku učitavamo na stranicu ako se ne radi o početno stranici i ako se ne radi o online editoru, to smo rješili na način da provjeravamo da je varijabla cont postavljena, i da njena vrijednost nije tryit. Ako je uvijet ispunjen, samo includamo page.php. Nakon page.php includamo podnožje stranice, footer.php, takoĎer bezuvijetno, jer nam je potrebno na svakoj stranici bez obzira koji sadržaj se nalazi na stranici. Poslije podnožja naredbom echo ispisujemo posljednje html tagove, za zatvaranje div-a, tijela (body) i html end tag. Na kraju svega, zadnja linija index.php-a je „?>“ što označava kraj php koda i ujedno kraj datoteke. 3.2 Zaglavlje Unutar header.php se nalazi otvoreni tag za pocetak html dokumenta, i kompletno zaglavlje html dokumenta, tj. sve što se nalazi izmeĎu <head> i </head> tagova. Prvi element u zaglavlju je meta tag koji služi da uputi browser da koristi UTF-8 standard, kako bi se na stranici prikazivala slova sa kvakama. Zatim se nalazi izmeĎu tagova <title> </title> naslov stranice, iza kojeg slijedi par linkova na vanjske dizajne tj. na css datoteke. Osim vanjskih 15 datoteka sa stilovima tu se nalazi još jedan stil koji koristi za navigaciju, koji postavlja meni u fiksnu poziciju na vrhu, kao što prikazuje sljedeća slika. Slika 15 Početak zaglavlja Zatim u zaglavlju imamo JavaScript kod za dugmat koja se pojavljuju na stranici, Go Top, Next i Previous. U JS kodu napisana je funkcija koja upravlja s fade (izbljeĎivanjem) ili transparentosti dugmadi. Dugmad next i previous se pojavljuju na stranici samo kada skrolamo, spustimo se po stranici, za 10 pixela, uprotivnom su nevidljivi. Dugme Go Top se pojavljuje kada se spustimo za 200 od vrha. Ako se radi o kraćoj stranici i nije dovoljno velika da se možemo udaljiti od vrha za 200, onda se dugme Go Top neće ni pojaviti na stranici. Nakon funkcije koja uvjetno prikazuje ili sakriva dugmad, slijedi funkcija dugmeta Go Top, tj. kada se klikne na dugme, izvrši se funkcija koja nas vraća na početak (vrh) stranice. Slika 16 Funkcija dugmeta Go Top 16 Slika 17 JS kod dugmadi Skripta sa slike 14 koristi jquery googleapi, koji se poziva putem url link sa google-ove stranice. Slika 18 Google API jquery U zaglavlju se nalaze skripte koje uključuju lokalne JS skripte koje se koriste za rad navigacije, zatim se nalazi funkcija dropdown koja mijenja status podajućeg izbornika. 17 Navigacija ima još jednu skriptu u zaglavlju, koja prati da li smo skrolanjem se pomjerili prema dol, kada se pomjerimo navigacija se ukloni sa stranice kako bi se povećala preglednost stranice. Ova skripta prati da li smo pošli skrolat prema gore, ako jesmo navigacija se fiksno pojavi na vrhu prozora. Slika 19 JS skripte za navigaciju Zadnje linije datoteke header.php su zatvaranje head tag-a i otvaranje body taga za tijelo stranice. 18 3.3 Navigacija Navigacija stranice se nalazi u datoteci menu.php kako bi sve bilo na jednom mjestu i olakšalo ureĎivanje linkova koji će biti na cijeloj stranici, uprotivnom bi se svaka datoteka trebala ureĎivati kako bi svi linkovi bili namješteni. Unutar menu.php datoteke imamo kao i u header.php datoteci na samom početku provjeru ključa koji index postavi, uprotivnom preusmjerava na index, tako da se ne može otvoriti samo menu.php, mora biti pozvan u index.php, tj početnu stranicu. Navigacija je smještena unutar div tagova i koristi klase iz stilova koji su pozvani u header.php zaglavlju. Aktivan je onaj link gdje se trenutno nalazimo, ako smo na početnoj stranici onda je Home označen kao active, takoĎer kada smo na online editoru, onda TryIT link je označen kao aktivan. Provjera za home je realizirana provjerom varijable cont, ako nije postavljena vrijednost, pretpostavka je da se nalazimo na početnoj stranici. Slika 20 Podešavanja klase active na Home buttonu Na sličan način je realizirana provjera za tryit editor, ali za editor je postavljena varijabla cont na tryit, pa to je upravo ono što i provjeravama. Slika 21 Klasa active za button TryIT Linkovi unutar liste meni-a su realizirani na nacin da usmjeravaju na index.php i kao dodatne GET parametre prosljeĎuju varijable cont za sadržaj (html,css,js, php ili tryit) i varijablu n koja označava broj poglavlja koji želimo. 19 Slika 22 Linkovi u navigaciji 3.4 Stranice i podnoţje Napravljena je posebna datoteka page.php kojoj je jedini zadatak korištenjem dugmadi Next i Previous, prebacivanje na sljedeće poglavlje ili na prethodno. Unutar datoteke se takoĎer nalazi provjera ključa, zatim se nalazi funkcija koja provjerava folder onog sadržaja koji smo odabrali, nalazi se u varijabli cont. Slika 23 Funcija brojanja poglavlja Na slici 20 vidimo funkciju brojanja poglavlja, funkcija provjerava koliko fajlova postoji u folderu koji smo odabrali za sadržaj. Korištenjem petlje foreach prolazi kroz datoteke unutar foldera i prebrojava koliko ih ima, broj fajlova (poglavlja) je spremljen u varijablu $max. Varijabla max se koristi kao krajnja granica pojavljivanja dugmeta next na stranici. Dugmad previous i next su vidljivi na stranici samo onda kada postoji prethodna odnosno sljedeća stranica (poglavlje) u odnosu na ono na kojem se trenutno nalazimo, tako kada se nalazimo na prvoj stranici, previous dugme se neče pojaviti, ali next hoće, isto se dogaĎa kada smo na zadnjem poglavlju koje postoji u folderu, next dugme više se neće pojaviti, samo dugme previous. 20 Slika 24 Button-i Previous i Next Podnožje ili footer stranice takoĎer sadrži provjeru ključa i sadrži informacije o Copyright-u kao i informacije Ime,Prezime broj indeksa koje su ujedno i link za slanje e-maila. 3.5 Online editor „TryIT“ Jedna od opcija na stranici je TryIT editor, koji omogućava posjetiocima da u samom browseru mogu pokušati pisati html kod i vidjeti kako izgleda. Editor se sastoji od 2 datoteke, index.php i result.php, unutar index datoteke se nalazi forma koja prosljeĎuje sadržaj tekstualnog polja datoteci result.php kako bi prikazala html kod, i tablice od 2 polja. Prvo polje tablice sadrži textarea u koji je početno upisana poruka da se tu upisuje CSS i HTML kod, a drugo polje sadrži iframe koje služi da se učita stranica result.php kojoj smo proslijedili html kod i na taj način prikažemo u istoj stranici kod koji korisnik upiše i pregled kako to izgleda. Slika 25 Index stranica online editora 21 Slika 26 Kod stranice result.php Stranica result.php sadrži minimalan potreban kod kako bi uradila što je potrebno. Preko varijable code iz forme u stranici index.php prima kod koji korisnik unese u tekstualno polje i zatim naredbom print ispiše taj kod na stranici. Kako smo result.php preko iframe učitali u index.php, onda se taj ispis prikaže na istoj stranici. 22 4. ZAKLJUČAK Za izradu dobre web aplikacije je prvobitno potrebna dobra ideja i odabrati odgovarajući jezik u kojem bi radili aplikaciju. Pored velikok izbora open source jezika i sve većeg broja biblioteka postalo je lakše realizirati ideju. Prilikom pravljenja bilo kakve web aplikacije potrebno je dobar dio vremena uložiti u istraživanje sličnih ideja kako bi znali na koji dio trebamo posebno obratiti pozornost u smislu sigurnosti i kvalitete, a isto tako potražiti ukoliko postoje neke biblioteke sa gotovoim najčešće korištenim funkcijama kako bi ubrzali i olakšali svoj rad. Web aplikacije su bolje od aplikacija na računalu zbog toga što su nam uvijek dostupne, sve što nam je potrebno je internet pretraživač da bi pristupili i koristili što nam je potrebno, bez brigo o kojem se operativnom sustavu radi i da li je podržana aplikacije ili ne. 23 5. LITERATURA 1. HTML, XHTML, and CSS, Sixth Edition, Elizabeth Castro 2. PHP - Creating Interactive Internet Applications, 1999 Jirka Kosek 3. http://en.wikipedia.org/wiki/HTML 4. http://en.wikipedia.org/wiki/Cascading_Style_Sheets 5. http://en.wikipedia.org/wiki/JavaScript 6. http://en.wikipedia.org/wiki/PHP 7. http://en.wikipedia.org/wiki/Web_development 8. http://www.w3schools.com/ 9. http://webarena.rs/javascript-jezik-weba 24 6. SLIKE Slika 1 Primjer jednostavnog HTML koda ..............................................................................6 Slika 2 Primjer pisanja stila unutar style tagova u zaglavlju ....................................................6 Slika 3 Pozivanje vanjskog stila preko @import .....................................................................7 Slika 4 Primjer pozivanja javaskript koda iz vanjske datoteke .................................................7 Slika 5 Primjer pisanja JS u HTML-u .....................................................................................8 Slika 6 Primjer deklariranja varijabli u JS ...............................................................................8 Slika 7 Funkcija provjere browsera ....................................................................................... 11 Slika 8 Prikaz stranice korištenjem IE ................................................................................... 12 Slika 9 Globalna varijabla, ključ ........................................................................................... 12 Slika 10 Drugi dio koda vezan za ključ ................................................................................. 13 Slika 11 Pozivanje zaglavlje i izbornika ................................................................................ 13 Slika 12 Kod odrabira sadržaja stranice ................................................................................ 14 Slika 13 Kod dugmeta za vraćanje na vrh ............................................................................. 15 Slika 14 Dugmad za naprijed i nazad .................................................................................... 15 Slika 15 Početak zaglavlja .................................................................................................... 16 Slika 16 Funkcija dugmeta Go Top ....................................................................................... 16 Slika 17 JS kod dugmadi ...................................................................................................... 17 Slika 18 Google API jquery .................................................................................................. 17 Slika 19 JS skripte za navigaciju ........................................................................................... 18 Slika 20 Podešavanja klase active na Home buttonu ............................................................. 19 Slika 21 Klasa active za button TryIT ................................................................................... 19 Slika 22 Linkovi u navigaciji ................................................................................................ 20 Slika 23 Funcija brojanja poglavlja ....................................................................................... 20 Slika 24 Button-i Previous i Next ......................................................................................... 21 Slika 25 Index stranica online editora ................................................................................... 21 Slika 26 Kod stranice result.php ........................................................................................... 22 25 7. KRATICE NCSA - National Center for Supercomputing Applications HTTP – Hyper Text Transfer Protocol HTML – Hyper Text Markup Language CSS - Cascading Style Sheets PHP - PHP: Hypertext Preprocessor IE – Internet Explorer URL - Uniform Resource Locator JS – Java Script 26
© Copyright 2024 Paperzz