Plone: Avoimen lähdekoodin sisällönhallintaa

Heinäkuu 20th, 2006

Plone logoTarkoitukseni on ollut jo pidemmän aikaa tutustua Plone-nimiseen sisällönhallintajärjestelmään. Olen törmännyt siihen mm. Oxfam Internationalin, KEPA:n, Ubuntun ja Jyväskylän yliopiston sivustoilla. Muita käyttäjiä ovat mm. NASA, Lufthansa, Computer Associates ja CBS.

Kaikki käyttämäni Plone-sivustot ovat toimineet standardien mukaan, hallitsivat Dublin coren ja käyttivät hyväkseen ns. “nostolistoja” ja niiden RSS-julkaisuja. Lisäksi sivustot tukivat kattavasti eri sisältömuotoja. Plone vaikutti siis varsin mielenkiintoiselta.

Plonen ainoa itseäni arveluttanut puoli oli sen tekniikassa. Se on nimittäin toteutettu Python-skriptikielellä, mikä ei kuulu viiden suosituimman kielen joukkoon ja josta itselläni ei ollut kovin laajaa kokemusta. Pythonilla on kuitenkin viime aikoina tehty joitain varsin tyylikkäitä sovelluksia, joista ehdottomasti upein on EVE Online-massiivimoninpeli. Python on ilmeisesti juuri 3D-puolella erittäin suosittu kieli.

Joo, mutta takaisin aiheeseen. Asensin siis Plonen ja aloin naksuttelemaan. Itselleni kymmenen tärkeintä asiaa sisällönhallintajärjestelmässä ovat seuraavat:

  1. Sisällön versiointi
  2. Räätälöitävät sisältötyypit
  3. Useamman sivuston tuki
  4. Sisällön kieliversiointi
  5. Ajastettu julkaisu ja julkaisun päättymisaika
  6. Linkkien hallinta
  7. Kattava hakutoiminnallisuus
  8. Sisällön ryhmittely eri aiheiden alle
  9. Sisällön hyväksymismenettely (workflow)
  10. Roolipohjaiset käyttöoikeudet sisältötasolla

Heti asennuksen jälkeen iski hienoinen pettymys: Sisältötyypit piti koodata itse, eikä kieliversiointia tullut asennuspaketin mukana. Suorituskykykin oli Plonen omien dokkareitten mukaan melko vaatimaton (sivun luonti tietokantahakuineen sekunnin luokkaa). Plone jäi samantien jäähylle päiväksi - odotukseni olivat olleet ylimitoitetut.

No pääsin sitten “krapulastani” yli ja jatkoin testailua. Kieliversiointiin löytyi LinguaPlone-niminen laajennos, joka vaikuttaa kyllä erinomaiselta, mutta ainakin tässä Windows-lootassa[1] heittelee merkistöpoikkeuksia.

Suorituskykyyn taas saa parannusta poistamalla kehityksessä käytetyt http-headerit ja käyttämällä cachea edustalla.

Plonen arkkitehtuuri koostuu siis seuraavista osista:

Plone stack

Koska dokumenttien mukaan Plone mahdollistaa erittäin kattavan sisältötyypityksen, päätin toteuttaa heti alkuun sellaisen rakenteen, johon 99% muista sisällönhallintatyövälineistä tukehtuisi samantien.

Ensin loin sisältötyypin koirarodulle ja koiralle. Plonessa sisältötyypit kulkevat nimellä “Archetype”. Archetype sitoo yhteen tiedon sisällön kentistä (field), tiedon tallentamiseen käytetyistä käyttöliittymäkomponenteista (widget) ja kenttien validoinnista (validator). Lisäksi archetype sisältää tietoa käyttäjäoikeuksista, vaihtoehtoisista tietovarastoista, transformaatioista, yms.

Archetype-luokkien rakentamiseen on kehitetty työväline nimeltä ArchGenXML, jolla saadaan UML-mallista käännettyä suoraan Archtype-luokkia. Varsin kätevää. UML-malliin tosin täytyy “tägätä” metatietoa kentistä ja luokista. Käytännössä homma oli näin aloittelijalta varsin tuskaista, sillä dokumentaatio tagien käytöstä oli varsin puutteellista.

Dokumenttimallini näytti lopulta seuraavalta:

Class diagram

Täytyy sanoa, että olin aika yllättynyt, kun ArchGenXML nielaisi sen mukisematta ja kakaisi ulos Zopen oliotietokantaan kelpaavat mallit käyttöliittymäkomponentteineen. Nyt ylläoleva luokkamalli oli siis muokattavissa web-selaimella ja siinä oli versiointi, käyttäjävaltuutus ja lokalisointituki.

(Venähti vähän pitkäksi tämä esittely; kirjoittelen aiheesta lisää myöhemmin.)

Pistin alle kuvankaappauksen Dog-archetypestä. Kuvauksen pitäisi tietysti kertoa jostain tietystä koirasta ja samoin otsikon pitäisi olla kyseisen koiran nimi, mutta tuosta nyt vähän näkee, millaiselta Archtype näyttää toiminnassa.

1) Linux-koneesta hajosi tällä kertaa emolevy…

Dog archtype

Artikkeli on luettu 1567 kertaa. Kuuluu luokkiin: Model-Driven Architecture, Ohjelmointi, Plone, Python, Sisällönhallinta

Jätä kommentti

(ei näy sivuilla)

(kirjoita kuvassa näkyvät merkit, pakollinen)

Sallitut HTML-elementit:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Kalenteri

Heinäkuu 2006
M T K T P L S
« Kes   Elo »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Uusimmat kirjoitukset

Sivusto

We can't solve problems by using the same kind of thinking we used when we created them.
- Albert Einstein