---
layout: default
title: Open Source
projects:
    drupal:
        - name: Accessibility (a11y) Checklist
          description: Similar to the SEO Checklist and QA Checklist modules, this module provides a checklist of accessibilty-related modules and tasks to perform on a Drupal site.
          url: https://www.drupal.org/project/a11y_checklist
          versions: [7]

        - name: Block ARIA Landmark Roles
          description: Inspired by Block Class, this module adds additional elements to the block configuration forms that allow users to assign a ARIA landmark role to a block.
          url: https://www.drupal.org/project/block_aria_landmark_roles
          versions: [7]

        - name: Breadcrumbs by Path
          description: A light-weight module which simply builds breadcrumb trails based on a URL alias.
          url: https://www.drupal.org/project/breadcrumbs_by_path
          versions: [7]

        - name: Collection class
          description: Integrates Laravel’s Collection class into Drupal 7.
          url: https://www.drupal.org/project/collection_class
          versions: [7]

        - name: Comment Hide Subject
          description: Hides the comment subject if the "Allow comment title" checkbox is unchecked for that node type.
          url: https://www.drupal.org/project/comment_hide_subject
          versions: [7]

        - name: Commerce Cart Empty Paths
          description: This module allows site administrators to define multiple paths, and when a user visits a non-declared page, their shopping cart is emptied.
          url: https://www.drupal.org/project/commerce_cart_empty_paths
          versions: [7]

        - name: Copyright Block
          description: Creates a block that allows you to configure a copyright message that automatically updates using the current year from the server that your site is hosted on.
          url: https://www.drupal.org/project/copyright_block
          versions: [7, 8]

        - name: Image Style Class
          description: Adds classes onto each rendered image showing the image style name.
          url: https://www.drupal.org/project/image_style_class
          versions: [7]

        - name: Mapify
          description: A module to make the implementation of mapify.js into Drupal 7 relatively simple.
          url: https://www.drupal.org/project/mapify
          versions: [7]

        - name: Node Comment Block
          description: This module moves the comments for a node into a moveable block.
          url: https://www.drupal.org/project/node_comment_block
          versions: [7]

        - name: Null User
          description: Adds a NullUser class for simpler code with less conditions.
          url: https://www.drupal.org/project/null_user
          versions: [8]

        - name: Override Node Options
          description: Allows permissions to be set to each field within the Authoring information and Publishing options field sets on the node form.
          url: https://www.drupal.org/project/override_node_options
          versions: [7, 8]

        - name: Pathauto Menu Link
          description: Forces an update of the Pathauto-generated path when a menu link item has been updated. Useful if you use parent menu links to generate paths.
          url: https://www.drupal.org/project/pathauto_menu_link
          versions: [7, 8]

        - name: Private Message Queue
          description: Adds the ability to queue private messages for sending.
          url: https://www.drupal.org/project/private_message_queue
          versions: [8]

        - name: 'Rules Block/Unblock User'
          description: Adds rules events, as well as some default rules, for when a user account is blocked or unblocked.
          url: https://www.drupal.org/project/rules_block_user
          versions: [7]

        - name: SpeakerDeck Field
          description: Adds a field for embedding content from SpeakerDeck.
          url: https://www.drupal.org/project/speakerdeck_field
          versions: [8]

        - name: System User
          description: Adds the ability to identify and retrieve system users.
          url: https://www.drupal.org/project/system_user
          versions: [7, 8]

        - name: Toggle Optional Fields
          description: Creates a simplified node form by allowing for the hiding and toggling of optional fields.
          url: https://www.drupal.org/project/toggle_optional_fields
          versions: [7]

        - name: Webform ARIA
          description: Adds ARIA support to forms created using the Webform module.
          url: https://www.drupal.org/project/webform_aria
          versions: [7]

        - name: WP Blog Migrate
          description: Convert your existing Drupal blog into the WP Blog module by re-assigning the content type for existing nodes and moving any existing tags into the WP Blog taxonomy vocabulary.
          url: https://www.drupal.org/project/wp_blog_migrate
          versions: [7]

    sculpin:
        - name: oliverdavies.uk
          description: The source code for this website, which is built with Sculpin.
          url: https://github.com/opdavies/oliverdavies.uk

        - name: Sculpin Content Generator Bundle
          description: Provides new Sculpin commands for generating new content.
          url: https://github.com/opdavies/sculpin-content-generator-bundle

        - name: Sculpin Gist Bundle
          description: Allows for embedding GitHub Gists into a Sculpin site.
          url: https://github.com/opdavies/sculpin-gist-embed-bundle

        - name: Sculpin Skeleton
          description: A skeleton project for the Sculpin static site generator.
          url: https://github.com/opdavies/sculpin-skeleton

        - name: Sculpin Twig Markdown Bundle
          description: Enables rendering content from markdown, using Sculpin’s core markdown parser.
          url: https://github.com/opdavies/sculpin-twig-markdown-bundle

        - name: Sculpin Twig Sort by Field Bundle
          description: Enables sorting an array by a certain field on each item.
          url: https://github.com/opdavies/sculpin-twig-sort-by-field-bundle

    php:
        - name: Drupal Meetups Twitterbot
          description: A Twitter bot that retweets posts about Drupal meetups.
          url: https://github.com/opdavies/drupal-meetups-twitterbot

        - name: Drupal VM CLI
          description: A command line tool for Drupal VM.
          url: https://github.com/opdavies/drupal-vm-cli
          active: false

        - name: Gmail Filter Builder
          description: Allows you to define Gmail filters in PHP using a fluent API, and then generate XML that you can import into Gmail's filter settings.
          url: https://github.com/opdavies/gmail-filter-builder
---
<p>I have written, open-sourced, and maintain a number of Drupal modules, Sculpin bundles and PHP projects - as well as the source code for this website! Here is some information about each project and a link to it’s project page.</p>

<div class="mb-4">
    <h2>Drupal</h2>

    {% include 'opensource/projects' with {
        projects: page.projects.drupal
    } %}
</div>

<div class="mb-4">
    <h2>Sculpin</h2>

    {% include 'opensource/projects' with {
        projects: page.projects.sculpin
    } %}
</div>

<div>
    <h2>PHP</h2>

    {% include 'opensource/projects' with {
        projects: page.projects.php
    } %}
</div>