This glossary describes terminology and acronyms used in the Drupal project and by the Drupal community. These terms are not (typically) specific to any version of Drupal. However, Drupal 8 introduces a broad swathe of new concepts, terms and acronyms. See Drupal 8 Background & Prerequisites for an initial list, and check this page for mentions of Drupal 8.
The account is created during registration or by an administrator. This account is used to connect content to the interacting user.
A function that operates like a stored procedure. The function parameters, if any, are stored in the database and the function is executed by retrieving these stored parameters and calling the function.
A visitor to a Drupal website who is not currently logged in. Drupal considers any such visitor as being the anonymous user, with the user ID 0, and belonging to the anonymous user role.
An application programming interface (API) is a particular set of rules (“code”) and specifications that software programs can follow to communicate with each other. Within Drupal there is the API Reference which contains documentation for developers. There is also a Form API and Field API
A section of the path for a page on a Drupal website. In the path /node/937 the first argument is “node”, and the second is “937”. Some modules, most notably Views, allow the use of “wildcard” arguments that allow a particular page to vary depending on context.
One of two content types that are enabled in the standard installation profile. Articles are used for time-sensitive content like news, press releases or blog posts. This content type is called "Article" in Drupal 7 and later, and "Story" in earlier versions of Drupal.
Api.drupal.org. API reference site for Drupal developer's documentation.
Basic page #
One of two content types that are enabled in the standard installation profile. Typically basic pages are used for static content that can (but are not required to) be linked into the main navigation bar. This content type is called "Basic page" in Drupal 7 and later, and "Page" in earlier versions of Drupal.
Base theme #
A Base theme is a well-written set of CSS and template files that a theme developer can make use of in a new custom theme. Theme developers can make sub themes to override the default base theme. Some of the popular base themes include Zen, Omega and AdaptiveTheme
Binary Large Object. A collection of binary data stored as a single entity in a database management system.
The boxes visible in the regions of a Drupal website. Most blocks (e.g. recent forum topics) are generated on-the-fly by various Drupal modules, but they can be created in the administer blocks area of a Drupal site. See the documentation for more information on blocks.
Birds of a Feather. An informal discussion group. Unlike special interest groups or working groups, BoFs are informal and often formed in an ad-hoc manner. BoF meetings are common adjuncts to planned "sessions" at Drupal camps and at DrupalCons
A set of pages tied together in a hierarchical sequence, perhaps with chapters, sections, subsections, and so on. You can use books for manuals, site resource guides, Frequently Asked Questions (FAQs), or whatever you’d like. To use books, enable the core Book module.
branch maintainers #
See core committers
The set of links, usually near the top of the page, that shows the path you followed to locate the current page. For example, it might show Home > Macadamia Nuts > Current Events > News Articles, meaning that you started at the home page, clicked on “Macadamia Nuts” in the menu, then selected “Current Events” in the sub-menu, and finally selected, “News Articles.” The term breadcrumbs is borrowed from Hansel and Gretel, who left crumbs of bread along their path so they could find their way back out of the forest.
The mechanism for registering a path so that the correct function is fired when the URL is accessed. They are not shown in the menu. For understanding callbacks see Drupal’s page serving mechanism.
A camp is a one to two day event that focuses on many aspects of Drupal in one location. Its focus is knowledge sharing amongst the community. Essentially, you’re getting the community together to do some community training. See Organizing Drupal Camps for more information.
Content Construction Kit. A contributed module which permits site developers to define custom fields and content types. A variety of extension modules to CCK exist permitting specialized field definitions such as images, dates, and computed values.
Objects that can have hierarchical relationships, such as menu items, book pages, taxonomy terms and so on. A “child” menu item, for example, is nested under another menu item, which is referred to as the “parent” menu item.
clean URL #
A URL that does not contain code. By default, Drupal uses and generates URLs for your site’s pages that look like “http://www.example.com/?q=node/83.” By enabling clean URLs this will be rewritten to “http://www.example.com/node/83”.
Content Management System. In the context of a Web site. a collection of tools designed to allow the creation, modification, organization, search, retrieval and removal of information.
code freeze #
The date at which no new features can go in the next version of Drupal, unless specific dispensations have been made by the core committers (even then, only when the impact on other systems is minimal). At code freeze, the focus in Drupal core shifts to bug fixing and usability improvements. It is the time when contributed module developers can begin working on updating their code to work with the next version of Drupal.
Process of applying a patch to code and pushing it on the Git Server, so that this change is visible and downloadable by everybody. In Git terms actually does not involve the push part, but in Drupal community generally this is included.
The dependency manager used by drush, the Symfony framework, and Drupal 8. It is the preferred means of installing many Drupal based projects. See http://getcomposer.org for more details.
configuration management #
Introduced with Drupal 8 as a way to keep track of the important details as you configure and revise your site. Drupal 8 comes with a file system-based configuration management system, which provides tools for transporting configuration changes such as new content types, fields, or views from a development server to a production server (or similar). It even lets you use version control for your configuration. Save your config data from the database to files. Learn more about basic configuration management concepts.
The text, images, and other information on a web site. Besides nodes there is more content on a typical Drupal site, such as comments and file attachments.
Content Construction Kit #
content type #
Every node belongs to a single “node type” or “content type”, which defines various default settings for nodes of that type, such as whether the node is published automatically and whether comments are permitted. Common "Content Types" that just about any website would have include: blog post and page. Content types can have different fields and modules can define their own content types. The core Drupal Book and Poll modules are two examples of modules that define content types.
Multiple meanings depending on use.
- Context: A popular contrib module which allows you to vary the theme, block layout, menus, etc. based on conditions such as the content type, current user, etc. It is frequently used to provide variety in the user experience across different sections of your site.
- A key concept of the ctools module which was taken from Panels. Contexts provide a consistent wrapper API for various objects (nodes, users, etc.). This greatly simplifies the coding necessary to make user interface functionality aware of the objects that could influence its behavior.
Contributed. Modules or themes that are not part of the core Drupal product. Contributed modules and themes are available for separate download from the modules and themes sections of Drupal.org downloads. These are separate from the Drupal “core”, although over time they can become part of it. Similar concepts exist in other software and are sometimes called “plugins”, “add-ons” or “extensions”.
The files and modules included with the Drupal project download.
core committers #
core contributor #
core maintainers #
See core committers
critical path #
The code that is run when serving a cached page.
A command scheduler that executes commands or scripts (e.g. scripts to backup a database) automatically at specified time and date intervals. Drupal uses a “cron job” to perform periodic tasks that help Drupal to run smoothly and efficiently.
Drupal 6. Any version 6 of Drupal, including all minor versions 6.x.
Drupal 7. Version 7 of Drupal, which includes any minor version, e.g. Drupal 7.0, Drupal 7.23
Drupal 8. Version 8 of Drupal, which includes any minor version, e.g. Drupal 8.0, Drupal 8.1. D8 can also refer to beta versions, e.g. Drupal 8.0.0-beta10 or versions still in development stage, e.g. Drupal 8.x-dev
Drupal Association. An organization dedicated to helping the open-source Drupal project flourish.
An index for fields, blocks, etc., of the same type.
DO, D.O. #
Drupal.org. The website of Drupal “(where you are right now)”.
display mode #
In Drupal 8, "Display Modes" is an area in the core interface under "Structure" that comprises view modes and form modes, both of which are used to create custom displays of entities and their edit forms.
A single downloadable archive containing Drupal core, contributed modules, themes, and pre-defined configuration. A distribution provides site features and functions for a specific type of site. They make it possible to quickly set up a complex, use-specific site in fewer steps than if installing and configuring elements individually. An index of distributions is available at the Distributions page.
The semi-annual conference dedicated to gathering Drupal practitioners. It alternates between a North American location and a European location.
The Drupal mascot. It is a neologism formed from joining the words “Drupal” and “icon”.
A command line shell and scripting interface for Drupal written in PHP. More information is available at the Drush project page.
Drupal Developer Experience.
Drupal configuration exported into code using the Features module. In Drupal 7, Features has become the standard way of exporting and versioning configuration that is stored in the database so that it can be moved from development to QA to production in a repeatable manner.
Elements of data that can be attached to a node or other Drupal entities. Fields commonly contain text, image, or terms.
A way to mark an information item for selection for further processing on Drupal.org this is done for flagging issues.
A common placeholder name, e.g. for names of variables (“$foobar”) or functions (“foo_bar()”).
A copy of source code from one software package that receives independent development, thus creating a distinct piece of software.
form mode #
A form mode is way to customize the layout of an entity's edit form. In Drupal 8 this is located under Structure > Display Modes.
Groups.drupal.org. The site that serves the Drupal community by providing a place for groups to organize, plan and work on projects. Real world local user groups in particular are encouraged to setup their online presence at GDO.
A version control system used by Drupal code contributors to coordinate their individual code changes. Git records everyone’s changes to a given project in a directory tree called a git repository. For more information, see the Git documentation .
Graphical user interface. A program interface that takes advantage of the computer’s graphics capabilities to make the program easier to use.
The current development version of core or a module.
A PHP function that is named foo_bar(), where “foo” is the name of the module (whose filename is thus foo.module) and “bar” is the name of the hook. Each hook has a defined set of parameters and a specified result type. See also theme hook.
human readable #
Also user-friendly name. The text string used to identify a resource as displayed in the user interface, as opposed to the machine name used for internal purposes of the computer program.
input format #
A tool for defining the processing that happens to user-entered text before it is shown in the browser. Usually different user roles are given permission to use different input formats depending on how much they are trusted. For those roles, the input format may often be available as an option that shows up underneath the body of a node edit form. For more information, see the Text Filters and Input Formats documentation.
Numeronym for internationalization, replacing the 18 middle letters with “18”. Internationalization refers to enabling translations and other-language support (including alternate character sets and right-to-left rendering) in computer systems.
Internet Relay Chat. A network protocol that allows people to chat in real time over the Internet. Drupal discussions are often going on in The Drupal IRC Channels
A unit of work to accomplish an improvement in a data system. An issue could be a bug, a requested feature, task, missing documentation, and so forth. The Drupal community uses the issue queue to work as a team. If you need help with a specific project, whether it is a module or theme, you should go to the issue queue.
The Drupal Jobs site.
Numeronym for localization, replacing the 10 middle letters with “10”.
Linux, Apache, MySQL and PHP. LAMP is an interoperable group of open-source computer programs that form the most common environment to run Drupal on.
legacy code #
A no-longer supported version of Drupal. The term can also mean code inserted into modern software for the purpose of maintaining an older or previously supported feature.
A library of code from a third party. libraries is a module that will help you manage and load these.
machine name #
Also machine-readable name. The text string used by the computer to identify a resource, as opposed to the human readable name shown in the user interface.
Single community person which is responsible for the module, also has the right to commit a patch into module. Can be multiple people per module.
In Drupal, the term refers both to the clickable navigational elements on a page, and to Drupal’s internal system for handling requests. When a request is sent to Drupal, the menu system uses the provided URL to determine what functions to call.
Moving content from other sources into Drupal or from Drupal 6 or Drupal 7 into Drupal 8. See Introduction to migrate D6 to D8
A feature of Drupal that allows one to run multiple web sites from the same Drupal codebase. See Multi-site - Sharing the same code base
A piece of content in Drupal, typically corresponding to a single page on the site, that has a title, an optional body, and perhaps additional fields. Every node also belongs to a particular content type, and can additionally be classified using the taxonomy system. Examples of nodes are polls, stories, book pages and images.
node type #
See content type.
Object Oriented Programming #
The focus of object-oriented programming it is to break down a programming task into objects that expose behavior (methods) and data (members or attributes) using interfaces. The most important distinction between procedural and object oriented programming is that procedural programming uses procedures to operate on data structures, object-oriented programming bundles the two together so an "object", which is an instance of a class, operates on its "own" data structure.
See Basic Page People also use the word "page" to mean a web page (i.e., a page you get to by navigating to a specific URL on a web site).
A small piece of software designed to update or fix problems with a computer program or its supporting data. This includes fixing bugs, replacing graphics and improving the usability or performance. For more information, see the patch documentation.
In Drupal terms, a unique, last part of the URL for a specific function or piece of content. For instance, for a page whose full URL is
http://example.com/?q=node/7, the path is “node/7”. Drupal can use clean URLs if the Path module is enabled, which would change the full URL in this example to
http://example.com/node/7; the path would still be “node/7”.
In Drupal, a tool for controlling access to content creation, modification and site administration at the application level. Administrators assign permissions to roles, then assign roles to users. The first user of a Drupal site (User1) automatically receives all permissions. In operating systems like UNIX, permissions are security settings restricting or allowing users to access information or perform certain functions at the operating system level. In the case of files on UNIX systems, there are three types of permissions: read, write and execute.
Procedural Programing #
The focus of procedural programming is to break down a programming task into a collection of variables, data structures, and subroutines. The most important distinction between procedural and object oriented programming is that procedural programming uses procedures to operate on data structures, object-oriented programming bundles the two together so an "object", which is an instance of a class, operates on its "own" data structure.
The state of a node that can be viewed by visitors to the website. To easily hide nodes from the public (i.e. anonymous role), make the node unpublished by unchecking “Published” in the node add/edit form.
A job management technique. Jobs waiting in a line (queue) are usually processed on a first in, first out basis or by priority, if specified. The Drupal community uses the issue queue to work as a team. If you need help with a specific project, whether it is a module or theme, you should go to the issue queue.
reference field #
A type of field that allows authors to create a relationship between an entity and one or more other entities. For example, authors might "tag" an article with taxonomy terms using a Term Reference field. Other reference fields can be used to define other kinds of relationship (for example, between nodes and other nodes, or nodes and users). Depending on the Drupal version and/or contributed modules installed, these might be called Entity Reference, Node Reference or User Reference fields.
Defined areas of a page where content can be placed. Basic regions include: Header, Footer, Content, Left sidebar, Right Sidebar. Different themes can define different regions so the options are often different per-site. Content is assigned to regions via blocks. They can be ordered by weight within regions to define the order in which they display.
render array #
Render arrays are the basic building blocks of Drupal content. In Drupal 7, render arrays provide a structured way to programmatically alter content before it is displayed. Further details can be read on the Render Arrays documentation page.
Sets of permissions that can be applied to individual users. Users can belong to more than one role. Two roles, authenticated users (those users that sign up for an account) and anonymous users (those either without an account or not logged in), are supplied by default with Drupal installations. Drupal allows creating additional roles.
Reimplementing of code on top of HEAD of a code repository, mostly because HEAD has changed. Learn more.
Really Simple Syndication. A family of Web feed formats used to publish frequently updated content such as blog entries, news headlines or podcasts. An RSS document (which is called a “feed” or “web feed” or “channel”) contains either a summary of content (“teaser”) from an associated web site or the full text. RSS is one of the many ways of connecting a Drupal website with external sites, systems and data.
Reviewed and tested by the community. RTBC is one of the statuses given to issues in the issue queue.
Right-to-left. Languages such as Arabic and Hebrew run from right to left across a written page, and need to do the same on a web browser. RTL support can be problematic in theme design, but is possible, as explained in the Drupal theme guide for RTL.
A formalized array structure representing one or more database tables and their related keys and indexes. More information can be found in the Schema API.
A meeting where people meet gather at a specific time to discuss and work on software development tasks. A code sprint is a typical element of a Drupal event.
A content type that is defined in a default Drupal installation, typically used for content that has a date associated with it, such as a news item. This content type's name was changed to Article in Drupal 7.
Tape archive. A file format and the name of the program used to handle such files. Drupal projects are distributed in Zip and tar.gz formats. A *.tar.gz file is a combination of two technologies: Tar - create the file and Gzip - compress the file (similar to zip).
In Drupal, "Taxonomy" is the name of a powerful core module that gives your sites use of terms. In Drupal, these terms are gathered within vocabularies which the Taxonomy module allows you to create, manage and apply.
A short introductory sentence or paragraph about a piece of content that informs readers about the subject of the content. By default, the first paragraph or two of the content is used (there is a setting for how much), usually with a link to the complete node.
A file to express presentation (vs. program logic). Templates are mostly HTML with special PHP variables. The variables in templates substitute in values provided by a theme engine.
A continuous integration service for testing patches submitted to project issues on Drupal.org. These are maintained by the Drupal.org Infrastructure team.
A file or collection of files (PHP, INFO, CSS, JPG, GIF, PNG), which together determine the look and feel of a site. A theme contains elements such as the header, icons, block layout, etc. Drupal modules define themeable functions which can be overridden by the theme file. There are additional themes available in the themes section of downloads.
theme engine #
A set of scripts that interprets code and makes theming a site easier. These scripts take the dynamically generated content and output it to HTML. Drupal has three theme engines in addition to being able to write a theme that bypasses the theme engine. The default theme engine is phpTemplate. There are additional theme engines for downloads.
theme hook #
An identifier used by the calls to the theme() function to delegate rendering to a theme function or theme template. Modules which extend Drupal may declare their own theme hooks to allow themers to control the markup of that module in their theme. Theme hooks are distinct from API hooks, although similar in concept.
Defined by modules, triggers typically result from some characteristic change in an entity maintained by a module. Some examples of triggers are: deleting content, adding a comment that a user has logged in, or adding a term. In addition to the triggers provided by the Drupal core modules, triggers may be added by installed contributed modules.
A new bug or issue is assigned a priority based on its severity, frequency, risk and other predetermined factors, borrowed from medical term triage.
User ID. The unique identifier for each user. It can be found in the path to the user profile, e.g. “http://drupal.org/user/1”
Moving from one minor release to another, e.g. moving from Drupal 7.12 to Drupal 7.14. See Upgrading from previous versions.
Moving from one major release to another, e.g. moving from Drupal 7 to Drupal 8. See Upgrading from previous versions.
uniform resource locator. The address that defines the route to locate an object on an Internet server. Generally, the syntax for a URL contains the scheme, host-name, port, path and filename, e.g. http://www.drupal.org/node/937
The user interacting with Drupal. This user is either anonymous or logged into Drupal through its account.
The first user created on installation and granted additional (all) permissions. This user is referred to as the site maintenance account in Drupal 7.
user experience. An umbrella term referring to the overall experience and satisfaction a user has when using a website. It is important to note that this “includes only what the user perceives and not all that is presented.”
view mode #
A view mode is way to customize how an entity is rendered. Examples are 'Full Page', 'Teaser' or 'JSON'. In Drupal 8 this is located under Structure > Display Modes.
A module which allows site developers a graphical interface for creating lists of various Drupal entities; most notably users and nodes. Views permits selection of specific fields to display, filtration against various attributes, choice of basic layout options (i.e. list, full entities, teasers, etc.), and other more advanced features. Many Drupal sites use Views extensively. In Drupal 8, the Views module is part of Drupal Core.
In reference to the Views module above, a view is what is created when the site builder adds or creates a new view from the interface. Each view uses a table in the database as a "base table" to build a list of objects. The view by itself is an abstract wrapper of instruction that are inherited by each view display created within the view.
view display #
In reference to the Views module above, view displays are created inside of a view to display the objects fetched by the view in different manners. For example, a view called "Blog Posts" might have view displays for "Top 5", "Most Recent", or "Posts by Author".
A term used by Drupal to define the priority or order in which a function is processed or a block / node is displayed. From Drupal 6, the weight field is adjusted dynamically using a drag-and-drop interface. Note: A lower weight value (-10) will float to the top of lists, while heavier (+10) weights will appear lower in lists.
a field API and CCK term used to refer to the HTML form element used to collect the input for the field from the user.
What You See Is What You Get. An acronym used in computing to describe a method in which content is edited and formatted by interacting with an interface that closely resembles the final product.
zebra striping #
Alternating colors behind rows of data. This is often used in tabular data where rows of data alternate background colors between white and a shade of gray.
The zip file format is a data compression and archive format. A zip file contains one or more files that have been compressed, to reduce file size. Drupal core and modules are offered both in the zip and tar format.
For alternative explanations of Drupal terms or slang and acronyms used in software development, these external sites may be useful: