So you’ve heard the discussion about ExpressionEngine 2.0. You’re not an add-on developer and you don’t program PHP. You just like ExpressionEngine as a CMS. So what does ExpressionEngine being on CodeIgniter mean for you?
The literal meaning
One of the biggest changes you’ll notice right away is that ExpressionEngine’s folder structure has completely changed. Yes, there are still good ‘ol index.php and the themes and system folder, but when you click on the system folder you see this:
“Where is the extensions folder? I see plugins, but no modules? Helpers? as in Hamburger?”
Do not be alarmed my Type-A friend, this is merely one of the changes in moving an application into CodeIgniter. You’re actually looking at the CodeIgniter folder. Even the cache folder isn’t the same cache that you’re used to. No, it’s CodeIgniter’s cache folder and it’s not going to hurt you (it doesn’t even want permissions!).
config.php? There’s no
config.php. I know I need to give that permissions.”
You do, but its moved. To where? The
expressionengine folder. This is what CodeIgniter calls an application folder. The system folder is the CodeIgniter framework or system, the
expressionengine folder is the ExpressionEngine application. You open the
expressionengine folder and you’re greeted by this:
This is now ExpressionEngine. You will find your
config.php in the config folder, and your
cache folder to its left (if you use alphabetical sorting). In the folder
third_party is where you now install your add-ons: modules, plugins, etc. Don’t be fooled by the modules, plugins and extensions folder in the directory. They are ExpressionEngine’s built-in extensions and modules and they do not concern you at all. You will spend a small amount of your time in the config folder for setup, and do most of your work in the templates folder.
Installing ExpressionEngine has also changed. The form is not as long, but to install you will go to
http://www.yourdomain.com/system/ instead of just automatically loading the installation script. It’s a minor change to install but don’t be confused on first run.
Everything else is exactly the same past this change in structure. You still create sections and make channels (formerly weblogs) the same. You still upload your files to the server and need a database. You still work in the templates area in the CP or with flat files in the
/system/expressionengine/templates/ folder (or wherever you designate in the template settings). So do not fear this change in structure.
Yes, but what does it mean?
Primarily, it means that the application you use to build websites just gave a tremendous amount of power to the people who build the add-ons you use. With CodeIgniter, it takes it onto a whole ‘nother playing field because no longer is ExpressionEngine limited to interacting with extensions or modules. No, with CodeIgniter entire applications can interact with your ExpressionEngine install.
Let’s say, for example, you want to build an e-commerce solution. ExpressionEngine can be heavily modified to support such an idea, and many have successfully done so. However, wouldn’t it be easier if you just install another application and one add-on and the two interact? Now payment processing is passed on to your ExpressionEngine application through CodeIgniter and likewise content is shared between the two. You get the security of well-built CodeIgniter payment processing application with the content management of ExpressionEngine.
Or, for another example, let’s say that you’ve looked high and low for a good calendar solution. ExpressionEngine doesn’t have a solid way to do it, so you keep looking. You don’t want base functionality, you want Google Calendar functionality. This leads to a big problem: that kind of extension could severely mess with your ExpressionEngine content. Plus, who wants all those repeating entries. Instead, what if you could create an entry and then send it to your Google Calendar CodeIgniter application. You could set various options in the publish page (e.g. repeat every month) and EE will talk to the other application easily, give it the data, and you only have one entry to maintain in ExpressionEngine.
“OK, that’s a little too much for my tastes,” you say, “I don’t need an entire application.”
Well, CodeIgniter means another thing for you front-end folks: Developers will be able to build more complex, useful add-ons quicker and that do things better. So you’ll have more addons that facilitate making your job easier. You also get all the CodeIgniter developers potentially building something useful. This means a broader market with more competition which, historically, means you’re going to get a better product and bang for your buck.
Also, it means CodeIgniter and EE are now intertwined at EllisLab. If one product gets an update it will most likely benefit the other.
So what should it really mean to you, front-end user, that EE is CodeIgnited?
It means you don’t have to worry about it being CodeIgnited, but you can now start thinking about growing your client services and or current site with ExpressionEngine, and without it getting in the way.