pühapäev, 25. oktoober 2009

Open source CMS Google App Engine platvormile

Olen praktiliselt kogu oma hostingu kolinud Google App Engine peale, kuid sinna saab saata ainult aplikatsioone - vahel aga on vajadus lihtsalt kodulehe järele. Ükski olemasolev CMS sinna peale aga ei sobi (kasutusel on Python+BigTable vs. standardne PHP+MySQL). Seega otsustasin luua ise lihtsa CMS-i ja olen nüüd paar päeva sellega vaeva näinud. Tulemuseks on TurbineCMS.

Hetkel ei tasu koledat disaini väga tähele panna - ma pole ise eriline disainimees, aga Heimar lubas mind selle koha pealt veidi aidata. Pealegi igaüks saab ise oma disaini luua (ja seda saab muuseas teha ka CMS-i adminni liidese kaudu).

Tegu on MIT litsentsiga välja antud avatud lähtekoodiga rakendusega, kasutan küll ka LGPL komponente (TinyMCE), kuid loodan et need litsentsid ei lähe omavahel konflikti. Samuti kasutan hetkel ühte vabavaralist ikooni failide näitamiseks, kuid kuna ma ei leidnud mis litsentsi alt see välja antud on, siis ma ei osanud sellega arvestada. Kui tuleb välja, et ei sobi, siis otsin uue ikooni.

Platvorm:
  • Hostinguna on kasutusel Google App Engine konto (id: turbinecms), millele viitab domeen turbinecms.com
  • Serveripoolne kood on kirjutatud Pythonis (1 fail)
  • Andmebaasiks on GAE poolt pakutav BigTable
  • Üleslaetud failid (sh. ka kasutaja loodud kujundusfail) hoitakse andmebaasis
  • Kõik andmebaasist tulevad andmed on puhverdatud memcache puhvrisse
  • Templiidimootoriks on Django 0.96 (GAE default)
  • JavaScripti teekidena on kasutusel Prototype + Scriptaculous
Võimalused:
  • CMS võimaldab luua WYSIWYG tekstitoimetiga (TinyMCE) uusi lehti
  • Samuti saab luua alamlehti, mida näidatakse põhilehe järel. Näiteks Uudiste põhilehele saab lisada alamlehtedena üksikuid uudiseid.
  • Lehed võivad olla mustandid või avaldatud. Juhul kui on mustandid, siis neid avalikult vaadata ei saa.
  • Saab laadida üles pilte ja faile, et neid lehe sees kasutada. Kahjuks on faili suuruse piirang hetkel 1 MB, seega tuleks pildid eelnevalt arvutis väiksemaks teha, kui need juhtuvad liiga suured olema.
  • Lehe kujundust saad muuta on-line administreerimise lehelt. Kujundus moodustub ühest HTML failist (Django 0.96 templiidiformaat)
Probleemid:
  • Hetkel on peamiseks probleemiks kujundus, mis on suhteliselt lihtsakoeline
  • Internet Exploreri kasutajatel ei toimi failide upload, failinimede asemel saab skript failinimed koos kataloogiteega - C:/Documents and settings/.../pilt.jpg" ja seega genereeritud lingid ei tööta, kuna sisaldavad endas ka failinime. Avasin ka vastava issue endale meeldetuletuseks.
Tõmmata saab (ja lähtekoodi sirvida) Google Code lehel - http://code.google.com/p/turbinecms/

Kasutamiseks peab olema Google App Engine konto, kuid testida saab ka GAE SDK-ga kaasa tuleva localhost serveri peal.

Kui keegi tunneb projekti vastu huvi ja tahab mingil viisil kaasa aidata (kas siis koodi või disaini arenduses), siis kõik on oodatud (Y)


PS. Selles blogis oli probleem kommenteerimisega - määrasin adminniliidesest, et kommenteerimine käib otse blogi lehelt, aga hetkel kasutuses olev templiit ei oska seda teha (katsetasin vana templiidiga), seega kommenteerida ei saanudki. Nüüd saab kommenteerimiseks kasutada Bloggeri vaikimisi kommentaarivormi eraldi lehel.

2 kommentaari:

afewtips.com ütles ...

It's so funny that I found your CMS. It's very nice. I am considering developing my own as well.

Thanks for the code - it helps me to understand one point of view. I mentioned it on my blog.
afewtips-com.blogspot.com

Good luck.

Andris ütles ...

Thanks a lot!