Integrating DSpace
with Drupal
The CCAFS story

Wednesday, October 30, 13
WHERE WE STARTED
• A Drupal 6 website to be revamped
and ported to Drupal 7
• A DSpace repository with all the
CCAFS publications archive
• Need to seamlessly integrate the
two systems

W W W . M A C A R O N I B R O S . C O M

Wednesday, October 30, 13
W W W . M A C A R O N I B R O S . C O M

Wednesday, October 30, 13
WHERE WE ARE

• Drupal 7 website with publications
automatically updated
from DSpace repository
• Seamless navigation

W W W . M A C A R O N I B R O S . C O M

Wednesday, October 30, 13
WHERE WE ARE

W W W . M A C A R O N I B R O S . C O M

Wednesday, October 30, 13
KEY FEATURES
• Publications are Drupal nodes
✓ Searchable
✓ Taggable and browsable with taxonomy
✓ Accessible using Views
• Unified user experience
• Complete control on markup and layout
• Responsive interface
• Better SEO
• Social sharing

W W W . M A C A R O N I B R O S . C O M

Wednesday, October 30, 13
W W W . M A C A R O N I B R O S . C O M

Wednesday, October 30, 13
HOW WE DID IT - 1

• DSpace REST API development has
been stopped in 2011
• Open source alternatives are not
stable and not suitable for
production use

W W W . M A C A R O N I B R O S . C O M

Wednesday, October 30, 13
HOW WE DID IT - 2
• DSpace exposes all pages content
as XML
• This page
http://cgspace.cgiar.org/handle/10568/33836

is also available as XML here
http://cgspace.cgiar.org/metadata/handle/10568/33836/mets.xml

• Similarly you can access XML
representations of publication listings, for
example by collections

W W W . M A C A R O N I B R O S . C O M

Wednesday, October 30, 13
HOW WE DID IT - 3
• We wrote a custom proxy that
takes an XML listing and fetches all
data from single publications URLs,
merging the results in a single XML
• We then feed Drupal with that XML,
using Feeds + Feeds XPath parser
+ Feeds tamper modules

W W W . M A C A R O N I B R O S . C O M

Wednesday, October 30, 13
HOW WE DID IT - 4
• The importer takes data fields from
DSpace and applies transformations
that allow to automatically tag
publications with Themes and
Regions taxonomies
• The import process only affects new
or updated publications, and doesn’t
require a complete re-import in
every run
W W W . M A C A R O N I B R O S . C O M

Wednesday, October 30, 13
Questions

W W W . M A C A R O N I B R O S . C O M

Wednesday, October 30, 13

Integrating DSpace with Drupal: The CCAFS story

  • 1.
    Integrating DSpace with Drupal TheCCAFS story Wednesday, October 30, 13
  • 2.
    WHERE WE STARTED •A Drupal 6 website to be revamped and ported to Drupal 7 • A DSpace repository with all the CCAFS publications archive • Need to seamlessly integrate the two systems W W W . M A C A R O N I B R O S . C O M Wednesday, October 30, 13
  • 3.
    W W W. M A C A R O N I B R O S . C O M Wednesday, October 30, 13
  • 4.
    WHERE WE ARE •Drupal 7 website with publications automatically updated from DSpace repository • Seamless navigation W W W . M A C A R O N I B R O S . C O M Wednesday, October 30, 13
  • 5.
    WHERE WE ARE WW W . M A C A R O N I B R O S . C O M Wednesday, October 30, 13
  • 6.
    KEY FEATURES • Publicationsare Drupal nodes ✓ Searchable ✓ Taggable and browsable with taxonomy ✓ Accessible using Views • Unified user experience • Complete control on markup and layout • Responsive interface • Better SEO • Social sharing W W W . M A C A R O N I B R O S . C O M Wednesday, October 30, 13
  • 7.
    W W W. M A C A R O N I B R O S . C O M Wednesday, October 30, 13
  • 8.
    HOW WE DIDIT - 1 • DSpace REST API development has been stopped in 2011 • Open source alternatives are not stable and not suitable for production use W W W . M A C A R O N I B R O S . C O M Wednesday, October 30, 13
  • 9.
    HOW WE DIDIT - 2 • DSpace exposes all pages content as XML • This page http://cgspace.cgiar.org/handle/10568/33836 is also available as XML here http://cgspace.cgiar.org/metadata/handle/10568/33836/mets.xml • Similarly you can access XML representations of publication listings, for example by collections W W W . M A C A R O N I B R O S . C O M Wednesday, October 30, 13
  • 10.
    HOW WE DIDIT - 3 • We wrote a custom proxy that takes an XML listing and fetches all data from single publications URLs, merging the results in a single XML • We then feed Drupal with that XML, using Feeds + Feeds XPath parser + Feeds tamper modules W W W . M A C A R O N I B R O S . C O M Wednesday, October 30, 13
  • 11.
    HOW WE DIDIT - 4 • The importer takes data fields from DSpace and applies transformations that allow to automatically tag publications with Themes and Regions taxonomies • The import process only affects new or updated publications, and doesn’t require a complete re-import in every run W W W . M A C A R O N I B R O S . C O M Wednesday, October 30, 13
  • 12.
    Questions W W W. M A C A R O N I B R O S . C O M Wednesday, October 30, 13