Mambo is an open source content management system (CMS) that makes it quick and easy for content to be posted online. It runs off of a mysql database and uses php as the 'glue' between the html output and the database. This is pretty typical (Nuke, PostNuke, phpWebsite, etc. etc.).
There are lots of good cms models out there and rabid fans that are committed to them. It's the size and strength of the fan base and community that drives the open source projects forward. In other words, skilled programmers contribute their efforts and code to the project so that either the core program is improved or additional add-ons (bells and whistles like forums, chatrooms, ecommerce shopping carts, and galleries).
Before I give my opinion of Mambo, I'd like to quickly answer "Why am I giving an opinion and why should anyone listen?" Too many give opinions without answering these two questions.
1- I've coded a 15,000 page website that's database driven, handcoded in php, uses my own templating engine (albeit a basic one), that is a job board with some cool bells and whistles.
2- I've created a nice little bit of php code designed to be a safe alternative to Matt's perl FormMail. The code has been dowloaded several thosand times over the past few months.
I'm not the alpha and omega of programming... I could name a few folks at TCH who know much more than I do... but I have taken a close look at the code behind Mambo to see what it does... and doesn't do.
The reason I'm taking time to review Mambo (and risk getting flamed) is so that beginners who are just learning about cms systems can make a more informed decision. I said MORE informed because you never have all the facts and I don't pretend to present all of the information you need.
I tried out Mambo with the hopes that it would enable me to do the following:
Crank out production quality sites more quickly
Give my clients a user interface for adding content
Integrate the templates with other scripts and programs that aren't specifically designed for Mambo (invsion board, Gallery, etc.)
Integrate my own templates into the system
Create sites that weren't restricted to a portal-esque look
Create sites that weren't handicapped when it comes to search engine positioning
Create sites that are easy to navigate
All in all, Mambo is an excellent CMS. It's very intuitive. Setup is simple. It practically works 'out of the box'.
Strengths:
User Interface
Probably the strongest aspect of the Mambo system is the user interface. It's very easy to use and gives helpful hints when you try to submit a form without all the required information.
Integrates my own template designs easily
It's pretty darn easy to take an html page and put the Mambo engine behind it for content publishing. This can't be done via the user interface (and I've seen another system where it can be done this way)... so the beginner would have some difficulty figuring out how to do it, but on a scale of 1 to 10, I'd say the difficulty level is a 3 or 4.
Flexibility of site design is fantastic
This is a little repetitive since I just mentioned that I can integrate my own templates into the system... but it's imporant to note that the vast majority of Mambo sites look different. Sure, if you use the system out of the box and change very little, it's going to look like a basic Mambo site. But when you go to the forum and see the sites run off of Mambo... sites created by the members, you see every type of design under the sun. You don't have to use the Mambo navigation scheme (I suggest you don't) and so you're only limited by your imagination. By contrast (and I'm probably going to anger a few) most Nuke or PostNuke sites are clearly portal Nuke sites... not that that's bad. I'm speaking generalities so if you have a Nuke site that doesn't look like a Nuke site... don't take this as an attack. I'm talking about the majority of Nuke sites except yours.
Mambo is easy, it's fast to set up, and very flexible. But it's far from perfect and I've decided to ditch Mambo for a number of reasons. I have NO desire to convince anyone to leave Mambo... but I think it's fair to point out some limitations... many of which are limitations shared by the majority of CMS systems... not just Mambo.
Weaknesses
Non-Mambo Content
I have code that I have written, content I don't want to retype, and third party scripts that I don't want to scrap. To integrate these into Mambo isn't impossible, but it's extremely difficult. The really dissapointing thing is that the Mambo templating system (they don't call it a templating system) SHOULD be able to handle non Mambo content.
All that they would have to do is replace some of the relative links in the include functions
>include index2.php;
to absolute links
>include $mosConfig_absolute_path. "/index2.php";
How hard is that??? Why don't they do that? Dunno. But because they don't, I was faced with a choice of
Scrap my content
Only use Mambo coded scripts
Retyped my content
Hack the Mambo code
Create two copies of the template and update both copies every time a change is made
For example, the form mail code I've created enables me to do more than the 'Contact Us' section of the Mambo system... but I can't use it with Mambo and have it appear to be a seemless portion of my site unless I hack up the Mambo code.
I've successfully hacked the Mambo code to make it do what I want... but every time a new version is released I have to re-hack the code or ignore the update.
A few of the Mambo community contributors have come up with roundabout ways through the use of iframes and other workarounds to incorporate third party code and content... but these are weak patches that frequently break or display content in a strange manner.
Admittedly, this is a weakness shared by almost every CMS out there (at least most of the ones that I have seen). But like I already mentioned... the Mambo code is so close to creating a template that CAN be used with third party content that it's a shame that they don't go the final step. Maybe they will eventually.
Search Engine Positioning
Mambo has a nice option for search engine friendly urls but to be honest, some of the urls created look strange... if not to Google and the like then to me and any visitor.
It's not bad... but again, with a little extra effort, it could look like a 'real' url that most static sites create.
But the real point isn't the look, but the result. I have to be careful here and emphasize MY experience so that I don't make generalizations. My experience is that the client sites that I converted to Mambo had a drop in rankings. There could be a lot of reasons for this... but my clients are more in love with revenue than they are with the Mambo user interface. So if it comes to deciding between the two, Mambo's gone.
Mambo sites require extra clicks
There have been entire books devoted to helping folks like you and me to create sites that make it easy for visitors to find things fast. The fewer clicks the better. If you are savvy enough to create your own navigation scheme in your Mambo system, then you have complete freedom... or more freedom... but in general, you can't just create and publish Mambo content (links, faq, news, articles, etc.) and expect that your visitors can get to them without extra clicks.
Example, if you put up a section of links in the Mambo user interface... then on the Mambo generated menu on your website, you'll see 'Links'. Click that brings you to a page with several categories of links... you choose one and finally come to the page with links on it. Two clicks to get where you are going instead of one... not the best idea.
If you want a quick idea of what I'm talking about, look no further than the mambo site itself... mamboserver.com. Follow the 'Links' hyperlink and you'll see what I mean. Although the organization is nice if you have fifty outbound links, how many sites need that many? How many sites have so many articles that it warrants grouping them into categories and requiring users to click one extra time??
Again, I'll say that if you don't use the Mambo generated menu then this point is irrelevant, but to avoid using the Mambo generated menu requires an intermediate level knowledge of php and html. It's not an out of the box solution and therefore slows down production time.
Mambo also forces the concept of Categories onto the user in the administration section. It requires you to create categories for articles and links even if you just want to add one or two individual items.
I know the CMS could be made so that the category model isn't forced on us.
Random Gripes
CSS-P Layout
I'm finally making the switch over to css design whenever possible. Mambo mixes up structural code in many of the php pages making it all but impossible to use a css design. You'd have to do a major hack of the entire core of the Mambo code to make it work.
I won't go into the pros and cons of CSS layout... I've decided to make the switch and Mambo presents an obstacle to that objective. If you like tables, you'll love Mambo.
Again, smarter programming would make it very easy for Mambo to use whatever layout a user wanted... even if it required an understanding of templating systems.
Documentation
The documentation is basically a forum of dedicated Mambo users. I'm guilty of not creating the best documentation for my scripts, but they're also not as complex as Mambo.
Member Authorization
Mambo programmers have promised that in the near future, you'll be able to restrict certain portions of your Mambo site to various member groups, much in the same way that you can use the Invision Board control panel. You'll be able to assign priveleges to different groups. Currently, it's not available.
Hostile forum responses
I've made some of these suggestions to the Mambo forum only to get responses that range from defensive knee-jerk protection of their favorite CMS, to the standard blow off ("Why would you want that?")
Certainly there are some kind and corteous Mambo forum members, but it's the proverbial bad apples that give me the impression that suggestions are rarely given more than a passing glance.
It's too bad that cooler heads are sometimes drowned out by reactionaries. It's unfortunate that some suggestions aren't looked at more closesly. BTW... it's not just my suggestions that seem to be blown off.
After reading through some of the posts, you definitely get a different feeling than you do at TCH. You're a little less inclined to put in your two cents.
Overall....
Mambo is an excellent CMS and makes it very easy for even relative novices to bring high quality content to the web and to create good looking websites. You aren't forced to use a portal approach unless you want one.
If you already use Mambo and love it, then you should continue to do so. It's a great system. If you are a beginner to novice and want to create websites quickly and easily then Mambo can save you time.
Mambo is a tool for web publishing and quick and easy sites. It's a powerful tool but can't be expected to do everything. The more customization you need, the more that Mambo (and most CMS systems) will frustrate you.
It's easy for me to sit back and pick at the flaws of a CMS when I don't have a better alternative to offer. But in a way, I do have a CMS that works for me.
My personal decision is to go back to creating my own scripts, templating engine, and content so that I can create production quality sites faster. It leaves me with one template system for all of my content that I can change quickly. It's a snap to incorporate third party code.