Skip to content

CPHDH/Curatescape

Repository files navigation

Curatescape

The Curatescape plugin for Omeka Classic provides the core functionality for Curatescape mobile app projects (and others), adding a variety of features to facilitate location-based narrative storytelling and walking tours. Learn more at curatescape.org. Curatescape is a project of the Center for Public History + Digital Humanities at Cleveland State University.

Overview

Item Type & Metadata Elements

The first time you activate this plugin, it will install a new Item Type called Curatescape Story. This Item Type employs multiple new metadata Elements, including Story, Subtitle, Lede, Street Address, Access Information, Official Website, Related Resources, Factoid, and more. These Elements form a schema for location-based narrative storytelling. The user-facing name of the Curatescape Story item type can be customized to suit your project, e.g. "Historical Markers", "Property Records", "Destinations", etc.

Item Display

Curatescape is designed to facilitate reading and writing, an approach that differs from typical Omeka projects where items are presented as a structured list of metadata. Through various user-configurable settings, items using the Curatescape Story Item Type are displayed in a consistent, thematically-appropriate layout that contextualizes metadata in a narrative form, employing an intuitive typographic design that fits in with the look, feel, and functionality of your chosen theme. This fundamentally changes how item records are constructed – when using the Curatescape Story item type, the record is not describing a file, it's documenting a story. Files, rather than being the raison d'etre of the record, are instead supplemental, providing documentary evidence and/or visual interest. Read more about files below.

Tours

Curatescape adds a new content type called Tours. Each tour is a curated selection of items, placed on a map, and presented with additional metadata and contextual information. Any location-enabled Curatescape Story Item can be added to any number of Tours. Tours can be thematic or geographically-based and are presented alongside an interactive map to assist users with navigation.

Maps

Curatescape facilitates the use of either the default Geolocation plugin maps or our custom Curatescape maps, which add numerous features and open new possibilities for theme and project customization. If enabled, Curatescape will display items on a WebGL-enhanced vector map with additional controls, customizable markers, and endless map styles using the MapLibre Style Spec. Curatescape maps can be added to the homepage of compatible themes using the built-in plugin settings, and can be added anywhere shortcodes are supported (see shortcode information below).

Sitewide Enhancements

Curatescape also enables a variety of sitewide enhancements, including the addition of a simple, cacheable JSON API for mobile app and/or headless data exchange of select content; a custom RSS feed designed specifically for narrative content; custom shortcodes (see below); Google Analytics integration; admin bar enhancements; useful dashboard widgets; and much more. View the plugin configuration page for all options (there are a lot of them).

Requirements

The Geolocation plugin is required.

Any server that meets the Omeka system requirements should be fine. If you have server compatibility issues, please let us know on the Curatescape Forum.

Compatibility

This plugin should work with any Omeka Classic theme, though features and level of integration may vary. Efforts have been made to accommodate all publicly-available Omeka Classic themes, particularly those created by the Omeka Team, which generally share a common approach in terms of markup and layout. If you have a question or issue relating to theme compatibility, please let us know on the Curatescape Forum.

Recommended Theme

For additional features, vetted accessibility, and improved performance, use the Curatescape Echo theme.

Shortcodes

Curatescape adds the following shortcodes. Most themes support out-of-the-box use of shortcodes through various theme configurations, as well as on Simple Pages and other areas that display user text content. To add shortcodes programmatically, developers can use something like: <?php get_view()->shortcodes('[curatescape_map]');?>.

Curatescape Map

Uses configured plugin settings to display an interactive map of Curatescape Story items, with optional subjects selection dropdown or custom data source.

Usage

[curatescape_map subjects="true"]

Parameters

Option Type Description
src string Replace the default JSON data source. Omit to show all items using the default source. Example: Use /items/browse?featured=1&output=mobile-json to display only featured items. Default: /items/browse?output=mobile-json
subjects boolean Use true to include a dropdown of available Subject terms. Note that this option will override the src argument. The Subjects Select option must also be enabled in Curatescape plugin settings.

App Store Buttons

Uses configured plugin settings for mobile apps to create button-styled links for iOS and Android app stores. With the default CSS classes, the links will be presented in a flexible CSS container that adjusts the layout based on available space.

Usage

[curatescape_app_buttons icons="true"]

Parameters

Option Type Description
buttonclass string Replace the default CSS class for the button links. Omit to use the default button link styles. Default class: curatescape-shortcode-button
containerclass string Replace the default CSS class for the container. Omit to use the default container styles. Default class: curatescape-shortcode-app-buttons
icons boolean Use true to include vector icons for App Store and Google Play.
platform string Use ios for the iOS link only or android for the Android link only. Omit to include both. When using this option, it is generally recommended to override the default button link and container classes.

Filters

A few plugin filters are available for theme authors, allowing for more control over content and layout. More filters may be added over time. Feel free to make suggestions.

Filter Name Input Description Use Case
curatescape_redundant_dcm array of Dublin Core element names Replace the default array of elements that are treated as redundant when the Metadata Template option is enabled. Bypass Creator in order to manually place the byline in an alternate location, e.g. in a custom header.
curatescape_redundant_itm array of Item Type element names Replace the default array of elements that are treated as redundant when the Metadata Template option is enabled. Bypass Related Resources in order to manually place the resources list in an alternate location, e.g. in a custom sidebar.
curatescape_tours_for_item_meta array of Tour objects or null Replace or unset the array of tours that are listed when the Metadata Template option is enabled. Omit the list of Related Tour links, e.g. in order to create a custom display or to utilize a more complex criteria for relationships.

Example Filter Usage

Add filters to your theme's custom.php file.

add_filter('curatescape_redundant_dcm', 'callbackFn');
function callbackFn(){
	return array('Description','Subject','Creator','Title','Coverage');
}

