My ideas

Adrián Ribao <[email protected]> Fri, 21 Apr 2006 18:13:21 +0100
Newsgroups gmane.comp.cms.bitflux.general
Message-ID <[email protected]>
Hello everybody. In this mail I just want to explain my ideas about a CMS and 
especially a CMS based on XML. I don't want to bother anyone with my 
commentaries, I know that there are a lot of developers working in this 
project and with great skills. I repeat, this is only an opinion.
First of all, I want to congratulate everybody with their job. BitFlux seems 
to be fantastic.
I wanted to start a project, something like a CMS but based on XML, the 
problem was my lack of time and experience, so I decided to look for something 
that was already started to colaborate. I only found Bitflux.
I have been trying to learn about it the las days, above all, the plugin 
system, because is one of the most important things in a CMS. Let the people 
have what they want to have.
After read about it, I think that it's very complicated to start, and maybe 
develop if you don't know how BX(bitflux) works deeply.
My ideas about a XML based CMS are these:
1-) Plugins must be as independent of the CMS as possible. That's the big 
philosophy in XML, do everything independent. Data and Format. A plugin is 
only a module that has some inputs and one output, so a plugin should return a 
XML file with a XSLT associated. I had in my mind a universal module for 
whatever is the CMS as everybody can use XML and XSLT to do whatever the want 
inside the CMS.
- The configuration:
Create a directory with the plugins i.e. "./plugins/" and a directory for 
each plugin i.e. "./plugins/quotes/". After, create a XML inside of the 
plugin directory ("./plugins/quotes/config.xml") that configures the plugin, 
("./plugins/quotes/output.xml"./plugins/quotes/, 
"./plugins/quotes/template_X.xslt" and "./plugins/quotes/render.xhtml") for 
the output. In there "./plugins/quotes/index.php" perhaps with one common 
function as "plugin($args)" or something different that creates the XML file 
and the XHTML file, so depending of the arguments, can render the questions 
of one poll, or the results.
In "./plugins/quotes/admin/" it would be the admin functions, XML, XSLT and 
XHTML or just definitions similar than dbforms2.
To include the functions of the framework inside the plugin just include in 
the index.php the functions, "include('dbforms2');" This way, the plugins 
could be adapted to the framework and get resources from it.
One of the keys it would be the "./plugins/config.xml" where all the plugins 
give the information to the CMS, i.e. Name, if it's activated, position of 
the render (left, center, right...),path.
"<plugin activated="1" name="quotes" >
    <path>./quotes/</path>
    <position>left</position>
    <weigh>1<weigh>
  </plugin>"
And the best of this is that install plugins is very easy, just modify this 
XML file, copy the plugin to the diretory in the right place and that's it. 
One file called install.php can do the job easily, and of course uninstall is 
almost the same.
The CMS only should "look" at this file, and call the function of each of the 
activates modules, give them the inputs, take the xhtml or the xml and set it 
in the right place.
As xhtml is XML, it's easy to modify some things with a good XML framework. We 
can use our CSS styles or Javascript files in our XSLT if we need it, then, 
take it out from the xhtml rendered file, and setting it again in the final 
xhtml file, and this way, the plugins are fully customizable, and or the 
installation is not necessary modify any template! Modifying templates and 
files in the installation is not good, with the time, the maintenance becomes 
harder and harder.
2-)SVG is XML! I think that SVG graphics will be something very interesting in 
the near future, we can create easily with GPL software as Inkscape, and we 
already have a good open library open http://www.openclipart.org. The idea of 
a XML CMS, is to take advantage of all the technologies based on XML such as 
SVG. The logos could be created for everyone, and then, with a XSLT template, 
change the text of the logo and replace it for the title of our CMS 
automatically! So for the first time, maybe it's possible run a repository 
with themes, modules and logos!Let's see.
3-)Repository. Using XML, it's very easy to keep everything updated. It's 
possible create a repository with an XML file of information for everything, 
controlling the version of the module/file/theme, download the newest and 
install automatically. And even in collaboration with openclipart.org, we can 
use a search engine to search images in the server (All the SVG files have 
tags), download to our own server and use it. That's one of the point of the 
XML, easy interaction.
4-)Find everything related with XML and use it. Jabber is a good example. 
Maybe at this moment is difficult to find some good utility, but we'll do it. 
The admin of the CMS could know what's going on immediately using jabber. 
Don't forget that Google Talk is based on Jabber.

The conclusion is that we have to take adventage of this technology, BX is the 
first CMS using it (I think), and those who hit first, hit twice! Finally we 
could have everything we need.
These are only my ideas. And I have a lot of them more, and also I know how to 
make them possible.
What about yours? What do you think?
Thank you.
-- 
bitflux-cms mailing list
[email protected]
http://lists.bitflux.ch/cgi-bin/listinfo/bitflux-cms