If you’re staring at Expression Engine because you are using it for first time, or considering it to build your next project on, I hope this helps explain a few basics I had questions about when I started. My first introduction to Expression Engine (EE) was this past summer, building the Engage site for Cooperative Extension Services here at UAF. First impressions weren’t shocking. Normally, I find myself developing on WordPress or Movable Type, and Expression Engine is very similar to those platforms in that it runs on php/mysql, and has its own collection of template tags to get most things done quickly. The kicker is actually learning the lingo. EE uses different words to label its functionality, the meanings of which are not readily apparent. Confusing, if you’re used to working in another system, so let me try and clear up the things I found most perplexing.
What is a Weblog?
This is the first place I got stuck. I assume you already have a conceptual understanding of what a weblog is, so I’m going to speak specifically within the context of EE. In a single installation of EE you can create many “weblogs”. The thing is that what they call a “weblog” should really just be considered a container for content that behaves like a conventional weblog. These “weblogs” can be renamed to something more semantically meaningful to your project. For instance, instead of using the term “weblog” you can change it to be “site” or “monkey”, or whatever – you decide. The important thing to remember is that no matter what you call these “containers” – weblogs, sites, or monkeys – they can have their own set of administrative rules that are configured separately from the other “containers”. A “weblog” titled Energy can have its own set of Categories, its own Template Groups, its own set of Member Groups, and its own Members. In this way EE is very flexible.
This flexibility was one of the reasons we chose EE for our project. We needed a platform that would enable the creation of separate “sites” for a number of different user communities that could then be aggregated into a single portal view on the home page, with a shared administrative system to control editing privileges, template features, and security for those different communities.
What Do You Mean “Groups”?
This was the next fuzzy experience I had with EE – Groups. There are five administrative areas in EE that are referred to as groups:
- Category Groups – these control the categories that are available in a particular “weblog”. Configure these by going to Admin – “Weblog” Administration – Category Management in the Control Panel
- Field Groups – these control what form fields are available on the New Entry page when posting to the web site. Configure these by going to Admin – Site Administration – Custom Site Fields in the Control Panel
- Status Groups – these determine the workflow of new posts within a “weblog”. The default statuses are Open and Closed, but you could add more such as Draft or Live if your site requires more control in throughout the editorial process. Configure these by going to Admin – Site Administration – Custom Entry Statuses in the Control Panel. These are directly tied to Member Groups in that you Assign Member Groups to Status Groups (to control how how members of each group are able to post content to the site)
- Member Groups – these control who has what permissions on the web site and within different “weblogs”. Configure these by going to Admin – Members and Groups – Member Groups in the Control Panel. New Members are then assigned a Member Group when their accounts are created.
- Template Groups – these drive the appearance of pages depending on which “weblog” is being viewed. This makes it possible to have separate areas of the site that look totally different or that share components among each other. Configure these by going to the Templates tab in the Control Panel. Assign a Template Group to each “weblog” configured on the web site.
Each of these types of groups can be configured differently for each “weblog” (or “site” or “monkey” – whatever you call your containers) in your EE installation. Each time you create a new “weblog” in your EE installation you will have to specify which groups are to be used for that new area of the site. Keep in mind the you may not need more than one “weblog” in your EE site, in which case you would only have to set up your groups once.
Where Am I? (Link Structure)
This was the hardest characteristic of EE to wrap my head around. In fact, I still don’t feel comfortable with it. EE builds templates dynamically from the database. Template Groups names and Template names determine the URL of pages. For example, the default address of the home page of an EE site is:
All other pages are built off of the index page because the templates are pulled from the database (by default). The address of a page displaying a single article would have an address built like this:
The URL structure is very difficult to relate to at first. Fortunately, there are ways to get around it and make URLs look normal. Understanding how EE builds URLs, regardless of what the end users see, will help you as the developer leverage the flexibility of the templating system.
After I understood EE “weblogs”, groups and URL structure I was ready to actually tackle my project. If you haven’t looked at EE yet, the above information will seem mostly useless, I think. My next post will be on how to install the EE core (which is free for personal use). That way, if you haven’t seen it in action yet, you will be able to get your feet wet.