04 - Plotting Out the ExpressionEngine Architecture
Now that I’ve decided on an outline for our model Church site, I can plot out the backend components of ExpressionEngine, or the “ExpressionEngine Architecture” that will be required to power the front-end.
What I’ll do is move through the navigation item by item and list out the EE weblog, field groups, category groups, template groups and templates that I see this site needing. This is usually a valuable exercise for me as it helps determine the scope of what I’m looking to build (and hence the time and cost for potential client work). Just FYI - this is all subject to change as I actually do the implementation.
Home Page
- Dedicated weblog
- Simple Content field group with title and body fields
- site template group
- site/index template
The home page may prove interesting - depending on how the “Join Us” content works out the only unique content left on the home page might be the “Welcome” statement.
Weblog
- Dedicated weblog
- Dedicated category group, categories TBD
- Dedicated field group with title, summary, extended fields
- Dedicated weblog template group
- weblog/index template
- weblog/comments template
- weblog/rss template
Ministries
- Dedicated weblog
- Dedicated field group with title, short description, long description, contact name / email / phone number fields
- Dedicated ministries template group
- A Categories Group that will be shared with Events
- ministries/index template
- ministries/detail template
I would have rather used relationships to drive the navigation as per this approach but if I use categories then the Events calendar can share them, and I can pull related Events to the Ministries page and vice/versa. I’ll use this basic approach instead.
Worship
- Dedicated weblog
- Dedicated field group with title, short description, long description, worship times, worship location
- Dedicated worship template group
- worship/index template
- worship/detail template
While thinking about this I realized that we would be entering worship times and descriptions in two places—the site home page and on the Worship page. Since I’d rather maintain the content in one place I’ll look for a way to pull the Worship content to the home page.
Our Beliefs
- Dedicated weblog
- Simple Content Field group
- Dedicated our_beliefs template group
- our-beliefs/index template
I see this as being a simple static section of content, so will use this approach to the navigation and template design.
Events
- Dedicated weblog
- Dedicated field group with title, duration, location, cost, contact name/email/phone, details.
- Shared Category group with Ministries
- Dedicated events template group
- events/index template
- events/detail template
- events /rss template
Events will be pretty straightforward - with the caveat that most churches would probably want repeating events and so would need the Repeet plugin from Brent Wilson. For the purposes of this tutorial however I’m trying to stick with native EE functionality. I may cover Repeet - I haven’t decided yet..;)
Photos
- EE Photo Gallery Module
- gallery template group
- gallery/index template
- gallery/category template
- gallery/image_medium template
- gallery/image_full template
Audio Messages
- Dedicated Weblog
- Dedicated Field Group with title, summary and audio file fields
- Speaker relationship field tied to Staff weblog - to pull in photo/bio of speaker one way and latest messages to their staff page the other way
- audio-messages/index template
- audio-messages/comments template
Staff Directory
- Dedicated Weblog
- Dedicated field group with title (name), position, bio, photo, contact email/phone number
- Dedicated staff_directory template group
- staff-directory/index template
- staff-directory/detail template
The decision here is between using EE’s built in Member Management that provides for bios, etc, or using a custom weblog. Since I don’t want to get into styling the member pages (which can be quite difficult), or using custom queries to pull the content out I’m just going to use a custom weblog instead. I’ll plan to look for a way to tie these entries with a member log-in, so that when a staff member posts to the weblog a link to their staff bio page will be created dynamically.
Contact
- contact template group
- contact/index template
Additionally:
- embeds template group with multiple templates for repeatable portions of the design
- stylesheets template group
- Miscellaneous Content weblog for storing footer text, user messages, etc.
In Summary
So in summary (if I can count right this morning) this implementation will require:
- 9 Weblogs
- 7 Field Groups
- 2 Category Groups
- 11 Template Groups
- 21 “Main” Templates (not counting stylesheets or embedded templates etc)
If I look at adding some workflow in where new entries need to be approved then we’ll also be looking at a custom status group. But otherwise I think that gets pretty close to laying out my ExpressionEngine Architecture requirements, and giving me an idea of the scope of the project at hand. For those of you who’ve worked through the previous tutorial series on Boyink.com, this site is quite a bit larger. The small business site built in that series has:
- 6 Weblogs
- 3 Field Groups
- 2 Category Groups
- 6 Template Groups
- 12 “Main” Templates (not counting stylesheets, embedded, or search templates etc)
Huh..in doing this comparison I realized the template I’ve chosen for church site doesn’t feature a search box. I’ll have to consider how to add a search function in as the amount of content the site could potentially house would make that worthwhile. Search would probably be better than a Site Map, so I’ll probably replace SiteMap with Search in the utility navigation at the top of the page. That will add another template group and a couple of templates to the requirements as well.
So there you have it - an overview of the work ahead and (I hope) some sense of the way I map out an ExpressionEngine Architecture against a proposed Site Map.
And - at the risk of getting a bit commercial on you - I do want to take the opportunity to pitch the Designing an ExpressionEngine Architecture screencast available here on Train-ee.com as in it I discuss some of the reasoning I use in making these decisions. Consider it an hour’s worth of EE consulting at a fraction of the cost…;) But I do think it’s a valuable resource if you are looking at starting a EE-based project but don’t have much experience with ExpressionEngine.
In the next installment I’ll actually start some of the site development by loading the static templates into ExpressionEngine.
Cheers!
Category Navigation





by tzTrainEE
Date: Wednesday, April 9th, 2008
Comment: #1
The static content choices for ministries, look helpful in figuring out the differences between categories and relationships, and when to use what.
This straight foreward refined professional approach to implementing a website architecture makes is look so-o-o easy.
I’m checking out Windows Live Writer this week, have you ever used that Mike for remote publishing along with the EE Blogger/MetaWeblog API?
It allows posts to be edited locally or remotely, so far I’m liking it.
It belongs on a top 10 list of cool things to do with the full version EE since the metaweblog isn’t a part of the core, looks like another great benefit of the licensed versions.