• Introducing PHPCredLocker Version 1

    For a little while now, I've been working on a small PHP based project designed to store passwords securely. After a lot of testing, bug-hunting and fixing, PHPCredLocker has reached version 1.

    Designed to prefer security over convenience, the system takes every step it can to protect stored credentials. Depending on the version of PHP you are running, passwords will be encrypted with either OpenSSL or MCrypt. A different key is used for each credential type (think FTP password vs Joomla password) and the database has been designed to be as unhelpful as possible to any miscreant who should manage to get a database dump.

    I'm not an interface designer, so the template is very basic, but PHPCredLocker has been designed so that you can adjust and override as necessary (modules and views can be overridden, and templates are easy to create).


  • Joomshopping OBRSS plugin

    JoomShopping for ObRSS is a plugin for the latest versions of ObRSS allowing you to create an RSS feed containing product information.


    The documentation details use and configuration of the plugin, however the basic feature list is as follows

    • Filter by one or more categories
    • Filter by one or more manufacturers
    • Filter by one or more Labels (e.g. 'New')
    • Display short or long description
    • Display (or hide) Price, SKU, Manufacturer
    • Include a button linking straight to the product
    • Include an Add-to-Cart button

    This product is no longer under active development (or support), however, as of May 2017, you can now download the plugin from Github

  • mod_BGithubfeed

    Mod_BGithub is a simple module allowing you to embed commit details in a Joomla! site. It uses the GitHub API to retrieve repository information including commits and issues. It can also retrieve user information and display a (very) basic user profile, including a list of the user's public repositories.

    The module supports both Joomla! 2.5 and Joomla 3.x and allows for filtering of all displayed information.

    There are three pre-configured styles: Chromed, Light and Dark. The latter two are very simple but provide a good starting point for those who want to style the module themselves.

    This module is available for free on Github, however the free version comes with no support. Purchase includes 12 months support

    The full feature list is below, (configuration options are detailed in the documentation


    • All layouts can be loaded individually, or all-in-one
    • 3 Preconfigured CSS styles
    • Limit displayed entries
    • Customisable date display format



    • Display of a commit authors Gravatar
    • Link back to the commit and the code tree
    • Link back to Commit author's profile
    • Displays the commit comment



    • Overview of issue displayed in a tooltip
    • Issue label (bug/enhancement etc displayed)
    • Link back to author's GitHub profile
    • Filtering by issue status (Can display all issues, open issue or closed issues)
    • Issue status displayed in front-end



    • Display user's Gravatar
    • Link back to user's blog
    • Display a link of the users repositories (including the primary language)
    • Exclude Repos by name


  • Mod_BTwitter

    NOTE: V2 includes an update to implement support for V1.1 of the Twitter API


    Mod_BTwitter is, by design, an incredibly simple Twitter feed module - Designed for Joomla 2.5 and Joomla 3.x The idea is that it contains sufficient to display tweets on a Joomla based site, without adversely affecting page load speed or insisting on lot's of un-necessary chrome. The three key aims when creating this module were to create a module that

    • Doesn't slow page loads
    • Doesn't contain un-necessary chrome
    • Displayed a users timeline, linking to all URLs, mentions and hashtags

    The documentation contains a far better description of what can be configured, however as a brief summary, mod_BTwitter supports

    • Light and Dark Styles
    • Use (or expansion) of t.co URLs
    • Customisable date formats
    • Display of Profile Pic (can be disabled)
    • Direct link to Status Update
    • Display of a 'follow' button
    • Multi-lingual support (partially implemented, no back-end support at this time)
    • Support for caching

    This module allows you to display your Twitter feed anywhere on your site, as inline HTML (although the follow button does require an iframe) allowing Search Engines to include that information when they crawl your site.

  • Mod_CatImplode for Joomla

    Mod_CatImplode is a Joomla module designed to display all articles within a com_content category as one indexed article. It was designed to increase the manageability of API documentation, as it allows each section to be maintained as a separate article (with the added benefit that users can choose to view a specific section, or the entire documentation).

    The documentation details the use and configuration of the module, however the basic feature list is;

    • Auto creation of a Table of Contents, including H3's within article content
    • Auto creation of named anchors for easy navigation of large documents
    • Inclusion of basic Schema.org microdata
    • Ability to add custom Schema.org markup through meta tags

    You can view mod_CatImplode in use on Vehicle Fuel Tracker

  • Mod_GoogPlus Feed

    Mod_GoogPlusFeed is a simple module designed to embed your (public) Google+ posts into a Joomla! site. It allows visitors and search-engines to see your latest posts.

    The core principles when building the module were

    • Shouldn't slow page loads
    • Shouldn't contain un-necessary chrome
    • Should display posts to Google+

    The documentation details the use and configuration of the module in more depth, however as a summary the module supports

    • Light and Dark themes
    • Customisable Date display formats
    • Direct link to Post
    • Direct link to Google+ profile
    • Support for caching
    • Display of posts within a Google Community

    The module comes with a pre-configured Google+ API key, however it is recommended that you follow the steps in the documentation to create your own.

    You can view Mod_GoogPlusFeed on my About Me page.


    New in Version 1.4

    • Version 1.4 merges the Joomla! 2.5 and Joomla! 3.x versions, so the same package works on either version
    • The module can now send a RPC Pingback to Google whenever your Google+ feed changes (see documentation for more information)


  • mod_livingstreets for Joomla 1.5 (Free)

    LivingStreets is a national (UK) charity that "stands up for pedestrians", working to create safe attractive and enjoyable streets.

    This free module interfaces with the Living Streets Site to capture walking statistics for display on a Joomla website. Stats for individuals are not currently available, though they are planned for a future release.

    All that's required is to set your Company name as it appears on LivingStreets.org.uk and to set how you want your company name to appear on your site.


    To download the Joomla 1.5 Version click here.

  • mod_livingstreets V1.1 for Joomla 2.x and 3.x (Free)

    LivingStreets is a national (UK) charity that "stands up for pedestrians", working to create safe attractive and enjoyable streets.

    This free module interfaces with the Living Streets Site to capture walking statistics for display on a Joomla website. Stats for individuals are not currently available, though they are planned for a future release.

    All that's required is to set your Company name as it appears on LivingStreets.org.uk and to set how you want your company name to appear on your site.


    To download the Joomla 2.5 Version click here.

    To download the Joomla 3.x Version click here.

  • mod_lotto

    Mod_lotto is a Joomla module (also known as LottoPredict) designed to display and check results from the UK's National Lottery and Thunderball games. 

    Uses the Public API key for LottoPredict, but supports personal keys too.

    Supports Joomla 2.5, does not support 1.5.



    • Main Lotto Draw Results
    • Euromillions Results
    • Thunderball Results
    • Lucky Dip Generation
    • Check Results against last 6 months of draws
  • Mod_yourData

    Mod_yourData is a simple module designed to show visitors exactly what data your Joomla! 2.5 or 3.x site is storing in their browser.

    It can be assigned to a custom module position and embedded into your privacy policy using loadposition, or used as you would any other Joomla! module.

    The module includes support for displaying the name and value of

    • Cookies
    • Session Storage Objects
    • Locally Stored Objects

    The user is able to click displayed objects to delete them from their browser (Note: some cookies aren't accessible with Javascript and so can't be deleted - these are assigned a specific CSS class).

    The module configuration options allow you to specify some text to display before the items are listed, as well as to disable any element of the module (including the ability to click and remove).

    By default, the module displays a 'Powered By' notice, however this can be disabled in the module configuration.

    Summary of features

    • Support for cookies, Session and Local Storage objects
    • Support for one-click removal of displayed items
    • Ability to easily disable the 'Powered By' notice
  • PHP Changed Binaries

    PHPChangedBinaries is a simple server monitoring script. It's designed and exists to do one thing - detect and notify when system files change. 

    I've been running a very similar script for years, but in the wake of CDorked/DarkLeech decided it needed a refresh. The script works by generating checksums for all files within pre-configured paths (you can add more through the configuration file). These are then checked against a stored hash to see if anything has changed - if it has, the system admin is alerted. 

  • PHP GPX Ingest

    GPS eXchange format files (GPX's) allow you to record data from your Global positioning system for processing/import into other systems.

    The PHP GPX-Ingest class allows you to import basic GPX files and converts them into an object for easy data retrieval. In the process of doing so, it also generates basic statistics such as average speed, number of track points and journey length.

    The resulting object can be exported as a JSON string for easy storage and re-import back into the class at a later date (perhaps to extract more information).

    This documentation details how to include and use the class in your project.

    PHP GPX-Ingest is licensed under the GNU GPL V2 License.

  • RemoteHashStore Documentation

    RemoteHashStore is an API designed for use by the PHP Changed Binaries monitoring script. It's function is to simply maintain a database of file hashes and compare those hashes against those submitted when checking files. This documentation relates to the client included in the PHP Changed Binaries system. See the relevant documentation if you're attempting to build a client for the RemoteHashStore API (Coming Soon!).

  • Republished: A Word about the GPL

    This was originally published on benscomputer.no-ip.org in June 2006


    As I'm sure is true for many in the Open Source Community, I have seen far too many websites spreading fear, uncertainty and doubt (FUD) about the GNU General Public License or GPL. This page is intended to explain the GPL without the bias that I feel several of the companies have and also to refute some of the myths I have heard propogating.

  • Send Custom Headers

    Send Custom Headers is a plugin for Joomla 2.5 and Joomla 3 allowing you to conditionally send custom HTTP Headers and cookies. Its primary design is to allow easy implementation of Reverse Proxy Caching with caching of certain pages disabled.

    The plugin has the following features;

    • Rule based processing
      • Send Header(s)/Cookie(s) only when a user is (or isn't) logged in
      • Only send on Front-end, or back-end or both
      • Force enable/disable when connection is SSL
      • Force enable/disable for certain URLs
      • Force enable/disable for certain components
    • Support for multiple headers
    • Support for multiple cookies
    • Easy Debug mode

    You should read the documentation (and the warnings within) before enabling the plugin on your site. However the plugin will install in an unpublished state, giving you the opportunity to correctly configure it before enabling

    This plugin is no longer actively supported, and so can now be obtained (for free) from my Public Repos

  • Sending commit notifications using Git post-receive hooks

    I make heavy use of Git, and have plugins that allow me to view my commits when viewing issues in JIRA. Unfortunately these plugins rely on Lucene indexes which has proven to be a bit of an issue when archiving projects (or maintaining a HTML fallback).

    There are various post-receive hooks out there for sending mail notifications out whenever someone runs 'git push', however they're generally tailored towards notifying a group of developers.

    I simply wanted the equivalent of 'git log' to appear within my JIRA activity flow on any issue which is mentioned in the commit message.

    This documentation provides a python based post-receive hook intended to do just that, and also documents exactly how to go about applying that hook to all existing and future repos on your server.

  • Sitemap Update Ping

    Sitemap Update Ping is a plugin for Joomla 2.5 and Joomla 3.x. It sends a ping to various search engines, notifying them that your sitemap has been updated and should be refreshed (leading to the new content being crawled).

    You can view the plugin documentation here

    You can configure whether pings are sent for modifications, or only for new content.

    Currently supported are

    • Google
    • Bing
    • Moreover Technologies

    As of XMLRPCPLG-4, Sitemap Update Ping is considered EOL, and no support is offered. However, the codebase is made available here and here for those who want to install it.