Mambo Musings

Team talk about the Mambo CMS and developing open source software

Posts Tagged ‘Mambo CMS’

Get Involved with Mambo

Posted by Elpie on March 15, 2009

Mambo is a volunteer, open source software project and, as such, is dependent on contributions from the community. This space has been created to help people who want to get started with contributing to Mambo.

Contributing to Mambo is easy so whether you are an aspiring developer, tester, documenter, or Mambo enthusiast with some time to donate to Mambo there are many ways in which you can help.

How to Start Contributing to Mambo

Getting started with contributing to Mambo is simple – just decide on what you want to do, and do it!

More information here: http://mambo-manual.org/display/contrib/Home

Everyone welcome – the more, the merrier!

Posted in Mambo, Mambo CMS | Tagged: , , , | Leave a Comment »

Mambo 5.0 – baking with cakePHP

Posted by Elpie on July 25, 2007

From Team Mambo…

With the 4.7 release just around the corner the Mambo team thought now would be great time to discuss with the community our plans for post 4.7 releases. The major initiatives laid out on the Roadmap a year ago are still in place, but the release plans have changed slightly based on some decisions we have made. Originally we had planned to release 4.7, then 4.8, and then 5.0. We are now planning to move from the 4.7 release directly into Mambo 5. The 4.8 release was to focus on database portability, content versioning, and the implementation of a PHP template engine. Version 5.0 was to tackle features like enhanced Access Control Lists (ACL), N-Level content organization instead of the current two tier section/category structure, multi-site management, etc.

The team has spent a great deal of time thinking about the approaches we will take to implement all those features and how best to leverage the great work being done by others within the PHP community as well. Over the last year the number of PHP frameworks on the market has increased as have the maturity level and feature set provided by each. As the size and complexity of a project like Mambo grows having a solid foundation to build from becomes increasingly more important. We believe that Mambo 4.7 will prove to be the best Mambo release yet. The team has spent a considerable amount of time working on XHTML validation, WCAG 1.0 (Priority 1, 2, and some 3), removal of unnecessary and/or inaccessible JavaScript code, improved usability, plus much more. With a solid release like Mambo 4.7 out we will have a stable, accessible, and standards compliant system for the community to use which will allow the team to fully focus its attention on the future. Of course we will continue to provide maintenance releases of 4.7 as needed while we work on Mambo 5.

