03 - Creating a Content Model for an ExpressionEngine Site - Part 1

An important step in the planning process for an ExpressionEngine-driven website is creating a Content Model.  Let’s work through the process for our Portfolio site.

 

We’re at the point of laying out a plan for our Portfolio Site Build.  The task at hand is to look at the design templates as provided and develop the EE version of a Content Model.  This will serve as the roadmap for the rest of the build.

Sitemap
Let’s establish - at high level at least - what we’re going to build out using this template. It’s actually quite robust - if you look at the source files it ships with 12 HTML files and one PHP file so could be extended to build sites bigger and more complex than just what the template shows.  We’re going to keep it pretty simple by building:

  • Home Page as shown.
  • Blog with post types of Audio, Video, Link, Quote, Post, Image all categorized and archived.
  • About section with subnavigation to 3-4 Pages using the provided page-sidebar.html template.
  • Work section consisting of categorized portfolio entries.
  • Contact page as shown.

At first blush, things are looking simple.  But there are complexities lurking in there - especially within the Blog section.  Let’s talk about a couple of concepts before adding more detail to the Content Model.

Native vs. Visiting
When looking at design templates to figure out a content model learn to ask yourself - “Is the content native to this page or visiting?”  In other words, does this content live here?  If I wanted to link someone to this content would this be the page that I link them to?  Or is the content just “visiting” this page and it lives somewhere else?

Home pages are often a party of visiting content from the rest of the site.  This design template is a good example of that - the masthead rotating images are really the only thing unique to the Home page.  The middle part of the Home page is content visting from the “Work” section.  The footer comprises content visiting from the Blog and About sections, Twitter, and (I think anyway) Categories from the Blog again. 

Thinking about content as being native or visiting is important because it will help you figure out how to organize your Content Model.  For our site, since we know the Work/Portfolio content is only visiting the home page the Content Model for the Home Page doesn’t need to accomodate any Work information.  However, when the Work/Portfolio content visits the Home Page it does carry along a party favor in the form of a text paragraph that doesn’t display elsewhere. We’ll need to make sure our Work Content Model has a spot for that paragraph.

Multi-entry & Single Entry
Another template-evaluation question to ask yourself is “Is this a multi-entry page or a single-entry page?”  The easiest content type to picture here is the standard blog.  Blog indexes are usually multi-entry - because they display a listing of your most recent posts.  The entire post isn’t usually shown, but rather the title, post date and a summary or portion of the entire blog post.  When you want to read the entire post you click the title or a read more link.  The page you go to can be thought of as the single-entry for that blog post.

Why is this important for Content Modeling? Content Types often get split across multi-entry and single-entry templates. Look at that blog entry again.  It could be that the summary on the multi-entry page doesn’t appear on the single-entry page.  And the full text of the blog entry that shows on the single-entry doesn’t appear on the multi-entry. The Content Type is split across the views of the content, so you have to look in both places for the bits that make up a Blog Entry.

With those ideas in place let’s fill in the detail for our Content Model:

Home Page
The only native content here is the collection of masthead slides.  Each slide has the following elements:

  • Large Image
  • Thumbnail Image
  • Title
  • Text
  • Link Target

This content doesn’t visit anywhere else on the site, so this portion of the overall Content Model should be complete.

Blog
Most blogs have a relatively simple Content Model, but such is not the case here because this blog is more of a Tumblr-styled blog with different post types. Each post type is a unique type of content so will need detail on our Content Model:

Audio

  • Title
  • Date
  • Author
  • Audio File
  • Categories
  • Tags

Video

  • Title
  • Date
  • Author
  • Video File
  • Categories
  • Tags

Link

  • Date
  • Target
  • Author
  • Categories
  • Tags

Quote

  • Date
  • Quote Text
  • Quote Author
  • Author
  • Categories
  • Tags

Post

  • Title
  • Date
  • Image
  • Summary
  • Full Text
  • Author
  • Categories
  • Tags

Image

  • Title
  • Date
  • Image File
  • Description
  • Author
  • Categories
  • Tags

Not Done
Hang on - because we’re not quite done.  Look at the footer of the site.  Posts from the Blog appear there and they have an image with them that doesn’t appear anywhere else.  Let’s revise:

Post

  • Title
  • Date
  • Image - Large
  • Image - Footer Thumb
  • Summary
  • Full Text
  • Author
  • Categories
  • Tags

Some foreshadowing here - because ExpressionEngine is a dynamic CMS with advanced abilities there are times where we can have it create some of these Content elements programmatically.  We’ll talk specifics when implementing - but whether the system creates the Content Model element or a content editor does isn’t important just yet.

OK - moving on.

About
Pretty simple here:

  • Title
  • Main Content
  • Sidebar Content

But hold on, there’s an “About” paragraph visiting down in the footer. Let’s add the ability for any About page to drive that content:

About

  • Title
  • Main Content
  • Sidebar Content
  • Footer Blurb

Work
A bit more complex here, as this content has a multi-entry page.  The content also “visits” the home page (and remember when visiting has an additional text element that doesn’t appear on its native page).  Here then are the elements that make up this Content Type:

  • Title
  • Thumbnail Photo
  • Main Photo
  • Summary
  • Full Description
  • Client
  • Date
  • Link
  • Category

Contact
Again, pretty simple here - and when we get to implementing the Contact page we’ll discuss whether this content will be managed by EE or not:

  • Map
  • Title
  • Description
  • Form Help

What’s Next?
So far everything we’ve done is CMS-agnostic.  We’ve just looked at the design provided and broken it down into a generic Content Model.  In the next chapter we’ll translate this into EE-specifics and generate a list of Channels, Field Groups, Fields, Category Groups, Categories, etc that will be needed for EE to store, manage & generate this content.

 

Category Navigation

<< Previous Entry   

Next Entry >>

 

Previous Comments

Picture of Glen

by Glen

Date: Thursday, October 4th, 2012
Comment: #1

best EE2 tutorial ever! Thanks!

Picture of Boyink

by Boyink

Date: Saturday, October 6th, 2012
Comment: #2

Thanks Glen.

Add Your Comment

Commenting is not available in this channel entry.

Unless otherwise stated all content is © Michael Boyink of Train-ee.com & Boyink Interactive. Please don't steal - I've got kids to feed...

dy>