Voit itse lisätä ja muuttaa sisältöä muokkaa-painikkeiden avulla
Ennen tallennusta suositellaan ottamaan kopio muokkausruudusta (ctrl-a -> ctrl-c)
Olet itse vastuussa tämän teoksen käytöstä aiheutuvista vahingoista Lue lisää.
Drupal ohjelmointi teema
Yleistä[muokkaa]
Tämän sivun tarkoitus on kertoa perusteita Drupalin teemoista versiossa 7. Versioon 8 sivu ei tällä hetkellä ota kantaa. Tällä sivulla käytetyt käännökset eivät ole vakiintuneita termejä.
Sivuston ulkoasuja tekevät usein alan ammattilaiset. Näitä voi teettää omaan tarpeeseensa mittatilaustyönä tai käyttää ilmaisia tai maksullisia valmiita teemoja joita löytyy usein ainakin sivustojärjestelmien kotisivuilta ja googlaamalla. Englannin kielinen termi on theme. Tällä sivulla perehdytään teemojen taustalla olevaan koodiin ja teknisiin kysymyksiin. Drupalin ydin sisältää funktioita, jotka helpottava ulkoasujen, visujen julkaisua. Teema on drupalissa kuin kalvo, jonka läpi tieto heijastuu ruudulle. Näitä kalvoja voi vaihtaa joustavasti ja viallisesti toimivat kalvot eivät lähtökohtaisesti viota drupalia ja sinne tallennettua tietoa. Monimutkaisen teeman rakentaminen on iso työ, joten usein pohjana kannattaa käyttää jotain, mikä on omaa tyyliä lähellä ja tehdä muutoksia siihen. Tämä tarkoittaa myös sitä että kaikki teemat ei ole hyviä teemoja. Esimerkiksi teemojen ei tulisi perustua taulukoihin vaan hyvä teema on joustava ja se on toteuttu esimerkiksi div ja CSS toiminnoilla. Hyvin tehty moduuli sallii kaikkien sen näyttämiseen liittyvien elementtien ylikirjoittamisen teemassa.
- Drupal ohjelmointi -sivulla on neuvottu ohjelmointiympräistön asettamisesta ja Drupalkoodin standardit.
Teoria[muokkaa]
Teema koostuu tiedostoista joiden avulla toiminnot ja ulkoasu saadaan aikaiseksi. Tähän käytetään PHP-ohjelmointikieltä, HTML-koodia, CSS-tyylitiedostoja ja kuvia. Käytössä on erilaisia pohjia (tpl), jotka hallinnoivat eri asioita sivussa. Jos teemalla ei ole jotain omaa tpl.php tiedostoa, käytetään oletustiedostoa, joka löytyy modules hakemistosta sen nimisestä moduulista tai modules/system hakemistosta. Katso esimerkiksi moduuli node. Kukin tpl.php huolehtii siis omasta tontistaan, mutta template.php huolehtii lopuista (lohko, kommentti, node, sivu).
- html.tpl.php
- page.tpl.php
- region.tpl.php
- node.tpl.php
- comment-wrapper.tpl.php
- comment.tpl.php
- block.tpl.php
- maintenance-page.tpl.php
- template.php
Tiedostot[muokkaa]
- Drupalin mukana tulevat teemat sijaitsevat drupal/themes hakemistossa alihakemistoina kukin omalla nimellään.
- hakemistossa /themes/engines on phptemplate.engine -tiedosto, joka huolehtii pohjien liittämisestä drupalin teemäjärjestelmään.
- teeman hakemistossa on .tpl.php tiedostot, .css -tyylitiedostot, kuvat, värit
Info tiedosto[muokkaa]
- teemannimi.info -tiedosto tekee teeman drupalille näkyväksi kertoen samalla siinä annettuja parametreja.
- katsotaan drupalin mukana tulevaa Bartik -teeman .info-tiedostoa hieman typistettynä.
name = Bartik //Ihmisen luettava teeman nimi. description = A flexible, recolorable theme with many regions. //Lyhyt kuvaus teemasta. package = Core // version = VERSION core = 7.x //Drupalin versio, jonka kanssa teema toimii. stylesheets[all][] = css/layout.css //Teeman käyttämä tyylisivu. stylesheets[all][] = css/style.css stylesheets[all][] = css/colors.css stylesheets[print][] = css/print.css regions[header] = Header regions[help] = Help regions[page_top] = Page top regions[page_bottom] = Page bottom regions[highlighted] = Highlighted regions[featured] = Featured regions[content] = Content regions[sidebar_first] = Sidebar first regions[sidebar_second] = Sidebar second regions[triptych_first] = Triptych first regions[footer_firstcolumn] = Footer first column regions[footer] = Footer settings[shortcut_module_link] = 0
Alateemat[muokkaa]
Teemalle voidaan luoda myös alateema. Jos teema on jonkin toisen teeman lapsi eli se käyttää isäntäteemansa koodia, mutta joitain osia siitä on muokattu.
- käytännössä uusi teema sijoitetaan normaalisti teemahakemistoon ja sen .info-tiedostoon merkitään base theme = isäntäteemannimi