9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži...

23
Visoka soka škola škola strukovnih studija strukovnih studija za za informacione i komunikacione tehnologije informacione i komunikacione tehnologije Beograd Beograd WEB WEB TEHNOLOGIJE TEHNOLOGIJE WEB WEB TEHNOLOGIJE TEHNOLOGIJE Drupal teme (Themes) Drupal teme (Themes) Školska 20 Školska 2012/13. . dr Nenad Kojić, dipl. inž. dr Nenad Kojić, dipl. inž. Milena Milena Vesi Vesić, spec. ć, spec. inž. nž. Marko M. Marko M. Spasojevi Spasojević, spec. inž. ć, spec. inž.

Transcript of 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži...

Page 1: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

VViisokasoka škola škola strukovnih studija strukovnih studija za za informacione i komunikacione tehnologijeinformacione i komunikacione tehnologije

BeogradBeograd

WEB WEB TEHNOLOGIJETEHNOLOGIJEWEB WEB TEHNOLOGIJETEHNOLOGIJE

Drupal teme (Themes) Drupal teme (Themes)

Školska 20Školska 201122//1133. . dr Nenad Kojić, dipl. inž.dr Nenad Kojić, dipl. inž.MilenaMilena VesiVesić, spec. ć, spec. iinž.nž.

Marko M. Marko M. SpasojeviSpasojević, spec. inž.ć, spec. inž.

Page 2: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

ŠŠta je tema (Theme)?ta je tema (Theme)?

�� Predstavlja skup fajlova koji generiPredstavlja skup fajlova koji generišu prikazšu prikaz�� Poseban sistem nezavisan od modula Poseban sistem nezavisan od modula �� Fajlovi su kombinacija PHP,HTML,CSSFajlovi su kombinacija PHP,HTML,CSS--a i JSa i JS--aa�� Od PHP samo print tj. echoOd PHP samo print tj. echo

Definiše strukturu stranice/aDefiniše strukturu stranice/a�� Definiše strukturu stranice/aDefiniše strukturu stranice/a�� Poseduje podešavanjaPoseduje podešavanja�� Veliki broj gotovih tema Veliki broj gotovih tema

http://drupal.org/project/themeshttp://drupal.org/project/themes�� Mogućnost izrade sopstvenih temaMogućnost izrade sopstvenih tema�� Mogućnost “izvoñenja” (varijacije) temaMogućnost “izvoñenja” (varijacije) tema

Page 3: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

Instalacija temeInstalacija teme

�� Preuzeti temu sa stranice Preuzeti temu sa stranice http://drupal.org/project/themeshttp://drupal.org/project/themes

�� Raspakovati preuzeti fajl i presnimiti novonastali Raspakovati preuzeti fajl i presnimiti novonastali folder u folder sites/all/themesfolder u folder sites/all/themes

�� Na kreiranom sajtu iz glavnog menija odabrati Na kreiranom sajtu iz glavnog menija odabrati �� Na kreiranom sajtu iz glavnog menija odabrati Na kreiranom sajtu iz glavnog menija odabrati AppearanceAppearance

�� Kliknuti na link Set As Default odgovarajuće temeKliknuti na link Set As Default odgovarajuće teme

Page 4: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

FajloviFajlovi

�� Svaka tema se sastoji iz nekoliko fajlovaSvaka tema se sastoji iz nekoliko fajlova•• .info , fajl sa meta podacima vezanim za temu.info , fajl sa meta podacima vezanim za temu•• .tpl.php , template (šablon) fajlovi koji se sastoje od php .tpl.php , template (šablon) fajlovi koji se sastoje od php

i htmli html•• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logikom je sa neophodnom logikom

za obradu i prikaz podatakaza obradu i prikaz podatakaza obradu i prikaz podatakaza obradu i prikaz podataka•• Opcioni folderi i fajlovi za CSS,JS i slike Opcioni folderi i fajlovi za CSS,JS i slike

�� Kao i kod modula ime teme mora biti jedinstvenoKao i kod modula ime teme mora biti jedinstveno�� Ime igra veoma bitnu uloguIme igra veoma bitnu ulogu

Page 5: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

.info fajl.info fajl�� Sastoji se iz statičkog teksta u formi ključ=> Sastoji se iz statičkog teksta u formi ključ=>

