Understanding Drupal as a Content Management Framework
Drupal is an incredibly powerful web development tool, like King Kong standing tallest in the jungle. Understanding Drupal’s true value and potential can be difficult for people unaccustomed to working with its awesomeness every day. Diana Dupuis recently wrote a great article for the Linux Journal about comprehending Drupal, and some of her lessons may help you if you’re considering a new Drupal website.
How most people encounter Drupal
Most people encounter Drupal for the first time when they are looking for web solutions to complicated problems, like starting a new website with powerful possibilities beyond a mere blogging platform. As Dupuis points out, most of these people are interested in learning the answers to three questions:
- How long will it take,
- How much will it cost, and
- Can my site do [insert cool new thing]?
Successfully aligning your project goals with a web system like Drupal requires cooperative discussions between all stakeholders as well as the Drupal designers and developers on each of these points.
It is especially important that such conversations go beyond the mere surface if you are comparing different CMS options such as WordPress vs Drupal, says Dupuois, “Everyone involved needs to understand that they can architect a Drupal site that offers a more-sophisticated set of features than a WordPress site, because Drupal is not a content management system (CMS); it is a content management framework.”
Understanding how Drupal websites work
“Many people don’t know how Web sites do what they do,” cautions Dupuis, “Nowadays, most sites are dynamic. Small programs, called Web applications, are uploaded and stored on the server. Instead of delivering a static page to view, the program runs when the browser lands on the page, applying logic to the page creation process. This logic dictates how the page is built each time a page is requested (also called "on page load"). For example: the program gets the header, gets the main menu, gets the page's unique content, gets the footer and delivers the whole page to the browser. As a result, now there can be one editable header, one footer and one menu shared among all Web pages.”
Within the overall design framework, each individual page or content type are able to load uniquely. Dupuis writes, “What about the page's unique content? How does the application ‘get’ that? Imagine a spreadsheet where each row represents each page's unique content. Dynamic Web sites store content in this way. They use a database, which can be imagined as a collection of spreadsheets, called tables. Each table, like a spreadsheet, has columns and rows. Each row has a unique ID. When a page is displayed, the content associated with that page—an article about container gardening, for example—is retrieved from the database table and output to the page.”
How Drupal goes beyond being a normal CMS
“Drupal is a CMS insofar as it is an application that saves content to a database and displays it to a page using logic that is written into its core or added by programmers,” explains Dupuis, “But Drupal is not (really) a CMS; it is a framework that does ‘CMSey’ stuff. Drupal provides the structure for Web applications, far more complex than a CMS, that do all the things Web sites can do: expand the functionality (using contributed or custom code), communicate with other Web applications, run applications written in PHP and other languages behind the scenes, provide responsive pages or integrate front-end languages, scale to handle large traffic numbers by making use of server technologies and provide the foundation for other as-yet-unthought-of innovations.”
In its most simple forms, Drupal allows users to do all the traditional content creation and management tasks, with an easy capability of adding fields of related data to each content type without needing any coding skills. However, because Drupal features the code and application framework, it can create complex applications that treat your content in an unlimited number of dynamic ways, rather than merely presenting it within a fixed framework.
In the words of Larry Garfield, a Drupal core contributor:
What Drupal is today is a tool for building a content management system for a variety of different needs. That's an important distinction for someone looking to build a Drupal site to understand. Drupal is not a CMS. It is the framework with which you build your own CMS, to your specifications, to suit your needs. It is a Content Management Framework.
Dubuis elborates on this point:
The Drupal framework is a kitchen where, yes, there already are tools in the drawer and ingredients in the pantry. But those tools and ingredients do not define the meals that can be made there. Teams of site owners, stakeholders, project managers, business-goal definers and developers can cook better meals together when Drupal is understood as a framework. Approaching Drupal as a CMS often means bending it to your will: "I want zucchini muffins like my mother used to make; do that." As a framework, Drupal encourages creating the best, most-elegant recipe within the scope of the endeavor: "Here's some zucchini, what can we do with this?"
Once you understand the true possibilities of Drupal, and its inherent ability to create customized paths and solutions, you’ll go bananas for the content management system that is really best understood as a content management framework - where almost anything is possible.