HUOM! Voit itse lisätä ja muuttaa sisältöä muokkaa-painikkeiden avulla

 Olet itse vastuussa tämän teoksen käytöstä aiheutuvista vahingoista Lue lisää.

Drupal ohjelmointi teema

Kohteesta Wikikko - kansan taitopankki
Loikkaa: valikkoon, hakuun

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

Ohjeita[muokkaa]

Lisätietoa aiheesta.

Lähteet[muokkaa]