Support & Troubleshooting

User Forums

Use the Curatescape Forum to get support with Curatescape-specific issues. For general Omeka support, please use the Omeka Forum.

Frequently Asked Questions

Do I need to pay for Curatescape?

No. The Curatescape plugin and themes are free and open source. We offer optional mobile app and hosting services at affordable rates, which helps us to recover some of the costs associated with the ongoing development of Curatescape. Learn more about our services at curatescape.org.

Does this single plugin replace others like Tour Builder, Curatescape JSON (Mobile JSON), Curatescape Admin Helper (Send To Admin Header), and Super RSS?

Yes, those plugins are all deprecated and their functionality has been moved into the standalone Curatescape plugin, which includes performance improvements, additional features, and greater theme compatibility. If you are migrating an existing Curatescape project, you should deactivate and remove the deprecated plugins after ensuring you have installed any outstanding plugin updates. If you have existing Tours, take care to uninstall Tour Builder only after installing the Curatescape plugin to ensure your tours are preserved. The only other plugin you need is Geolocation.

Does Curatescape have an accessibility statement?

Yes, please refer to the Curatescape accessibility statement to review our report and download the Voluntary Product Accessibility Template (VPAT). Note that our accessibility report applies only to the Curatescape plugin and themes and not to other themes or plugins, nor to Omeka Classic itself. See Omeka Classic accessibility statement for additional information.

Can I use Item Types other than Curatescape Story?

Technically yes, you can use any other item type, though some features are specific to the Curatescape Story item type. Projects with have mobile apps should generally only use the Curatescape Story item type. This will ensure a consistent presentation and user experience. Any project that is focused strongly on location-based storytelling as a whole should probably use the Curatescape Story item type for all items.

Do all of my Items need to have Geolocation data?

Technically no, but using Geolocation to add your item to the map is strongly recommended for Curatescape Story items. Curatescape is designed specifically for location-based storytelling. For projects with mobile apps, the only content that will appear in the app are items that use the Curatescape Story item type and have Geolocation data.

My project is primarily centered around publishing archival metadata records, should I still use Curatescape?

You can certainly use Curatescape to add some narrative content to your items database. However, depending on how your content is structured, you might consider using the Exhibit Builder instead of – or in addition to – Curatescape to better curate traditional metadata-driven archival content. See related question below.

How is Curatescape different from – or similar to – Exhibit Builder?

Exhibit Builder is intended for curating discrete item records into multi-page exhibits, whereas Curatescape treats each item as a sort of single-page exhibit. Curatescape Story items are centered around a location-based narrative, where multiple files are added at the item level to support the text. Any item that has Geolocation data and uses the Curatescape Story item type may be added to a Tour, which is similar to an Exhibit in that it is a curation of related items. Tours are comparatively simpler and centered primarily on geospatial relationships; the single-page, map-based presentation is designed specifically for curating location-based narratives into easily digestible walking, driving, and cycling tours, which are compatible with Curatescape mobile apps.

How can I add a new language translation for this plugin?

If you have a translation prepared already and are comfortable making pull requests, please do so and we will review your submission as soon as possible. Use the provided English language .pot template in the /languages directory. Poedit is recommended for general purposes and for compiling .mo files. To generate a new or updated .po file, we recommend installing gettext via Homebrew (brew install gettext) and then running a command like the following from the root of the plugin directory:

find . -iname "*.php" | xargs xgettext -k__ --from-code=UTF-8 -o languages/NEW.pot *.php

Why do some of my maps look different than others?

Presently, the Geolocation plugin does not offer the filters needed for Curatescape to replace maps included in item records, though Curatescape does add some accessibility enhancements, including the addition of text-equivalent content using the Street Address and/or Access Information elements. Similarly, the default Geolocation map at geolocation/map/browse is also beyond the reach of Curatescape. If perfect consistency is critical, you can opt not to enable Curatescape maps or you can use a Curatescape-compatible theme such as Curatescape Echo or you can modify your existing theme templates to improve consistency and compatibility (see below).

How can I optimize my theme for Curatescape compatibility?

While Curatescape should work out-of-the-box with any theme – especially those in the official themes directory – you can create a Curatescape-optimized theme by making a few relatively basic changes. First, it is important to understand how to override plugin templates with your own custom templates. In the case of Curatescape, you can create custom templates by adding the following files to your theme directory: - themes/[your-theme]/curatescape/tours/browse.php - themes/[your-theme]/curatescape/tours/show.php - themes/[your-theme]/curatescape/tours/tags.php

These files will override the equivalent ones distributed with the Curatescape plugin (which can be found at plugins/Curatescape/views/public/tours). The content of your files will vary, but generally you will want to start by copying the default code from the originals, which will make it easier to discover the available helper functions. In some cases, you may need to simply adjust the page structure by adding or modifying some basic HTML markup. Or you can build a totally custom interface.

Currently, the Geolocation plugin does not offer the necessary functionality for us to easily replace the maps it generates, but it's possible to do within a theme. If you prefer to use Curatescape maps rather than those generated by the Geolocation plugin, you may also want to add this file to your theme: geolocation/map/browse.php and include in it a Curatescape map, for example: <?php echo get_view()->CuratescapeMap->Multi(__('caption text...'), true);?>. You can also modify your theme to replace the maps for single items by omitting fire_plugin_hook('public_items_show') and instead adding the map manually, e.g. <?php echo get_view()->CuratescapeMap->Single(__('street address, etc...'));?>. This may have cascading effects so be sure you understand the ramifications of removing the public_items_show hook. This documentation will be updated with a workaround for this limitation.

About

Adds location-based narrative storytelling and walking tours to Omeka Classic with support for optional mobile apps.

Topics

Resources

Stars

Watchers

Forks

Contributors