Portland State University - Multi-department Syndication Service

 

Challenge

Portland State University (PSU) is a public state urban university located in downtown Portland, Oregon, United States. Founded in 1946, it has the largest overall enrollment of any university in the state of Oregon, including undergraduate and graduate students. It is also the only public university in the state that is located in a major metropolitan city.

Client requested a centralized content management solution that provided a means to share content across multiple websites. The solution would need to allow customization of how content would be presented for each site and the ability to filter content by categories per site and content type. Each department site would need the ability to define what content should be displayed and how it should be formatted.
 

Solution

The syndication system provides a centralized service for sharing content between Drupal department sites. Users create content from within the syndication system and that information is streamed to each Drupal department site. Department sites are configured to collect syndicated content from the syndication system using "syndication clients". The clients provide Department specific settings that define what type of content is collected from the syndication system and how it will be displayed to end-users. The content request and return process occurs on every page load where syndicated content is displayed. This process occurs every time teasers, index pages, and detail pages are displayed to end-users for a given syndication content type.

Department Site Syndication Client
Each department site is configured to use multiple syndication client modules. The custom built modules provide management interfaces to configure connectivity to the Drupal Syndication server and define display preferences for content. Each department set is configured to define a base tag, the base tag tells the syndication system what content to display by default on each site. Site managers can also configure the display of content type teasers on the home page and any sub-pages. The teasers can be displayed horizontally or vertically on all pages.

The current system provides syndicated faqs, events, profiles, and news items. Each content type is displayed as a teaser on the home page and sub-pages for a department site. By default a index page and details page are provided for each content type. Users can filter the display of content by clicking on tags displayed in a hierarchy on the index and details pages.

Syndication Server
The syndication server provides a centralized content management tool for syndicated content. Authors can create content, upload media, and classify the content with one or more tags. System Administrators can monitor the authoring workflow and approve or deny newly created content. The system was developed as a Drupal sub-site utilizing CCK, Views, Pathauto, Taxonomy and numerous custom modules. Syndicated content is streamed to department sites using a xml-based web-service.

The syndication server and syndication client were designed to provide a framework for expanding additional content types. The framework allows development staff the ability to add blogs, videos, quotes and many more content types. The syndication server also integrates with the security package modules to provide cascading security policies for system services and content.

 

Results

The system provides syndicated content to over 100+ drupal department sites providing filtered content browsing for multiple users. The system provides a solution to syndicate content to 3rd party systems and has 120 active contributors.

Robert's Thoughts
We learned a lot while development this system. If I had to change anything in the final product I would remove the use of views altogether and just run queries directly from the database and generate XML to the requesting clients.