vrednostvrednostname = Naziv temedescription = opis temeversion = verzijacore = 6.xscreenshot = screenshot.png stylesheets[all][] = style.cssstylesheets[all][] = style.cssstylesheets[print][] = print.cssscripts[] = myscript.jsregions[header] = Headerregions[highlighted] = Highlightedregions[content] = Contentregions[sidebar_first] = Left sidebarregions[sidebar_second] = Right sidebarregions[footer] = Footerfeatures[] = logofeatures[] = name

Page 6: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

.info fajl podrazumevane .info fajl podrazumevane vrednostivrednosti

regions[regions[sidebar_firstsidebar_first]] = Left sidebar= Left sidebarregions[regions[sidebar_secondsidebar_second] = Right sidebar] = Right sidebarregions[content] = Contentregions[content] = Contentregions[header] = Headerregions[header] = Headerregions[footer] = Footerregions[footer] = Footerregions[footer] = Footerregions[footer] = Footerregions[highlighted] = Highlightedregions[highlighted] = Highlightedregions[help] = Helpregions[help] = Helpregions[regions[page_toppage_top] = Page Top] = Page Topregions[regions[page_bottompage_bottom] = Page Bottom] = Page Bottom

Page 7: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

.info fajl podrazumevane .info fajl podrazumevane vrednostivrednosti

features[] = logofeatures[] = logofeatures[] = namefeatures[] = namefeatures[] = sloganfeatures[] = sloganfeatures[] = features[] = node_user_picturenode_user_picturefeatures[] = features[] = comment_user_picturecomment_user_picturefeatures[] = features[] = comment_user_picturecomment_user_picturefeatures[] = features[] = comment_user_verificationcomment_user_verificationfeatures[] = features[] = faviconfaviconfeatures[] = features[] = main_menumain_menufeatures[] = features[] = secondary_menusecondary_menu

Page 8: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

.info fajl podrazumevane .info fajl podrazumevane vrednostivrednosti

settings[settings[toggle_logotoggle_logo] = 1] = 1settings[settings[toggle_nametoggle_name] = 1] = 1settings[settings[toggle_slogantoggle_slogan] = 1] = 1settings[settings[toggle_node_user_picturetoggle_node_user_picture] = 1] = 1settings[settings[toggle_comment_user_picturetoggle_comment_user_picture] = 1] = 1settings[settings[toggle_comment_user_picturetoggle_comment_user_picture] = 1] = 1settings[settings[toggle_comment_user_verificationtoggle_comment_user_verification] = 1] = 1settings[settings[toggle_favicontoggle_favicon] = 1] = 1settings[settings[toggle_main_menutoggle_main_menu] = 1] = 1settings[settings[toggle_secondary_menutoggle_secondary_menu] = 1] = 1

Page 9: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

.info fajl podrazumevane .info fajl podrazumevane vrednostivrednosti

screenshot = screenshot.pngscreenshot = screenshot.pngstylesheetsstylesheets[all][] = style.css[all][] = style.cssscripts[] = script.jsscripts[] = script.js

Page 10: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

Struktura temeStruktura teme

Page 11: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

Tema, regionsTema, regions�� PHP niz regiona (celina) na staniciPHP niz regiona (celina) na stanici

regions[content] = Contentregions[content] = Content

$content (page.tpl.php)$content (page.tpl.php)$content (page.tpl.php)$content (page.tpl.php)

//podatak u region//podatak u regiondrupal_set_contentdrupal_set_content('right', $('right', $texttext););

Page 12: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

.tpl.php fajl.tpl.php fajl

�� Predstavlja fajl koji genereriše html Predstavlja fajl koji genereriše html prikazprikaz

�� Sastoji se iz htmlSastoji se iz html--a i phpa i php--aaOd phpOd php--a najčešće samoa najčešće samo�� Od phpOd php--a najčešće samoa najčešće samoprint $promenljivaprint $promenljiva

�� Modul može da ima sopstveni Modul može da ima sopstveni .tpl.php fajl.tpl.php fajl

Page 13: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

Struktura .tpl.php fajlovaStruktura .tpl.php fajlova

Page 14: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

Izvoñenje temeIzvoñenje teme

�� Mogućnost izrade nove teme na Mogućnost izrade nove teme na osnovu bazne temeosnovu bazne teme

�� Postupak kao da se kreira nova temaPostupak kao da se kreira nova temaIzvedena tema redefiniše Izvedena tema redefiniše �� Izvedena tema redefiniše Izvedena tema redefiniše (“override”) podešavanja bazne teme(“override”) podešavanja bazne teme

