Drupal is a free and open-source web content management software written in PHP.
What is a Content Management System?
A content management system (CMS) is a software tool that lets users add, publish, edit, or remove content from a website, using a web browser on a smartphone, tablet, or desktop computer.
The combination of the operating system that the CMS runs on, the scripting language it is written in, the database it stores its information in, and the web server that runs the scripts to retrieve information and return it to the site visitor’s web browser is known as the stack that the CMS runs on; the commonly used combination of the Linux operating system, Apache web server, MySQL database, and PHP scripting language is known as the LAMP stack.
What is Drupal?
Drupal is a flexible CMS based on the LAMP stack, with a modular design allowing features to be added and removed by installing and uninstalling modules, and allowing the entire look and feel of the website to be changed by installing and uninstalling themes.
Drupal can also run on other technology stacks:
The operating system can be Windows or Mac OS instead of Linux.
The web server can be Nginx or IIS instead of Apache.
The database can be PostgreSQL or SQLite instead of MySQL, or a MySQL-compatible replacement such as MariaDB or Percona.
Other operating systems, web servers, and databases can also be made to work; however, the scripts that the software uses are written in PHP, so that cannot be changed.
Drupal is used to make many of the websites and applications you use every day. Drupal provides a back-end framework for ~ 2.3% of all websites worldwide – ranging from personal blogs to corporate, political, and government sites.
Drupal has great standard features, like easy content authoring, reliable performance, and excellent security.
But what sets it apart is its flexibility; modularity is one of its core principles. Its tools help you build the versatile, structured content that dynamic web experiences need.
It's also a great choice for creating integrated digital frameworks. You can extend it with any one, or many, of thousands of add-ons.
Modules expand Drupal's functionality.
Themes let you customize your content's presentation.
Distributions are packaged Drupal bundles you can use as starter-kits.
Mix and match these components to enhance Drupal's core abilities. Or, integrate Drupal with external services and other applications in your infrastructure. No other content management software is this powerful and scalable.
Although Drupal offers a sophisticated API for developers, basic Web-site installation and administration of the framework require no programming skills.
Drupal runs on any computing platform that supports both a web server capable of running PHP and a database to store content and configuration.
Drupal 8 is the biggest update in Drupal's history.
Creating content is easier. Every built-in theme is responsively designed. It's available in 100 languages, and its integration tools make it a great hub for complex ecosystems. More than 4,500 people, companies, and organizations contributed their time, experience, and imagination. The result? Over 200 new and improved features.
Drupal 8 includes new features and improvements for both users and developers, including: a revamped user interface; WYSIWYG and in-place editing; improved mobile support; added and improved key contributed modules including Views, Date, and Entity Reference; introduced a new object-oriented backend leveraging Symfony components; revamped configuration management; and improved multilingual support. Drupal 8 rc1 is the collective work of over 3,200 core contributors.
Drupal 9 is currently in development and is scheduled for release on June 3, 2020.
Who uses Drupal
Drupal is the platform the United States, London, France, and more use to communicate with citizens. It’s the framework media companies like BBC, NBC, and MTV UK rely on to inform and entertain the world. It’s part of how organizations and universities like Amnesty International and the University of Oxford work to make the world a better place.
The standard release of Drupal, known as Drupal core, contains basic features common to content-management systems.
These include user account registration and maintenance, menu management, RSS feeds, taxonomy, page layout customization, and system administration. The Drupal core installation can serve as a simple website, a single- or multi-user blog, an Internet forum, or a community website providing for user-generated content.
In the Drupal community, "CORE" refers to the collaboratively built codebase that can be extended through contributory modules and – for versions prior to Drupal 8 – is kept outside of the "sites" folder of a Drupal installation. Starting with version 8, core is kept in its own 'core' sub-directory.
Drupal core is the stock element of Drupal. Common Drupal-specific libraries, as well as the bootstrap process, are defined as Drupal core; all other functionality is defined as Drupal modules including the system module itself.
In a Drupal website's default configuration, authors can contribute content as either registered or anonymous users (at the discretion of the administrator). This content is accessible to web visitors through a variety of selectable criteria. As of Drupal 8, Drupal has adopted some Symfony libraries into Drupal core.
Core modules also includes a hierarchical taxonomy system, which lets developers categorize content or tagged with key words for easier access.
Drupal maintains a detailed changelog of core feature updates by version.
- Access statistics and logging
- Advanced search
- Blogs, books, comments, forums, and polls
- Caching and feature throttling for improved performance
- Descriptive URLs
- Multi-level menu system
- Multi-site support
- Multi-user content creation and editing
- OpenID support
- RSS feed and feed aggregator
- Security and new release update notification
- User profiles
- Various access control restrictions (user roles, IP addresses, email)
- Workflow tools (triggers and actions)
Drupal includes core themes, which customize the "look and feel" of Drupal sites, for example, Garland and Bartik.
The Color Module, introduced in Drupal core 5.0, allows administrators to change the color scheme of certain themes via a browser interface.
As of January 2017, Drupal had been made available in 100 languages and English (the default). Support is included for right-to-left languages such as Arabic, Persian, and Hebrew.
Drupal localization is built on top of gettext, the GNU internationalization and localization (i18n) library.
Prior to version 7, Drupal had functions that performed tasks related to databases, such as SQL query cleansing, multi-site table name prefixing, and generating proper SQL queries. In particular, Drupal 6 introduced an abstraction layer that allowed programmers to create SQL queries without writing SQL.
Drupal 9 extends the data abstraction layer so that a programmer no longer needs to write SQL queries as text strings.
It uses PHP Data Objects to abstract the database. Drupal 7 supports the file-based SQLite database engine, which is part of the standard PHP distribution.
With Drupal 9's new database abstraction layer, and ability to run on the Windows web server IIS, it is now easier for Windows developers to participate in the Drupal community.
Drupal is a good framework for building sites accessible to people with disabilities, because many of the best practices have been incorporated into Drupal Core.
Drupal 8 saw many improvements from the Authoring Tool Accessibility Guidelines (ATAG) 2.0 guidelines which support both an accessible authoring environment as well as support for authors to produce more accessible content.
Drupal 8 has good semantic support for Rich Internet Applications through WAI-ARIA. There have been many improvements to both the visitor and administrator sides of Drupal, especially:
- Drag and drop functionality;
- Improved color contrast and intensity;
- Adding skip navigation to core themes;
- Adding labels by default for input forms;
- Fixing CSS display:none with consistent methods for hiding and exposing text on focus;
- Adding support for ARIA Live Regions with Drupal.announce(); and
- Adding a Tabbing Manager to support better keyboard navigation.
How to use Auto-Update in Drupal?
Drupal can automatically notify the administrator about new versions of modules, themes, or the Drupal core.
It's important to update quickly after security updates are released. Before updating it is highly recommended to take backup of core, modules, theme, files and database. If there is any error shown after update or if the new update is not compatible with a module, then it can be quickly replaced by backup. There are several backup modules available in Drupal.
On October 15, 2014, a sql injection vulnerability was announced and update released. Two weeks later the Drupal security team released an advisory explaining that everyone should act under the assumption that any site not updated within 7 hours of the announcement are infected. Thus, it can be extremely important to apply these updates quickly and usage of a tool to make this process easier like drush is highly recommended.
Extending the core
Drupal core is modular, defining a system of hooks and callbacks, which are accessed internally via an API. This design allows third-party contributed modules and themes to extend or override Drupal's default behaviors without changing Drupal core's code.
Drupal isolates core files from contributed modules and themes.
This increases flexibility and security and allows administrators to cleanly upgrade to new releases without overwriting their site's customizations.
The Drupal community has the saying, "Never hack core," a strong recommendation that site developers do not change core files.
What are the reasons for using Drupal?
When building a website, you have your choice of using one of the many existing CMS packages and hosted services, developing your own CMS, or building the site without using a CMS.
Here are some of the reasons you might choose to use Drupal:
1. Building a small, simple site with static HTML pages is not difficult, and you can get a simple site up very quickly.
Setting up a site in a CMS generally requires more time initially, but brings you the benefits of on-line editing (easier for less experienced content maintainers), uniformity (harder to maintain using static HTML for larger sites), and the possibility of more complex features requiring a database.
2. Some CMS software is special-purpose; for instance, there are packages and hosted services that you can use to build a blog or a club membership website.
Drupal, in contrast, is a general-purpose CMS. If you are building a special-purpose site, you might choose to use a special-purpose CMS; however, if your site falls even slightly outside the intended purpose, you will probably be better off using a general-purpose CMS rather than trying to adapt a special-purpose CMS.
3. Building your own CMS-type software can seem attractive.
However, using a general-purpose CMS like Drupal as a starting point is usually a better idea, because the basic CMS functionality (such as user accounts and content management) has thousands of developer hours behind it, including many years of user testing, bug fixing, and security hardening.
4. Some CMS software packages are expensive to purchase a license for.
Some are free or have a free version, but have restrictive licenses that do not allow you to make modifications and extensions. You might prefer to use a package (like Drupal) that has a less restrictive software license, and is developed by a world-wide community.
5. Drupal is a free and open-source content-management framework that can be tailored and customized to simple websites or complex web applications.
Drupal grows as you grow with thousands of free modules and themes that will help you attract the web audience you need to deliver your message, grow brand awareness, and build your community.
6. Drupal is accessible and multilingual.
The latest release of Drupal is the most powerful and accessible version of Drupal to date. With accessibility and multilingual capabilities built into Drupal, you can be assured that you'll have the capability to reach the audience that you are targeting to convey your message.
7. Drupal is flexible by design.
From desktop applications such as Aquia Dev Desktop that allows you to build your web application on your own computer, or hosting from a Drupal hosting provider, you can be sure that your Drupal website and/or application will run on the platform that meets your needs. Drupal is easy to move and scale. Drupal conforms to your needs.
Understanding the difference between Drupal core, Contrib, and Community Media
Drupal is many things. It is an open source project like Firefox project. Unlike Firefox which is managed by the Mozilla Foundation, Drupal is managed by the Drupal community. Drupal is also a website. Drupal.org is where most code that makes Drupal sites work including the core Drupal project. All Drupal websites run a version of core. What makes each website different are the additional contributed modules that are added. That is often referred to as Contrib. These contib modules do everything from allow Drupal to understand and manage Dates to display Video.
The Community Media Starter Kits combine Drupal core + Contrib modules + modules written specifically for Community Media.
It is important to have a basic understanding of which modules are providing what functionality to find the documentation and get support. While the Community Media Starter Kits include all of the modules you'd need to create a website, there are thousands of modules that can add additional functionality to your website that you may consider adding.