Hmmm, no idea how I missed the progression of this thread, considering I started it :)
In quick response to my comment about an application framework, if you think of modules as little applications (which they are) using the XOOPS "frame work" to accomplish certain aspects (Auth, DB access, Presentation handling) then I think you can see why I call it such. Yes I suppose it could be called a library, but a library is nothing without the applications that use it, XOOPS on the other hand can be used without any modules (I don't count the system module as it's part of the core).
<begin rant>
Comments on the system design:
Almost all "CMS" (really portal scripts) in the Opensource community right now "attempt" to follow the
MVC (Model, View Controller) pattern in some way or another. XOOPS is loosely based on the
Page Controller using a
Template View to handle the View portion, Mambo is a
Front Page Controller and while it also implements a
Template View it does so much differently than Xoops. It uses PHP and not a template engine like Smarty. This to me makes perfect sense, since PHP is in fact a template engine or at least it was back in the early days of C. Just as PHP developed into its own full scripting language, so too is Smarty but the one crucial difference is Smarty needs PHP to interpret it. So we have Smarty->php->C, which is an unnecessary layer of processing. Is it really easier to learn Smarty than to learn basic PHP??? For a good read concerning templates, read this
http://www.massassi.com/php/articles/template_engines/old/ . Now I'm off topic, let me get back on track.
In order for XOOPS to be a contender in the CMS realm, as Herko mentioned, it needs to completely separate the three layers (or 4 really if you consider the page controller). Right now there is far too much presentation logic contained in the Page Controllers of modules and other pages. The page controller should simply be the facilitator of input data from the user, relaying that to the Model layer (Business/application logic) and telling the View layer(presentation logic) that something has changed in the Model layer and it needs to update (i.e. refresh the screen with new data from the model). The model should not be concerned with the data it's receiving, nor the data it delivers, it should only be aware of itself, and in the case of web apps, the data access layer (which is part of the model, but in N-Tier systems considered a separate layer).
Once this is achieved, multiple View layers can be developed(XML output, RSS, HTML, XHTML, Print, PDF, etc etc) and multiple Data Source Layers (DB, XML, SOAP, Flat File) without any problems at all.
Moving back to the CMS functionality; as has already been mentioned, one of the most crucial points of a Content Management System (funny how the words really do explain it all) is, well, managing the content. This not only includes the ability to add and update, but also the ability to manage the flow of which the content is produced, and by whom. While Groups are a step in the right direction, these are still geared towards a portal system managing web surfers, not workflow.
While I could list a million "features" to add to make XOOPS that little bit closer to a CMS, I find myself now asking, "Are we asking too much"? Is trying to combine Portal functionality and classic CMS functionality simply creating a beast that's only half assed at both? Are we trying to be too many things for too many people?
For me, the answer is yes! And for that reason, I've decided to pursue other avenues to fill my need for Content Management, and continue to use XOOPS for Portal site (Something it's VERY good at, the best IMO).
</end rant>