The Drupal CMS

The VO collaboration platform is built on top of the open-source Drupal content management platform, which powers millions of websites and applications. It’s built, used, and supported by an active and diverse community of people around the world (including a dedicated Drupal Security Team, which is 40 strong).  Presently, we use version 6 of the Drupal CMS.  

    Within any Drupal installation, there are three primary catagories of information that defines the look, feel, and features provided by the site.  These categories are code, site configuration, data.      

Code

The code of your installation defines the fundamental behavior and feature sets provided by the site.    

The architecture, installation, configuration and maintenance of Drupal-based content management systems is well documented at http://drupal.org, but we summarize the essential ideas here.  The Drupal architecture is defined by a series of abstraction layers, along with an extensive and well documented API for extending and modifying default behaviors.  

 

"Effective Web design is driven by the need to balance flexibility and simplicity. If a system is too simple, it can only be used for a single purpose - but if it is too flexible, it may be too difficult for new users to learn. Drupal strives to reconcile these conflicting goals by providing its users with the tools they need to make their own content management solution, while still providing some pre-built components to help them get started. Thus, it can be described both as a content management system (CMS) and a content management framework (CMF) - one system which strives to have the strengths of both, without their deficiencies. Most CMS's are like a toy boat or truck - specific assumptions have been made about their use, assumptions that would be hard for you to override. Frameworks, on the other hand, provide you with raw materials only - you need to know a programming language and have a clear design vision to put them together. 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."1

Image removed.

Modules

A fundamental component of the Drupal Framework is the Modules system.  Modules are Drupals term for it's plug-n-play extensibility architecture.  By writing PHP code that conforms to Drupal's documented API, one may easily extend the core Drupal feature set.  At the time of this writing, there are approximately 20,000 freely available, open-source Drupal modules, of which the VO infrastructure relies on approximately 400 modules2 that were implemented by the open-source community.  Additionally, there are custom modules implemented by the CPS-VO development team to specifically support the CPS-VO project.   As dictated by Drupal's open-source contribution policies, customized installation instructions for each individual module are provided in an included readme.txt file.    

Themes

Similarly, themes are a mechanism for customizing the user interface related behaviors of a Drupal-based website.  The VO collaboration framework includes a single, highly customized theme designed specifically to support the CPS-VO community.    

Views

Finally, in addition to writing customized PHP code, Drupal includes the concept of Views which provide a graphical user interface to system administrators for defining highly complex SQL queries that implement custom report types.  The VO software infrastructure includes several custom views for generating common, re-usable [typically paramaterized] reports3.      

Configuration

In addition to code, which is typically stored within the CPS-VO Subversion open-source version control and configuration management system,  any Drupal installation has custom configuration data that is stored within the site's database tables.        

Content Types

The first major category of configuration data defines a type system for information that may be posted on the website.  As of this writing, the defined content types at http://cps-vo.org are:    

Type

Description

Bibliographic Reference Allows members to add bibliographic references to groups in which they have membership. Biblios can be added manually or imported from BibTex.

Event

Events are special because they have a start date/time and an optional end date/time as a first-class concept.

File

Files allow uploads of documents and other pre-existing content.

Forum topic

forum topic is the initial post to a new discussion thread within a forum.

Group

The basic unit of organization for adding new virtual communities to the VO.

Group Project

Used for documenting research projects relevant to some Special Interest Group.

NSF CPS Project

Used to build the catalog of NSF CPS research projects.

News Item

News items are more ephemeral forms of information than Pages. They are ideal for creating and displaying content that informs or engages website visitors. Press releases, site announcements, and informal blog-like entries may all be created with a news item entry. News entries may be automatically featured on the site's or on a group's home page.

Online Meeting

A virtual teleconference/desktop sharing session.

Page

A simple web page for creating and displaying information that rarely changes, such as an "About us" section of a website. By default, a page entry does not allow visitor comments and is not featured on the site's initial home page.

Panel

A panel layout broken up into rows and columns. Used for building Dashboards with various content embedded within the rows and columns at specified locations.

Story

Deprecated

Tearline

A content type that differs from web pages in that there are separate sections, each with differing access permissions

User Profile

Used to track basic data and meta-data for individual users (e.g. place of employment).

Video

Used for embedding videos hosted at sites such as youtube or vimeo.

Webform

Create a new form or questionnaire accessible to users. Submission results and statistics are recorded and accessible to privileged users.

Wiki page

A version of web pages that supports hyperlinking by symbolic names, rather than explicit URLs.

 

Permissions

For each feature implemented on the VO, there is a role-based mapping between capabilities and classes of users that are allowed access to those capabilities.  Presently the defined roles are: 
  • anonymous users
  • authenticated users
  • trusted users
  • group moderators
  • group managers
  • site moderators
  • site administrators

 

Data

Finally, the last component of an instance of a VO is it's data.  This includes, for example all of the web pages belonging to a site, as well as the list of validated users that may log onto the site.  As with configuration settings, the data within an instance of a Drupal website is stored in a series of database tables.  

 

Users

Every visitor to your site, whether they have an account and log in or visit the site anonymously, is considered a user to Drupal. Each user has a numeric user ID, and non-anonymous users also have a user name and an email address. Other information can also be associated with users.    

Taxonomies

Taxonomies are Drupal's mechanism for providing meta-data that classifies site content along categories defined by Vocabularies.    Image removed.   Vocabularies may be either structured and defined by administrative personnel, or free-form and defined dynamically by users.   

Nodes

A node in Drupal is the generic term for a piece of content on your web site.  A node consists of several fields.  The simplest node type is a web page, which contains a title field and a body field.  Drupal allows site administrators to build a type system for content, which extends the web page with other, customized fields.  For example Event nodes contain from, to, & URL fields in addition to their title and body.   Some other examples of nodes are:  
  • Pages in books
  • Discussion topics in forums
  • Entries in blogs
  • News article stories
 

Comments

Comments are another type of content you can have on your site (if you have enabled the core Comment module). Each comment is a typically small piece of content that a user submits, attached to a particular node. For example, each piece of discussion attached to a particular forum topic node is a comment.  

Panels

One rather unique content type defined at the VO is what is termed Panels.  Panels provide a drag-n-drop interface for laying out custom homepages or dashboards.  Consult Appendix A of The VO User's Manual for an explanation of Panels.        

 

1. Quoted from http://drupal.org/getting-started/before/overview

2. List of module pre-requisites for the VO collaboration framework

3. List of some of the Views defined by the VO collaboration framework