Tämän sivuston rakentaminen Drupalilla

5.8.2010 - 22:05

Nyt kun blogini on jokusen kuukauden ollut linjoilla, niin voisin kertoa hieman sivuston syntymisestä tekniseltä kantilta. 

Tämä oma sivustoni on selkeästi blogi, joten alustaksi Wordpress olisi ollut standardi-valinta, mutta olen viime aikoina tehnyt paljon töitä Drupalin parissa ja halusin osaltaan syventää tietämystäni rakentamalla omatkin sivut Drupalin päälle.

Jos blogin pystyttäminen on päätarkoitus, niin Drupal voi olla järkytys verrattuna vaikka edellä mainittuun Wordpressiin. Hallintapaneelin käyttöliittymä on ruma ja vanhanaikaisen näköinen, eikä esimerkiksi WYSIWYG-editoreista ole pakasta vedettynä tietoakaan. 

Onkin syytä tiedostaa, että oli sivusto millainen tahansa, niin pelkillä core-moduuleilla ei selviä oikeastaan koskaan. Käsittääkseni Drupalin kehitys on entistä enemmän menossa suuntaan, jossa vakiona mukana tulevien moduulien määrä on mahdollisimman pieni, mutta järjestelmästä olisi saatavilla eri tarkoituksiin räätälöityjä distribuutioita tarpeellisin lisämoduulein varustettuina.

Alusta lähtien oli selvää, että valmiiden teemojen sijasta ulkoasun täytyisi olla omaa tekoa. Omat Photoshop-taitoni eivät häikäise, mutta onneksi samassa taloudessa asuu graafisen alan ammattilainen, joten toiveideni mukainen leiska saatiin aikaiseksi. Halusin hyödyntää HTML5:sta ja varsinkin CSS3:sta sivuston taittoa tehdessä, mikä olikin oikein rentouttavaa, kun kerrankin ei tarvinnut välittää vanhemmista IE-selaimista. Suosittelen.

Kirjoitin HTML:n ja CSS:n aika pitkälti valmiiksi ennen kuin päätin ottaa Drupalin alustaksi. Tämä on aivan väärä tapa toimia, sillä Drupal tarjoaa HTML-merkkauksen, jolloin teeman tekeminen on CSS-muotoilujen tekemistä ja tarvittaessa HTML-merkkauksen muuttamista joko templaatti-tiedostojen tai teemoittamiseen liittyvien preprocess-funktioiden avulla.

Perusajatus Drupalin teemojen tekemisessä avautuu varsin nopeasti, mutta jos tarvitsee muuttaa vaikka yksittäisen lomakekentän HTML-merkkausta, niin HTML:n alkulähteen selvittäminen on varsinkin alussa hieman vaikeaa. Drupal-saitteja enemmän tehdessä tämä kuitenkin helpottuu.

Alkuun Drupalin välimuisti aiheutti turhaa ihmettelyä, kun tehdyt muutokset eivät tuntuneet toimivan. Vaikka Drupalin cachen laittaa pois päältä hallintapaneelista, niin se ei kuitenkaan ihan täysin poista sitä käytöstä. Cache on onneksi mahdollista kytkeä kokonaan pois käytöstä parilla puukotuksella development-vaihetta ajatellen, mutta tällä saattaa olla yllättäviä vaikutuksia esimerkiksi lomakkeiden kanssa. Jos jokin toimii hassusti, tyhjennä aina ensin cache.

Drupalissa on käsittääkseni alunperin ollut ajatuksena, että erillistä hallintapaneelin teemaa ei ole, vaan frontend- ja admin-puoli käyttävät samaa teemaa. Yleensä kuitenkin käytetään eri teemoja, mutta Drupalissa tämä erottelu on vielä hieman puolitiessä, sillä esimerkiksi sisältönoodin poistamisen varmistaminen tapahtuu frontend-teemalla, samoin noodin versiohistorian tarkastelu. Omassa käytössä tämä ei niinkään haittaa, mutta asiakasprojekteissa tällaiset outoudet aiheuttavat turhaa lisätyötä.

Drupalissa näkyy, että kehityksen aikana tärkeänä käyttökohteena on nähty yhteisölliset sivustot. Tämä on syytä muistaa vaikkapa moduulien konfigurointia ihmetellessä. Esimerkiksi itselläni oli alkuun hieman vaikea hahmottaa Twitter-moduulin konffausta, koska moduuli mahdollistaa oman Twitter-blockin esittämisen kullekin rekisteröityneelle käyttäjälle, jolloin asetuksia voi muuttaa useasta paikasta.

Drupalin vahvuus on laaja valikoima erilaisia valmiita moduuleita, joilla pystyy rakentamaan varsin suuria järjestelmiä hyvin vähäisellä koodauksen tarpeella. Välillä suorastaan hämmästyttää, kuinka monipuolisiin tarpeisiin jo pelkästään CKK-, Views- ja imagecache-moduulit riittävät. Näillä moduuleilla voidaan rakentaa monipuolisesti uusia sisältötyyppejä (Content Type), luoda niistä erilaisia näkymiä ja listauksia sekä käsitellä liitettyjä kuvia mm. muuttamalla kokoa ja rajaamalla. Kaikki tämä ilman, että tarvitsee kirjoittaa riviäkään koodia.

Toisaalta sitten, kun Drupalin kanssa tarvitsee alkaa koodaamaan, niin varsinkin alussa on helposti hieman hukassa, miten asiat tulisi tehtyä oikein, "the Drupal Way". 

Vaikka Drupalin kanssa on ollut tuskaisiakin hetkiä, niin mielestäni järjestelmä on kuitenkin suosionsa ansainnut. Odotan mielenkiinnolla tulevaa Drupal 7:aa, jossa CKK-moduuli on integroitu kiinteäksi osaksi Drupalia ja hallintapaneelin käyttöliittymä on uudistettu.