CDM Dataportal Implementation Notes

Development and implementation Notes for the CdmDataportal

  • This page is really outdated, we can keep it for documentation, but I think we can also delete it*

The svn Repository location for the CdmDataportal is root/trunk/drupal/modules/cdm_dataportal

The CdmDataPortal is being developed as a module for Drupal It runs on XML REST services provided by a CDM CommunityStore. These Webservices are based on the Cdm Remote API. The specific requirements of the CdmDataportal are documented by an inventory of the data access functions of the dataportal prototype.


Requirements to the data portal are documented on the following pages:

  1. - this site is not available anymore

  2. Portal-Modifikationen03b.doc (Cichoriea portal specific - only in german, sorry)

and by the Chichorieae Portal prototype": as well as by the "palmweb prototype


The PortalRequirements are gathered by the WP6 exemplar groups, mainly by creating 3 different mockup/prototype sites:

The current mockups for the 3 WP6 exemplar groups can be found here:

CDM Web Services

The dataportal runs on the CDM Web Services. These REST services are provided by the CommunityStore and expose the contained data.

See CdmApi for the currently implemented services.


see ImageServer


The roadmap for the development of the dataportals can be found at CdmDataportalRoadmap

Building Blocks & Data Flow

[!cdm_portal|building blocks.png!]


In terms of the Drupal CMS": a page is often diplaying the content of a single "node (= entity of information) or the data of many nodes aggregated in some way.

Blocks are small, self-contained units of information typically displayed in navigation areas or side areas of the page, but can be placed anywhere on the page. They provide small views of information that are embedded in the presentation of other nodes. Modules provide basic blocks used to display their content. Administrators can create new blocks based on existing blocks, or write PHP code to directly query and render content inside a block.

Names List [Page]

Page-URL: @ names @

The data portal always represents a specific view on the taxon names. Therefore the dataportal rather shows taxon concepts but just names. The names list may be quite lengthy, so a paging mechanism is required.

  • Lists all accepted taxa and synonyms as well as hybrid names. Culitvars are generally either accepted names or synonyms of a accepted taxon, thus tey are listed also.

  • Concept synonyms (sensu cases) are listed optionally

  • The presentation of excluded taxa is currently under discussion (Please contact Ralf Hand or Eckhard v. Raab-Straube)

  • Names used by different conceptual taxonomic views (concepts) given in alphabetical order.

  • Names which are not accepted and which do not have any concept or name relation to a accepted taxon will never occur in the list (state of the art in the Cichorieae Site).

  • Related accepted names are listed in a subsection (Accordion effect) which is shown after clicking on toggler button alongside the name. To improve performance this will be implemented with AJAX.

Names accepted by the current view:

  • are boldfaced (depending on the chosen layout theme)

  • are linked to the specific taxon page.

  • no expandable subsection

  • All names which are not accepted by the current view:

    • are treated as synonyms and therefore these names are linked to either the according synonym page or to its entry in the synonymity of the accepted taxon.
    • expandable subsection shows the accepted taxon.

Taxonomic Tree [Block]

  • Expandable Tree of the taxon hierachie as accepted by the current view.

  • Alternative conceptual views are indicated in the tree.

  • Switching to other views is possible

  • To be implemented using AJAX and some client based caching to avoid roundtrips and to boost performance.

Taxon [Page]

Page-URL: @ taxon @

The taxon page gives detailed information on a taxon, it shows:

  • Taxon name

  • Full list of synonyms homotypic synonyms on top, followed by the heterotypic and finally followed by misapplied names. The list is historically ordered.

  • All facts associated with the very taxon concept and taxon name.

Synonym Page

Page-URL: @ synonym @

Name with citations and reference to the valid taxon page.

Statistics [Block]

A block showing statistics on the data. For more details please refer to #12

Open Questions

Where will annotations, comments, etc. be stored?

  1. Create a Drupal node for every taxon name & taxon concept and let Drupal store the annotation. The big caveat of this approach is that annotations only will be available from the Drupal Portal. This could be overcome by a Ping mechanism, like the one which is used for Blogs, by which the CdmStore is notified about changes.

  2. Store annotations in the CMD

REST client in php

The rest client which queries the CdmWebservices is implemented as a general drupal module. This module (cdm_api) provides a simple to use php api allowing to retrieve data from CdmWebservices which deliver data either in XML or JSON.

Developer Resources

Links, taxon names, and other stuff for testing is found in the CDM Dataportal Bookmarks.


Which java script framework should we use in Drupal for dynamic page elements?

  • jQuery - it's the standard js framework in Drupal

    Lightbox effects available as drupal modules:

  1. ~3 KB of JavaScript (looks nice)

  2. ~5 KB of JavaScript

mootools + moofx - used in the data portal prototype for the Accordion effects in the name list

prototype - used dataportal prototype for the protologue lightbox

Updated by Katja Luther 6 months ago · 46 revisions