We all know what content is...sort of. This book is made up of content. This chapter contains content, as does this section within this chapter. The more important question is: what is it in the context of Drupal? This question is best answered with the home page as an example, because you'll know it when you see it!
The following screenshot shows a piece of content that I added to the site, in the main content area, with a thick rectangle around it:
When rendered and displayed in the browser, it's simply content, but up until that point, it is content of a certain type, of a content type, also known in Drupal as a node bundle. Does Drupal look at this content simply as:
Chapter 2 - Understanding Content Types
We all know what content is ... sort of. This book is made up of content. This chapter contains content, as does this section within the chapter. The more important question is, what is it in the context of Drupal? The question is best answered with the home page as an example, because you'll know it when you see it.
No, content is stored within Drupal in a way that facilitates selecting it based on almost any criteria you wish.
Let's take a look at the database for a moment. This isn't something that you need to learn, but it's good for illustration purposes. If we were to look at the main identifying information for this piece of content within the Drupal database, we would see this:
+-----+------+---------+--------------------------------------+----------+
| nid | vid | type | uuid | langcode |
+-----+------+---------+--------------------------------------+----------+
| 1 | 3 | article | 6166dc8e-1c64-4897-807e-7c535934f616 | en |
+-----+------+---------+--------------------------------------+----------+
You can see this in the article value in the type column, which contains the content type in this table. "Article" is the content type of our content. Let's leave the database behind and look at our content and its content type in the way that you will use it, via the user interface (UI).
In the Drupal documentation, you will often find a URL specified in an abbreviated manner, omitting the domain name to avoid confusion since most users will be using different domain names, so instead of mysite.com/page1 you might simply see /page1.
One of the pages used most often by a content editor is the content administration page. We'll begin there by clicking the Content link in the admin menu, which will take us to admin/content, as shown in the following screenshot:
As you can see in the preceding screenshot, our content is listed, its title is on the left, and the type given is Article. We will learn more about the use of this page in Chapter 4, Creating and Editing Content, but for now we want to use it to lead us to the page on which we can edit our content. Let's click the Edit link at the opposite end of the row from the content title, which will display a node edit form for the content, as shown in the following screenshot:
We sometimes tend to think of content as a big block of body text, but content can be stored as discreet fields so that important elements can be easily accessed and properly formatted:
You can see the same content in this form as you did on the page. However, here you also see the fields that hold that content. The content title is in a field labeled Title, and the main text is in a field labeled Body. There are two additional fields that are not being used by this particular piece of content: a field for categories, labeled Tags, and one that is used for attaching an image to the content, labeled Image.
By having a Title field and a Body field, both the user and Drupal understand that the information in each is separate from the other. This doesn't mean that they cannot be displayed together, but there are many reasons why we may want to be able to differentiate them.
For example, when this content was displayed on the homepage, the title and the body text were formatted differently. Another example is that we might want to have Drupal provide us with a list of content titles. In both examples, it is important for Drupal to be able to determine which part of the content is the title. If all of the content in the piece was thrown together, there would be no way for Drupal to know where the title ends and the body text begins. Having them in separate fields removes any ambiguity.
So, we have seen what the content looks like when separated into separate fields. But where do the fields come from? How does Drupal know which fields to offer to receive our input? Let's take a look at that next.
A content type is essentially a collection of fields used to hold the various items that together form the whole of the content. In the case of the piece of content that we have been using, it is an example of the Article content type, which is one of the two content types that are present when you first create a new Drupal site, with the other being the Page content type.
If you think of a company's job application, every application contains the same fields for entering information, even though the information differs from one to another. In this example, the job application is a content type. Let's take a look at the Article content type in terms of how Drupal provides it.
To navigate via the admin menu, click Structure. Then, on the next page, click Content types, which will lead to a page that you can also reach via the browser instead at /admin/structure/types, as shown in the following screenshot:
We'll now take a look at the content type definition. To start, rather than click on the default choice of Manage fields, click the arrow next to that and select Edit:
Let's take a brief look at the settings in the preceding form:
- Name: This is the plain language name that the content type will be identified with. In this case, this is Article. To the right of ...