�� Izvedena.infoIzvedena.infobase theme = base theme = theme_nametheme_name

Page 15: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

Generisanje sadržajaGenerisanje sadržajaModul

template.php

theme_funkcija()

hook_theme

mojaTema_preprocess_fun()

.tpl.php

html.tpl.php

$promenljiva

mojaTema_preprocess_fun()

Page 16: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za
Page 17: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

Theme overridingTheme overriding

�� Modul generiše odreñeni izlazModul generiše odreñeni izlaz�� Tema može da izmeni generisani Tema može da izmeni generisani

izlaz pomoću overridingizlaz pomoću overriding--a tj. a tj. redefinisanjaredefinisanjaredefinisanjaredefinisanja

�� Svaki izlaz prolazi kroz razne faze u Svaki izlaz prolazi kroz razne faze u kojima se može izmenitikojima se može izmeniti

Page 18: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

Theme overridingTheme overriding

Page 19: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za
Page 20: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

Tipovi overrideTipovi override--aa

�� Override preko funkcijaOverride preko funkcijatheme_menu_local_tasks theme_menu_local_tasks (.module)(.module)

mojatema_menu_local_tasks mojatema_menu_local_tasks (template.php)(template.php)mojatema_menu_local_tasks mojatema_menu_local_tasks (template.php)(template.php)

�� Override preko .tpl.phpOverride preko .tpl.phpPresnimiti odgovarajući .tpl.php fajl Presnimiti odgovarajući .tpl.php fajl modula u temumodula u temu

Page 21: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

Override i generisanje novih Override i generisanje novih tpl.php fajlovatpl.php fajlova

�� blockblock----modulemodule----delta.tpl.phpdelta.tpl.php�� blockblock----module.tpl.phpmodule.tpl.php�� blockblock----region.tpl.phpregion.tpl.php

�� fieldfield----fieldfield--namename----contentcontent--type.tpl.phptype.tpl.php�� fieldfield----contentcontent--type.tpl.phptype.tpl.php

fieldfield----fieldfield--name.tpl.phpname.tpl.php�� fieldfield----fieldfield--name.tpl.phpname.tpl.php�� fieldfield----fieldfield--type.tpl.phptype.tpl.php

�� nodenode----nodeid.tpl.phpnodeid.tpl.php�� nodenode----type.tpl.phptype.tpl.php�� node.tpl.phpnode.tpl.php

�� pagepage----nodenode----edit.tpl.phpedit.tpl.php�� pagepage----nodenode----1.tpl.php1.tpl.php�� pagepage----node.tpl.phpnode.tpl.php�� pagepage----front.tpl.phpfront.tpl.php�� page.tpl.phppage.tpl.php

Page 22: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

Obrada podataka pre .tpl.php Obrada podataka pre .tpl.php fajlafajla

ffunctionunction mytheme_preprocess_menu_linkmytheme_preprocess_menu_link(&$variables) {(&$variables) {// // obradaobrada sadrzajasadrzaja promenljivepromenljive kojakoja je je inicijalizovanainicijalizovana u u modulumodulu$neka_promenljiva=$varibles$neka_promenljiva=$varibles[‘link‘];[‘link‘];

$variables[‘nova_promenljiva‘]=time();$variables[‘nova_promenljiva‘]=time();// promenljiva $nova_promenljiva je dostupna u tpl.php fajlu// promenljiva $nova_promenljiva je dostupna u tpl.php fajlu// promenljiva $nova_promenljiva je dostupna u tpl.php fajlu// promenljiva $nova_promenljiva je dostupna u tpl.php fajlu

} }

Page 23: 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži ftemplate.php, fajl sadrži f--je sa neophodnom logje sa neophodnom logikom ikom za

VViisokasoka škola škola strukovnih studija strukovnih studija za za informacione i komunikacione tehnologijeinformacione i komunikacione tehnologije

BeogradBeograd

WEB WEB TEHNOLOGIJETEHNOLOGIJEWEB WEB TEHNOLOGIJETEHNOLOGIJE

Drupal teme (Themes) Drupal teme (Themes)

Školska 20Školska 201122//1133. . dr Nenad Kojić, dipl. inž.dr Nenad Kojić, dipl. inž.MilenaMilena VesiVesić, spec. ć, spec. iinž.nž.

Marko M. Marko M. SpasojeviSpasojević, spec. inž.ć, spec. inž.