PrestoCentre is a non-profit, membership driven organization that serves an international community of stakeholders in audiovisual digitisation and digital preservation.
Drupal was chosen for its scalability. The vast number of high-quality contributed projects also made Drupal a great choice for developing a growing community website like PrestoCentre.org.
The website was initially released as beta in Drupal 6 back in 2011, but in 2012 the site was migrated to Drupal 7. New functionality is regularly being added during ongoing maintenance releases. In January 2013 a new design and several new features were introduced.
The main business goals of this project were the following:
- Provide a scalable publishing platform for a small to medium community
- Allow distributed and collaborative work
- Allow the site to adapt to new requirements and moving targets from a variety of projects
These goals were achieved by working side-by-side with the client in an Agile process. The User Stories were discussed during sprints and - as with all Agile projects - given solutions were always open for discussion.
A highlight of some important features of the site
Content and users in groups
Organic Groups is used throughout the site. The site’s Library consists of 9 sections (groups) in which content (Tools, Resources and Projects) is saved. The same sections are used in the Forum to organize discussions. Every organization registered with the site is a group, and any employee of that organization is a member within the related group.
Specific functionality for the site’s community was made available with custom modules. For instance, when registering on the site one can select an existing organization or add a new one. When linking one’s account with an existing organization, the e-mail domain is validated against the company’s domain as well as against the member limit set for the organization.
Advanced search functionality
The site makes extensive use of the Search API module, using a href="drupal.org/project/search_api_solr">Solr back-end and multiple indexes. We use it to show listings like the Calendar and the Member Directory (restricted section, see screenshot), but also to suggest related content when someone views a news item. We wrote also custom Search API fields. One example allows users to filter the list of members by entering the first letter of their name.
Fine-tuned permissions on content
The website's business logic demanded a lot of flexibility around site users content access levels. For instance, some documents in the Library can only be downloaded by authenticated users but others may be downloaded by anonymous users. The same goes for the forum: some forums are visible to non-members, but they can't read individual posts or add content, whereas other forums are visible to everyone. The site also has forums that are hidden from non-members.
We integrated the Workbench Moderation module to allow multiple editors to work on content and enable drafts to be reviewed for approval before they go live.
Lots of layout flexibility for editors
The Shortcode module allowed us to add custom markdown code giving editors the ability to design more advanced pages. Just by using simple tags they can place content in columns, add fancy looking buttons and highlight images with drop-shadows.
During the project, patches for several projects were created including Conditional Fields, Feed Comment Processor, GTranslate, Notifications, Shortcode and Workbench Moderation.
This project resulted in two new modules that were shared on drupal.org: Node Webform Access (to deny access to nodes attached to a web form when access to the web form is restricted to certain roles) and OG Formatters (to separate multiple group names with commas, just like Term Formatters does).