Search results
Metadata read/write mapping
ResourceSpace can map between embedded metadata stored in original files and the metadata fields in ResourceSpace itself. This synchronisation can be two-way, so that imported metadata can be automatically extracted into a configured field, but also that metadata added to the resource after import is written back to the file at download.
Meta append
The Meta Append plugin allows users to add a timestamp and daily upload number to each resource they contribute. The plugin automatically applies the user-defined timestamp and upload number to the selected field, which can be configured in the plugin settings.
Progressive Web App
ResourceSpace can be installed as a Progressive Web App (PWA) by using the manifest.json file. This file sets various properties for the web application, such as the application name, app icons, UI colors, shortcuts, and screenshots.
is_collection_approved()
Developer reference for function is_collection_approved()
append_default_position()
Developer reference for function append_default_position()
append_usergroup_position()
Developer reference for function append_usergroup_position()
append_user_position()
Developer reference for function append_user_position()
txt2html()
Developer reference for function txt2html()
get_user_downloads()
Developer reference for function get_user_downloads()
remove_all_node_keyword_mappings()
Developer reference for function remove_all_node_keyword_mappings()
add_node_keyword_mappings()
Developer reference for function add_node_keyword_mappings()
remove_node_keyword_mappings()
Developer reference for function remove_node_keyword_mappings()
append_field_value()
Developer reference for function append_field_value()
remove_keyword_mappings()
Developer reference for function remove_keyword_mappings()
add_keyword_mappings()
Developer reference for function add_keyword_mappings()
remove_all_keyword_mappings_for_field()
Developer reference for function remove_all_keyword_mappings_for_field()
notify_user_resources_approved()
Developer reference for function notify_user_resources_approved()
get_approver_usergroups()
Description Returns an array of the user groups the supplied user group acts as an approver for. Uses config $usergroup_approval_mappings. Parameters Column Type Default Description $usergroup int "" Approving user group Return array Array of subordinate user group ids.
get_usergroup_approvers()
Description Returns an array of user groups who act as user request approvers to the user group supplied. Uses config $usergroup_approval_mappings. Parameters Column Type Default Description $usergroup int "" Subordinate user group who's approval user group we need to find.
remove_invalid_node_keyword_mappings()
Description Delete invalid node_keyword associations. Note, by invalid, it's meant where the node is missing. Parameters This function accepts no parameters. Location include/node_functions.
apply_resource_default()
Description When changing resource type, new resource type specific fields may become available. This function will apply any resource default values for resource type specific fields that were not previously available (i.
remove_invalid_resource_node_mappings()
Description Delete invalid resource_node associations. Note, by invalid, it's meant where the node is missing. Parameters This function accepts no parameters. Location include/node_functions.
get_total_approved_users()
Description Return the total number of approved Parameters Column Type Default Description int { : 1" [] * 0; } /** by filtered []; Return integer The number of approved users This article was last updated 14th May 2025 21:35 Europe/London time based on the source file dated 12th May 2025 14:20 Europe/London time.
File management (uploads)
The article emphasizes the importance of following OWASP best practices for file management, particularly during uploads. It introduces functions in ResourceSpace that aid in handling file processing, such as process_file_upload for moving files to desired destinations, parse_filename_extension for extracting file extensions, and functions like is_banned_extension and check_valid_file_extension to control the types of files that can be uploaded.
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 (.
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".
Supported file formats
Array ( [error] => Array ( [message] => This model's maximum context length is 16385 tokens. However, your messages resulted in 19253 tokens. Please reduce the length of the messages.
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.
Knowledge Base structure
Article to explain how the ResourceSpace Knowledge Base is structured to assist with finding content specific for the reader
Resources and structure
Article to explain the concept of Resources and how they are structured with ResourceSpace Digital Asset Manager
Metadata
ResourceSpace Digital Asset Management System uses embedded and user inserted metadata to describe and track your resources
Fixed list metadata
Article in the ResourceSpace Knowledge Base explaining Concepts about Fixed List Metadata.
Accounts & access
A ResourceSpace Knowledge Base article explaining user accounts and access within ResourceSpace for users.
Uploading
Uploading files into ResourceSpace is a very simple process, however it is at this stage that you will be adding the metadata that ensures your resources can found and used effectively. It is key that you put as much relevant metadata into the resource fields as possible now to make your contributions as valuable as they can be.
Pending review and submission
ResourceSpace allows users to upload assets to the library with restricted permissions. Members of the General Users group first upload their assets in the 'Pending Submission' state, where they can check and verify the necessary metadata.
Advanced search
The advanced search page in ResourceSpace allows users to access a wider selection of metadata fields, enabling them to create more refined searches. The fields are grouped by resource type, with global fields at the top and resource-specific fields further down.
Featured & public collections
Featured Collections are a way to showcase the best and most in-demand content. They can contain a select number of resources and encourage users to browse content by directing them to relevant tags or ideas.
Searching in ResourceSpace
The ResourceSpace search feature is a powerful tool that allows users to quickly find the resources they need. Users can start with a broad search and then refine the results to find the most relevant content.
Resource tools
The article discusses the various resource tools available in the resource downloads area of the resource view page. These tools allow users to download, view, and request resource files, as well as perform actions such as adding to a collection or sharing.
Editing multiple resources
The article explains how to edit multiple resources in ResourceSpace using batch editing. Batch editing allows users to apply the same change to multiple resources at once, ensuring continuity. To perform a batch edit, users need to add the selected resources to a collection and then choose "Edit all resources" from the collection actions list.
Editing resource previews
Resource previews are an important aspect of ResourceSpace as they are the first contact users have with resources and help them decide which assets to use. If previews are missing, they should be remedied after upload.
Resource status & access
Resource status and access are important factors in controlling how users interact with resources in ResourceSpace. The status of a resource determines whether it can be found or edited by users, while the access controls which users can download the resource.
Sharing resources
Resources and Resource Collections each offer a 'Share' option which allows them to be shared with other users, as well as with non-users of the system, to allow greater flexibility of use.
Related resources
The article explains how resources can be related to each other in order to group similar or mutually relevant resources. There are three ways to relate resources: relating all resources in a collection, manually relating resources by editing each resource individually, and relating resources on upload.
Deleting collections
This article explains how to delete collections in a simple and straightforward manner. Users are unable to delete their default "My Collection", but any other collection can be deleted by going to the "Manage My Collections Page", clicking "Delete" against the collection to be deleted, and confirming the deletion.
Editing a collection
This article explains how to edit a collection in a resource management system. The edit screen provides several options, including customising the name of the collection, adding a description, and attaching tags to help find the collection of resources.
Creating featured collections
This article explains how to create a featured collection in ResourceSpace, which is a collection of resources that is highlighted on the platform's homepage. The process is similar to creating a public collection, but with an additional step to turn it into a featured collection.
PDF contact sheet
The article explains how to create a PDF contact sheet for a collection in ResourceSpace. A contact sheet is a quick reference overview of what is in a collection, which can be printed or downloaded. To create a contact sheet, users need to choose the "Contact Sheet" option in the collection Actions list.
Special search terms
Special search terms help users to find content in a much more specific and controlled manner, either through giving them extra tools or using a prebuilt search.
Annotate
The article discusses the Annotate feature that allows users to add annotations to a resource and connect them to a part of the resource preview. The annotations could include names or features of note within an image.
Embed slideshow
This article provides instructions on how to generate HTML for embeddable collection slideshows on remote sites using a function. The process involves creating a dynamic collection, selecting 'Share' from the collection options, choosing the size, preview duration, and maximise option, and then generating the HTML.
Propose changes
The article explains how users who cannot edit a resource can propose changes to its metadata to administrators. The administrators can then approve or reject these changes. To submit a change, the user must navigate to a resource page and click "Propose Changes" in Resource Tools.
Video splice
The video splice plugin allows users to trim and merge videos within ResourceSpace to create new, separate files. The trim tool allows users to select portions of a video to be recreated as a new video file, which can then be added as a new resource or attached as an alternative to the original.
Youtube publish
The YouTube Publish plugin allows users to publish video resources to a configured YouTube account. The plugin uploads data and has configurable mapped fields to automatically add descriptions, titles, and tags.
Creating dash tiles
Dash tiles are a great way of creating shortcuts to your favourite things in ResourceSpace.
Managing dash tiles
This article explains how to manage dash tiles in ResourceSpace. Dash Administrators can create tiles for all users or selected user groups, and reorder the tiles for those users who cannot manage their own dash.
Reports
ResourceSpace offers a reporting section that allows users to access information about downloads, uploads, and views. The reporting section provides a detailed table structure that can be downloaded as a CSV file for spreadsheet software or viewed directly in the browser.
User resource requests
ResourceSpace allows users to request access to restricted resources. The request mode setting on the user group determines what happens with the request. If the request mode is set to email only, an email is sent to the administration notification address containing the request details.
Homepage slideshow
ResourceSpace, a digital asset management software, has highlighted the importance of updating the homepage slideshow regularly to keep users engaged and the system looking appealing. The "big slideshow" provides a full-screen background image or slideshow for the homepage, while the "small slideshow" moves the slideshow window to the upper left side of the screen, leaving white space on the homepage for displaying dash tiles.
User contributions
ResourceSpace allows for user contributions to be managed through user group upload permissions. Trusted uploaders, such as administrators, can add resources without review, while new users must upload their resources in a pending state for review by resource administrators.
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.
Resource types
Resource types are a key way to organise metadata in ResourceSpace, allowing users to record different metadata for different types of assets. Resource types can be created as needed, and separating resources into types allows users to apply certain media-specific fields only where they will be useful, saving time and effort.
Creating a resource type
This article provides instructions on how to create a new resource type in MODX. To create a new resource type, users need to browse to "Admin > System > Resource types", enter the name of the new resource type, click "Create", fill in the rest of the form as required, and click "Save".
Understanding resource metadata
Metadata is essential for describing resources and forms the basis of search. When a resource is uploaded into ResourceSpace, it is tagged with words or phrases that best describe the asset. These tags form the resource metadata and are how users search for the resources they need.
Metadata field types
This article provides a list of metadata field types that can be used to capture data in an appropriate form for communicating to users what it represents. The list includes text boxes for single-line, multi-line, large multi-line, and formatted text, as well as check box lists, drop-down lists, radio buttons, and date fields.
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".
Ordering metadata fields
Metadata fields can be ordered to determine where they appear on search, edit and upload pages. Global fields are placed first, followed by resource type-specific fields in a collapsible section below.
Advanced metadata field configuration
This page covers the advanced options for metadata field configuration including display templates, smart featured collections, display conditions, autocomplete options and additional settings for ExifTool and IPTC metadata.
Indexing metadata
ResourceSpace has announced that from version 10.1, indexing of text fields will be limited to the first 500 characters of text. This change is being made to enable ResourceSpace to quickly search resource metadata, rather than the full file contents.
Related keywords
The article explains how to manage related keywords in a website's admin panel. This feature allows creating relationships between search terms so that a search for one will also return resources that have the other keyword present in their metadata.
Edit & upload tabs
This article provides guidance on how to set up and manage tabs in ResourceSpace, a digital asset management system. Tabs can be used to group related metadata fields together, making it easier for users to navigate and edit metadata.
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.
Creating users
This article provides a step-by-step guide on how to create a user account in a system. It explains that user accounts require user groups to be created first, as user permissions and configuration settings are managed in the groups.
User account requests
ResourceSpace offers the option for users to request accounts, which can be enabled or disabled in the system config file. There are four ways in which account requests can work, depending on how the installation is configured.
Useful user tools
ResourceSpace provides several user management tools to help with the user configuration process. The first tool is resetting passwords, which can be done by browsing to Admin > Users, editing the user, entering a password into the password field or clicking "Suggest" to generate one, and clicking Save.
Advanced user group options
The article explains the advanced user group options available in ResourceSpace. These options are hidden by default to make the user group page easier to use, but they can be accessed by clicking on the "Advanced options" header above the save button.
Search filters
Each user group can have a 'search filter' set (via the user group options in System Setup), which allows for resource visibility restrictions.
CSV upload
The CSV upload plugin for ResourceSpace allows users to edit existing resource metadata and create new resources by uploading a CSV file. The plugin is recommended for administrators and users with elevated permissions due to the risk of inserting incorrect data into ResourceSpace.
Advanced workflow
workflow, process, publish, embargo, archive, review,state, status
Watched searches
The 'rse_search_notifications' plugin enables the functionality of watched searches, which allows users to subscribe to any search result or set of resources, such as a collection. The system will then notify the user when resources are added or edited to match the result set.
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.
Analytics
The analytics function allows detailed reporting on a variety of system actions which can be broken down by user group and filtered by a number of options.
Version control
The article explains how to use version control functions from the resource log. Users can click on a log entry to bring up a page showing the full log entry, and a revert link will be displayed where it is relevant.
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.
API
ResourceSpace implements a RESTful API that returns JSON. All requests must be signed using a shared private key specific to each user. This can be performed via GET or POST.
get_resource_path
The get_resource_path function returns a URL or file path for a resource file. It takes several parameters, including the ID of the resource or an array of resource IDs, a flag indicating whether a file path should be returned instead of a URL, the size of the requested file, and whether the path should be generated if it does not yet exist on disk.
upload_file
The "upload_file" function allows users to upload a new local file to an existing resource, replacing any file that is already attached. The function takes in several variables, including the ID of the resource, a flag to process embedded metadata, a flag to re-process an existing file, a flag to automatically rotate images, and the path on disk of the file to upload.
upload_file_by_url
The "upload_file_by_url" function allows users to upload a new remote file to an existing resource, replacing any file that is already attached. The function requires the ID of the resource, which must already exist, and the URL of the file to upload.
Installation overview
The article provides an overview of the installation process for ResourceSpace, a standard PHP/MySQL application. The installation process is similar to other PHP/MySQL applications, and most issues encountered relate to the default php.
Installing on CentOS Linux
The article provides a guide for installing ResourceSpace on CentOS Linux. The installation process involves updating the system, installing MySQL Community Repo, and then installing mysql-server. Other packages that need to be installed include httpd, php, php-dev, php-gd, php-mysql, php-mbstring, subversion, vim, nano, ghostscript, ImageMagick, poppler, antiword, ExifTool, and FFmpeg.
Installing on macOS
The article provides a step-by-step guide to install ResourceSpace on macOS. The installation process involves installing Homebrew, programs, and dependencies, PHP extensions using pecl, enabling PHP in Apache, configuring PHP, creating a database, checking out ResourceSpace, and finishing the installation via a web browser.
Customising the top level navigation
This article provides instructions on how to customise the top-level navigation in ResourceSpace. To add additional top navigation links, users can enter the code in the config.php file or in "Config Override" if setting this on a per-group basis.
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.
Creating custom reports
ResourceSpace allows users to create custom reports by writing SQL queries. Reports can be created in Admin > System > Reports, and existing reports can be viewed and edited from the same location. Users can create reports that show resources pending submission, and reports that allow date range selection.
LibreOffice integration for Microsoft Office previews
The article provides instructions on how to install and use Unoconv, a utility that allows conversion between different document formats in Open Office. The article explains that in order to preview files in common office document formats such as .
Configuring for multi-client use
The article provides a method for setting up ResourceSpace as an environment where multiple users can use the system, but their resources remain private from each other. The method involves creating a new global field called 'client' that can be attached to all types of resources.
StaticSync - keep your files in situ
StaticSync is a tool that allows users to keep their files in situ, meaning that they can remain in their existing folder structure. It is not intended to be used as a way to store resources externally to increase storage capability.
Watermarks
ResourceSpace allows users to enable watermarks on preview images generated for each resource. To enable watermark preview generation, users need to add the following to their config.php: $watermark = "gfx/watermark.
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.
Simple LDAP
The Simple LDAP plugin enables consistent sign-on (CSO) for ResourceSpace users, allowing them to log in using the same credentials they use to log in to their organisation's network. The plugin has been tested with Microsoft Active Directory and Oracle Directory servers.
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)
Facial recognition
Open source digital asset management software, ResourceSpace, has integrated facial recognition technology via OpenCV, an open source computer vision and machine learning software library. The ResourceSpace annotate feature has been used to create the association between a fixed list field and a face.
Google VR View
Google VR View is a plugin that displays previews of 360-degree images and videos using the Google VR View browser API. The plugin is supported on modern versions of Chrome, Opera, Safari, Firefox, IE 11 and Edge on Windows, macOS, Linux, Android and iOS.
How to back up your ResourceSpace installation
Ensure that your ResourceSpace open source Digital Asset Management system has appropriate backups in place.
Lockable metadata
The article discusses the use of lockable metadata fields to speed up the process of refining metadata after uploading new resources. The feature is intended for use when the default upload sequence is set to 'Upload first, then set metadata'.
Action dates
The 'action_dates' plugin will automatically perform certain actions based on resource metadata, for example, archiving a resource when an expiry date is reached.
CSV user import
The CSV user import plugin allows administrators to create user accounts in bulk based on information stored in a CSV file. The CSV file must be encoded in UTF-8 format and without BOM, and should have text cells quoted in case they contain commas or other special characters.
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.
Falcon link
The Falcon Link plugin allows users to publish resources as templates in Falcon.io. However, users must have an account with Falcon.io to use this plugin. The plugin creates a share link with no expiration date instead of copying the file itself when a resource is published to Falcon.
Basic metadata field configuration
This article provides an overview of the basic options for metadata field configuration in ResourceSpace. The article covers the following options: Enabled, Required, Index, Display full width on view page, Display field, Enable advanced search, Enable simple search, May contain personal data, Hide when uploading, and Hide when restricted.
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.
Migrating free text data to fixed list field options
The article explains how to migrate free text data to fixed list field options when changing a metadata field type from a free text field to a fixed option field type. The fixed option field types include checkbox, radio button, dropdown, and dynamic tag list.
Alternative installation
ResourceSpace offers alternative installation options for users who are unfamiliar with installing applications or unable to install ResourceSpace on their server. One-click installers are available for Windows, Linux, and OS X, which are self-contained packages with everything needed to run ResourceSpace.
Customising the interface colours, logo and favicon
This article explains how to customise the interface colours, logo and favicon in a system. To do this, navigate to Admin -> System -> System configuration and open the User interface section. From there, you can change the colours for various areas of the system by ticking the check box next to each description and choosing a colour from the colour picker that appears.
User opt-in consent
The article discusses the configuration option for user opt-in consent, which is enabled by default in certain data protection regulations such as the General Data Protection Regulation (GDPR). The configuration option requires users to give consent for their personal data to be processed before they can submit an account request.
Image banks
The Image Banks plugin allows users to search external image banks for photos without having to navigate manually to the external system. Users can run searches in the external image bank using the simple search box and the dropdown selector called "Search external image banks".
General installation requirements
ResourceSpace requires a MySQL compliant database, a web server, and PHP to operate on the LAMP stack. The supported versions of PHP are 7.4, 8.0, and 8.1, and the following PHP extensions are required: php-mysqli, php-curl, php-dom, php-gd, php-intl, php-mbstring, php-xml, php-zip, php-ldap, php-imap, php-json, php-apcu, and php-cli.
ResourceSpace messages
ResourceSpace uses messages to ensure that notifications are prominently displayed so that important messages are not overlooked. A counter next to the user's profile will increase to indicate the activity as new messages are received.
Configuring email and messaging
This article provides guidance on how to configure email and messaging settings in ResourceSpace. To change the email address that system emails are sent from, users should navigate to Admin > System > System configuration and change the 'Email from address'.
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.
The config file
The article provides an overview of the configuration file for ResourceSpace, which can be found in the 'include' folder. The file contains various PHP variables that can be changed to configure the system.
TMS link
Help for setting up the tms_link plugin.
Manage image sizes
ResourceSpace allows users to upload files in their original form, but also creates derivative files in other resolutions that are stored alongside the resource. The default sizes of these derivative files are appropriate for most uses, but users may require a specific size to be available.
CSV export
ResourceSpace allows users to extract metadata from its database as a CSV file, which can be opened in most standard spreadsheet or database programs. The metadata fields included in the CSV file can be customised by editing metadata fields and enabling the "Include in CSV export" option.
Logs
ResourceSpace has a log that records the actions of each user, which is accessible in the Users section of the Admin area. The logs record the date and time of user logins, resources they have created, deleted and downloaded, and edits they have made to resources, showing both the previous and new values.
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.
Browse bar
ResourceSpace has introduced a browse bar to help users find resources more easily. The bar is a collapsible side tab available from all pages, offering the options to search by resource type, tag, collection or workflow state.
Resource commenting
Resource commenting can be enabled in ResourceSpace by using the config option $comments_resource_enable. This feature adds a new area below the resource metadata, allowing users to add and respond to comments about the resource.
Image text
The Image Text plugin enables metadata fields to be included as captions when a resource is downloaded. The plugin can be configured to apply captions to specific resource types and file extensions, and to extract text from a chosen field, such as the title.
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.
Version control
The rse_version plugin is a version control tool that can be activated by default via config.php. It enables the functionality to revert both individual and batch edits from the resource log page. The plugin can also revert collection states for adding or removing resources, which is useful when a user accidentally removes all resources from a collection.
Coding standards v2.0
The article provides coding standards for developers working on the ResourceSpace project. The standards cover various aspects of coding, including security, documentation, functionality, PHP version, MySQL strict mode, backward compatibility, file format, coding style, indentation, line length, control structures, function calls, function definitions, MySQL statements, readability of code blocks, returning early, and avoiding cross-site scripting vulnerabilities.
Auto assign
The autoassign_mrequests plugin enables managed resource requests to be automatically assigned to a specific user for approval, based on a metadata field value mapping. The user to which the request is assigned must be in a user group able to access the admin area and with the permissions to manage requests and to be assigned resource requests.
2. Uploading and editing
We can simply drag and drop the files or an entire folder directly from our computer on to the upload queue.
5. Working with collections
There are various actions that can be performed that will affect the items in the collection, available from an actions menu on the collection bar.
6. Dash tiles
Collections can be published as dash tiles. The dash is an area on the home page to which users can add their own custom tiles.
Context help links
Context Help links can be added to pages to link to a relevant Knowledge Base page. These links open Knowledge Base in a modal or new page and are enabled by default on a ResourceSpace system but can be disabled by setting $contextual_help_links=false.
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.
Debugging ResourceSpace
The article provides three methods for debugging ResourceSpace, an open-source digital asset management system. The first method is to use the internal function called debug(), which writes debug text to a file specified in the config file.
Data only resource types
Data only resources are metadata-only resources that do not have an associated file. They can be used to store a record or set of data that does not directly relate to a specific asset. Data only resources can be configured to provide a PDF of metadata based on templates that must be set up by the system administrator and placed in the filestore under system/pdf_templates as an HTML file.
The Complete Guide to Developing Your Brand Guidelines Download
Thank you for downloading the PDF version of our Guide to Developing Your Brand Guidelines.
Injection
Injection attacks are a type of attack vector that occur when an attacker can send hostile data to an interpreter as part of a command or query, which alters the execution of that program. The most common injection flaws are cross-site scripting (XSS), SQL injections (SQLi), command injections which can lead to remote code execution (RCE) vulnerabilities, and LDAP injections.
ResourceSpace Plugins
Explore the range of plugins that are available to expand ResourceSpace's base functionality, including integrations with third party software and systems.
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.
Creating public collections
The article explains how to create public collections, which are a simple way to share groups of resources with other users in the system. Public collections can be used to highlight the best of a user's uploads so that administrators can promote them as featured collections.
Creating and editing filters
Creating and editing filters. Filters can be set to control access to resources
Usage history
ResourceSpace, the open source digital asset management software, is logging every time a user downloads a resource from the system, even one of its available sizes. By default, this is not shown on the view page of a resource, but there are configuration options which can change this behaviour.
How to restore your ResourceSpace installation
This article provides guidance on how to restore a ResourceSpace installation to a replacement server in the event of server failure or migration. The steps described in the article restore the existing ResourceSpace configuration, but do not cover custom ResourceSpace code, external directories used by ResourceSpace, DNS changes, or web or proxy server configuration.
Database schema
Database schema for ResourceSpace.
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.
Downloading multiple resources
Users can download multiple resources in one go by adding the resources to a collection or selecting a number of resources from the search results page and clicking on 'Download' from the 'Actions' dropdown box.
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.
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.
Managing offline jobs
The My Jobs page is a tool used to check the status of jobs, such as collection downloads and preview creation. Administrators can also use this page to check on the status of jobs systemwide. The page displays information about jobs in the queue, including job priority, job reference, job type, user that created the job (admins only), job status, and the earliest job start date.
Extracted text
ResourceSpace, a digital asset management software, can extract text from document files and use it to populate metadata fields. This feature enables users to search for resource contents within the system and by applied metadata tags.
Metadata templates
Metadata templates are a useful tool for saving time and ensuring consistency when uploading resources with common metadata sets. A metadata template is a data-only resource that inherits all global fields and resource type-specific fields, meaning that each template may contain a complete set of values for every field within ResourceSpace.
Anonymous access
ResourceSpace has introduced anonymous access, which allows non-registered users to access the system without requiring a login. The feature is useful for those who frequently work with third-party agencies and do not want to create new user accounts, or for those who want to make selected resources available to the public.
Managing external shares
The article provides guidance on managing external shares in ResourceSpace. Users can manage their external shares by clicking on the user menu and selecting 'My shares'. Administrators can manage all existing shares via the 'External shares' link under the admin menu.
Client side API calls
The article discusses the use of the new api() JavaScript function to make calls to the ResourceSpace API using native browser authentication. Instead of creating new AJAX calls to custom endpoints, the api() function is recommended.
RSS Feed
The RSS Feed plugin generates RSS URLs for a resource search in ResourceSpace using the API. After enabling the plugin, a new link appears at the bottom of the Simple Search area, which takes the user to the RSS feed for the 50 most recently uploaded resources.
save_collection
The "save_collection" API binding allows users to save collection data. The API requires a POST request to avoid URL limits being reached. The API requires two variables: "$ref" and "$coldata". "$ref" is the ID of the collection, and "$coldata" is the JSON encoded collection data.
Image tools
The Image Tools plugin enables users to edit images by rotating, cropping or scaling them. The plugin also allows users to modify the home slideshow image using resources that have previously been uploaded to ResourceSpace.
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.
Messaging
The article provides instructions on how to view and send messages on a website. To view messages, users need to click on the user profile icon and select "Messages". Messages are listed in date order, newest first, and users can mark them as read, delete them, or reply to them.
User IP restriction
ResourceSpace allows users to limit the locations from which their users access the platform by applying an IP restriction to user accounts. This is done on a per-user basis, allowing tighter controls on certain accounts where necessary.
Automatic alternative video files
ResourceSpace can be configured to automatically generate a video file in a different size or format from the uploaded original. This can be useful where a smaller size is required for uploading to the web.
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.
Ordering featured collections
Featured collections can be ordered using drag and drop. This allows users to reorder collections one level at a time. If no order has been defined, categories are displayed first, followed by collections sorted by name.
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.
Integrating with BrandStencil
Instantly create marketing materials from templates using your DAM images thanks to ResourceSpace's integration with BrandStencil.
Sending user notifications
The article provides guidance on sending user notifications in ResourceSpace. Before version 10, developers had to make several checks before calling send_mail() or message_add() whenever required, resulting in duplicated code and inconsistency.
Integrating ResourceSpace with RightMarket
Create branded marketing materials, including posters, social graphics or point of sale materials, with ResourceSpace's RightMarket integration.
Prepared statements
ResourceSpace, an open-source digital asset management software, has announced that all new code must use prepared statements for any SQL execution. The new functions ps_query(), ps_array() and ps_value() replace functions sql_query(), sql_array() and sql_value() respectively.
mark_email_as_invalid
The article describes a function called "mark_email_as_invalid" that can be used to mark a specified email address as invalid. This function can be used to block email addresses before the send_mail() function tries to dispatch any emails.
Customising the font
The article provides instructions on how to customise the font in the user interface of a system. Users can navigate to Admin > System > Configuration and expand the User interface section to choose a preset font from the Font drop-down or upload a custom font file (extension woff2, woff, ttf or otf) with the Custom font file option.
Managing resource requests notifications
Resource requests notifications in ResourceSpace v10+ can now be managed using a metadata field value. The metadata field is designated to hold information that the system can use to determine the user group responsible for a resource.
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.
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.
Push metadata
The article explains how to display related resources alongside resource metadata on the resource view page. By default, related resources appear as thumbnails in a panel located below the resource metadata.
Full text searching
ResourceSpace has changed the way it handles long text stored in metadata fields. From version 10.1, keywords (tags) will only be processed for the first 500 characters of any text. To search the full text, there is a new option on the advanced search page that will utilise native database full-text indexing.
Video timestamp links
The article discusses a plugin that enables the use of timestamp links on videos in ResourceSpace. The plugin allows users to bookmark specific points in a video and add them to an appropriate metadata field, such as a caption or long description field.
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.
The System Configuration page
The System Configuration Page is a feature in Moodle that can be accessed via the administration menu System category. It allows users to configure many system-wide properties, such as the default system language, timezone, and the appearance of the system.
The Beginner's Guide to Managing Consent for Charities & non-profits Download
Thank you for downloading the PDF version of The Beginner's Guide to Managing Consent.
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.
upload_multipart
The "upload_multipart" function allows users to upload files using HTTP multipart to an existing resource. This function is available from version 10.2+ of the software. The function requires several variables to be provided, including the ID of the resource, a boolean value to indicate whether to process embedded metadata, a boolean value to indicate whether to re-process the existing file, and the file to be uploaded.
create_resource_type_field
The article provides information about the "create_resource_type_field" function. This function allows users to retrieve metadata field information for all matching fields. It is available from version 10.
Setting up scheduled tasks/cron
To ensure that ResourceSpace can send notifications and perform regular tasks, it is necessary to set up scheduled tasks or cron jobs. These tasks should be configured to run at least once daily, but may need to run more frequently depending on certain configuration options.
Configuring the download filename format
ResourceSpace version 10.3 introduces a new system-wide configuration that allows administrators to format the final download filename. This configuration applies to resources and their alternatives, including preview sizes.
A Comprehensive Guide to Digital Curation: Tools and Techniques
Explore digital curation: key tools and techniques for preserving significant cultural assets.
How do I add a new user?
The article explains how to add a new user to a system. Admins with the necessary permissions can manually create new user accounts by accessing the Admin section and selecting the Users tab. From there, they can choose the option to create a new user.
How do I publish resources that have been uploaded in bulk?
To publish resources that have been uploaded in bulk, you can go to the "Actions" area in your profile. There are three options available: managing your preferences, adding the resources to a collection, or viewing them as a result set.
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.
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.
SAML
Security Assertion Markup Language (SAML) is an open standard for exchanging authentication and authorisation data between parties, specifically between an identity provider and a service provider. In the context of Digital Asset Management (DAM) systems like ResourceSpace, SAML is often used to facilitate Single Sign-On (SSO) capabilities.
Managing files with Microsoft SharePoint? You could do more with DAM
Is your organisation still using Microsoft SharePoint for digital asset management? You could do so much more with a dedicated DAM system.
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.
get_resource_access
The "get_resource_access" function retrieves the access level for the currently logged-in user regarding a specified resource. Access levels can be 0 for Full Access (download all sizes), 1 for Restricted Access (download only allowed sizes), or 2 for Confidential (no access).
Metadata report
The article discusses the importance of metadata in ResourceSpace for efficient resource management. It highlights the use of the metadata report to review embedded metadata in resources and map them into ResourceSpace metadata templates.
Drupal integration
Selected resources in ResourceSpace can be synchronised automatically with the media library in Drupal 11.
Creating controlled vocabularies in ResourceSpace
Controlled vocabularies in ResourceSpace standardize terminology for improved searchability. They are predefined lists of terms for metadata fields like Dublin Core elements. Benefits include consistency, search accuracy, error reduction, and interoperability.
Joomla integration
The article discusses the integration of ResourceSpace with Joomla 5.x to synchronize selected resources automatically. To set up the integration, users need to create a Joomla user in ResourceSpace with limited access, ensuring that only desired resources are synchronized.
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.
User group config overrides
The article introduces a new feature in version 10.6 called User Group Config Overrides. This feature allows system-wide configurations to be changed for a specific user group, which will then become the default for all users in that group who have not set their own preferences.
CLIP AI Smart Search
The CLIP Visual Search plugin integrates OpenAI's CLIP model into ResourceSpace, enabling powerful visual similarity and natural language image searches based on image content rather than metadata. Features include natural language description searches, finding visually similar images by uploading examples, and detecting duplicates based on visual similarity scores.
Table: collection
This article provides a table that outlines the structure of a collection in ResourceSpace, which is a group of resources. The table includes columns such as ref, name, user, created, public, theme, theme2, theme3, allow_changes, cant_delete, keywords, savedsearch, home_page_publish, home_page_text, home_page_image, session_id, description, type, parent, thumbnail_selection_method, bg_img_resource_ref, and order_by.
Table: daily_stat
The article describes the structure of the "daily_stat" table, which is used to store daily statistics grouped by day, user group, and activity type. The table has columns for the year, month, and day when the activity took place, the user group that carried out the activity, the activity type code, the ID of the table in question, the count of how many times the activity was carried out on the object in the day in question by any user, and whether the activity happened via an external share.
Table: dash_tile
The article provides a table schema for the "dash_tile" table, which is used to display dash tiles on the home page. The table contains columns such as "ref" for an auto-incrementing index, "title" for the title text, "txt" for the tile text, "all_users" to indicate if the tile is published to all users, "default_order_by" for the default order, "url" for the anchor link href URL, "link" for the link text, "reload_interval_secs" for the reload interval in seconds, "resource_count" to indicate the number of resources if the tile is a search/collection tile, and "allow_delete" to indicate if the tile can be deleted.
Table: keyword
Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 13661 tokens. Please reduce the length of the messages.
Table: message
The "message" table is a database table used for user messages, which can be used for system and user-to-user messaging. The table has several columns, including "ref," which is an auto-incrementing index, "created," which is a datetime column, and "owner," which is a reference to the user who owns the message.
Table: node
Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 10911 tokens. Please reduce the length of the messages.
Table: report
Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 4846 tokens. Please reduce the length of the messages.
Table: report_periodic_emails
The report_periodic_emails table is a database table in ResourceSpace that stores information about users who have subscribed to receive a report regularly. The table has several columns, including ref, user, send_all_users, user_groups, report, period, email_days, last_sent, and search_params.
Table: request
The "request" table is a database table in ResourceSpace that tracks resource requests made by users with restricted access and fulfilled by admin users. The table has several columns, including "ref," which is an auto-incrementing index, "user," which refers to the user who made the request, and "collection," which refers to the collection the requested resource belongs to.
Table: research_request
The article provides information about the "research_request" table, which is used in ResourceSpace, a digital asset management system. The table stores information related to research requests, which are requests for appropriate resources for a project.
Table: resource
The article provides a table of the resource, which is the central record within ResourceSpace mapping to a single asset/file. The table includes various columns such as ref, title, resource_type, has_image, is_transcoding, hit_count, new_hit_count, creation_date, rating, user_rating, user_rating_count, user_rating_total, country, file_extension, preview_extension, image_red, image_green, image_blue, thumb_width, thumb_height, archive, access, colour_key, created_by, file_path, file_modified, file_checksum, request_count, expiry_notification_sent, preview_tweaks, geo_lat, geo_long, mapzoom, disk_usage, disk_usage_last_updated, file_size, preview_attempts, modified, last_verified, integrity_fail, and lock_user.
Table: resource_type_field
Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 10794 tokens. Please reduce the length of the messages.
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.
Table: user_preferences
The user_preferences table stores all user preferences and system configurations. It has three columns: ref, user, parameter, and value. The ref column is an auto-incrementing index, while the user column refers to the user table.
Table: usergroup
The article provides a table called "usergroup" that defines user groups. The table contains several columns, including "ref," which is an auto-incrementing index, "name," which is the name of the user group, and "permissions," which is a list of permissions that the user group has.
I've missed out an important keyword. Can I add this to my resource(s) after I've published them?
The article explains that it is possible to add keywords to resources after they have been published. Users can make metadata edits at any time by choosing the "Edit metadata" option from the individual resource preview.
OpenCV (facial recognition) - deprecated
OpenCV is a library used by ResourceSpace for facial recognition capability. The article provides instructions on how to install OpenCV on Ubuntu and how to check the Python and OpenCV versions. The facial recognition feature in ResourceSpace can be configured by setting the path to Python, the field used to store the name of the person suggested/detected, the location for the face recognizer model state(s) and data, and enabling facial recognition.
Configuring Cross-Site Request Forgery (CSRF)
The article explains how to configure Cross-Site Request Forgery (CSRF) and Cross-Origin Resource Sharing (CORS) to protect web applications from attacks. CSRF is an attack that forces an end user to execute unwanted actions on a web application in which they are currently authenticated.
ResourceSpace file storage (filestore)
ResourceSpace stores resource files in obfuscated folder paths on the server and not in the database. The folders are not meaningful to an administrator browsing the folders on the server because they are derived from the unique resource ID and are not related in any way to metadata or collections that the resources belong to.
Cross-Site Request Forgery (CSRF)
Cross-Site Request Forgery (CSRF) is an attack that forces an authenticated user to execute unwanted actions on a web application. The attack targets state-changing requests, not data theft, as the attacker has no way to see the response to the forged request.
get_user_actions()
Developer reference for function get_user_actions()
update_resource_type_field_order()
Developer reference for function update_resource_type_field_order()
update_resource_type_order()
Developer reference for function update_resource_type_order()
ajax_send_response()
Developer reference for function ajax_send_response()
ajax_send_text_response()
Developer reference for function ajax_send_text_response()
ajax_build_message()
Developer reference for function ajax_build_message()
iiif_get_canvases()
Developer reference for function iiif_get_canvases()
add_resource_to_collection()
Developer reference for function add_resource_to_collection()
collection_writeable()
Developer reference for function collection_writeable()
search_public_collections()
Developer reference for function search_public_collections()
save_collection()
Developer reference for function save_collection()
get_smart_themes_nodes()
Developer reference for function get_smart_themes_nodes()
email_collection()
Developer reference for function email_collection()
add_saved_search_items()
Developer reference for function add_saved_search_items()
send_collection_feedback()
Developer reference for function send_collection_feedback()
add_to_collection_link()
Developer reference for function add_to_collection_link()
get_session_collections()
Developer reference for function get_session_collections()
makeFilenameUnique()
Developer reference for function makeFilenameUnique()
collection_download_process_text_file()
Developer reference for function collection_download_process_text_file()
collection_download_log_resource_ready()
Developer reference for function collection_download_log_resource_ready()
collection_download_process_data_only_types()
Developer reference for function collection_download_process_data_only_types()
collection_download_process_summary_notes()
Developer reference for function collection_download_process_summary_notes()
collection_download_process_command_to_file()
Developer reference for function collection_download_process_command_to_file()
collection_download_process_archive_command()
Developer reference for function collection_download_process_archive_command()
comments_show()
Developer reference for function comments_show()
process_config_options()
Developer reference for function process_config_options()
config_file_input()
Developer reference for function config_file_input()
get_header_image()
Developer reference for function get_header_image()
generateResourcesMetadataCSV()
Developer reference for function generateResourcesMetadataCSV()
generateNodesExport()
Developer reference for function generateNodesExport()
create_dash_tile()
Developer reference for function create_dash_tile()
update_dash_tile()
Developer reference for function update_dash_tile()
get_tile()
Developer reference for function get_tile()
existing_tile()
Developer reference for function existing_tile()
cleanup_dash_tiles()
Developer reference for function cleanup_dash_tiles()
checkConfigCustomHomePanels()
Developer reference for function checkConfigCustomHomePanels()
get_alluser_available_tiles()
Developer reference for function get_alluser_available_tiles()
add_usergroup_dash_tile()
Developer reference for function add_usergroup_dash_tile()
get_usergroup_available_tiles()
Developer reference for function get_usergroup_available_tiles()
add_user_dash_tile()
Developer reference for function add_user_dash_tile()
get_user_available_tiles()
Developer reference for function get_user_available_tiles()
build_dash_tile_list()
Developer reference for function build_dash_tile_list()
allow_tile_colour_change()
Developer reference for function allow_tile_colour_change()
render_dash_tile_colour_chooser()
Developer reference for function render_dash_tile_colour_chooser()
generate_dash_tile_toolbar()
Developer reference for function generate_dash_tile_toolbar()
check_db_structs()
Developer reference for function check_db_structs()
isPathWhitelisted()
Developer reference for function isPathWhitelisted()
nicedate()
Developer reference for function nicedate()
send_mail()
Developer reference for function send_mail()
send_mail_phpmailer()
Developer reference for function send_mail_phpmailer()
getAbsolutePath()
Developer reference for function getAbsolutePath()
format_display_field()
Developer reference for function format_display_field()
generateURL()
Developer reference for function generateURL()
hook()
Developer reference for function hook()
sha256()
Developer reference for function sha256()
normalize_keyword()
Developer reference for function normalize_keyword()
remove_accents()
Developer reference for function remove_accents()
setLanguage()
Developer reference for function setLanguage()
perform_login()
Developer reference for function perform_login()
message_get()
Developer reference for function message_get()
message_add()
Developer reference for function message_add()
message_send_unread_emails()
Developer reference for function message_send_unread_emails()
system_notification()
Developer reference for function system_notification()
getFitsMetadataFieldValue()
Developer reference for function getFitsMetadataFieldValue()
check_date_format()
Developer reference for function check_date_format()
migrate_resource_type_field_check()
Developer reference for function migrate_resource_type_field_check()
get_export_tables()
Developer reference for function get_export_tables()
set_node()
Developer reference for function set_node()
delete_node()
Developer reference for function delete_node()
get_node()
Developer reference for function get_node()
get_nodes()
Developer reference for function get_nodes()
draw_tree_node_table()
Developer reference for function draw_tree_node_table()
check_node_indexed()
Developer reference for function check_node_indexed()
copy_resource_nodes()
Developer reference for function copy_resource_nodes()
generate_pdf()
Developer reference for function generate_pdf()
process_template()
Developer reference for function process_template()
activate_plugin()
Developer reference for function activate_plugin()
get_plugin_yaml()
Developer reference for function get_plugin_yaml()
register_plugin_language()
Developer reference for function register_plugin_language()
register_plugin()
Developer reference for function register_plugin()
render_search_field()
Developer reference for function render_search_field()
render_actions()
Developer reference for function render_actions()
render_user_group_checkbox_select()
Developer reference for function render_user_group_checkbox_select()
display_field()
Developer reference for function display_field()
render_resource_image()
Developer reference for function render_resource_image()
render_upload_here_button()
Developer reference for function render_upload_here_button()
render_edit_selected_btn()
Developer reference for function render_edit_selected_btn()
check_display_condition()
Developer reference for function check_display_condition()
do_report()
Developer reference for function do_report()
send_periodic_report_emails()
Developer reference for function send_periodic_report_emails()
get_request()
Developer reference for function get_request()
save_request()
Developer reference for function save_request()
email_collection_request()
Developer reference for function email_collection_request()
managed_collection_request()
Developer reference for function managed_collection_request()
email_resource_request()
Developer reference for function email_resource_request()
process_custom_fields_submission()
Developer reference for function process_custom_fields_submission()
send_research_request()
Developer reference for function send_research_request()
save_research_request()
Developer reference for function save_research_request()
get_resource_path()
Developer reference for function get_resource_path()
put_resource_data()
Developer reference for function put_resource_data()
create_resource()
Developer reference for function create_resource()
update_hitcount()
Developer reference for function update_hitcount()
save_resource_data()
Developer reference for function save_resource_data()
set_resource_defaults()
Developer reference for function set_resource_defaults()
save_resource_data_multi()
Developer reference for function save_resource_data_multi()
add_keyword_to_resource()
Developer reference for function add_keyword_to_resource()
update_field()
Developer reference for function update_field()
email_resource()
Developer reference for function email_resource()
get_resource_field_data()
Developer reference for function get_resource_field_data()
get_resource_field_data_batch()
Developer reference for function get_resource_field_data_batch()
get_resource_top_keywords()
Developer reference for function get_resource_top_keywords()
resource_log()
Developer reference for function resource_log()
get_exiftool_fields()
Developer reference for function get_exiftool_fields()
write_metadata()
Developer reference for function write_metadata()
import_resource()
Developer reference for function import_resource()
notify_user_contributed_submitted()
Developer reference for function notify_user_contributed_submitted()
notify_user_contributed_unsubmitted()
Developer reference for function notify_user_contributed_unsubmitted()
get_keyword_from_option()
Developer reference for function get_keyword_from_option()
get_resource_access()
Developer reference for function get_resource_access()
resource_download_allowed()
Developer reference for function resource_download_allowed()
get_edit_access()
Developer reference for function get_edit_access()
filter_match()
Developer reference for function filter_match()
download_summary()
Developer reference for function download_summary()
reindex_resource()
Developer reference for function reindex_resource()
update_disk_usage()
Developer reference for function update_disk_usage()
generate_resource_access_key()
Developer reference for function generate_resource_access_key()
copyResourceDataValues()
Developer reference for function copyResourceDataValues()
copy_locked_data()
Developer reference for function copy_locked_data()
process_edit_form()
Developer reference for function process_edit_form()
replace_resource_file()
Developer reference for function replace_resource_file()
get_hidden_indexed_fields()
Developer reference for function get_hidden_indexed_fields()
get_resource_type_fields()
Developer reference for function get_resource_type_fields()
get_resource_type_from_extension()
Developer reference for function get_resource_type_from_extension()
create_resource_type_field()
Developer reference for function create_resource_type_field()
suggest_refinement()
Developer reference for function suggest_refinement()
get_advanced_search_fields()
Developer reference for function get_advanced_search_fields()
get_advanced_search_collection_fields()
Developer reference for function get_advanced_search_collection_fields()
search_filter()
Developer reference for function search_filter()
search_special()
Developer reference for function search_special()
add_partial_index()
Developer reference for function add_partial_index()
get_simple_search_fields()
Developer reference for function get_simple_search_fields()
get_fields_for_search_display()
Developer reference for function get_fields_for_search_display()
get_filter()
Developer reference for function get_filter()
set_slideshow()
Developer reference for function set_slideshow()
validate_user()
Developer reference for function validate_user()
get_users()
Developer reference for function get_users()
auto_create_user_account()
Developer reference for function auto_create_user_account()
open_access_to_user()
Developer reference for function open_access_to_user()
open_access_to_group()
Developer reference for function open_access_to_group()
remove_access_to_user()
Developer reference for function remove_access_to_user()
get_notification_users()
Developer reference for function get_notification_users()
existing_dash_tile()
Developer reference for function existing_dash_tile()
get_featured_collection_resources()
Developer reference for function get_featured_collection_resources()
featured_collections_permissions_filter_sql()
Developer reference for function featured_collections_permissions_filter_sql()
is_featured_collection_category_by_children()
Developer reference for function is_featured_collection_category_by_children()
render_featured_collection_category_selector()
Developer reference for function render_featured_collection_category_selector()
get_inner_html_from_tag()
Developer reference for function get_inner_html_from_tag()
process_node_search_syntax_to_names()
Description Process one of the columns whose value is a search string containing nodes (e.g @@228@229, @@555) and mutate input array by adding a new column (named $column + '_node_name') which will hold the nodes found in the search string and their translated names Parameters Column Type Default Description $R array Generic type for array (e.
comments_notify_tagged()
Description Notify anyone tagged when a new comment is posted Parameters Column Type Default Description $comment string The comment body $from_user integer Who posted the comment $resource integer null If commenting on a resource, the resource ID $collection integer null If commenting on a collection, the collection ID Return void Location include/comment_functions.
Frequently Asked Questions (FAQs)
The most frequently asked questions about ResourceSpace, the free and open source Digital Asset Management system.
create_upload_link()
Description Creates an upload link for a collection that can be shared 'usergroup' Usergroup id to share as (must be in $upload_link_usergroups array) 'expires' Expiration date in 'YYYY-MM-DD' format 'password' Optional password for share access 'emails' Optional array of email addresses to generate keys for Parameters Column Type Default Description $collection int Collection ID $shareoptions array - values to set Return string Share access key Location include/collections_functions.
external_upload_notify()
Description Notify the creator of an external upload share that resources have been uploaded Parameters Column Type Default Description $collection int Ref of external shared collection $k string External upload access key $tempcollection int Ref of temporay upload collection Return void Location include/collections_functions.
render_share_password_question()
Description Renders a question field for setting a share password. This function generates an HTML input field where users can set or change the password for shared access to a resource.
get_upload_url()
Description Generate upload URL - alters based on $upload_then_edit setting and external uploads Parameters Column Type Default Description $collection string "" - optional collection $k "" $accesskey string - used for external users Return string This article was last updated 14th May 2025 21:35 Europe/London time based on the source file dated 1st May 2025 09:15 Europe/London time.
sql_truncate_text_val()
Description Query helper to ensure code honours the database schema constraints on text columns. IMPORTANT: please use where appropriate! In some cases, truncating may mean losing useful information (e.
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.
render_question_form_helper()
Description Render a FormHelper. These are used in forms, to provide extra information to the user to a question. Parameters Column Type Default Description $txt string Help text $id string Div ID $ctx array Contextual data Location include/render_functions.
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.
build_permission()
Description Build a specific permission closure which can be applied to a list of items. Parameters Column Type Default Description $perm string Permission string to build (e.
rs_password_hash()
Description ResourceSpace password hashing Parameters Column Type Default Description $password string Password Return string|false Password hash or false on failure Location include/login_functions.
can_delete_collection()
Description Check if user has the appropriate access to delete a collection. Parameters Column Type Default Description $collection_data array Array of collection details, typically from get_collection() $userref int Id of user $k int "" External access key value Return boolean Returns true is the collection can be deleted or false if it cannot.
send_collection_to_admin()
Description Send collection to administrators - used if $send_collection_to_admin is enabled Parameters Column Type Default Description $collection int Collection ID Return boolean Location include/collections_functions.
tltype_srch_generate_js_for_background_and_count()
Description Generate client side logic for doing expensive computation async for retrieving the tile background and total results count. Parameters Column Type Default Description $tile array Tile information {@see pages/ajax/dash_tile.
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.
resign_all_code()
Description Returns a signature for a given block of code. Parameters Column Type Default Description $confirm bool true Require user to approve code changes when resigning from the server side.
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.
Manage (system) tabs
The article provides guidance on managing system tabs in version 10+ of the system. Tabs can be used by metadata fields and resource types, and to manage them, users should go to Admin > System > Tabs.
delete_unused_non_fixed_list_nodes()
Description Delete unused non-fixed list field nodes with a 1:1 resource association Parameters Column Type Default Description $resource_type_field integer Resource type field (metadata field) ID Location include/node_functions.
can_use_owner_field()
The can_use_owner_field() function is used for initialization and system checks to ensure that the configuration is correctly enabled to use the owner field and mappings logic. The function accepts no parameters and returns a boolean value.
get_notification_users_by_owner_field()
The get_notification_users_by_owner_field() function is used to retrieve users to notify for requested resources owned by particular groups. The function takes two parameters: an array of notification users and an array of resource IDs.
override_rs_variables_by_eval()
The `override_rs_variables_by_eval()` function is a PHP code that runs on an array of variables, which is used for modifying `$GLOBALS`. The function takes two parameters: `$variables`, which is an array of variables to apply the override on, and `$code`, which is a signed string containing the PHP code to run.
get_cattree_node_strings()
Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, you requested 5040 tokens (4016 in the messages, 1024 in the completion). Please reduce the length of the messages or completion.
cattree_node_flatten()
The cattree_node_flatten() function is a helper function that adds child nodes after each flattened parent node. It takes an array of nodes, each with a child node array, as a parameter and returns an array of nodes with child nodes flattened out after their respective parents.
get_all_resource_types()
The get_all_resource_types() function returns an array of all resource types ordered by 'order_by' then 'ref'. This function does not check or apply any permissions, so it should not be exposed to the API.
update_smart_collection()
Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 7957 tokens. Please reduce the length of the messages.
add_sql_node_language()
Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, you requested 5106 tokens (4082 in the messages, 1024 in the completion). Please reduce the length of the messages or completion.
api_validate_upload_url()
The article describes the function `api_validate_upload_url()` which is used to validate the URL supplied in APIs create resource or upload by URL. The function requires the URL hostname to be added in config `$api_upload_urls`.
process_resource_data_joins_values()
The function "process_resource_data_joins_values()" is used to process resource data_joins array and update the values in the returned resource. The function takes two parameters, the first being the resource table record, and the second being the list of refs for the resource table data_joins.
setup_search_chunks()
The function `setup_search_chunks()` allows `$fetchrows` to support an integer or array. If an integer is supplied, the search will receive the number of rows with no offset. If an array is supplied, the search will receive the number of rows to return and an offset, allowing for chunking of results.
api_assert_post_request()
Description Assert API request is using POST method. Parameters Column Type Default Description array : Return array Returns JSend data back {@see ajax_functions.
rs_validate_token()
Description Used to compare the user's provided token with the expected value derived from the given identifier Used by isValidCSRFToken() Also used on upload_batch to validate an upload session when user cookie not available (i.
update_resource_type_field_resource_types()
Description Update the resource_type_field - resource_type mappings Parameters Column Type Default Description $ref int Resource type field ref $resource_types array Array of resource type refs Return void * Location include/config_functions.
cleanup_invalid_nodes()
Description Remove invalid field data from resources, optionally just for the specified resource types and/or fields Parameters Column Type Default Description $fields array [] $restypes array [] $dryrun bool false Don't delete, just return count of rows that will be affected $fields=[] array Array of resource_type_field refs $restypes=[] array Array of resource_type refs Return int Count of rows deleted/to delete Location include/node_functions.
admin_resource_type_field_constraint()
Description Display appropriate field constraint for use on admin_resource_type_field_edit.php e.g. single select/Number Parameters Column Type Default Description $ref int $currentvalue: int array"i" 0 "schema"; Metadata int field ID Current int field type Return void * Location include/render_functions.
set_order_by_to_zero()
Description Helper function to set the order_by key of an array to zero. Parameters Column Type Default Description $item: array 0; return $item; } /** * Helper function to cast functions that only echo things out e.
get_user_actions_recent()
Description Get recent user actions, optionally for all users. For use by action notifications cron job. the 'a' permission and the current script is not running from CLI then only the currently logged on user's actions will be returned Included columns are as per get_user_actions() - resourcerequest - array of resource requests - userrequest - array of user requests - resourcereview - array of resources to reviewdescription) Parameters Column Type Default Description $minutes int Return actions that were created in the last $minutes minutes $allusers: bool $userref; []; // Find all resources that have changed archive state in the given number of minutes if is_int_loose$view_title_field $allusers bool Return actions for all users? If false, or if the current user does not have Return array An array with the user id as the index and the following arrays of sub elements.
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; $usergroup $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.
render_resource_view_image()
Description Render image on view.php "access" - Resource access "edit_access" - Resource edit access Parameters Column Type Default Description $resource array Resource data $context array Array with following named elements Return void * Location include/render_functions.
set_search_order_by()
Description Validate and set the order_by for the current search from the requested values passed to do_search() Parameters Column Type Default Description $search string $order_by string $sort: string $sort string Return string * Location include/search_functions.
setup_command_line_user()
Description Set up a dummy user with required permissions etc. to pass permission checks if running scripts from the command line e.g. ["username" => "My Application", "permissions" => "h,v,e0", "groupname => "My Application", "resource_defaults => "region=EMEA", ] Parameters Column Type Default Description $setoptions array can these a t v .
Adobe Creative Cloud integration (LinkrUI)
LinkrUI for Adobe is a Connector plugin that integrates ResourceSpace with Adobe software such as Photoshop, Illustrator, InDesign, Premiere Pro, and After Effects. This integration allows users to easily search, open, and place assets stored in ResourceSpace directly into their Adobe applications.
update_node_active_state()
Description Batch update nodes' active state to the database. The same state will apply to all nodes in the list. For logic on which nodes to toggle {@see toggle_active_state_for_nodes()} Parameters Column Type Default Description $refs list Node IDs $active: bool $active bool Should nodes be active or not? Location include/node_functions.
send_integrity_failure_notices()
Description Send notifications about file integrity failures Parameters Column Type Default Description $failures: array get_sysvar'last_integrity_check_notify' '1970-01-01'; $failures array Array of resources that have failed integrity check Location include/message_functions.
check_resources()
Description Check integrity of primary resource files then file checksums will be checked Parameters Column Type Default Description $resources array [] Array of resource data e.
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.
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.
render_fixed_list_as_pills()
Parameters Column Type Default Description { $nodes:string ""; if count$nodes > 0 Location include/render_functions.
leaflet_esri_basemaps()
Description Generates ESRI basemaps for use in a Leaflet map. This function defines various tile layers from ESRI, setting properties such as caching, retina display support, maximum zoom levels, and attribution for each layer.
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.
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.
process_collection_download()
Description Generate a collection download ZIP file and the download filename This array will be updated and passed to subsidiary functions to keep track of processed file, generate text etc.
delete_temp_files()
Description Delete old files and folders from tempo directory based on the configured $purge_temp_folder_age value Affects filestore/tmp, $storagedir/tmp or the configured $tempdir directory Parameters Column Type Default Description void { : Location include/file_functions.
Google Docs (LinkrUI)
LinkrUI for Google Workspace is a browser extension that allows users to access resources within Google Docs, Google Slides, and Google Sheets. To install the extension, users can search for and install it from the Google Workspace Marketplace.
html_find_and_replace()
Description Loads HTML fragment into a DOMDocument instance to parse and perform a recursive find/replace on text-only nodes. Returns modified HTML if possible, otherwise the original HTML.
AI Faces (InsightFace)
The AI Faces plugin allows ResourceSpace to automatically detect and recognise people featured in images. This allows for quick and efficient automated tagging on upload.