ExpressionEngine Mental Model
I’ve always taught people new to ExpressionEngine that it can be thought of as a salad bar.
Conceptual Understanding of EE
I think one of the hardest parts about learning ExpressionEngine is just grokking how it works at a conceptual level. So to help explain it…let’s imagine….
- You’re hungry for a salad.
- You walk into a restaurant and sit down.
- You are greeted by a waitress.
- You consult the menu, and order a Garden Salad.
- The waitress notes your order, and walks back into the kitchen where the restaurant keeps the salad ingredients. In this particular restaurant the wait staff does the salad-making.
The waitress, however, is new. She doesn’t know exactly how to make a Garden Salad.
Actually this particular restaurant has had a lot of turnover – it seemed like every week the manager had to train a new wait-person on how to make a Garden Salad.
So the restaurant manager had the idea to put a guidebook on the wall by the salad bar. The guidebook has several sections in it – one section for each type of food the restaurant serves. Each specific item on the menu has a page in the guide that lists the required ingredients.
But – this manager is really anal. He wants each serving of that food item to look the same each time – so the Garden Salad you order today is identical to the one you ordered last week.
To achieve this level of consistency, the guidebook page actually has a diagram of where each ingredient in the salad needs to go on the plate.
Making the Salad
The waitress grabs the guidebook and flips to the “Salads” section. She finds the Garden Salad page, grabs a plate, and begins to assemble the salad.
She grabs some lettuce from a big bowl of lettuce, then some tomatoes from a medium size bowl, some carrots from a small bowl, and so on with all the ingredients until the salad on her plate matches the diagram on the guidebook page.
She hangs the guidebook back on the wall, and brings you your fresh Garden Salad.
You’ve just read a story of how EE works.
Once Again, With EE
Let’s look at it again.
- You sit down with a computer and bring up a web browser (find the restaurant and sit at a table).
- You go to Google and do a search (consult the menu).
- You click a link in the results that leads to an ExpressionEngine-based website (order a Garden Salad from the waitress).
- EE starts to process the request (walks into the kitchen).
- EE goes to the Templates in the Control Panel (finds the guidebook).
- EE first finds the correct Template Group (flips to the Salads chapter in the Guidebook), then the correct template (the Garden Salad page).
- The template has specifics on what content it needs (lettuce, tomatoes, carrots, etc).
- ExpressionEngine goes to the database (salad bar) to gather the content.
- EE grabs content from channels designed to hold one type of content (bowls in the salad bar).
- EE arranges and formats the content per the HTML/CSS that is also in the template (arranges the salad per the guidebook diagram).
- Once done, EE returns you the fully assembled and formatted page (finished Garden Salad) in your browser (plate).
Key Points :
- EE provides all the heavy lifting
- Templates provide direction on both content and presentation
- Templates are organized into groups
- Channels are storage containers for content
- Channels can be bigger or smaller depending on what content they hold
- One channel should only contain one type of content
- Each page in EE is usually made up of content from multiple channels
Go ye now and eat salad!