Visoka škola strukovnih studija za informacione i komunikacione tehnologije Beograd WEB TEHNOLOGIJE Drupal CMS(Content Managment System) Školska 2012/13. Marko M. Spasojević, spec. inž. Dr Nenad Kojić, dipl. inž.
Šta je CMS? Sistem za dinamičko upravljanje sadržajem Web aplikacija pomoću koje možete da upravljate sadržajem( dodajete, menjate, brišete strane, menije itd. )
Osnovne osobine CMS-a Korisnički interfejs za prikaz sadržaja, Web interfejs za administraciju, Odvojenost sadržaja i interfejsa Sadržaj se uglavnom čuva u bazi podataka, Interfejs se čuva u posebnim fajlovima (najčešće baziranim na šablonima)
Napredne osobine CMS-a Sistem šablona za lakše menjanje izgleda i rasporeda i korisničkog i administratorskog interfejsa Online ureñivanje teksta pomoću WYSIWYG (What You See Is What You Get) editora Modularan sistem - sastoji se iz niza manjih celina od kojih svaka ima svoju funkciju Upravljanje slikama i fajlovima ostalih formata iz administratorskog interfejsa
Koji CMS je za moje potrebe? Potrebne funcionalnosti Mogućnost dorade i izmene Podrška Performanse Open Source Podaci: http://trends.builtwith.com/cms
Drupal CMS sistem napisan na jeziku PHP Podaci se čuvaju u bazi OpenSource Tvorac Dries Buytaert 1999, platforma za razmenu poruka Online od 2001 Sajt: drupal.org Drupal zajednica (Drupal community)
Drupal, upotreba Koristi se za izradu web sajtova (aplikacija) (portala, e-commerce, društvenih mreža itd.) Modularan Proširiv framework Prilagodljiv pomoću implemetacije overriding-a (omogućeno je da se pisanjem sopstvenog koda, npr. u temi, izmeni postojeći prikaz sadržaja definisanog nekim modulom. Npr. Modul prikazuje neureñenu listu, a na ovaj način se dobije ureñena.)
Drupal, tehnologija
Drupal, baza podataka Svi podaci čuvaju se u okviru baze podataka koja se formira prilikom porcesa instalacije Serveri baza pdataka: MySql,MS Sql, PostgreSql
Drupal - pojmovi 1. Core (Jezgro) 2. Admin interface 3. Modules (Moduli) 4. Hooks 5. Theme 6. Node 7. Field 8. Block 9. Taxonomy (pojmovnik)
1. Drupal, jezgro (Core) Predstavlja kod koji obezbeñuje osnovnu funkcionalnost Kod uključuje osnovne funkcije (upravljanje korisnicima, postavljanje strana) i nalaze se u okviru osnovnih modula
2. Drupal, admin. interface Predstavlja celinu preko koje se može kontrolisati ceo sistem Povezuje sve celine sajta/aplikacije
3. Drupal, moduli Drupal je modularni framework Modul predstavlja skup kodova koji omogućava proširenje funkcionalnosti jezgra Mogućnost isključenja/uključenja Postoji dosta gotovih modula koji se mogu preuzeti sa http://drupal.org/project/modules Pravila za pisanje koda jasno su definisana
Drupal, moduli (nastavak) Modulima se može podstići proširenje korisničkih funkcionalnosti, pa čak i za osnove delove Jezgra koji inicijalno dolaze sa instalacijom
4. Drupal, hooks Hook je PHP funkcija koja se kači tj. izvršava u odreñenom trenutku od strane jezgra Osnovni način komunikacije jezgra i modula je preko hook-a Npr. Korisnik traži sadržaj stranice na kojoj postoji meni. Tada jezgro poziva sve funkcije (hook-ove) ove) koji se završavaju sa _menu, i pokreće se odreñeni php kod, kojim se iz baze podataka dohvata sadržaj željenog menija. Funkcija ima jasno defnisan popis hook_ime_akcije()
Drupal, hook (nastavak) Primeri hook-a: admin_menu(), comment_user_login(), locale_user_login() Npr. comment_user_login() se poziva kada korisnik želi da ostavi komentar, ali pre toga mora da se autorizuje. Umesto hook koristi se ime modula, kada se želi da taj modul nešto promeni Ime akcije je ono što dolazi posle hook_
Drupal, hook (nastavak) Funkcije tj. hook-ovi ovi se pozivaju od strane jezgra tokom bootstrap-a a procesa, koji se poziva neka stranca Tokom bootstrap-a a dešavaju se dogañaji koji iniciraju pozivanje i izvršavanje f-je U trenutku kada treba da se učita menu, pozivaju se sve funkcije koje imaju potpis hook_menu() ook_menu() Spisak kreiranih i dostupnih hook-ova ova koji su sastavni deo jezgra http://api.drupal.org/api/drupal
5. Drupal, teme (Theme) Celina koja služi za generisanje prikaza Sastoji se od php, html i css kodova Definiše pravila za rendoravanje sadržaja Moćnost izvoñenja i override
Dodavanje modula i tema Napraviti posebne foldere sites/all/modules i sites/all/themes U okviru ovih foldera postaviti preuzete ili kreirane module i teme http://drupal.org/project/modules http://drupal.org/project/themes
6. Drupal, Nodes Predstavlja osnovni tip sadržaja tj. osnovni tip stranica Novi tipovi sadržaja se izvode iz node-a (npr. Tip članak da se pored naslova i sadržaja pojavi datum i autor) Sastoji se od title i body-a Title i body definiše korisnik
6. Drupal, Nodes Osnovni node ima title i body. U slučaju da se pored toga želi dodati još nesto, npr. Flash, dobija se node drugog tipa. Svako novo dodavanje, u odnosu na osnovni node, se realizuje preko fields-a, čime se omogućava dodavanje (teksta, ta, fajla, slike, flasha, )
7. Drupal, Fields Sadržaj na stranici tj. node-u je organizovan putem polja Polja služe da se kroz njih unosi konkretan sadržaj koji će se prikazati na strani Ova polja bira administrator, i ona se automatski kreiraju u obliku forme za unos sadržaja Neka od polja su: Polje za naslov Polje za telo node-a Polje za sliku...
Kreiranje i prikaz postojećih polja (feilds)
Izgled gotovo forme koja je posledica odabira tipova elemenata sadržaja sa prethodnog slajda
8. Drupal, Blocks Predstavlja celinu na stranici Stranica se sastoji od jednog ili više blokova Blok Blok Blok Blok Blok Blok Blok Blok
Primer Blocks
9. Drupal, Taxonomy Predstavlja način za klasifikaciju sadržaja u okviru CMS sistema Reči se mogu unositi ili odabrati ručno, ili pomoću modula koji analiziraju sadržaj teksta i izdvajaju karakteristične termine Sastoji se od rečnika koji se sastoji od pojmova izmeñu kojih mogu biti definisane i relacije Npr. Pojam OOP može biti relaciji sa PHP, C++,...
9. Drupal, Taxonomy
Drupal, struktura fajlova
Drupal, obrada zahteva Ukucavanjem URL adrese, od strane korisnika, aplikacija treba da odredi šta će se prikazati korisniku Zahtevi se prosleñuju putem URLa i to jednom od dve varijate Clear formar http://example.com/foo/bar Query string http://example.com/index.php?q=foo/bar Svi zahtevi prolaze kroz index.php fajl Svaki zahtev inicira bootstrap proces
Visoka škola strukovnih studija za informacione i komunikacione tehnologije Beograd WEB TEHNOLOGIJE Drupal CMS(Content Managment System) Školska 2012/13. Marko M. Spasojević, spec. inž. Dr Nenad Kojić, dipl. inž.