Drupal lingo

I got some good feedback from one of my students, who thought there were a lot of new terms when using Drupal. Here is some kind of list of Drupalese words, that are good to know when learning and using Drupal. See it as some kind of glossary to peek at whenever you feel lost in translation.

Site building with Drupal core

  • Nodes are pieces of content, and are usually just called content. All nodes belong to one content type (also called node type).
  • Node types/content types are different set-ups of nodes. Different content types can have different default behaviour for things like published state, but more importantly they can also have different fields for data storage on them. In a standard Drupal installation, you got the content types basic page and article.
  • Entities can be things like nodes, users, comments and files. (Technically, entities is a standardized way to manage storage and retrieval of data in Drupal.) Some entities are fieldable, meaning that you can add fields to them.
  • Fields are buckets to store data on (fieldable) entities – for example the body field on basic pages or the image field on articles. Fields can be configured to store, a single entry or multiple entries (such as the tags on articles). (The term fields is also used by the Views module, with a quite different meaning.)
  • Taxonomy is the word Drupalists use when talking about categorization. Think of it as "the art of categorizing". Sometimes the word taxonomy is (incorrectly) used when talking about vocabularies.
  • Terms, or taxonomy terms, are individual categories used in Drupal's taxonomy system. A tag added to an article is a term. Each term has its own page, where all content marked with that term are listed.
  • Vocabularies, or taxonomy vocabularies, are buckets of terms (categories) that are grouped together. The tags used in the standard articles belong to the tags vocabulary. You could add a new vocabulary section, and populate it with other terms (kept separate from the tags).
  • Bundles are different flavours of entities, usually separated by which fields they have. The standard example is content types, which are bundles of the node entity type. Some entity types, like users, don't come with specified bundles. (The word bundle rarely appears in site building.)
  • Modules are plugins that extend or alter the behaviour of Drupal sites. Modules can do minor tweaks or be large complex frameworks.
  • Themes render the actual output of Drupal pages. Normally, content and its presentation is completely separated on Drupal sites. The standard theme in Drupal 7 is called Bartik, while the theme used on administration pages is called Seven.
  • Blocks used to display stuff in sidebars, footers and other so-called regions. Static blocks can be created manually, but normally blocks are dynamic and provided by Drupal modules. (Blocks are not content. Blocks are not entities, but many Drupalists wish they were.) A special block contains the main content of the page, such as the node being viewed.
  • Regions are buckets that contain any number of blocks. Examples of regions are page top, sidebar first and footer. Regions are defined by the site's theme, and their number, placement and names may vary between different themes.

Site building with Views

(to come…)

Coding modules and themes

  • Hooks are used when writing Drupal modules. They mean that a function following certain naming conventions will be detected and called at certain points. For example, the hook_menu() function is used to declare internal Drupal paths, and hook_form_alter() can be used to alter any Drupal form before being built.
  • Template files, or .tpl.php files (or even tipple fips), are templates being used when rendering Drupal content. The block.tpl.php file, for example, is used when a block is being rendered. Template files should consist of HTML (or other markup) and simple PHP. Template files can be overridden by copying them into your own theme. It is also possible to make specific overrides with naming conventions, such as block--user.tpl.php.
  • Theme functions are alternatives to template files, building rendered output through PHP functions rather than templates. Theme functions are usually placed in the theme's template.php file. Theme functions can be overridden by copying them to your theme's template.php and renaming the function to YOURTHEME_function_name (rather than theme_function_name). It is possible to use specific
  • Preprocess functions are normally used to add or tweak variables available inside template files, for example to provide the $subject variable in block.tpl.php.

More Drupal terms may be added later on.