Chapter 3: Repositories
The Ding source code is hosted on the source control service GitHub as an organization at https://github.com/dingproject/
The organization has multiple repositories each responsible for a part of Ding. A repository may hold one or more Drupal modules, themes or external tools developed or modified for Ding.
The key repositories and their responsibilities are as follows:
ding-deploy
This repository contains utilities used in relation to Ding deployment. The most important parts are:
- ding.make: The file which defines which custom and community modules, themes and library comprises a Ding installation. Used with the drush_make drush extension.
- ding.profile: The installation profile used when installing a new Ding site
- ding_build.py: A python script used to build a ding site.
- fabfile.py: A python script used to deploy a Ding site using Fabric.
Tags in the repository refers to versions of the Ding project e.g. v1.1.0, v1.5.3 etc.
More information about deployment and version in the corresponding sections of the documentation.
ding
This repository contains all modules which connect custom and community components and tailor a Ding website to libraries.
This includes:
- ding_base: Base module which defines all dependencies and configurations, which is not defined elsewhere and provides functionality and configuration shared between all modules.
- ding_content, ding_event, ding_page, ding_library: Contains definitions of all content types used in Ding: Articles, events, libraries, topics etc.
- ding_provider: Provides a uniform interface to library systems using ctools plugins.
- ding_library_user: Allows users to log in using their library username and password. Based on the ding_provider framework
- ding_booking, ding_cart, ding_debt and ding_reservation: Provides functionality which connects users and OpenSearch objects through functionality such as shopping carts, reservations and payment of debts. Based on the ding_provider framework.
We refer to the info files for more information about the individual modules.
ting
This repository contains modules responsible for the communication with the Open* webservices and all information relating to the display of OpenSearch objects and collections.
Key modules are:
- ting: Contains the client code used for communicating with the Open* services and the display of objects and collections of objects returned from the OpenSearch service.
- ting_search: Handles the ting search result page with tabs for Open* and Drupal search results, facet browser etc.
- ting_reference: Implements a new CCK field type for creating relations between OpenSearch objects/collections and nodes.
See the separate section regarding Ding modules for more information.
ting-client
This repository contains a PHP client library for communicating with the Open* webservices.
The code is rather complex due to the goal of creating a client which is framework independent and supports different formats (JSON, XML) and protocols (REST, SOAP). The code currently only supports REST/JSON.
Tags in the repository correspond to versions of Open* services. Major and minor versions relate to OpenSearch. Patch versions relate to other services or bug fixes.
alma
This repository contains modules for communicating with the Alma webservice provided by Axiell DDELibra. This includes a Ding provider implementation for integrating Ding with Alma (see section regarding providers).
openruth
This repository contains modules for communicating with the OpenRuth webservice provided by DBC Integra. This includes a Ding provider implementation for integrating Ding with OpenRuth (see section regarding providers).
dynamo
Dynamo is the base theme for Ding sites. It is based on the mothership theme.
The goal of the Dynamo theme is twofold:
- To provide a simple but functional theme to demonstrate Ding
- To provide a base theme for themes for individuel libraries
More information regarding theming can be found in the corresponding section of the documentation.