Mambo 5 offers us a chance to step back and rework things from the ground up. There couldn’t be a better time to leverage the benefits of tried and true enterprise patterns and features offered by a number of great web development frameworks on the market today. After a great deal of research the Mambo team has decided to utilize the CakePHP framework for Mambo 5. CakePHP is a rapidly evolving, mature, and feature rich PHP framework. The project is backed by an official Foundation (http://cakefoundation.org/) much like the Mambo project itself. We believe this is an important criterion as it helps assure the project will remain active and community minded. CakePHP also has a growing community, a software forge (http://cakeforge.org/), and a nice body of documentation. From their site, “Cake is a rapid development framework for PHP which uses commonly known design patterns like ActiveRecord, Association Data Mapping, Front Controller and MVC. Our primary goal is to provide a structured framework that enables PHP users at all levels to rapidly develop robust web applications, without any loss to flexibility.”

Here are some of the standard cake features:

  • Hot Features:
    • Model, View, Controller Architecture
    • View Helpers for AJAX, Javascript, HTML Forms and more
    • Built-in Validation
    • Application Scaffolding
    • Application and CRUD code generation via Bake
    • Access Control Lists
    • Data Sanitization
    • Security, Session, and Request Handling Components
    • Flexible View Caching
    • And More…
  • Active, Friendly Community – Just join our IRC channel to see who’s in. We’d love to help you get started.
  • Flexible License – Cake is distributed under the MIT License
  • Clean IP – Every line of code was written by the CakePHP development team
  • Extremely Simple – Just look at the name…It’s Cake
  • Rapid Development – Build apps faster than ever before (check out the zZine article – http://www.zzine.org/articles/cakephp)
  • Best Practices – Cake is easy to understand and sets the industry standard in security authentication, and session handling, among other features.
  • OO – Whether you are a seasoned object-oriented programmer or a beginner, you’ll feel comfortable
  • No Configuration – Set-up the database and watch the magic begin

We realize this decision is not only important for the Mambo core, but also for the 3rd party developer community. I’m sure at this point most of you have at least read about and more than likely have tried at least several different frameworks. In fact you probably already have a favorite. Like anything else, each framework has its own strengths and weaknesses and CakePHP may or may not be your first choice, but we hope you’ll agree that CakePHP is a solid choice and certainly one of the top frameworks available today. Having a framework like CakePHP at your disposal should make developing Mambo add-ons just that much easier and offer new levels of extendability. Developers will find a great starter manual (http://manual.cakephp.org/), a solid API (http://api.cakephp.org/), plenty of online tutorials (http://bakery.cakephp.org/) & screencasts (http://cakephp.org/screencasts), an IRC channel, and the projects Google Group (http://groups.google.com/group/cake-php) for CakePHP support. Of course Mambo 5 will have its own documentation as well, but we still have a long way to go before then.

Also, just so you know its not all theory I thought I would mention that we already have a pre-alpha prototype of the new Mambo 5 installer. I’ve spent the last month or so reworking some early code I had done on the Mambo installer for 4.8 around database portability. I started the code 1 year ago this week and set it off to the side for a long while waiting for 4.8. With 4.8 going away and the project moving to CakePHP I decided it was time to bring it back to life and do it the CakePHP way. It utilizes ADOdb and AXMLS to create the initial Mambo database and land the database connector. From that point on it relies on the native database portability drivers within CakePHP. Having these native drivers has made life much easier than previous methods. The pre-alpha version was done on CakePHP 1.1.x and has support for SQLite, PostgreSQL, and MySQL. CakePHP 1.2 is now in alpha status and is looking better by the day. Before too long I will rework the installer to utilize the 1.2 branch which will bring even more databases into the mix; oracle, db2, and mssql. By no means is the pre-alpha installer ready for production, but it does show off some nice functionality and proves Mambo and CakePHP can make a nice pair. We will be sharing this with interested 3rd party developers as a sample shortly after 4.7 is released.

It’s the perfect time to make a shift and look toward the future of this great system of ours. We hope you’ll join us on this new adventure. Mambo on!

Got some thoughts to share about this news?
Join the discussion on the Mambo forums at: http://forum.mambo-foundation.org/showthread.php?t=6663

Posted in Mambo, Mambo CMS, Open Source | Tagged: , , , , , , , | Leave a Comment »

Mambo 4.7 and its affect on templates

Posted by Elpie on May 23, 2007

As Mambo 4.7 gets closer to release, its worth having a chat about what this means for existing Mambo web sites.

4.7 marks the first step on the road to making Mambo an accessible CMS. As previously discussed, Mambo is approaching this in two phases. Let’s take a look at what this first stage means.

When development first started on Mambo in 2000, there was only one standards-compliant browser – the late, great IE5 for Mac. All others used proprietary code and site designers had to kludge their way around the various browser quirks. In software design little, if any, consideration was given to the separation of logic and presentation. PHP itself was often referred to as not just a programming language, but also a method of presentation.

So, Mambo developed with its presentation logic intertwined with source code. Worse yet, from a template development point of view, the code that was used right throughout the Mambo source code was HTML 4.0 Transitional.

While the programming code of Mambo has improved over the years, the HTML was so deeply embedded into almost every file that developers were reluctant to change this. Making such a change requires not just a commitment to a great deal of work in refactoring the code, but also acknowledgement that there is no way to achieve this without breaking backward compatibility with existing templates.

It is far easier to write an accessible CMS from scratch than it is to take legacy code that has been under development for seven years and refactor it for accessibility. It is for that reason Mambo is undertaking the work in two stages. Frontend (the template design and visitor experience) first, to allow site owners to take advantage of the improved web standards compliance in modern browsers and all the features they offer to site designers, and later we will be producing an accessible backend.

4.7 will be introducing some features to the backend (administrator) functionality and I will talk more about those as we get closer to release. However, the most significant change from a site design perspective is that the XHTML code within the core files is valid, and styling is left to the site designer. All unnecessary code is gone.

This means, that from 4.7 on, template designers can, if they wish, design a fully accessible template. Mambo’s output meets all WCAG Priority 1 and 2, and much of Priority 3. If you want to design a template that validates as XHTML1.1, you will be able to with 4.7.

How does this affect existing templates? Well, most existing templates will need to either be replaced or reworked. A large number of them use tables for layout and css workarounds. If that is how you want to design templates, well, I am not going to preach the benefits of designing to web standards. However, its worth considering that a standards-compliant template not only significantly reduces cross-browser rendering problems, but also can result in a significant saving in bandwidth while providing an improved visitor experience. In many countries, it is now law for sites to be accessible. 4.7 will allow you to comply with these laws. If you are still not convinced, then consider this – Google is the most active blind user on the Net. Anything that makes a site accessible has potential to improve SEO.

If this change in Mambo appeals to you and you wish to upgrade from an earlier version, you could start working now on changing your template or designing a new one. CSS becomes very important from 4.7 on, so if you are new to designing with valid XHTML and CSS, the time to start building your skills is now. Hop over to the Mambo forums – there is a sticky post in the Templates forum that lists some useful tools and resources. (http://forum.mambo-foundation.org/forumdisplay.php?f=75)

We want to make the transition as easy as possible for Mambo users and will be providing new templates with the 4.7 distro, one of which is designed to be a template tutorial to help you customise the provided Mambo template.

4.7 marks an exciting new release and new direction for Mambo. For the first time, Mambo users will have the opportunity to design sites however they please. If you have any questions about the direction we are taking, please ask them on the forums so all developers have an opportunity to respond.

Posted in Mambo, Mambo CMS | Tagged: , , , , , , , | 4 Comments »