Module Contributions

My Modules

Exposes Drupal DB tables to Views

This is a simple module which does one thing: provides an admin page for site-builders to choose which tables in a site's Drupal DB to expose to Views.

The module then loads all the columns for each chosen table and detects the data type of the field and sets appropriate views field, sort, filter, and argument filters (for example numeric, string, date, or "default").

It also looks for a primary key of the table and if one is found it sets it as the base field for a views base table and makes the table accessible to views.

Provides interface to expose any table in the CiviCRM database in Views. Coming Soon!

A Drupal native Tin Can (xAPI) Learning Record Store(LRS)

Provides LRS functinality through integration with the Drupal Services module. Statements, States, Activities, Activity Profiles, Agents, Agent Profiles, are Drupal entity types.

Using Drupal as an LMS no longer requires connection to a 3rd party LRS.

Serious advantages such as Views for reporting, and Rules for instant actions triggered by user interaction statements. For example, creating Rules that trigger Course Pass, or generate certificate on Quiz success.

Works with the Tin Can API module ,which means Drupal content views, vimeo and youtube video interactions, Quiz module

Works with H5P either standalone, or integrated with the Quic Module

Articulate Storyline, Articulate Studio, Adobe Captivate content in Tin Can (xAPI) format. (Both Flash and HTML5) versions.

Learn more about the Tin Can API (xAPI or eXperience API)

This module integrates the javascript library Skrollr with any Drupal theme. It also gives the option to integrate skrollr-stylesheets, skrollr-menu, and skrollr-ie.

This module expects the skrollr libraries in 'skrollr' directory inside the /sites/all/libraries directory for single site installations, or sites/[your_site]/libraries for multi-site installations.

The module provides an admin configuration page to set the file names for the Skrollr library and the auxiliary libraries. The configuration page also provides fields to set all of the Skrollr initialization variables including:

  • smoothScrolling
  • smoothScrolling
  • Duration
  • constants
  • scale
  • forceHeight
  • mobileCheck
  • mobileDeceleration
  • edgeStrategy
  • beforerender
  • render

Organic Groups Taxonomy Access Control Permission (og_tac_perms) provides granular per group taxonomy access control permissions for access to group content.

Module requires Organic Groups, Entity API, Entity Reference, and Taxonomy are installed. This module DOES NOT require the Taxonomy Access module

Upon install a configuration page is made available to choose which groups have TAC control, and which group content types can be controlled.

Upon selecting a group node type to have TAC control, an entity reference field, OG TAC Controller, is created. This reference field targets taxonomy vocabulary and allows choosing a controlling vocabulary for each group. When a vocabulary is chosen for the group, custom permissions will be generated and made accessible on the group permissions configuration page.

Upon selecting a group content node type to be controlled, an OG TAC Content Terms entity reference field instance is created for the types selected. After creating a piece of group content and setting the group audience reference field, the list of terms for the OG_TAC Content Terms field will be limited to terms from the parent group(s) controller vocabularies. Choosing a term for this reference field will force the group member's role to have the corresponding custom taxonomical permission in the group to gain access to the content.

CAPTCHA module that presents the user with an image of an animal and the user must select the name of the animal to submit the form.


Module Maintainer and Lead DeveloperMy work included developing:

  • seamless integration of Drupal fields with CiviCRM entities for Drupal view pages, edit forms, and Views
  • Display Suite integration for CiviCRM entity properties including visibility, label visibility, custom field display formatters, and edit form customization.
  • Drupal view pages for the CiviCRM entities e.g civicrm-contact/2
  • Drupal based edit forms for all CiviCRM entities, e.g. civicrm-contact/2/edit
  • Delete CiviCRM entities from Drupal "Delete" tab, eg. civicrm-contact/2/delete
  • Drupal theme integration -- Standard entity templates per type
  • Permissioning for view/edit/delete rights to the Drupal based pages and forms
  • Entity type integration extendable, and configurable via hooks
  • All submodules including CiviCRM Entity Reference, CiviCRM Entity Price Set Field, CiviCRM Entity Profile, CiviCase Activity Reference Field, CiviCRM Entity Views Extras, CiviCRM Entity Search API
  • Rules and Conditions


Developed architecture and methodology for this functionality as well as mentored development.  This module integrates directly with the Views UI to create CiviCRM dashlets from Drupal Views content.