[theGlowfish] – codename for my new CMS

Posted by | July 18, 2010 | Uncategorized | No Comments


It’s alive!!! Finally I have enough time to finis a first pre-alpha  release of my CMS (code name theGlowfish).

So what  a hack is theGlowfish ? Well theGlowfish is an CMS  ( or in long form is an content management system ), an application that allows user to administrate the content of the website without having to bother about how the thinks are done. Content can be simple text, photos,  movies, documents and anything that you can imagine.

Why a pre-alpha release ? Why not an beta RC ? The answer is very simple: there are some modules under development ( deployment, update and design  module) that will be integrated in application core.

Why should I use it ? There are a lot of advantages of using theGlowfish from each point of view:

Simple user:

  • Clean, simple and intuitive administration panel.
  • Multiple tabs allowing you to do more stuff in parallel (for instance editing an article and creating a new menu).Untitledgugujgbjh-1
  • Treat separate the public content, private content (for registered users)
  • Multiple languages native support.
  • Mobile device detection, allowing  to be displayed a more simple design, small images, etc.
  • Simple and elegant content editor


Creating a theme for theGlowfish is very simple all you have to do is to create an HTML as you are used and add some special tags called positions that indicate to the template engine that there must be  displayed something. The form of a position is {position name=’name’}. Let see an basic example:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>


<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ />

<link href=”{$TEMPLATE_PATH}/css/style.css” rel=”stylesheet” />
<link href=”{$TEMPLATE_PATH}/css/buttons.css” rel=”stylesheet” />

{position name=’head’}


<body >

{position name=’Menu’ }

<hr />

{position name=’Content’ }



In the example above are defined 3 positions, to each position it can be associated  items to be displayed, for instance an menu or content of a page. Another simple modifier is the {$TEMPLATE_PATH} , the template engine will replace the {$TEMPLATE_PATH} with the correct relative path of the resource (image, file). There are more other special tags with more magic, the template engine used extends Smarty.


  • modularity
  • plugin support
  • MVC architecture
  • independent of database type

History ? I get sick of trying to develop new features for some well known “classic”  CMS. The weakness of the most free CMS are:  mixing the code with the presentation or the aspect of the website,bad understanding an utilization of OOP (object orientated programming), database dependency, so trying to extend or change something is very unproductive ( in non academic terms ..a pain in the ass ). The story of theGlowfish has started couple of months ago on a rainy day with me scratching some core UML diagrams of the  new CMS on an old piece of paper. If the first version wasn’t flexible enough, the second was too generic even for me ( if you would know me, I am the fan of generic programing ). The 3’rd version combined the simplicity of first and the flexibility of second was the perfect one.


Cool… so where can I try theGlowfish ?

demo page: http:\\test.andreitara.com/

admin page: http:\\test.andreitara.com/administrator/

user: admin

password: admin

Do you like it ? Want or participate ?

I have big plans and a lot o ideas for my CMS, the problem is that I don’t have time to do all the work by myself (software design, implementation, user interface, graphics , testing and debug) . If you are interested you can help me with:

  • test and debug
  • implementation (PHP, Javascript and MySql)
  • design and graphics
  • spread the idea (tell to all you’re friends about theGlowfish )
  • tell me about the things that can be improved.
  • We_Need_You


About Andrei Tara

Andrei is a developer/geek who loves creating high quality and efficient applications, always following the best practices in software engineering. He loves the challenge of learning new, exciting things and playing with new languages, frameworks, and tools.

Leave a Reply