Getting Started

Get to know your ILS

The first step in developing a Locum connector is to get to know your ILS. You will need to be familiar with any available APIs that will help in the process. Additionally, you will need to know which features are not going to be available via API. You'll need to have a strategy for dealing with those limitations, such as screen-scraping.

Take a look at the list of connector functions you will need to write and start thinking about how you might accomplish each.

Become familiar with the Locum architecture

Locum is written in such a way that you should not need to modify any of its scripts. In fact, it's always a bad idea to "hack the core". Locum 1.1 introduces the ability to hook in to the Locum methodology in order to override any existing Locum functionality. You can read more about that in the Locum Developer's Guide.

Also, it's a good idea to read through the Locum portion of the Getting Started with SOPAC guide, as you'll need a working installation of Locum in order to develop a connector.

The Locum directory and file structure

Understanding how files are arranged within the Locum directory tree is critical to the functionality of Locum. And Locum expects a connector bundle to be organized in a certain way.

Take a look at how a standard connector bundle should reside within the locum directory tree:

locum/
    connectors/
        {ILS-specific-connector}/
            {ILS-specific-connector}.php
            tools/
            config/
                {ILS-specific-connector}.ini

{ILS-specific-connector} should use the following convention: locum_[ILS identifier]_[ILS version].init

Locum determines the ILS identified and ILS version from its main configuration file (config/locum.ini) in the ils_config section:

; Locum uses this section to determine which ILS connector to invoke,
; and where to look for the ILS server.
[ils_config]
ils             = "iii";
ils_version     = "2007"

In this example, locum would look for:

locum/
    connectors/
        locum_iii_2007/
            locum_iii_2007.php
            tools/
            config/
                locum_iii_2007.ini

The tools/ directory is optional and should include any additional scripts or programs that are required to make the connector work.

The config/ directory and configuration (ini) file are parsed by locum and merged into the $this->locum_config data array which should be made available within your connector.

The Locum connector class structure

When constructing your Locum PHP connector class, you will want to extend the same convention to your class name. A basic skeleton structure of a connector would look like this:

// {ILS-specific-connector}.php
class locum_ILS_ILSVersion {
    public $locum_config;
 
    // Class methods & connector functions
}

In the above example, using III's Millennium 2007, the basic skeleton would look like this:

// locum_iii_2007.php
class locum_iii_2007 {
    public $locum_config;
 
    // Class methods & connector functions
}