dmBridge
- Introduction
- Benefits
- Features
- Relationship to CONTENTdm®
- dmBridge-powered collections
- Availability
- More information
- Copyright
Introduction
dmBridge is an integrated public access framework, developed in-house at UNLV Libraries, that replaces the default CONTENTdm® page templating system. It enables web developers to design their own highly-customized web pages for their collections from scratch with minimal programming knowledge; without having to navigate a tangled code structure; and without having to worry about "breaking something." Additionally, it provides a multitude of new features that can be accessed without any custom programming.
Benefits
Easy template creation
The process of creating dmBridge templates could not be simpler. The designer has ready access to the entire template, and can edit and style it just like any other HTML page. Common dynamic page elements (like the object viewer, results list, etc.) can be rendered by the built-in "Draw" methods, most of which require only one line of code to call. "Newbie" web developers will find a shallow learning curve, and advanced web developers will appreciate the greater freedom that the dmBridge architecture provides. The end result is better templates that can be developed in less time.
A complete, working set of sample templates is provided.
Low-maintenance templates
Templates are easy to maintain as well as create. dmBridge makes it feasible to develop large numbers of custom template sets for individual collections without having to worry about migrating those customizations to a new version of CONTENTdm®. Of course, using just one or a few template sets remains an option.
Painless upgrades
When it comes time to upgrade to a new version of CONTENTdm®, your custom templates will likely require no modifications at all. As long as OCLC continues to support the existing CONTENTdm® PHP API functions - which their own templates use - a CONTENTdm® upgrade will not affect your dmBridge templates.
Likewise, upgrading dmBridge itself should be similarly painless. dmBridge templates use the dmBridge PHP API, which will not change substantially across upgrades; this means that the templates won't have to, either.
No commitment
In conjunction with dmBridge, the pages you write will effectively replace the built-in CONTENTdm® page templates. Simply change any links that point to your CONTENTdm® templates so that they point to your new dmBridge templates. Nothing happens to your existing CONTENTdm® templates. You have the option of using the CONTENTdm® templates for some collections and dmBridge templates for others. You also have the option of using the same dmBridge templates for more than one collection, or all collections.
No special requirements
dmBridge does not require any special server software other than what you already have. A database (for storing comments and ratings) is optional, but not required.
High-quality design
The default HTML code in CONTENTdm® is tightly interwoven with its program code, and separated into many arbitrary "chunks" of files whose relationships are difficult to understand. This makes them difficult to customize. It also makes customizations difficult to preserve across a CONTENTdm® upgrade, as the upgrade will overwrite the customizations.
dmBridge avoids these issues by totally rethinking the way that a templating system should work. It is written in a strict MVC style and is supported by a comprehensive test suite.
Not only for novices
dmBridge offers a robust object-oriented PHP API in which real-world CONTENTdm® objects can be worked with as PHP objects. It also offers a REST API for working in any language. Web developers who feel restricted by the "Draw" methods can optionally switch to XML + XSLT mode, in which they can create their own HTML markup by transforming rich XML fragments using XSLT.
Ready for the future
dmBridge is designed with the future in mind; the feature list in the next section can be expected to grow. New features can be added into the dmBridge core as components, which older collection templates can be upgraded to use at any time - usually with no programming required.
If you wish to add your own customizations, you can do so using "extensions" within dmBridge's object-oriented template customization framework.
Features
dmBridge provides most of the features of the default CONTENTdm® templates, as well as others that CONTENTdm® does not. Some key features include:
- Support for a variety of embedded multimedia types, with the ability to define custom viewers for each on a per-collection basis
- Present results and objects in HTML/CSS, or apply your own client- or server-side XSL stylesheets to rich XML fragments
- A full suite of pre-written "Draw" methods for easily adding common features to your custom pages
- Simple and advanced searching with optional AJAX search suggestions based on CONTENTdm® field indices
- A modular authentication system supporting the CONTENTdm® authentication system, as well as your own custom authentication method (such as LDAP)
- Client-code-agnostic design with minimal JavaScript in the templates
- Integrated RSS/Atom feed provider with support for search and object update subscriptions
- Configurable tag clouds based on object DC metadata fields
- Object-referenced email feedback
- A scheduled "object of the day/week/month" accessible via PHP or HTTP
- A random object from one or all collections
- Optional server-side page caching to the filesystem or a database
- "Extensions" that encourage modularization and sharing of customizations
- Commenting, with statistical reporting and optional moderation
- Object ratings on customizable numeric scales per collection
- Relatively pretty URLs
- A robust, object-oriented API that can be accessed from any local PHP script
- A REST API for querying and viewing CONTENTdm® data in any programming language
- Comment & feedback spam prevention using automatic arithmetic captchas and hidden form elements
- Reference URL rerouting on a per-collection basis
- Facilitation of valid, semantic, usable (X)HTML web templates on a per-collection or per-group-of-collections basis
- Integrated access control for restricting template sets to individual collections, sets of collections, or all collections
- A web-based "control panel" with no separate ACL to maintain
- Error logging and sysadmin email notification of critical errors
- Comprehensive API and wiki documentation
- Straightforward object abstraction of CONTENTdm® data structures in a clean, maintainable, MVC implementation in PHP 5.2
Relationship to CONTENTdm®
dmBridge interfaces with CONTENTdm® via the CONTENTdm® PHP API, in much the same way as CONTENTdm®'s own templating system.
dmBridge-powered collections
As of May 2009, dmBridge is being used in two collections at UNLV Libraries:
- "Welcome Home, Howard!" (November 2008)
- Southern Nevada: The Boomtown Years (May 2009)
We plan on moving all of our collections to dmBridge soon.
Availability
UNLV is currently exploring options to make dmBridge available to the rest of the CONTENTdm® user community.
More information
dmBridge was presented June 4, 2009 at the CONTENTdm® Western Users Group Meeting at the University of Nevada, Reno. The presentation slides are available.
If you have a question that is not addressed anywhere else, feel free to contact us.
Copyright
dmBridge is Copyright © 2009 University of Nevada, Las Vegas. All rights reserved.