Universal Content Puller

System Architecture

Almost every aspect of Universal Content Puller is expandable through a plugin architecture. Whilst the emphasis of Universal Content Puller is to provide a common infrastructure to load and manage content from a diverse range of content sources, many aspects of how that content is processed and displayed are controlled through further pluggable components.

These components are developed by myself, by myself in association with other developers, or wholly by other developers. This description of the system architecture is intended to help users of Universal Content Puller understand and use it, and also act as an introductory page for developers wishing to develop further plugins.

System Architecture for Universal Content Puller

Source Plugins

Source plugins may provide data from a content source as either an html string or as a list data structure. Additionally, some plugins may also provide footnotes, or meta data, about the source. For any Universal Content Puller block, only one source plugin will be selected at a time. See Developing Content Sources.

UCP Cache

Data from the source plugin may optionally be cached. When cached, it may optionally be passed through one or more text processor plugins (see below).

Text Processor Plugins

Text processor plugins are completely optional. They take text as an input and return processed text as an output. For example, to replace and expand embedded symbols. When working with list data, a text processor plugin is passed each element in turn before the list format plugin processes the list.

Text processor plugins may be applied when data from a source is cached or when it is displayed, or both!

Unlike other plugins, multiple text processor plugins may be selected for any Universal Content Puller block and applied in sequence.

List Format Plugins

List data is passed to a list format plugin prior to display. This loops through the list data and turns it into an html string. For any Universal Content Puller block, only one list format plugin will be selected at a time and will only be used if the content source plugin provides list formatted data.

Footnote Processor Plugins

Footnote processor plugins are used to turn any optional footnotes into a displayable string of html. For any Universal Content Puller block, only one footnote processor plugin will be selected at a time and will only be used if the content source plugin provides footnote information.

Wrapper Plugins

Wrapper plugins provide a layer of wrapping of the output from Universal Content Puller (although further wrapping may be subsequently applied by a specific UCP block template, by concrete5 block design or by a concrete5 theme).

The wrapper plugin is the last processing applied before output is displayed, taking a string of html and wrapping it, usually with an outer layer of template. For any Universal Content Puller block, only one wrapper plugin will be selected at a time

Block Templates

With all the capabilities to list, manipulate and wrap data pulled from sources, block templates play only a minor role in the formatting of the Universal Content Puller view, mostly connecting various plugins together in the right sequence. The standard view does just that.

Additionally, within the base Universal Content Puller package, are two templates to integrate Universal Content Puller with Blocks by AJAX. These either render the entire view by AJAX, or render the wrapper directly and then the content of the wrapper by AJAX.

Last updated: over a year ago