Drupal

Drupal on WWW-pohjainen ohjelmistokehys, CMF-järjestelmä, sisällönhallintajärjestelmä ja blogijärjestelmä. Ohjelmisto on kirjoitettu PHP-ohjelmointikielellä ja toimii erilaisissa tietokantaympäristöissä, kuten MySQL:ssä.

Drupalin perusosa on nimeltään "Drupal core", joka sisältää ohjelmiston perusominaisuudet, tavallisten sivujen ja blogien luomiseen tarvittavat osat. Drupalia voidaan laajentaa hyvin modulaarisesti; Drupaliin on saatavana yli 22 000 (heinäkuu 2013) "contrib modules" -lisäosaa. Näitä laajennoksia on esimerkiksi WWW-kauppapaikkoja, kuvagallerioita, työnhallintaa, projektinhallintaa ja postituslistojen hallintaa varten.

Historia 
Alun perin Drupalin loi Dries Buytaert foorumijärjestelmäksi. Nimi "Drupal" tulee hollannin kielen sanasta "druppel" eli pisara. Alun pitäen Buytaertin foorumi sijaitsi WWW-palvelimella drop.org ("drop" on suomeksi "pisara"), jonka nimi taas tuli vahingossa väärin kirjoitetusta hollannin sanasta "dorp" eli kylä - Buytaert päätti, että Drop kuulostaa paremmalta.

Drupalista on kehittynyt myös toinen ohjelma, CivicSpace, joka sai alkunsa nimellä DeanSpace Howard Deanin vuoden 2004 Yhdysvaltain presidentinvaalien kampanjan käyttöä varten.

Drupalia käytetään paljon paitsi julkisissa WWW-sivustoissa, myös intraneteissä.

Toimintaperiaate 
Toisin kuin monet muut sisällönhallintajärjestelmät, Drupalia ei ole rakennettu tietyn sisällönhallintaidean ympärille, vaan sisäisesti Drupal käsittelee kaikkea tietoa "solmuina" () joilla on tiettyjä attribuutteja, kuten otsikko ja sisältö. Yhtenä Drupalin vahvana piirteenä on se, että kaikki sisältökohdetta koskevat tiedonmuruset – myös ne, jotka eivät näy varsinaisen kohteen sivulla normaalisti – voidaan kirjata yhteen paikkaan, ja kaikki mahdolliset hakemistosivut voidaan luoda täysin automaattisesti.

Sivuston ylläpitäjä voi määritellä uusia sisältötyyppejä (esimerkiksi verkkokaupassa "tuotesivu" ja blogissa "blogiartikkeli") joilla voi olla erityisiä attribuutteja (esimerkiksi tuotesivulla "hinta" ja "valmistaja"). Näille sisältötyypeille voidaan määritellä erikseen miten ne näytetään eri tilanteissa, kuten normaalina verkkosivuna, tulostettavassa muodossa tai hakutulossivulla. Suositut modulit kuten views ja ds (Display Suite) laajentavat näitä mahdollisuuksia entisestään. Display Suite helpottaa eri ulkoasujen luonnissa, ja Views mahdollistaa uusien tietokantapohjaisten näkymien luonnin: solmujen hakemisen tietokannasta eri hakuehdoin (SQL-tuntemusta ei tarvita) ja niiden tietokenttien esittämisen eri tavalla, kuten listoina tai taulukoina. Näkymät voivat pohjautua myös käyttäjän antamiin tietoihin, esimerkiksi hakutermeihin. Moduli panels mahdollistaa sivujen rakentamisen osissa niin, että sisältölohkot voidaan hakea eri solmuista tai näkymistä; useimmiten tämä on hyödyllistä saapumissivuilla, kuten sivuston etusivulla, joissa usein pitää näyttää erilaista tietoa eri lähteistä.

Tietoja voidaan organisoida eri tavoin. Drupalissa on sisäänrakennettuna valikko-ominaisuuksia. Lisäksi sivut voidaan luokitella käyttäjän määrittelemien taksonomioiden mukaan: esimerkiksi verkkokaupassa voidaan luoda uudet taksonomiat "tuotetyyppi" ja "valmistaja", ja näihin taksonomioihin luetellaan mahdolliset eri tyypit ja valmistajat joko listana tai hierarkkisemmin. Tuotesivu-tietotyyppiin voidaan lisätä uusiksi kentiksi vastaavat taksonomiaviitteet. Kun tieto on tuotesivuilla, käyttäjä voi tämän jälkeen selata taksonomiahierarkiaa, eli esimerkiksi selata verkkokaupan tuotevalikoimaa tuotteiden tyyppien mukaan. Näitäkin ulkoasuja voi muokata esimerkiksi Viewsin avulla.

Drupalin etuja 
Drupalin etuja ovat muun muassa

 Lisenssimaksuttomuus
 Avoin lähdekoodi
 Skaalautuvuus / modulaarisuus
 Kehittyvät ominaisuudet
 Hakukonenäkyvyys
 Tietoturva

Suuria Drupalia käyttäviä sivustoja 

 The Economist
 The New Republic
 Yle (useilla alisivustoilla)
 France 24
 Suomi24 Keskustelu
 Ruutu

Lähteet

Aiheesta muualla 

 Virallinen sivusto 
 Drupal Association – Drupal-säätiö 

Sisällönhallintajärjestelmät
Vapaat ohjelmistot
Seulonnan keskeiset artikkelit