9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži...
Transcript of 9. drupal teme napredni kurs stampa - webdizajn.ict.edu.rs · •• template.php, fajl sadrži...
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ž.
ŠŠ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
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
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
.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
.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
.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
.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
.info fajl podrazumevane .info fajl podrazumevane vrednostivrednosti
screenshot = screenshot.pngscreenshot = screenshot.pngstylesheetsstylesheets[all][] = style.css[all][] = style.cssscripts[] = script.jsscripts[] = script.js
Struktura temeStruktura teme
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););
.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
Struktura .tpl.php fajlovaStruktura .tpl.php fajlova
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
Generisanje sadržajaGenerisanje sadržajaModul
template.php
theme_funkcija()
hook_theme
mojaTema_preprocess_fun()
.tpl.php
html.tpl.php
$promenljiva
mojaTema_preprocess_fun()
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
Theme overridingTheme overriding
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
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
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
} }
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ž.