I may be a big ignorant SOB, but I just looked over the various competitors in the PHP Open Source CMS world and frankly, from a module writer's perspective, I'm not impressed.
The following are the result of quick (less than 1 hour per CMS) glances at some of the more known PHP Open Source CMS's, I could find. It is NOT a full investigation of each CMS with all possibilities and advantages.
From the top:
Mambo : Is this CMS using a template engine? I couldn't figure out how it worked. Every item in the "Modules" directory is a php file with a specific page.
There are classes, but mixed in with regular functions and not easy to figure out, what they actually do.
MySQL is as far as I can see the only supported database and it is very hard-coded into the system.
PHP-NUKEOkay - this looks more like XOOPS (no wonder, considering the history of XOOPS
![](https://xoops.org/uploads/smil42e7a3d4c7b9f.gif)
)
Modules are called from files in the root folder as querystring items - making links turn very very long if you have extra variables to give values.
Blocks seem to be controlled by the module writer, who can turn on or off right blocks.
The blocks themselves are not in the modules directory, but in a root/blocks directory.
Apart from loading config values, the mainfile has an impressive amount of functions.
The mainfile as we know it is the config.php file, which also holds the censor list and some other things.
Doesn't seem to use a template system. (Edit: There does seem to be a Template class with a sort of compiler method... doesn't look impressive to me
![](https://xoops.org/uploads/smil3dbd4d6422f04.gif)
)
Certain areas lack language constants.
There are classes for database interaction and emailing. Everything else is done by functions.
As a result, a lot of SQL sentences are just "thrown into the middle" of main files.
Themes have a lot of PHP code in them, defining e.g. table appearance with overloading functions.
POST-NUKEAgain, very few classes, mainly for database access.
ALL global variables are put into normal variables - effectively nullifying the effect of register globals (which I have always held is not a security issue with proper coding, but some people swear by having it set to 0... however, POST-NUKE will make their efforts worthless
![](https://xoops.org/uploads/smil3dbd4d6422f04.gif)
)
Modules are also here included in root files and thus given very long query strings.
Blocks are separate from modules.
Search features are totally separate from anything else.
Themes and templates are like in PHP-Nuke
Language constants also erratic
Typo-3First of all, very confusing downloading. Didn't know which file to take so I just took the one without integrated webserver/db-server and with the highest version number.
Apparently the people behind it couldn't figure out how to make a .zip package without CVS directories.
I can't find any modules in this download. This is annoying, as it means that I cannot comment on the module aspect of it.
There are a lot of classes in this CMS, which of course makes e.g. the main index.php ok'ish to get an overview of. Unfortunately the classes are not named very well and are hard (at least for me) to figure out, what each of them does.
The good points in Typo-3 is the very modular core - at least as it is described on their website. It seems that anybody can make an extension of the backend or frontend alike and thus give further options to what we in XOOPS call the "core". This is a cool feature, which would make a lot of requested things easier in XOOPS. I'm thinking auto-login, extra fields to user registration and so on.
I seriously cannot figure this one out. Will take more than the 30 minutes, I have spent until now at least
ConclusionSo, what can I use my little hands-on survey? Weelll... not much, really. It's 3 AM and I'm a little bored... should go to bed, really.
I have learned that most CMS's are hard to figure out just by a quick glance. I remember, when I got into XOOPS; that wasn't easy either, until I found out, what each line of mainfile.php, header.php, footer.php and include/common.php did.
I have learned that themes in XOOPS are quite easy to make compared to several other CMS's. There may be some constraints, but on the whole, you can do an awful lot of appearance changes simply by changing the theme.html and theme.css files.
I have learned that the modules in XOOPS are more individual than in other CMS's. Blocks are better integrated in the modules, too.
XOOPS has a very good core - better than most others - but it is rather inflexible and requires that the XOOPS core dev team are continously working on improving it.
Grande FinaleSo why should anyone use another CMS than XOOPS? I can see a few advantages:
Promises for the future: Mambo and Typo-3 have some very interesting roadmaps and seem to work very hard at making the core flexible and scalable to accomodate fast changes without breaking the running site. Cudos for that.
Modules: XOOPS may be easier to make modules for - but there ARE not that many modules out there. We have some doing more or less the same thing (HTML content and calendars, for example) and we have some quite specialised modules. But the large diversity, we lack.
Therefore my conclusion is that XOOPS is definitely worth fighting for and working on - but we need more qualified people working on modules and the core to withstand the developments in other CMS's. So join the mobile infantry today! ... erhm... sorry... bad influences, I guess
![](https://xoops.org/uploads/smil42e7a3d4c7b9f.gif)
I mean... join the module developers or core development team and help shape the future of XOOPS.
They are doing their part! Are you?
(damn... gotta stop watching so much TV
![](https://xoops.org/uploads/smil3dbd4d6422f04.gif)
)
Sorry for the long essay here
![](https://xoops.org/uploads/smil3dbd4d6422f04.gif)
Hope it was interesting to read and no, I am not looking for a flame thread about other CMS, but if there are people reading this, who have more experiences - good or bad - with Mambo and/or Typo-3, I am very willing to discuss it with them.
Nighty night