The Drupal content management system (CMS) is at the foundation of many of the websites that we develop. Despite its rapidly growing popularity, many people don't have a clear idea of what Drupal is or have never even heard of it before. We hope that the following explanations of the jargon, buzz words, and core ideas of the Drupal content management system will be helpful. If you still have any questions, please feel free to email us or leave a comment below, and we will either get back to you with an answer or point you in the right direction. We have been on the Drupal bandwagon for over three and a half years, and we are confident that you will join us once you learn more.
Drupal is a content management system (CMS). Simply put, this allows for you or your employees to add or edit content on your website via a user-friendly interface and, thus, bypasses the need to use (or pay for) someone with knowledge of HTML just to do simple modifications.
The Drupal project is open-source and is licensed under the GNU General Public License. In a nutshell, this meaning is two-fold:
The open-source nature of Drupal has resulted in experienced web developers all over the world creating hundreds of add-ons or plug-ins known as "modules". Modules are created for the purpose of adding or integrating specific features into Drupal. Most modules are originally created because a need for one has presented itself based on a website's requirements. For a developer this is a great benefit and resource to know that another developer has probably dealt with a similar problem that you may be faced with.
When developers decide to officially make their modules public and readily available to the Drupal community, they go through a process of "contributing" their modules. User-contributed modules are the many modules that can be found directly on Drupal's website.
There is a great analogy made on Drupal's site... "Drupal is like a LEGO kit. Skilled developers have already made the building blocks - in the form of contributed modules - that you need to create a site that suits your needs, whether that is a news site, an online store, a social network, blog, wiki, or something else altogether."
Element 31 has the know-how to create custom modules that conform to your website's specific needs, as well as the ability to strategically leverage existing modules.
A common concern about Drupal or any open-source product is whether or not it is secure. The fact is, in general, open-source software is as secure or more secure than proprietary, commercial software. The increased security of using open-source is cited as one of the reasons that the White House site switched to Drupal.
The reality with any piece of software is that all code has bugs (including security bugs) and the most important thing is to have an active group of coders and researchers finding and fixing bugs. Drupal has amassed a large community of web developers over its now 10-year lifetime who are the source of reports made about bugs in Drupal. Any security bugs reported by Drupal's community are examined by Drupal's dedicated Security Team. When a bug is fixed, this same Security Team evaluates the fix to confirm that the issue is resolved. This is applicable to contributed modules as well as Drupal's core. When a security bug is confirmed in a contributed module, the developer who maintains that particular module is contacted about the bug and is given a deadline. Failure to fix a security bug will result in the module being unpublished on Drupal's site.
As Drupal developers we talk Drupal all the time. Sometimes we forget to turn off the Drupal-speak when talking to clients, friends, and/or family members. Blank stares and empty nods are sure to follow. But "nodes", "taxonomies", and "blocks" are foundational concepts in Drupal and worth knowing some basics...
Nodes are typically where you will find the main content of a site. You can think of them simply as pages of your website. In their simplest form, nodes contain a Title and a Body. Drupal also allows for additional fields of content to be added to nodes (text fields, number fields, date fields, image fields/uploads, file attachments, etc.).
Below is a simple visual example of how node content can be added to a website in Drupal:
Drupal allows for the creation of multiple types of nodes (called "content types") which add to a website's flexibility and increase the potential for well organized, clearly defined content.
A taxonomy is generally defined as a classification of something. Drupal's taxonomy is a system whereby custom, unique categories can be defined to classify your website's content. Taxonomies are created by first setting up a main category type, known as a vocabulary. Then, inside each vocabulary, the related taxonomy terms are defined. A simple example would be a vocabulary labeled "Color" with related taxonomy terms being Red, Orange, Yellow, Green, and Blue.
Drupal's taxonomy system also let's you create more of a "tagging" type of setup. In this case, you can tag content with any term(s) that you choose. When Drupal notices that a new term has been used, that term is automatically added to the corresponding vocabulary's list. This is especially useful for blogs whose content may span a wide range of subjects.
Blocks in Drupal are pieces of content that are placed in certain defined regions of a website and typically appear on multiple pages. Oftentimes, blocks are used to display dynamic content that is automatically updated when certain changes or additions are made to a site. An example of dynamic content would be a listing of the most recent news or blogs on a site. When set up properly, the block would be automatically updated whenever a news story or a blog was added.
Below is a simple visual example of how to add static (unchanging) block content to your site:
Overall, the ability to categorize content and clearly distinguish between different types of content contributes to producing organized websites that contain targeted, relevant information that is easy to find. As a result, users will not get frustrated and will likely stay on your site longer.
A common misconception of a website based in Drupal is that the visual design possibilities are limited. The truth is that there are no more limitations to the design and layout of a site based in Drupal than there would be in any other website.
In Drupal, the specific design and user interface of a website is implemented inside of a "theme". To put it simply, a theme is a design template for your website. Element 31 has the expertise to implement any website design into a Drupal theme, no matter how complex.
Hopefully this explanation has helped create some clarity about Drupal. Drupal's large community has evolved into a support system and brainstorming forum that would rival the most expensive CMS packages available. As web developers, Drupal's community offers a refreshing way to exchange ideas and explore solutions to problems and challenges relevant to the needs of any website project.
Based on this description of Drupal, what do you see as the possible pitfalls and/or untapped potential of the Drupal CMS?