Updated on 15 March 2018

The big picture

Of code and (wo)mens

Drupal is based on a core that provides the kernel and its own modules and themes.
The core is maintained by a dedicated crew. It provides a starting point that can be extended by other projects maintained by the community: contributed modules, themes or distributions.

While you can append contributed modules and themes to the core on your own project, distributions are packaging them with the core with their own installation profile, to achieve a dedicated use case. Example: Drupal Commerce.

Distributions can also be extended by other projects. Example: add a new theme or module on Drupal Commerce.

Distributions provide site features and functions for a specific type of site as a single download containing Drupal core, contributed modules, themes, and pre-defined configuration. They make it possible to quickly set up a complex, use-specific site in fewer steps than if installing and configuring elements individually.

Drupal site building concepts

Full documentation is available on the Drupal 8 User Guide.
Here is a summary to understand the underlying infrastructure for the site builders.

Structural information and storage

Storage (persistence) is the responsibility of entities that can be

  • Content entity : stored on the database, used by any Drupal user.

  • Configuration entity : stored on configuration files, mostly used by the developer and the site builder.

We will focus here on the content entity concept.
Note that content entities can have several display modes (e.g. full and teaser).

Content type [/admin/structure/types] and node [/admin/content]

  • A node is the basic piece of content

  • Nodes can be from several types (known as “content types”), describing the business model: Article, Basic Page are coming out of the box, Event, Session, Training, Organization,  … are customized.

  • Nodes can be created, edited and translated with the contributor role.

Taxonomy vocabulary [/admin/structure/taxonomy] and term

  • Taxonomy vocabularies are used for content (node, user) categorization

  • Each vocabulary is composed of terms

  • Terms can have an hierarchy and multiple parents

User [/admin/people] and role [/admin/people/roles]

  • Users are being used to access the Drupal backend

  • Users are grouped by roles

  • Roles can be cumulated

  • Each role has a set of permissions

Blocks [/admin/structure/block]

  • Blocks are being used to handle page display exceptions

  • They can appear on regions, defined by themes

  • Their display can be based on conditions (by path inclusion or exclusion, by role, …)

Field

  • Fields can specialize content types, taxonomy vocabularies, users and blocks.

  • Fields can be shared among the same entity type (you can share the field Image with Basic Page and Article), allows one single instance on the same content type (you cannot create two image fields with the same machine name on the same content type, but you can create a field_image and a field_logo).

  • Fields are not shared among  different entity types, so they can adopt the same machine name: you can create a field_image for vocabularies, even if it already exists for content types.

  • Some are simple (text, long text, float) while other can be composite (address)

  • Fields have cardinality (one to many values)

  • Fields can be used to reference any another entity (the Article content type can reference a Article Type vocabulary).

  • Fields can be defined as sub structure with some modules (e.g. Field Collection or Paragraphs) that can also have cardinality. Note that Field Collection is probably on its way to be deprecated.

  • Fields can be synced among content translation or be defined as translatable

Views [/admin/structure/views]

Views are SQL query builders that are primarily focusing on one entity type.
They can use filters that are implicit or exposed to the user, relationships and much more...

Translation

Translation occurs at several levels

  • Content entity translation

  • Configuration entity translation

  • User interface translation : system global, like button labels or pagination

More information about translation

Menu [/admin/structure/menu]

Menus are being used for frontend or backend navigation (e.g. About in the footer, Main navigation, User account menu, ...).

Content edition

Edition modes

  • Available once logged in as admin

  • Content edition: frontend and backend views

  • Content creation: backend view only

  • Backend view provides filtering

Single node edit

  • HTML editor : use “Paste from Word” feature to avoid HTML issues

  • HTML (bold, italic, headings, ...) is interpreted with the frontend guidelines (no user defined styles)

  • Automatic summary (for lists) is by default, can be overridden by a custom summary for the body field or other fields defined with this feature

  • Inline images should be avoided as much as possible (no automatic crop / resize), prefer image fields.

  • Menu item creation shortcut : menu title can be overridden (shortened version). Menu item description and sort is only available via the Menu interface (“Structure > Menu’s”).

Content list (backend view) [/admin/content]

  • Can be filtered (published status, content type, title, language)

  • Can be sorted by column (title, type, ...)

  • Bulk actions are available (delete, unpublish, …)

A note about the naming conventions

There are only two hard things in Computer Science: cache invalidation and naming things.

-- Phil Karlton

Historically, depending on the context (user interface, code, ...) we can find several synonyms for Drupal data structures.

Content types

Content type can have several bundles (Page, Article) that are producing nodes.

We should talk about Entity type of Node for a Content type and Node type for a bundle.
This is the case in the code.

Vocabularies

Taxonomy can have several vocabularies that are producing Taxonomy terms.
We should talk about Entity type of Term and Term type.

Display and view modes

Entities can have several Display modes (Teaser, ...). In some situations they are called View modes.
Do not get confused with the Views that are SQL query builders.

Title and name

Node entities have title while Taxonomy Term have name.

Drupal 8 User Guide

Drupalize.me provides free video tutorials to get started with Drupal 8, one of the best resources to get solid site building knowledges.

  • Chapter 1. Understanding Drupal
  • Chapter 2. Planning Your Site
  • Chapter 3. Installation
  • Chapter 4. Basic Site Configuration
  • Chapter 5. Basic Page Management
  • Chapter 6. Setting Up Content Structure
  • Chapter 7. Managing User Accounts
  • Chapter 8. Blocks
  • Chapter 9. Creating Listings with Views
  • Chapter 10. Making Your Site Multilingual
  • Chapter 11. Extending and Customizing Your Site
  • Chapter 12. Preventing and Fixing Problems
  • Chapter 13. Security and Maintenance
  • Chapter 14. Final Thoughts

Add new comment

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Only images hosted on this site may be used in <img> tags.
CAPTCHA This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.