Search results
ResourceSpace Plugins
Explore the range of plugins that are available to expand ResourceSpace's base functionality, including integrations with third party software and systems.
License manager
Adds the capability to manage resource licensing via the resource view page.
Writing your own plugins
A plugin in ResourceSpace is a collection of PHP code, language files, graphics, CSS files and other related files that are structured to conform to the ResourceSpace plugin architecture. For deployment, the files that constitute a plugin are packaged together into a self-contained file called a ResourceSpace Plugin (.
Managing plugins
ResourceSpace is a digital asset management system that can be extended or modified using plugins. Plugins have a managed structure that makes it easy for third parties to write and for site administrators to maintain, even as function and bug fixes are applied to the base code.
Consent manager
Adds the capability to manage resource licensing via the resource view page.
consentmanager_get_consents
The "consentmanager_get_consents" function is used to retrieve all consent data for a given resource. The function takes a variable called "$resource" which represents the ID of the resource. The data type for this variable is an integer.
licensemanager_get_licenses
The article provides information about the "licensemanager_get_licenses" function, which is used to return all licenses held for a given resource. The function takes a variable called "$resource" as input, which represents the ID of the resource.
consentmanager_get_consent
The "consentmanager_get_consent" function retrieves all data related to a specified consent. It requires the input of the consent ID, which should be an integer. The function returns a JSON object that includes the metadata associated with the consent.
consentmanager_delete_consent
The article provides information on the consentmanager_delete_consent function, which is used to delete a consent record. The function requires the input of the consent record ID ($ref) as an integer data type.
consentmanager_batch_link_unlink
The "consentmanager_batch_link_unlink" function allows for linking or unlinking all resources in a collection with a consent record. It requires the ID of the consent record ($consent), the ID of the collection containing the resources to process ($collection), and a parameter ($unlink) to specify whether to unlink or link the resources.
consentmanager_link_consent
The article discusses the function consentmanager_link_consent, which is used to link a consent record with a resource. It requires two variables: $consent, which is the ID of the consent record to be linked, and $resource, which is the ID of the resource to which the consent is being linked.
consentmanager_unlink_consent
The article describes the function `consentmanager_unlink_consent`, which is used to unlink a consent record from a specific resource. The function requires two parameters: `$consent` (the ID of the consent record to unlink) and `$resource` (the ID of the resource from which to unlink the consent).
consentmanager_create_consent
The "consentmanager_create_consent" function is used to create a new consent record with specific variables: $name (individual's name), $email (email address), $telephone (telephone number), $consent_usage (description of intended usage), $notes (additional notes), and $expires (expiry date).
consentmanager_update_consent
The article provides information on the function `consentmanager_update_consent`, which is used to update a consent record. It outlines the variables required for this function, including `$consent` (ID of the consent record), `$name` (name of the individual giving consent), `$email` (email address of the individual), `$telephone` (telephone number of the individual), `$consent_usage` (description of intended usage for consent), `$notes` (additional notes related to the consent record), and `$expires` (expiry date of the consent).
consentmanager_get_all_consents
The function `consentmanager_get_all_consents` retrieves all consent records, with an optional filter based on a search text. The function takes a parameter `$findtext`, which is a search string used to filter results by the name of the person giving consent.
consentmanager_get_all_consents_by_collection
The function `consentmanager_get_all_consents_by_collection` retrieves all consent records associated with resources in a specified collection. It requires the input parameter `$collection`, which is the ID of the collection holding the relevant resources.
Table: plugins
The article provides a table named "plugins" that lists all active plugins on the system and stores their configuration. The table has several columns, including name, descrip, author, update_url, info_url, inst_version, config, config_json, config_url, enabled_groups, priority, disable_group_select, title, and icon.
get_active_plugins()
Description Get active plugins Parameters This function accepts no parameters. Return array Location include/plugin_functions.php lines 388 to 391 Definition function get_active_plugins () { return ps_query ( 'SELECT name, enabled_groups, config, config_json FROM plugins WHERE inst_version >= 0 ORDER BY priority' , array(), 'plugins' ); } This article was last updated 19th March 2025 19:35 Europe/London time based on the source file dated 19th March 2025 15:30 Europe/London time.
register_group_access_plugins()
Description Load group specific plugins and reorder plugins list Parameters Column Type Default Description $usergroup int -1 Usergroup reference $plugins array Enabled Plugins enabled_groups config config_json FROM disable_group_select 0 ORDER BY priority" array "plugins"; Return array Location include/plugin_functions.
register_all_group_access_plugins()
Description Load ALL group specific plugins and reorder plugins list This will bypass any group access controls for use with CLI scripts Parameters Column Type Default Description $plugins: array ps_query"SELECT name enabled_groups config config_json FROM disable_group_select 0 ORDER BY priority" array "plugins"; $plugins array Enabled Plugins Return array Location include/plugin_functions.
Admin overview
Accessible from the top navigation bar, the Admin menu provides a whole range of tools to help manage ResourceSpace and its contents.
Further videos
The article provides a list of videos that cover various topics related to using the ResourceSpace digital asset management system. The videos cover topics such as creating users, customizing the homepage slideshow, search filters, sharing resources, and more.
get_system_status
The get_system_status API provides system status information, which is configuration-dependent, such as mysql_log_transactions. The API does not require any parameters. The API returns a JSON object that contains the system status information.
Navigating Consent and Digital Asset Management
Discover how your organisation can navigate consent and Digital Asset Management (DAM), including ensuring legal compliance and protecting user privacy.
Upgrading PHP versions
ResourceSpace has updated its PHP requirement to version 7.4 for its version 10.0 to maintain compatibility with the third-party file uploader library (Uppy) and to maintain security. The company has warned that PHP 7.
New to ResourceSpace?
Find out from the Knowledge Base how to get started with the ResourceSpace Digital Asset Management System.
User guides
Introduction to the user guides section of the ResourceSpace Knowledge Base
Knowledge Base structure
Article to explain how the ResourceSpace Knowledge Base is structured to assist with finding content specific for the reader
Background information
ResourceSpace is a fully featured Digital Asset Management Solution released under an Open Source License
Open source
ResourceSpace Digital Asset Management System: Open Source, Open Culture, Free Software, Free Forever
Alternative files
Alternative files are a feature in ResourceSpace that allows users to store multiple versions of a resource together with a single set of metadata. This is useful when there are different variations of a resource that need to be easily accessible from a single point.
Batch replace
ResourceSpace has a batch replace functionality that allows users to update multiple resources at once. This feature is useful for replacing original files and regenerating previews of any number of resources.
Creating and deleting metadata fields
The article provides guidance on creating and deleting metadata fields in ResourceSpace. Metadata fields should be clear and descriptive, and the right data should be stored in the right field type to achieve this.
Modifying field options
The article explains how to modify field options in fixed list metadata fields in ResourceSpace. Users can add, remove or edit options by editing the field and selecting the "manage options" link. To add a new option, users can enter the name of the tag and click "Add".
Creating user groups
This article provides information on how to create user groups in ResourceSpace. The default user groups in ResourceSpace are Administrators, Archivist, General users, Restricted user, and Super Admin.
Advanced workflow
workflow, process, publish, embargo, archive, review,state, status
Video tracks
The Video Tracks plugin for ResourceSpace enables users to create custom video files in alternative formats/codecs, including subtitle and audio track files that have been uploaded as alternative files for a video resource.
KE EMu database integration
KE EMu is a multi-user and object-oriented database management system that uses a Texpress database engine. The Texpress kernel has features that allow for easy creation and use of applications, accessed via a range of applications.
Configuring php.ini
This article provides guidance on how to configure the php.ini file to handle larger files. The php.ini file location can be found on the PHP Info page in the row "Loaded Configuration File", available by running the function phpinfo() on an empty PHP page.
Translations
The article provides a guide on how to create an official standard translation and a custom translation for a system. Before starting an official translation, it is important to verify that no other translator is already working with the language.
Google Vision API
The Google Vision API plugin sends images to Google's Cloud Vision API on upload and sets appropriate metadata in pre-configured fields based on what has been recognised in the image. The plugin can be found under the 'Asset processing' category.
Simple SAML
This plugin allows users to log on to ResourceSpace using a SAML compliant single sign-on (SSO) Identity Provider (IdP)
Installing on Windows Server
The article provides a step-by-step guide to installing ResourceSpace on Windows Server. The instructions include setting up the IIS Web Server role, installing Web Platform Installer to help with PHP and MySQL install, configuring php.
IIIF
IIIF is an API specification that aims to improve interoperability between digital image repositories. ResourceSpace provides basic support for the IIIF presentation API, which was originally created to link with the TMS plugin to enable publishing of resources related to a specified TMS object as a IIIF manifest.
Cookies notification
The cookies_notification plugin is a tool that can be activated under Plugins via the System menu. It creates a header on the login page to notify users that their activity will be tracked via cookies.
All user permissions
ResourceSpace is a digital asset management system that allows users to control which resources other users can see and how they can interact with them. The system offers a range of permission options, including search, metadata fields, resource types, resource creation, featured collections, restrictive permissions, and administration.
TMS link
Help for setting up the tms_link plugin.
Offline job queues
ResourceSpace has developed an offline jobs function to delegate slow processes, such as creating a preview for a video file, to another script/process to be run asynchronously. The upload process focuses on getting files into the filestore, later working from a queue for further processing.
MuseumPlus
MuseumPlus is a web-based museum management system that provides real-time museum management and fully documents any type of collection and all related workflow. The system can be integrated with ResourceSpace, a digital asset management system, through its API.
Contributing to the base code
ResourceSpace welcomes contributions to its base code. The process involves completing a Contributor License Agreement and ensuring familiarity with the Coding Standards. After this, diff patches should be manually submitted via email for review and addition to the base.
3. File sizes and formats
When we click on a resource we are shown all the available metadata for that resource, and also a list of available versions.
Complete Guide to Crafting Effective Brand Guidelines
Discover the importance of brand guidelines to differentiate your business and ensure your products stand out from competitors.
Wordpress_SSO
The Wordpress_SSO plugin enables users to log in to ResourceSpace using Wordpress single sign-on (SSO) Identity Provider (IdP). However, the plugin should only be enabled and configured by system administrators as it affects how users log in to ResourceSpace.
Vimeo publish
The Vimeo Publish plugin allows users to publish video resources to a configured Vimeo account. The plugin uploads data and has configurable mapped fields to automatically add descriptions, titles, and tags.
Database schema
Database schema for ResourceSpace.
Intellectual property
ResourceSpace, an open source digital asset management software, has issued guidelines for the use of intellectual property in its platform. The company has stated that all code, images, libraries and other digital content included in ResourceSpace must meet certain criteria.
Project structure
A breakdown of the folders used within ResourceSpace, and their typical contents and function.
Fixed list fields
ResourceSpace has various metadata field types, including text boxes, check box lists, dropdown lists, date fields, category trees, and radio button lists. Some of these fields can have their options defined by an administrator of the system, and these fields are called fixed list fields.
Wordpress integration
A new WordPress plugin has been developed that allows users to embed resource files from ResourceSpace in their posts. The plugin was funded by ADRA International and developed by Codecide. To install the plugin, users should download the WordPress plugin zip file, navigate to Plugins->Add plugins from the WordPress Admin menu and click 'Upload plugin', or manually upload the zip file to the wp-content/plugins directory of the WordPress installation.
Sensitive image blurring
The sensitive image blurring plugin can blur selected images from users both in the results and on the resource view page. The plugin can be configured by enabling it and choosing a desired field for the "sensitive message" in the plugin's options page.
ResourceSpace software design principles
ResourceSpace, an open-source digital asset management software, has outlined its design principles for developers. The principles include the KISS (Keep It Simple Stupid) principle, which advises against implementing complex solutions when a simple one will suffice, and avoiding introducing new technology when existing technology will suffice.
Configuring Leaflet Maps
This article provides a guide to configuring Leaflet maps in ResourceSpace. The article lists several configuration options that can be used to add tile sources and customize how geolocation data is displayed.
User preferences
The article provides instructions on how to access user preferences on a website. Users can click on the user profile icon at the top right of the screen and select "Preferences" to make changes to the functionality and interface available to them.
System reset
The article describes the use of the System Reset plugin in ResourceSpace, which allows users to completely reset their installation by deleting all files and data. To activate the plugin, users must select System then Plugins from the top right menu, and then select the System Reset option from the System menu.
User actions
User actions are now enabled for all users by default, unless disabled by a system administrator. Actions alert users to resources or activities that require their attention, and the actions visible to a user will vary depending on system configuration and user permissions.
The Digital Asset Management Buyer's Guide
In this guide we look at what DAM software actually is, the problems it solves and some questions to ask a vendor before making a buying decision.
API Webhooks
API Webhooks is a plugin that allows developers to synchronise data between ResourceSpace and third-party systems. The plugin enables remote scripts to be called from within ResourceSpace, allowing users to drive the timing of the synchronisation between the two systems.
Integrating with Uppy Companion
Uppy Companion is an open-source server application that can be linked to the Uppy uploader used by ResourceSpace. It allows users to select files directly from sources such as Google Drive, Dropbox and OneDrive without having to download the files locally first.
OpenAI GPT
OpenAI's GPT language model has been integrated into ResourceSpace, a digital asset management system, to automate metadata processing tasks. The plugin allows users to use GPT to populate metadata fields based on data stored in another field.
What is Digital Asset Management?
A Digital Asset Management system is critical component of your organisation's tech stack. Explore the benefits of DAM, its use cases, and how it streamlines asset management.
Do you need a Digital Asset Management system? Find out here.
A Digital Asset Management (DAM) system can help organizations overcome various challenges related to managing digital assets. These challenges may include difficulties in finding specific files, using outdated assets, licensing and copyright issues, and sharing large files with external contacts.
User rating of resources
ResourceSpace has a star rating feature that allows each user to give resources a rating of between one and five stars. User rating of resources can be enabled by super admins in the configuration area via admin, system, configuration, user accounts and enabling "user rating of resources".
A Comprehensive Guide to Digital Curation: Tools and Techniques
Explore digital curation: key tools and techniques for preserving significant cultural assets.
How do I create a new user group?
The article provides instructions on how to create a new user group. To do this, the user needs to go to the Admin section, then navigate to System and User groups. In the "Create user group called..." field, the user can enter the name of the new group and click "Create".
How do I check for duplicates?
The article discusses how to check for duplicates in ResourceSpace, a digital asset management system. It explains that ResourceSpace uses checksums, which are unique "fingerprint" ID sequences, to identify duplicates.
The Complete Guide to Metadata
Metadata is data that provides information about other data, without describing the content of that data. It is crucial for digital assets and is used to categorize and describe various types of files, such as documents, videos, and audio files.
Can I change which fields are shown in List view?
The article explains that most metadata fields can be added as column headings in list view on the search results page. This can be done through configuration in the back end of the system. If the user has a support contract, they can ask their account manager to set it up for them.
OpenAI Image Editing
The OpenAI image editing plugin is integrated with DALL-E 2 to enable AI image editing within ResourceSpace. Users can access the editing option in the resource tools on the resource view page. The plugin requires the OpenAI GPT plugin to be enabled with a valid key.
Canva integration
The article discusses the integration of ResourceSpace with Canva, enabling users to access resources directly from Canva by searching, dragging, and dropping. To utilize this integration, users need to enable the Canva User Consent plugin in ResourceSpace through the Plugin Manager to manage consent.
Table: job_queue
The job_queue table is a list of active offline jobs such as preview processing. It contains several columns, including ref, which is an auto-incrementing index, type, which is the job type, job_data, which is the JSON-encoded job data, start_date, which is the earliest time to start the job, user, which is the user ID, status, which is the job status code, success_text, which is the text to include in the message if the job completes successfully, failure_text, which is the text to include in the message if the job fails, job_code, which is a unique hash used to prevent duplicate jobs, and priority, which is the job priority.
Table: user
The "user" table in ResourceSpace stores all user information, including their username, password, full name, email address, user group, and last activity date. It also includes information on whether the user is currently logged in, their browser user agent string, and their IP address.
Frequently Asked Questions (FAQs)
The most frequently asked questions about ResourceSpace, the free and open source Digital Asset Management system.
iiif_get_canvases()
Developer reference for function iiif_get_canvases()
compile_collection_actions()
Developer reference for function compile_collection_actions()
config_text_input()
Developer reference for function config_text_input()
config_colouroverride_input()
Developer reference for function config_colouroverride_input()
config_single_select()
Developer reference for function config_single_select()
config_boolean_select()
Developer reference for function config_boolean_select()
config_single_ftype_select()
Developer reference for function config_single_ftype_select()
tail()
Developer reference for function tail()
job_queue_run_job()
Developer reference for function job_queue_run_job()
remove_accents()
Developer reference for function remove_accents()
get_export_tables()
Developer reference for function get_export_tables()
activate_plugin()
Developer reference for function activate_plugin()
deactivate_plugin()
Developer reference for function deactivate_plugin()
purge_plugin_config()
Developer reference for function purge_plugin_config()
get_plugin_yaml()
Developer reference for function get_plugin_yaml()
get_plugin_config()
Developer reference for function get_plugin_config()
set_plugin_config()
Developer reference for function set_plugin_config()
is_plugin_activated()
Developer reference for function is_plugin_activated()
handle_rsc_upload()
Developer reference for function handle_rsc_upload()
display_rsc_upload()
Developer reference for function display_rsc_upload()
config_gen_setup_post()
Developer reference for function config_gen_setup_post()
config_gen_setup_html()
Developer reference for function config_gen_setup_html()
config_multi_select()
Developer reference for function config_multi_select()
config_single_user_select()
Developer reference for function config_single_user_select()
config_multi_user_select()
Developer reference for function config_multi_user_select()
config_single_group_select()
Developer reference for function config_single_group_select()
config_multi_group_select()
Developer reference for function config_multi_group_select()
config_multi_ftype_select()
Developer reference for function config_multi_ftype_select()
config_single_rtype_select()
Developer reference for function config_single_rtype_select()
config_multi_rtype_select()
Developer reference for function config_multi_rtype_select()
config_db_single_select()
Developer reference for function config_db_single_select()
config_db_multi_select()
Developer reference for function config_db_multi_select()
get_plugin_css()
Developer reference for function get_plugin_css()
plugin_activate_for_setup()
Developer reference for function plugin_activate_for_setup()
register_plugin_language()
Developer reference for function register_plugin_language()
get_plugin_path()
Developer reference for function get_plugin_path()
register_plugin()
Developer reference for function register_plugin()
render_actions()
Developer reference for function render_actions()
render_custom_fields()
Developer reference for function render_custom_fields()
render_selected_collection_actions()
Developer reference for function render_selected_collection_actions()
managed_collection_request()
Developer reference for function managed_collection_request()
process_custom_fields_submission()
Developer reference for function process_custom_fields_submission()
save_resource_data()
Developer reference for function save_resource_data()
save_resource_data_multi()
Developer reference for function save_resource_data_multi()
update_field()
Developer reference for function update_field()
get_download_filename()
Developer reference for function get_download_filename()
delete_resource_type_field()
Developer reference for function delete_resource_type_field()
compile_search_actions()
Developer reference for function compile_search_actions()
search_special()
Developer reference for function search_special()
config_multi_archive_select()
Developer reference for function config_multi_archive_select()
DrawOption()
Developer reference for function DrawOption()
render_featured_collections_category_permissions()
Developer reference for function render_featured_collections_category_permissions()
config_add_hidden_input()
Description Generate a data structure to instruct the configuration page generator to add a hidden input Parameters Column Type Default Description $cf_var_name string Plugins' configuration variable name $cf_var_value string '' Value Return array Location include/config_functions.
plugin_encode_complex_configs()
Description Encode complex plugin configuration (e.g mappings defined by users on plugins' setup page) Parameters Column Type Default Description $c mixed Configuration requiring encoding Return string Location include/plugin_functions.
plugin_decode_complex_configs()
Description Decode complex plugin configuration (e.g mappings defined by users on plugins' setup page) Parameters Column Type Default Description $b64sc string Configuration encoded prior with {@see plugin_encode_complex_configs()} Return mixed Location include/plugin_functions.
leaflet_osm_basemaps()
Description Generates OpenStreetMap basemaps for use in a Leaflet map. This function defines various tile layers from OpenStreetMap and related providers, setting properties such as caching, retina display support, maximum zoom levels, and attribution for each layer.
leaflet_markers_legend()
Description Creates a map color markers legend for Leaflet maps. This function generates HTML for a legend that displays markers with colors corresponding to resource types or custom metadata field values.
get_geolibraries()
Description Checks the current page and includes necessary geolocation libraries for Leaflet maps. This function loads the Leaflet Control Geocoder plugin and checks if the current page requires geolocation capabilities.
get_geo_maps_scripts()
Description Outputs the script tag for including additional Leaflet plugins. This function loads the necessary JavaScript for the Leaflet Marker Cluster library, which helps in managing large sets of markers on Leaflet maps by clustering them for better visualization.
allow_in_browser()
Description Check if file can be rendered in browser via download.php Parameters Column Type Default Description $path string Path to file Return bool Location include/resource_functions.
send_user_notification()
Description Send system notifications to specified users, checking the user preferences first if specified This will contain two arrays:- "emails" array of emails sent, with the following elements:- "email" => Email address "subject" => Email subject "body" => Body text "messages" Array of system messages sent with the following elements :- "user" => User ID "message" => message text "url" => url Parameters Column Type Default Description $users array Array of user IDs or array of user details from get_users() $notifymessage ResourceSpaceUserNotification An instance of a ResourceSpaceUserNotification object holding message properties $forcemail bool false Force system to send email instead of notification? Return array Array containing resulting messages - can be used for testing when emails are not being sent Location include/message_functions.
actions_filter_by_user()
Description Filter actions in the provided array to return only those applicable to the given user Parameters Column Type Default Description $actionuser int User ref to get actions for $actions: array $actions_approve_hide_groups; $actions_resource_requests $actions_account_requests $actions array Array of actions as returned by get_user_actions_recent() Return array Subset of actions for the given user as would be provided by get_user_actions() Location include/action_functions.
generate_videojs_options()
Description Generate JSON array of VideoJS options to be used in the data-setup attribute Parameters Column Type Default Description $view_as_gif bool True if the video is a GIF file $play_on_hover bool True if playing video on hover $video_preview_sources array Array of preview sources, including URL, type and label Return string|false Location include/video_functions.
render_resource_tools_size_download_options()
Description Render the resource tools for preview sizes Parameters Column Type Default Description $resource array Resource data - {@see get_resource_data()} $ctx: array false $resource['file_extension'] false; bool, array{'download_multisize': "sizes"?: array, 'urlparams': array} $ctx Contextual information.
Brand Guidelines (v10.5+)
The article outlines the brand guidelines for version 10.5 and above. It covers essential information such as logo usage, color palette, typography, and design elements to maintain brand consistency. The guidelines emphasize the correct application of the logo in various formats and backgrounds, specifying clear space requirements and prohibited alterations.
RenderPlugin()
Description Render the plugin in the Plugin Manager with options to activate and configure. Parameters Column Type Default Description $plugin array An array containing the plugin data, loaded from the plugin table $active boolean true If true, display options to deactivate and allow group configuration Return void Location include/plugin_functions.