Week 7
Content modeling
versio.nl, antagonist.nl, combel, one.com, etc.
Any standard webhosting (php+mysql) will do!
We will install our project on a live hosting, so we don't have to deal with transferring it later on.
Doing this later is allowed,
in that case just use Acquia DevDesktop for now.
RECAP
Content modeling is the process of creating content models that describe structured content.
"Content models are an effective way of keeping a multi-disciplined project team aligned in their understanding of structured content. A firm and shared grasp on the structure and semantics of content, leads to more innovative ways to adapt it downstream."
Unstructured content is stupid and old-fashioned.
It’s costly, complex and does not generate a competitive advantage.
- Ann Mulhay, ex-CEO of Xerox
A content model is a representation of the types of content and their inter-relationships.
For example:
The aim of the content model is to identify these content types, model their relationships and provide a shared semantic understanding of content from sponsor to developer.
Content models appear to be the black sheep of information architecture. They are seldom done.
The perception is that they are difficult and depend upon less understood things such as metadata and taxonomy.
In fact, content modeling (or content modelling) is a highly creative activity and freakishly awkward to get right.
But difficult? No!
A content model may be a diagram on a whiteboard, a pile of cards describing your information products and services, an excel spreadsheet, or a fancy content modelling tool used by geographically distributed teams.
All or none of them may be appropriate for your particular situation.
What is important is that there is agreement on what the content is and the way it’s communicated between the cross-disciplined teams.
That is what the content model should bring to the table.
The means to define, describe, disseminate and discuss content.
There are no hard or fast rules for what a content model should look like.
A Content Type is a set of fields for a particular type of data. For example, the simplest content type is a Basic page. It has a Title and a Body field.
Most content on a Drupal website is stored and treated as "nodes". A node is any piece of individual content, such as a page, poll, article, forum topic, or a blog entry.
Treating all content as nodes allows the flexibility to create new types of content. It also allows you to painlessly apply new features or changes to all content of one type.
A Content Type is a set of fields for a particular type of data.
Each Content type has its own set of fields.
Fields don't have to be Text!
You can use images, files, references, links, dates, emails, ... and many others!
Taxonomy, a powerful core module, gives your sites use of the organizational keywords known in other systems as categories, tags, or metadata.
It allows you to connect, relate and classify your website’s content.
In Drupal, these terms are gathered within "vocabularies". The Taxonomy module allows you to create, manage and apply those vocabularies.
Just like Content types, Taxonomies also have fields.
You can add new fields, manage the add/edit form and customise (multiple) display(s), just like with any type of content!
Car Dealership
Let's use a virtual example for a non-existant car dealership: IMD CARS.
Our car dealership is specialised in selling different brands of german cars: VW, Audi, BWM, ...
Cars are sold New, or Second-hand.
Each car has a body type: Hatchback, Sedan, SUV, Coupe, Crossover, ...
Each car sold has a: brand, body type, description, serial number, price, mileage, color, interior color, number of doors, transmission-type, fuel-type, build-year, power (BHP), cylinder capacity, ...
See online for examples: https://www.2dehands.be/autos/mercedes-benz/e-klasse-break/mercedes-e280-v6-cdi-avantgarde-470581506.html
Our dealership IMD CARS wants us to build their new website.
There should be some simple pages (Basic pages) like about-us.
We will define and add different types of content and add views to view/filter the content.
Users should be able to easily find cars for sale based on the different options. So it is important to use references (like taxonomy or content).
Based on the context:
Content type: Brand
Fields:
Content type: Car
Fields:
Taxonomy: Fuel
Diesel, Gasoline
Taxonomy: Body type
Hatchback, Sedan, SUV, Coupe, Crossover, ...
Taxonomy: Sale state
New, Second hand
Etc...
Let's turn out model into reality
Brand
Car
Let's link our Car to a Brand.
We have now added a reference field, try it out!
Content references allow us to reference any type of content. Use these to link content-types to each other.
Example use-case:
Node type: Book
Content type: Author
"Each book has an author"
Add a reference: CT Book -> CT Author.
Now let's add a fuel type selection.
Options:
We have now added a reference field, try it out!
Taxonomy allows us to define Vocabularies.
These are basically simple lists of terms.
Example use-cases:
Color: Red, Green, Blue
"This shirt is Red"
Role/Function: CEO, COO, Employee, Student, Teacher
"I am an Employee"
Add all the other fields you have described in the content-model.
Our Car Dealer wants to start selling motorcycles.
How would you handle this?