EllisLab's ExpressionEngine CMS is one of the most popular content management systems around. Its channel-based content classification is very flexible -- if somewhat more abstract and unwieldy, at first, than, say, WordPress' posts-and-pages system -- and it's far less painful for system administrators to maintain than most CMSs with this level of complexity.
Like most CMSs, ExpressionEngine allows third-party add-ons to be developed, enabling you to customize its functions to best suit your business' needs. These add-ons are written in PHP, the programming language used by EllisLabs themselves to develop ExpressionEngine, using a fairly simple set of functions, which means that you can generally work with any PHP programmer, not only those with experience in ExpressionEngine development.
Many of our clients, ExpressionEngine CMS users throughout Australia, chose it because of the ease of development. It has a system, known as "hooks", through which it can perform additional actions defined by a programmer when certain often-accessed functions are accessed. This means that things like customizing the Control Panel looks or changing the appearance of a page element is trivial and takes only a few minutes of hours of development for someone with experience in ExpressionEngine development, because a full-blown plug-in, like those required by Joomla, need not be written. What programmers write instead is a simpler piece of code called an "extension", in ExpressionEngine jargon, which requires less effort because you need very little code to integrate the custom actions with the CMS.
ExpressionEngine CMS development can get more complex than that, though, if needed. If you need something more advanced, such as using custom fields and tables in a database or tags for use in template, you can work with your programmers to write something known as a module. For instance, one of our clients needed to retrieve data from several servers throughout the world and display it in a custom format on his installation of ExpressionEngine CMS in Melbourne. This required data to be entered in a custom database table, and it's something solved through ExpressionEngine plugins. These are advanced extensions that can perform any actions but are accessed in the same way that ExpressionEngine accesses all of its functions, which means they can be integrated anywhere. There is slightly more code to write, though, because you need additional code to integrate the custom actions with the CMS, but the additional code is typically standard, so it is not problematic to someone with ExpressionEngine development experience.
What do you need for ExpressionEngine development? A team of experienced PHP programmers is the first and most important requirement, of course. While ExpressionEngine's internals are very well documented, it is still a fairly complex program and you generally do not want rookies working on your extensions and modules. Because it's so well documented, though, you can work with a team that has not developed for it before. To put things in better context, EllisLabs is also the company behind CodeIgniter, a set of libraries used by programmers for complex web applications development; their code is exposed to a very critical community of programmers, which means that it's of a very good quality -- very clean and extremely simple. Consequently, a good programmer needs only a few days to become familiar with ExpressionEngine development, which has far fewer quirks and inconsistencies than other popular systems like Joomla and WordPress.
If you have a large enough company and want to have everyone familiarize themselves with the add-ons, you will also want a small server, accessible only by you and your employees, where development and testing versions of the extensions and modules can be deployed. This way, you will give everyone a chance to learn how to use them in a safe environment, where they can't break anything important or make a blunder with important customers. Customizing ExpressionEngine's behaviour is a great way to streamline your business processes and to put a personal mark on your online presence. With ExpressionEngine development being so accessible, it's an opportunity you should definitely not miss.
About Author: The author works with a website design and custom CMS development company in Australia. With this article, he gives useful information on popular ExpressionEngine CMS.