Client: Information Resource Group

End-Client: The State of Missouri, Department of Labor and Industry

Origin Platform: HTML / ASPX

New Platform: Drupal 7


The Missouri Labor Department (DOLIR) is comprised of the Labor and Industrial Relations Commission and five separate divisions:


  • Division of Employment Security


  • Division of Workers' Compensation


  • Division of Labor Standards


  • State Board of Mediation


  • Missouri Commission on Human Rights


The department is devoted to promoting industry and labor throughout the state and protecting the rights and safety of Missouri's workforce.



After years of managing an ever-growing static HTML website, in 2013 Missouri DOLIR was preparing to move their web presence to a Content Management System and looking for an Open Source solution to meet a series of functional and aesthetic requirements.


Site Requirements

Given the size of content already comprising the old static site being over 10,000 pages, Missouri DOLIR needed a CMS which could offer innovative means of site navigation whilst allowing inter-relational multi-media content.

To better clarify the specific abilities of each CMS we considered for the solution, Celebrate Drupal/IRG and Missouri DOLIR defined a general set of site requirements.  In addition to simply storing content and allowing stakeholders to add to/edit it, the site needed to provide modular scalability and function as an application framework that could provide unique data-handling and grow depending on the changing needs of the Agency over time; without needing to undergo massive core or require a high degree of custom code to afford such changes.

Here were some major requirements of the new CMS solution:

User-accessible, hierarchical content :

  • Access to all published material on-site should be subject to a robust

  • permissions system,

  • Content/Comment publishing authority and viewing ability should be user-

  • specific, definable by user-groups.

Extensive calendar functionality :

  • The ability to restrict event attendance/viewing per user group,

  • Users will be able to post events to a common event listing, based on their site permissions,

  • The ability to relate multi-media to particular event listings (eg. Attach an image

  • or video clip),

  • Site-wide Forums & Commenting:

  • In order to increase multi-lateral communication, threaded commenting will be

  • available throughout the site.

News publishing :

  • Permissions-specific ability to submit/publish & view news postings,

  • News-to-front-page; high-level users (eg. Staff) will be able to assign news

  • postings to the Division landing-pages by internal Content Editors.

  • News, as well as other content on the site, can be un/subscribed to by users based on permission and content taxonomy,

  • News Syndication via RSS

Advanced Theming possibilities :

  • Aesthetically separate each division and other areas of the site while maintaining an overall cohesive site 'design,'

  • Dynamic navigation should be able to be presented in multiple areas of the site,

  • Content should be group-able (e.g. per division; to display in vertical lists that can load individually but be presented alongside these lists.)

Categorical Filtering of Documents:

  • 3,000 PDF documents needed to be sortable in the system by category

  • Document titles need to be searchable


After considering relative merits of a number of CMS' the decision was made to develop the site in Drupal 7.x

Drupal natively provided the framework to build a site that was highly functional and customized yet not locked-down in core structure.  When stacked up next to other CMS' which are built to allow simple content hierarchies (like Joomla), Drupal excels in providing the ability to ignore vertical hierarchy and organize content multi-laterally through taxonomy and associated access permissions.

Of course, at its core, Drupal's use of 'nodes' meant that we could relate anything on the site to each other - which proved to be an invaluable feature of the site when looking at styling and multi-administration content management issues.

Three key aspects of the build were crucial;

  1. Aesthetic demands of the site required a combination of third party modules to allow styling patterns across content types, site areas and so on,

  2. 35 site users were to be administrators of various areas of the site and afforded permissions accordingly; they had to not be able to interfere/moderate/approve each other's content at times, and this all had to be able to work on the site with ease for fairly non-technical users - the default permissions layer would need to be extended and a WYSIWYG editor installed with some image/file handling capability,

  3. Custom content types would be necessary along with their dynamic display through lists.


In order to meet the various site requirements and build aspects listed above, we made good use of the following Drupal modules.

Note: this is just a partial list of what was installed on the site - to give you some direction on modules we really feel were crucial in being able to construct this specific site.


Theme/Styling/Navigation :

Administration :

  • Administration Menu - an invaluable tool that takes the admin options of  a site and throws links into a slick-styled pulldown menu ( )

  • Views Bonus Pack -  A great extension pack, this module allows things like exports of lists created with the Views module to CSV format - so admins can export any list of node-data on the site and edit it in their local Office Suite of choice ( )

  • Administration Views - enhances the Drupal main administrative search and sorting features for content.

  • Module Filter - provides an enhanced navigation for Drupal’s module installation / management page.

  • Taxonomy Access Control - Access control over taxonomies/categories per user role; disallows certain users from editing nodes belonging to other schools, for example ( )

  • Devel - A great tool to display page load times and other information to admins, as well as let them clear the site cache - crucial for ensuring the display of recent revisions to Drupal sites to Anonymous users ( )


Content Types & Data Structures :

  • Content Construction Kit (CCK) - essential for customizing content types; this module let us create specific nodal types which, for example, don't have any 'submitted by' information etc.. through custom node-type.tpl.php files ( )

  • Category - an extension of Drupal's taxonomy system, this allows us to relate nodes to each other using a flexible lexicon of free-tags and established terms. ( )

  • Views - Essential for any Drupal site that features dynamic lists, this module  is responsible for lists through the site of various content types - such as Faculty Bio links (which use blocks created by Views to afford grouped faculty-specific menus) ( )

  • Context - the context module provides to manage contextual conditions and reactions for different portions of your site, think of each context as representing a "section" of your site.

Content Creation/Handling :

The general overview of how these modules come together is that we have various content types on the site though it mainly consists of 'page' content.  Pages have URLs written by the Pathauto module and in some cases, where we need specific URLs per page which are outside of the rules, specific content types have been created which do not have rules set.  Those content types are still subject to the same categories and are thus accessible in site-wide searches and when users click on the tags at the bottom of pages etc.

We used the Views module extensively throughout the site to create custom lists of nodes and those lists aren't always displayed as pages.  Views was also used to facilitate the news page and document repository of PDFs searchable by users found on this page Each form was attached to a node so that meta-data could be stored there, and the form searchable in the system. It was not a requirement that the text be searchable in the document, which would have been significantly more work.

Over 30 functionalities were recreated in Drupal using contributed modules and minimal custom code. Some JavaScript that existed for calculation of benefits were ported to Drupal using the proper method to include JS in Drupal.


The site has been running without issue for over 3 years and the agency has realized increased traffic, mobile accessibility, and ease of administration. These were the 3 main goals and we are happy to know they have been met using Open Source tools.


Drupal Development Services