Search results
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 (.RSP) file.
Simple search
The article discusses the simple search panel in ResourceSpace, a system that allows for easy searching within the platform. The basic panel includes a general search box for quick text searching across all indexed fields, as well as options to search by resource type and date. Additional metadata fields can be configured to appear on the panel for more refined searching. If no resources are found that match the search, alternative search terms are suggested. Users can also enter the unique resource ID to directly find a specific resource. The article mentions that the advanced search page can be accessed from the simple search panel, providing more options to refine and target searches. The article includes an image of the simple search panel for reference.
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. Depending on the system configuration, selecting an option in one field may reveal related fields to search in, allowing for precise searches and useful results. Unlike the simple search panel, the advanced search page can be used to look for resources in additional workflow states, depending on user permissions. Users can also search using information not held in a dedicated metadata field, such as file size, extension type, or the name of the contributor. Admins with the appropriate permission can search for resources with a specific access. The advanced search page also provides full text searching, although only a portion of text in long text fields will be indexed. As search terms are entered, the view button updates to show the number of resources that match the search, providing a helpful way to see how selected options affect the results.
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. The search feature includes a simple search panel that allows for quick, free text searching across all indexed fields, as well as additional metadata fields for more refined searching. Users can also search using information not held in metadata fields, such as file size or the name of the contributor. The advanced search page provides access to a wider selection of metadata fields and allows for very precise searches. The system also offers additional search tools, such as the ability to watch a search and be notified of new or edited resources that match the search criteria. Users can also use special search terms to find specific content and exclude specific terms from a search. ResourceSpace can also search for resources with embedded location data. To get the most out of searches, users are advised to refine their search, make use of featured and public collections, clear previous searches, and search by resource type.
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.
User research requests
ResourceSpace has introduced a new feature called research requests, which allows users to ask administrators for help in sourcing resources. Users can fill out a form detailing what they need, and administrators can then help them to find suitable resources. This can be done by either providing them with a list of resources or by sending them links to searches or collections to help them get their search started. Administrators can guide users with suggested search keywords and resource recommendations, which will train them to become more independent. This is an optional feature that can be made available for all users in the system or as a user group configuration. ResourceSpace can be configured with custom fields, which will then be displayed on the research request page and saved with the request. The title of a field and individual options (when the field is of a fixed list type) can support i18l format. The custom fields will be rendered based on the type, and if the type isn't supported, the field will be displayed as a single-line text box.
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.
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. Users can watch a search by selecting "Watch this search" from the actions drop-down list. Once a search has been watched, users will be notified when new resources are uploaded or edited to match the search, but also when resources which previously matched the search criteria no longer match. However, users will not be notified if the matching resources are modified in any way other than edit which cause them to match or cease to match the search. Administrators can view watched searches for all users by ticking the box above the list. Actions available for each watched search include delete, disable, check now, and search. When there is a change to results that match a watched search, users will receive a system notification or email, depending on their personal preference settings.
do_search
The article provides a description of the do_search function, which is used to perform a search and return matching resources. The function takes several variables, including the search string, resource type IDs, results order, archive status, maximum number of rows to return, sort order, and offset. When searching for dates, the function considers several formats, including date ranges and specific dates. The function returns resource results in JSON format, with the parameters returned depending on the system configuration. The article provides an example of the JSON format, which includes parameters such as score, resource type, creation date, rating, file extension, archive status, and user access. The do_search function is a useful tool for searching for resources in ResourceSpace, and its flexibility allows for customized searches based on specific criteria.
search_public_collections
This article provides information on how to search for public and featured collections using the provided variables. The $search variable is used to input search terms, and leaving it blank will return all collections. The $order_by variable is used to order the results by a specific column, with the default value being "name". The $sort variable is used to determine the sort order, with the options being "ASC" or "DESC". The $exclude_themes variable is used to exclude featured collections (themes) from the results, with the default value being true (1). The return values consist of a list of matching public or featured collections.
Configuring php.ini
This article provides guidance on how to configure the php.ini file to handle larger files. The php.ini file location can be found on the PHP Info page in the row "Loaded Configuration File", available by running the function phpinfo() on an empty PHP page. The article suggests increasing the memory_limit, post_max_size, upload_max_filesize, and max_execution_time variables to allow for handling much larger files. The default values are set quite low, which can cause issues when uploading large media files. The article also recommends setting the "short_open_tag" value to Off. If you do not have access to the php.ini file, you may be able to override the settings by creating a file named '.htaccess' in the root folder with the recommended contents.
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. ResourceSpace comes with a number of plugins ready to be activated, and if the required plugin is not available, users can write a new one themselves. There are two ways of managing plugins: using the plugin manager or manually placing the plugin files in the right places and modifying the config option in include/config.php. The plugin manager is the easier and safer option. To manage plugins using the plugin manager, log in as an administrator and choose Admin > Plugins from the main menu. The plugin manager page is divided into two parts, "Currently Activated Plugins" and "Available Plugins". To activate an available plugin, click on its "Activate" link. To deactivate a plugin, click on the "Deactivate" for the plugin. Some plugins can be or must be configured. An active plugin that supports configuration displays an "Options" link in the plugin manager.
search_get_previews
The article describes the search_get_previews function, which is used to perform a search and return matching resources including URLs for the requested preview sizes. The function takes several variables, including the search string, resource type IDs, results order, archive status, maximum number of rows to return, sort order, recent search day limit, preview sizes, and preview file extension. The function returns the resource results in JSON format, with parameters that depend on the system configuration. The returned parameters include the score, reference, resource type, image availability, transcoding status, hit count, creation date, rating, user rating, file extension, preview extension, image RGB values, thumbnail width and height, archive status, access, colour key, created by, file modified date, file checksum, request count, new hit count, expiry notification sent, preview tweaks, file path, group access, user access, and custom fields. The function can be used to search for resources in a ResourceSpace digital asset management system.
Search tiles
The Search Tiles plugin is designed to be used with ResourceSpace when collections are included in search results. It displays collection results in a dash tile style with a single collection image. The plugin offers options to style the tile, including the addition of a collection resource count and shadows on the search tile text.
Search notifications
The article discusses a new feature called "Search Notifications" that allows users to receive notifications when the results of a specified search change. This feature is useful for users who want to stay up-to-date on a particular topic or keep track of changes in a specific search result. The notification can be configured to show a specified number of thumbnails, making it easier for users to quickly identify changes in the search results. Overall, this feature is a useful addition to the search functionality and can help users stay informed on topics of interest.
ResourceSpace Plugins
Explore the range of plugins that are available to expand ResourceSpace's base functionality, including integrations with third party software and systems.
Excluding terms from your search
The article explains how to exclude specific terms from a search. It suggests using the simple search bar and entering the search term followed by a space, a minus symbol, and the term to be excluded. For example, entering 'Marketing -advertising' will return all resources tagged with 'marketing' but not tagged with 'advertising'. This method allows users to refine their search results by excluding certain terms.
Geographic search
The geographic search function allows users to search for resources that have embedded location data. To use the function, users can drag the map and zoom to an area of interest or search for a location using the search button. They can then draw a box on the map to select a search area, which will take them to the search results page showing all resources with a geolocation that lie within the box. The option to add a heatmap is also available, which shows areas where existing resources are located and can help users target their searches. To enable this, users must have Leaflet Maps enabled and set the configuration option $geo_search_heatmap to true. However, users should note that this option should be disabled in multi-client environments, cached location co-ordinates are rounded to one decimal place to improve handling of large numbers of resources, only resources that are currently in the default search states will be included in the heatmap, and the heatmap can be enabled per usergroup as a configuration option override.
Signing all database PHP code
From version 10.0, any PHP code stored in the database and manipulated via the user interface must be signed using a command line utility. This is to prevent system compromise by a user that has gained administrator access. The signing process is executed via the command line directly on the server itself and cannot be run from a web browser. The script must be executed after changes to the resource type field, value filter, on change macro, autocomplete macro, exiftool filter, config options for resource type and user group.
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.2 is no longer supported and will not work when upgrading to ResourceSpace version 10. The steps required to move to a new version of PHP will depend on the server environment, and users should ensure that they have tested and are familiar with the process before proceeding. Users should also ensure that they have an up-to-date backup of their ResourceSpace files and database before upgrading. The company has provided a list of additional steps that should be completed, including installing all the required ResourceSpace PHP extensions for the new version and copying any custom settings from the previous php.ini file to the php.ini file for the new version. Upgrading on Linux is normally a case of running a few commands, while those using IIS can use PHP Manager to manage different PHP versions.
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. The change has been made to prevent the ResourceSpace search index being polluted by irrelevant keywords, such as words present in extracted text from PDF files. Such text often adds a vast number of words to the index that are of little value to users performing searches and this can seriously degrade search performance. A full text search is initiated by adding text in the 'Search all text' box on advanced search. The following examples give an idea of the methods from the advanced search page. These searches can take much longer than normal searches. If users find that they are needing to use full text searches frequently, they should consider asking their system administrator to add more options to fixed list fields and adding these tags to resources.
Table: collection_savedsearch
The article provides information about the "collection_savedsearch" table, which is a list of saved searches that can exist within collections. The table has several columns, including "ref," which is an auto-incrementing index, "collection," which refers to the collection table, "search," which is the search string, "restypes," which is the resource types used when searching, "starsearch," which is an integer value, "archive," which is a comma-separated list of workflow states, "created," which is the date created, and "result_limit," which is the maximum number of results to return. The table is empty by default, and the article provides a link to the schema overview for more context.
Table: plugins
The article provides a table named "plugins" that lists all active plugins on the system and stores their configuration. The table has several columns, including name, descrip, author, update_url, info_url, inst_version, config, config_json, config_url, enabled_groups, priority, disable_group_select, title, and icon. The name column contains the folder name that contains the plugin, while the descrip column provides a textual description of the plugin loaded from the .yaml file. The author column contains the name of the plugin author, and the update_url column contains the URL of the plugin's update file. The inst_version column contains the installed version number of the plugin, and the config column stores the serialized plugin configuration data. The config_json column contains the JSON-encoded configuration data, and the config_url column contains the URL of the plugin's configuration file. The enabled_groups column contains a comma-separated list of group refs, and the priority column defines the order that plugin hooks will be called. The disable_group_select column prevents the plugin from being enabled only for certain groups. Finally, the title column contains a friendly title to display as the plugin name instead of the folder name, and the icon column contains a FontAwesome icon string to display in the UI.
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. The table contains columns such as "ref" (an auto-incrementing index), "name" (the name of the research project), "description" (a description of the research), "deadline" (the deadline for requested resources), "email" (the email of the person making the request), "contact" (telephone contact), "finaluse" (a description of the final use of the resources), "resource_types" (a list of resource types), "noresources" (the number of required resources), "shape" (the orientation of the resources), "created" (the date the request was created), "user" (the user making the request), "assigned_to" (the user assigned to work on the research request), "status" (the request processing status), "collection" (a reference to the "collection" table), and "custom_fields_json" (JSON encoded data of custom research fields). The article notes that the table is empty by default and provides a link to the schema overview for more context.
Table: search_log
Search log. Log every search made by the system. Column Type Note ref int(11) Auto incrementing index search_string mediumtext Actual search string resource_types mediumtext Resource types filter archive_states mediumtext Archive states filter logged datetime Date and time of search user int(11) User executing the search result_count int(11) Result count This table is empty by default.
compile_search_actions()
Developer reference for function compile_search_actions()
search_special()
Developer reference for function search_special()
search_public_collections()
Developer reference for function search_public_collections()
do_collections_search()
Developer reference for function do_collections_search()
get_saved_searches()
Developer reference for function get_saved_searches()
add_saved_search()
Developer reference for function add_saved_search()
remove_saved_search()
Developer reference for function remove_saved_search()
get_search_title()
Developer reference for function get_search_title()
add_saved_search_items()
Developer reference for function add_saved_search_items()
collection_is_research_request()
Developer reference for function collection_is_research_request()
send_mail_phpmailer()
Developer reference for function send_mail_phpmailer()
search_array_by_keyvalue()
Developer reference for function search_array_by_keyvalue()
render_search_field()
Developer reference for function render_search_field()
send_research_request()
Developer reference for function send_research_request()
get_research_requests()
Developer reference for function get_research_requests()
get_research_request()
Developer reference for function get_research_request()
save_research_request()
Developer reference for function save_research_request()
get_research_request_collection()
Developer reference for function get_research_request_collection()
set_research_collection()
Developer reference for function set_research_collection()
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_form_to_search_query()
Developer reference for function search_form_to_search_query()
refine_searchstring()
Developer reference for function refine_searchstring()
search_filter()
Developer reference for function search_filter()
rebuild_specific_field_search_from_node()
Developer reference for function rebuild_specific_field_search_from_node()
search_get_previews()
Developer reference for function search_get_previews()
get_default_search_states()
Developer reference for function get_default_search_states()
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()
update_search_from_request()
Developer reference for function update_search_from_request()
get_search_default_restypes()
Developer reference for function get_search_default_restypes()
render_advanced_search_buttons()
Developer reference for function render_advanced_search_buttons()
log_search_event()
Description Log search events Parameters Column Type Default Description $search string Actual search string {@see do_search()} $resource_types array Resource types filter $archive_states array Archive states filter $result_count integer Search result count Return void This article was last updated 10th December 2023 17:05 Europe/London time based on the source file dated 29th September 2023 13:20 Europe/London time.
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.
get_search_params()
Description Get all search request parameters. Note that this does not escape the parameters which must be sanitised using e.g. htmlspecialchars() or urlencode() before rendering on page Parameters This function accepts no parameters.
search_title_node_processing()
Description Convert node searches into a friendly syntax. Used by search_title_processing.php Parameters Column Type Default Description $string string Search string Return string Location include/search_functions.
get_active_plugins()
Description Get active plugins Parameters This function accepts no parameters. Return array Location include/plugin_functions.php lines 373 to 376 Definition function get_active_plugins () { return ps_query ( 'SELECT name, enabled_groups, config, config_json FROM plugins WHERE inst_version >= 0 ORDER BY priority' , array(), 'plugins' ); } This article was last updated 10th December 2023 17:05 Europe/London time based on the source file dated 7th September 2023 11:45 Europe/London time.
get_dash_search_data()
Description Get images and resource count for search dash tile. This has to work on a string because the dash tile does not yet exist when on dash creation page For performance this function will return a maximum of 4 images Parameters Column Type Default Description $link string '' Tile link URL $promimg int 0 Promoted image ref Return array $searchdata Array containing the count of resources and details of preview images.
update_node_hitcount_from_search()
The article provides information about the function "update_node_hitcount_from_search()" in the resource_functions.php file of ResourceSpace. The function is used to increment the hit count for each node that has been used in a search for a specified resource. The hit count is incremented in a temporary column first, so existing results are not affected. The function "copy_hitcount_to_live()" is then executed at a set interval to make this data live. The article also provides details about the parameters of the function, including $resource and $search. The function resolves the given nodes and updates the resource node hit count if there are any nodes. The article was last updated on 27th March 2023 at 15:35 Europe/London time based on the source file dated 21st March 2023 at 10:00 Europe/London time.
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. `$chunk_offset[0]` is the offset of the first row to return, and `$chunk_offset[1]` is the number of rows to return in the batch. `$chunk_offset[0]` will normally be 0 in the first search, increasing by `$chunk_offset[1]` for each search, generated by an external looping structure. This allows for batches of `$chunk_offset[1]` search results up to the total size of the search. This approach can be used to avoid particularly large searches exceeding the PHP memory_limit when processing the data in `ps_query()`. The function takes in `$fetchrows`, `$chunk_offset`, `$search_chunk_size`, `$chunk_offset`, and `$search_chunk_size` as parameters and returns void. The function is defined in `include/search_functions.php` lines 3308 to 3320.
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. The article provides instructions on how to translate main application text, plugin text, and site content. It also explains how to create no preview icons, metadata template icons, saved search icons, and help files in different languages. The article also provides instructions on how to add a stop word list. The default field names, resource type names, user group names, report names, etc. are translated in the language file. However, if multiple language support is required for these areas, it is possible to use a special syntax when naming these elements to support multiple languages. The article provides instructions on how to create multi-lingual custom field names, resource type names, field values, etc.
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. The MuseumPlus plugin for ResourceSpace can be configured to synchronise data from multiple modules, and administrators can create a dropdown/radio fixed list field to hold the MuseumPlus module names. The plugin can be configured to run at intervals of more than one day, and log files can be stored on the server. The MuseumPlus plugin has its own logging capability, and system administrators can create a new custom report to monitor these logs. The plugin mappings between a record in MuseumPlus and a ResourceSpace metadata field is done by mapping individual module fields with ResourceSpace fields. The MuseumPlus plugin has its own configuration options that system administrators can use to change ResourceSpace behaviour when it comes to MuseumPlus integration. The MuseumPlus script will normally run with the regular ResourceSpace cron job, but system administrators can also call the script more often with the filter to only process resources for which there's a new or changed module item association.
User actions
User actions are now enabled for all users by default, unless disabled by a system administrator. Actions alert users to resources or activities that require their attention, and the actions visible to a user will vary depending on system configuration and user permissions. The total number of actions will be added to the 'pill count' that appears next to the user account icon. By clicking on the user menu, a user will see a separate pill count for messages and actions. Clicking on the actions link will take a user to their actions page showing all the required actions. The actions page also includes quick links to preferences, adding all editable resources to a collection, and viewing resources to review as a result set. User action preferences can be set via the user preferences page. Actions cannot be deleted because they are controlled by user preferences. Notifications that used to be sent for resources pending review are being removed from version 10.
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. To use the plugin, users must have an account with OpenAI, and add a text prompt on the output metadata field and select an input field for the source data. ResourceSpace will then pass the prompt along with the data to GPT and populate the output field with the response. The integration of GPT into ResourceSpace provides many possible ways to improve and automate metadata processing tasks, including automated title/summary generation, keyword extraction, and automatic categorisation. The plugin can be used to generate custom reports and statistics for valuable insights into the types and distribution of digital assets. Users are advised not to change any of the other plugin options as it will affect the behaviour of all the metadata fields that have been configured.
Simple SAML
This plugin allows users to log on to ResourceSpace using a SAML compliant single sign-on (SSO) Identity Provider (IdP)
Upload here
ResourceSpace has introduced a new feature called "Upload here" that helps users create new resources based on a recent advanced search. The feature directs users to the upload page where the options will have been automatically selected, meaning they can easily add more resources that this metadata set describes. The functionality will work for search results containing fixed list metadata, resource type, and workflow (archive) state. The option also allows users to upload resources directly into a collection. If multiple resource types or workflow states have been searched, ResourceSpace will select the first one the user has access to. The feature is designed to make it easier for users to upload resources and create new resources based on their search results.
Coding standards v1.3
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. The article emphasizes the importance of security and encourages developers to familiarize themselves with the OWASP guidelines, particularly the OWASP Top Ten. The article also provides guidelines for documentation, function calls, function definitions, and MySQL statements. The article recommends using Whitesmiths style indentation, using spaces to indent, not tabs, and using ASCII character LF to mark line ends. The article also recommends using generateURL() function to reduce the risk of cross-site scripting vulnerabilities.
Creating and editing filters
Creating and editing filters. Filters can be set to control access to resources
New to ResourceSpace?
Find out from the Knowledge Base how to get started with the ResourceSpace Digital Asset Management System.
User guides
Introduction to the user guides section of the ResourceSpace Knowledge Base
Knowledge Base structure
Article to explain how the ResourceSpace Knowledge Base is structured to assist with finding content specific for the reader
Open source
ResourceSpace Digital Asset Management System: Open Source, Open Culture, Free Software, Free Forever
Resources and structure
Article to explain the concept of Resources and how they are structured with ResourceSpace Digital Asset Manager
Collections, public collections and featured collections
ResourceSpace allows resources to be tagged with various metadata, eliminating the need for a traditional hierarchical folder structure. This means that a resource can exist in multiple collections and can be found through metadata searches. Collections can be created from an upload batch, search results or by grouping together individual resources. Collections are initially private, but administrators can make them public and promote them as featured collections if they contain particularly useful resources. It is important to note that resources exist independently within ResourceSpace and can be accessed outside of any collection they are in. Making a collection private will not hide the resources themselves, which can be done through user group permissions.
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.
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. Featured Collections use consistent metadata to tag resources, eliminating the need for a traditional folder structure. They can be accessed from the top navigation bar and can also be made into dash tiles on the home page. There are three options for creating Featured Collections. The first option is to click the "Featured Collections" link in the top header and click the "+" tile. The second option is to create a new collection in the private collection bar and then add it to the featured collection category. The third option is to promote an existing private or public collection by adding it to the featured collection category. Resources can be added or removed from a collection by hovering over the collection and selecting the appropriate action. Featured Collections can be ordered by drag and drop and can be edited or deleted as needed. Additional resources are provided for managing and organizing collections.
Alternative files
Alternative files are a feature in ResourceSpace that allows users to store multiple versions of a resource together with a single set of metadata. This is useful when there are different variations of a resource that need to be easily accessible from a single point. Alternative files can also be used to retain licenses or consent forms alongside the resource for GDPR compliance. To add alternative files, users can browse to the resource, choose "Alternative Files" under resource tools, and upload the files. The alternative files can be edited to add titles, descriptions, and previews. Users can also upload a resource and all of its alternative files in one go by renaming the files with a specific suffix. It is important to note that the first file uploaded must be the main resource. Alternative files can also be used as the primary resource preview image by selecting the "Use as preview image" link. Additionally, alternative types can be specified to categorize the different types of alternative files.
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. Users can also edit resources directly from the search results by selecting them and then choosing the desired action, such as editing, adding/removing from a collection, or sharing. The selection will be reset if a new search is performed. Users can use shift + click to select multiple resources in a set. Batch editing can also be performed directly on a set of search results by selecting "Edit all resources" from the search results actions list. The batch edit screen allows users to select the field(s) they want to edit and choose from a list of options to modify the metadata. The available options include replacing all text/option(s), find and replace (text fields only), copying data from another field, prepending text, appending text/option(s), removing text/option(s), and reverting to a previous state (requires rse_version plugin).
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. There are six default status levels in ResourceSpace: Pending Submission, Pending Review, Active, Waiting to be Archived, Archived, and Deleted. Resources in the Pending Submission and Pending Review states are not available to users other than the contributor. Active state resources are widely available and can be found by all users through a metadata search. Pending Archive is for resources that need to be removed from the mainstream and reviewed for archiving or updating. Archived resources are no longer relevant but are kept for reference. Deleted resources are no longer required and may be retained within ResourceSpace or irretrievably removed from the system. There are four access modes for resources: Open, Restricted, Confidential, and Custom. Open allows everyone to see and download the resource, Restricted allows everyone to see but restricts downloading, Confidential restricts access to administrators only, and Custom allows different user groups to have different levels of access to the resource. These status and access settings are defined by the system and can only be modified using the language options.
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.
Deleting resources
The article provides instructions on how to delete resources in ResourceSpace, a digital asset management system. There are two methods described: deleting resources individually and batch deleting resources. To delete resources individually, users need to find the resource they want to delete and click on "Delete" under "Resource tools". Depending on the system configuration, users may need to confirm the deletion through a pop-up window or by entering their password. For batch deleting resources, users can add the resources they want to delete to a collection and select "Delete all resources" from the "Actions" drop-down menu in the collection bar. The resources will be deleted, but the collection will remain. Deleted resources can be reviewed in the "Workflow" tab or by running an advanced search and selecting "Deleted" in the "Status" section. Another method for batch deleting resources is by changing the resource status. Users can select multiple resources from search results, click on "Edit selected", and then change the status to "Deleted" under "Status and relationships". The same process can be applied to resources in a collection by selecting "Edit all resources" from the "Actions" drop-down menu. To permanently delete resources, users can refer to the "Deleted resources" section.
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. Once resources have been related, they can be viewed as a set by scrolling to the bottom of the resource view page. It is also possible to create new related resources directly from the resource view page. If the configuration options are enabled for a resource type, an 'upload' link will appear on the relevant tab. From version 10.2, there is also a link 'Create new related resource' located on the resource view page, below any existing related resources. This allows users to create a new empty resource (with no file attached), although depending on system configuration, a file for the resource may still be uploaded later. The article also provides a screenshot of the 'Related Resources' box where users can manually enter the IDs of the resources they wish to relate to each other.
Creating collections
The article explains how to create collections in ResourceSpace, a digital asset management system. Collections can be created in three ways: when uploading resources, from the collection bar, or from the "manage my collections" section. When uploading resources, users can select "Create a New Collection" at the bottom of the upload screen, and the resources will be automatically uploaded into that collection. Users can also create a new collection from the collection bar by selecting "Create a New Collection," giving it a name, and hitting "Enter" on the keyboard to save. To add resources to the new collection, users can use the "+" symbol or drag and drop them into the collection bar. If users want to add resources in bulk, they can tick the checkboxes under the resource thumbnails and select "add selected to collection" from the "Actions" drop-down. Finally, users can create a new collection from the "manage my collections" section by entering a name under "Create a New Collection" and clicking "create."
Collection options
There is a list of options available to you from the collection actions dropdown menu. This menu is present in the collection bar and from the "Manage My Collections" page, as well as on the search page when viewing resources in a collection.
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. The ID of the collection can be used with a special search term to retrieve resources within the collection quickly. The access level of the collection can be changed to either public or private, and attached users can be added to share the resource with other users within the system. The option to allow other users to add or remove resources permits other users in the system to make changes to the collection. Collections and featured collections have a toolbar that allows users to create a dash tile for that collection or featured collection category, select the collection, and edit it. The article also notes that users can choose to display collection names and descriptions when viewing the resources in a collection by enabling the option on the System Configuration page in the 'Collections' section.
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. The steps include creating or selecting a private collection, editing the collection, choosing "Public" from the dropdown menu, selecting the appropriate featured collection category, and saving the changes. To remove a featured collection, the value in step 4 needs to be cleared or emptied. If ResourceSpace is configured with simple view mode, featured collections can be created by clicking on the "Add" tile. Once a featured collection is created, users can upload resources directly into it or create another featured collection within it from the featured collections page.
Keyboard controls
ResourceSpace offers keyboard controls to help advanced users speed up their use of the platform. These controls can be customised system-wide but are not currently available for per-user customisation. The default settings include using the left and right arrow keys to browse through resources in view/search/preview pages, using '/' to view all results in search results from the Resource page, using 'A' to add a resource to the current collection, using 'R' to remove resource(s) from a collection, using '<' and '>' to browse through pages in document preview, using 'T' to toggle the collection bar, using 'V' to view all resources in the current collection, and using 'Z' to view the full preview of the current resource.
PDF split
This article describes a tool that allows users to split PDF files into multiple pages. The tool can be used to create separate resources or alternatives to the original PDF resource. To use the tool, users must browse to a PDF resource and click on "PDF Split" in Resource Tools. They can then select a range or ranges of pages to split from the original and choose whether to create new resources or alternatives from each split. Finally, users can click "Split PDF" to complete the process. An image is provided to illustrate the process.
Refine results
The article discusses the addition of a filter bar above search results to allow for further filtering within the result set. This feature allows users to type in more relevant keywords and extra information into the "further results" field to keep filtering results. The article includes an image of the filter bar for reference.
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. The splice tool allows users to merge several video resources together to create a new file, which can then be made into a new resource, sent to the video export folder, or downloaded. The splice function can be used in real-time but also works alongside offline jobs, allowing users to continue their work elsewhere. The plugin configuration page allows users to set the resource type for the splice tool output, the video file extensions allowed for the trim and splice tool, the fields to associate with the corresponding outputs, the video export file path, and the video custom options. The export functionality requires a configured file path to the export folder, which must be defined before use.
Creating dash tiles
Dash tiles are a great way of creating shortcuts to your favourite things in ResourceSpace.
Admin overview
Accessible from the top navigation bar, the Admin menu provides a whole range of tools to help manage ResourceSpace and its contents.
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. The Analytics section, on the other hand, produces graphs and charts of high-level summaries. The standard reports available include database statistics, expired resources, file integrity check, keywords used in resource edits, keywords used in searches, mail log, resource request detail, resource comments, resource download detail, resource download summary, resource downloads by group, resource views, resources added to collection, resources created, resources created with thumbnails, resources sent via email, resources with zero downloads, resources with zero views, and searches with no results. From version 10.1, reports that meet the criteria can also be viewed as a search result. The reporting section is useful for tracking information about the usage of the system and ensuring that the system is being used effectively.
Useful user permissions
The article provides an overview of user group permissions and how they affect user actions when accessing and interacting with resources. The permissions are divided into different categories, including searching/access, metadata fields, resource types, resource creation/management, collections, and administration. Each category has a list of permissions that can be granted or restricted to user groups, such as downloading restricted resources, blocking access to workflow states, restricting access to all available resources, and managing resource requests. The article also mentions advanced options for user groups, such as search filters, edit filters, derestrict filters, and resource defaults. While configuring user groups is the responsibility of a system administrator, it is important for those managing resources to understand the implications of these user permissions with regard to resource access. The article concludes by directing readers to a dedicated section for system administrators who want to learn more about configuring user group permissions.
Archives
Archiving is a way of keeping useful or popular resources within a system, but removing them from the main body of resources to encourage users to look at new material. This is particularly useful if resources have been used extensively for a project or campaign and need to be rested, or where an updated version has been made available but the original should be retained. Users of the system won't be able to access these resources any longer but they can be retrieved and put back into circulation at a later date, allowing popular resources to be used again. To archive a resource, users need to browse to the resource they wish to archive, click "Edit" under resource tools, select "Archived" from the drop-down list next to Status, and click Save. The archives can be searched by going to Admin > Resources > Archive resources > Search archived resources.
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. Users can access this feature by going to the admin menu, selecting "Resources," and then "Replace resource batch." By default, the feature is set to match new files with existing resources based on resource ID. Users can also match new and existing resources using the contents of a metadata field by unchecking the default option and selecting the desired field from the dropdown list. Once the match method is selected, users can proceed to the upload screen to drag and drop their files. The batch replace feature also works with the CSV upload plugin, which allows users to create a large number of resources by uploading metadata. The batch replace feature can then be used to add the file itself. Additional options include the ability to specify that only resources in a collection are replaced, the ability to specify minimum and maximum resource IDs to replace, and the ability to replace resource files with files located in a folder on the server.
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. Grouping resources by type also aids with searching, allowing users to quickly eliminate large quantities of resources to get directly to what they need. Resource types should be allocated with care, as they each contain different sets of metadata fields tailored to best describe the resources within them. The Global resource type is useful as a place to record all the metadata fields that are common to all resource types, such as title, an upload date or original filename. Resource types can also be used in conjunction with User group permissions to determine which resources users can see and download. It is possible to configure resource types to only allow certain file extensions to be uploaded into that type, which can be useful in preventing files from being incorrectly labelled as a different resource type.
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". Users can also add an icon to a resource type by selecting an icon from the dropdown containing all of the free icons from Font Awesome 5. Once an icon has been selected, it will populate the field with the CSS class name for that icon, and the icon will show on the thumbs layout for search results. Additionally, users can override configuration options that apply only to resources of this type. However, any changes to this value must be followed by a command line execution of the "pages/tools/resign_all_code.php" script.
Managing metadata
The article discusses the importance of managing metadata in a system to make searching for resources faster, easier and more intuitive. The article suggests that metadata should be descriptive, clear and complete to ensure that users can search effectively and get the best out of using the system. The article recommends keeping metadata under review to ensure new options are added as the system evolves. It also suggests using required fields to ensure contributors complete all the necessary information about the resources they upload. The article concludes that a strong metadata framework is invaluable in making sure the system works effectively.
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. The metadata used in ResourceSpace can be anything that is useful in categorising the resources being worked with, such as technical specification, date of publication or location. It is important to ensure that the right tags are applied to the right resources to make the most of how the system operates. Organising metadata options into appropriate fields can make a huge difference to users. A simple search for a word or phrase will return all resources where that term appears anywhere within the resource metadata. However, if users are only looking for resources located in a specific country, searching within the Country field will return a more useful set of results. As the resource pool expands, the number of fields needed to allow for effective searching may increase, and new field options may need to be added to describe new resources. This is easily managed within the Manage Metadata Fields area.
Creating and deleting metadata fields
The article provides guidance on creating and deleting metadata fields in ResourceSpace. Metadata fields should be clear and descriptive, and the right data should be stored in the right field type to achieve this. Fixed list metadata fields limit the number of options a contributor has to choose from, ensuring the metadata added is consistent, without interpretation or spelling errors. Free text field types allow contributors to create their own entry for more descriptive metadata. When creating a new metadata field, the type of metadata to be stored should be kept in mind to determine the best-suited field type. To create a new metadata field, navigate to Admin > System > Manage Metadata Fields, enter the name of the new metadata field, choose the type from the drop-down menu, and configure the field. To delete a metadata field, navigate to Admin > System > Manage metadata fields, locate the field to be deleted, edit the field, disable it by unchecking the "enabled" option, and then save. If any resources have metadata associated with a field submitted for deletion, an additional confirmation prompt will be presented before deletion takes effect.
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. There are also options for expiry dates, date ranges, category trees, and dynamic tag lists. A warning message field type is also available, which displays as a caption in bold text on the resource view page. Choosing the right metadata field type is important to ensure that the data captured is presented in a clear and understandable way to users.
Configuring category trees
The category tree field type is useful for selecting metadata tags from a nested tree, particularly where resource subjects follow a hierarchical classification, such as product taxonomy or projects within campaigns. To create a category tree, set the field type to "Category tree" and manage options by clicking "Manage options". Creating a new field option is the same process as with other fixed list field types, but it is also possible to select a parent node, creating a tree structure. When tagging resources within a category tree field, if a node is selected, all parent nodes are also selected, meaning the resource may also be found when searching by these parent options. The user will see the category tree structure in the same form when searching as when tagging resources.
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". To delete an option, users can use the "Delete" action, but if the option is in use, ResourceSpace will warn users before deletion. Users can also edit the text of an option if it reflects new terminology. If users want their field options to display in a particular order, they can arrange them using the "move up" and "move down" action buttons. Alternatively, users can use the "Move to" action to enter the "Order by" position they wish the option to take. Before modifying existing metadata field options, it is useful to search for any resources that will be affected by the change, add them to a collection, and review them to ensure the change will not have a negative impact. The article also explains how to import and export field options using TXT files. Users can export a field using the "Export" button and import the TXT file to another field using the "Import" button.
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. However, metadata fields can be ordered within these sections to make the pages more intuitive for users. This can be done in the Manage metadata area, where users can use the "move up" and "move down" options to reorder fields or drag and drop them from the list view to set their place in the sequence of fields.
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. Indexing the text from large files often results in the indexes becoming bloated and polluted with irrelevant information, thus slowing down and reducing the quality of search results. Searches for text in long text fields, such as extracted text from PDF, can still be performed from the Advanced search page but will utilise the built-in database indexing capabilities. When using this, common words (words that appear in more than 50% of resources) will not be indexed. Users can choose which fields are indexed for searching within the metadata field edit page by checking or unchecking the "index this field" option. If the field was previously not set to be indexed, users will need to select "index" and save, then "re-index" the field using the "reindex this field" link in the text box below the index option. Additional settings include partial indexing, display field, enable advanced search, enable simple search, and use for find similar.
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. This can be useful for words that have common misspellings or where several words may be interchangeable when describing the same thing. The article provides an example of how a range of terms for "bike" have been related so that a search for any of them will return the same set of resources. The relationship is bi-directional, so a search for "bicycles" will also show resources tagged "bike." To create a new related keyword relationship, one needs to type one of the keywords in the relationship into the "Create new relationship for keyword..." text entry field, click "Create new relationship for keyword...," enter each of the related keywords into the related keywords textbox separated by a comma, and click Save when happy with the list. The lists will appear on the Manage Related Keywords page and can be edited by clicking edit next to the relevant line.
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. The article explains the permissions and limitations of each user group. It also provides a step-by-step guide on how to create a new user group. The process involves browsing to Admin > System > User groups, adding a name for the new user group, assigning permissions to the group using the permissions manager, and saving the changes. The article also mentions advanced group options that provide further controls to manage the way users within the group can interact with ResourceSpace. The article includes an image of the user group interface to help users visualize the process.
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. The article then details the process for users requesting accounts, which is done through the user account request page. To create a user account, the user needs to browse to Admin > Users, enter a username, and click Create. They then need to set a password, the user's full name, assign the user to a group, set an email address, and optionally set an account expiry date, IP address, or IP address range. The article also explains that custom personal search filter overrides can be set up for users. Once the account is created, the password is not visible, and the user's password can only be reset by generating a new one or setting a new password. The article concludes by providing a link to more information on managing users.
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. The second tool is deleting users, which can be done by checking the "Tick to delete this user" option, confirming the decision to permanently delete the user, and clicking Save. The third tool is disabling an account, which can be done by unchecking the "Approved" option and clicking Save. The fourth tool is previewing user accounts, which can be done by logging in as the user from their edit page. This is useful when setting up user groups and managing permissions. The fifth tool is purging inactive users, which can be done by clicking on "Purge users," entering a value for the number of months a user has been inactive, verifying the users that will be deleted/disabled, and clicking on "Purge users." The configuration option "$user_purge_disable" can be set to true to disable users instead of fully deleting them.
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. The advanced options include parent and child arrangements, search filter, edit filter, derestrict filter, resource download limit, download limit period, resource defaults, override config options, email welcome message, IP address restriction, request mode, allow registration selection, and group-specific logo. These options are intended to help users organize complex user group arrangements, filter visible and editable resources by field values, set a maximum number of downloads that a user in this group can perform, set default values for fields for resources on upload, override configuration options for this user group, restrict access to ResourceSpace for this user group to only come from a specific IP or range of IP addresses, and more. The article provides a brief description of each option and includes screenshots to illustrate how to access and use them.
Edit filters
Edit filters are used to determine if users in a group can edit resources based on the metadata in the resource. The existing 'e0' (or e1, e2 etc.) permissions must be used first to open up edit access. The edit filter is then used to restrict access to specific resources. Edit filters use the same filter building tool as search filters, provided that the '$search_filter_nodes' configuration option is enabled. An additional feature for edit filtering only is the ability to restrict editing by resource type. This is done by using 'resource_type' as the field name and the resource type reference as the value. For example, the following will restrict edit ability to resources of resource type 2 only (the default 'Document' type): 'resource_type=2'. This can be used in combination with metadata filters.
Derestrict filters
The article discusses the use of derestrict filters in ResourceSpace, which allows users to access resources that would normally be restricted to them. This feature is useful when some users need to access only a few resources within the system while being completely restricted from all others. Derestrict filters use the same filter building tool as search filters, provided that the configuration option is enabled. The article also provides information on the legacy derestrict filter syntax for users who are using ResourceSpace 9.2 and earlier or if the search filter nodes are set to false. The article concludes by stating that for multilingual field options, the full i18n syntax string must be used instead of a translated option.
Adding resources to a collection
This article explains the different ways to add resources to a collection in a learning management system. Resources can be added to multiple collections at any given time. The first way to add resources is during upload, where the resources can be added to an existing or new collection. The second way is from the search results page, where individual resources can be added to the current collection by clicking the "add to collection" icon, or all the results can be added by selecting "Save results to collection" from the actions drop-down menu. The third way is from the resource view page, where the "Add To Collection" option in the Resource tools section can be used to add the resource to the current active collection. The fourth way is to copy resources from one collection to another by selecting "Copy from collection" in the actions menu of the target collection. The article also notes that users can see if resources have been added to a Public or Featured collection by viewing the "Related Collections" link at the bottom of the resource view page.
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. The CSV upload process is split into five steps, including selecting the file, setting options, mapping CSV columns to metadata fields, checking CSV data, and processing CSV. Users can upload resources using any method, use a CSV to create resources and then use batch replace functionality to upload associated files, or download resource metadata from search results or a collection, edit the data in the CSV, and re-upload it to update the resources. The plugin is useful for processing large CSV files, and users can enable offline jobs to avoid browser timeouts causing the CSV upload to fail. The CSV file must have a header row, be encoded in UTF-8 format without BOM, and have text cells quoted in case they contain commas or other special characters. All mandatory fields for the created resource types must be present, and date values should be in the format YYYY-MM-DD HH:MM.
Advanced workflow
workflow, process, publish, embargo, archive, review,state, status
Video tracks
The Video Tracks plugin for ResourceSpace enables users to create custom video files in alternative formats/codecs, including subtitle and audio track files that have been uploaded as alternative files for a video resource. This produces multilingual variants of videos from within ResourceSpace with no further post-production efforts. The plugin utilises new job queue functionality so that the file creation can take place offline, as processing of video files can take time. The plugin options page allows for a size limit to be configured, and video files that are larger than this will be added to the queue. Once the processing is complete, the user will be sent a system notification that the file is available. To enable the offline functionality, the '$offline_job_queue' configuration option must be enabled in config.php, and a scheduled task/cron job should also be configured to run the pages/tools/offline_jobs.php as frequently as desired. From v10.2, ResourceSpace admins can no longer configure "Available file output options" through the UI. This must now be done from the configuration file (config.php) using $video_tracks_output_formats configuration option.
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. The article provides a guide on how to integrate KE EMu with ResourceSpace, an open-source digital asset management system. The integration is done through an EMu plugin that enables ResourceSpace to import metadata from EMu or have a master-slave relationship between EMu and ResourceSpace. The article provides API server settings, EMu script settings, EMu settings, EMu and ResourceSpace mapping rules, and notes on columns and atomic values. The mappings between a record in EMu database and a ResourceSpace field are done by mapping the module, a column from that module, and the field itself. The article also provides information on how to check IRNs, which is done by notifying users if the IRN they input has retrieved any data or not.
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.
create_resource
The article provides a function called "create_resource" that creates a new resource. The function requires the ID of the resource type for the new resource, which is an integer value. The archival state of the new resource is optional, and the default value is 999. The function also allows the user to upload a file by providing the URL of the file. The user can choose to process embedded metadata or not, and the function can automatically rotate images if the rotation flag is set on the image. The metadata to add is optional and can be provided as a JSON encoded array of field ID to value string pairs. The function returns the ID of the newly created resource.
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. Other parameters include the file extension requested, the page to return in the case of a request for a preview of a multi-page document, whether a watermarked version of the image should be fetched, and the ID of an alternative file to return. The function returns the requested path to the resource file or false if there was an issue. If the first parameter is an array of IDs, the returned value will be an array with the resource ID as the index and its path as the value. It is important to note that when an array of IDs is passed, the array must be a subset of resource IDs grouped by extension, size, and other parameters required by get_resource_path() to get the expected path returned.
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.ini settings. The article provides a step-by-step guide to the installation process, including choosing the location of the ResourceSpace web root directory, checking out the latest version using SVN or GIT, configuring the database, configuring PHP, and ensuring that the 'filestore' and 'include' folders are writable by the web server. The article also highlights the importance of setting the 'cron_copy_hitcount.php' file to execute once each night to ensure relevance matching is accurate. The article concludes by noting that much of the system configuration, such as metadata fields, user groups, and resource types, can be managed within the Admin -> Setup, and that the GD library provides automatic thumbnail previews for JPEG, GIF, and PNG files.
Installing on Ubuntu Linux
The article provides a step-by-step guide to install ResourceSpace on Ubuntu Linux. The installation process involves installing programs and dependencies, configuring PHP, creating a database, checking out ResourceSpace, finishing installation via a web browser, setting up the cron job for relevance matching and periodic emails, setting the file and folder permissions, and setting up Apache correctly. The article advises following the onscreen instructions during installation, accepting default or relevant options, including any additional prompts regarding MySQL and Postfix configuration that arise during the installation process. The MySQL password is important later on in the setup process and also for future Root access, so it is essential not to lose or forget it. The article also provides links to configure the php.ini file and Apache.
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. The article also provides instructions for changing the php.ini file and creating a database in MySQL. The article concludes by providing instructions for checking out ResourceSpace and running the setup. Additionally, the article provides a link to a guide for configuring Apache correctly.
Installing on SuSE
The article provides a guide for installing ResourceSpace on SuSE. It directs users to a guide for setting up a LAMP stack with a virtual host for ResourceSpace. The article then lists the packages required for installation and provides a command for installing them. The installation process is then said to proceed as for other operating systems. Finally, the article advises users to configure Apache correctly.
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. The article also provides instructions to set up a cron job for relevance matching and periodic emails, set file and folder permissions, and configure Apache correctly. The article provides links to additional resources for configuring the php.ini file and Apache.
Upgrading
The article provides instructions for upgrading ResourceSpace, a digital asset management system, using Subversion (SVN). Before upgrading, users should ensure that their system meets the general installation requirements. The article provides instructions for navigating to the web root, checking for modified files, and upgrading the code by switching to the latest version in the releases branch. For larger systems, the upgrade to version 10.0 and above can take several hours due to an automatic migration script changing how metadata is stored in the database. To mitigate this, users should upgrade to version 9.8 first and manually run a script before upgrading to version 10.0. The article also provides instructions for converting a downloaded installation to a Subversion working copy and troubleshooting common issues such as file and folder permissions and broken states.
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. The code should include numbered links starting from zero, with each link containing a "title" for the visible clickable text, a "link" to the page in question, and a "modal" to determine whether to load the page in a modal window above the application. The "title" supports the multilingual format used for field names and values, while the "link" can be any URL, either internal or external to ResourceSpace. Users can add as many links as they like, and the links must be numbered sequentially starting from zero.
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. Reports can also be applied to search results by using a report placeholder. Reports can be viewed as search results from version 10.1, but it is important to note that having a "report applied to search results" and "being able to view report as search results" are mutually exclusive options. Additionally, if the user has any search filters applicable, there may be a difference between the report and the search result view of the report.
OpenOffice / LibreOffice
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 .docx and .pptx, users must install Unoconv and add a line to config.php. The article also provides a list of default file extensions that will be previewed with Open Office. Additionally, the article explains that using Unoconv enables page previewing and an automatic PDF alternative version of the file. The article provides instructions on how to prevent the system from adding the automatic PDF alternative and how to start the Unoconv listener on startup on Linux.
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. The client field can be a dropdown or a checkbox list, and it is used to tag resources with the client's name. For each client, a new user group is created, and a search filter is added to filter all results from the client's search so that only resources that are tagged with their company name in the client field will be shown to them. The article also provides an example of the permissions that can be assigned to the new user profile. The article suggests that the system configuration options should be set to be suitable for a multi-client environment. Finally, the article provides further customisation options, such as using the 'parent' field on the groups to allow one group to manage the users in another.
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. Files that are deleted from the filestore will be archived within ResourceSpace, so metadata is not lost. StaticSync is configured via include/config.php, and all settings are described in include/config.default.php. Resource types are automatically selected based on the file's extension. When using StaticSync as an import mechanism via the ingest option, the file is moved into ResourceSpace's own filestore, just as if the file had been uploaded directly to ResourceSpace. Metadata can be extracted from the file's path via multiple path/metadata mappings to assist with metadata entry. StaticSync is designed to run from the command line rather than via the web/apache.
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.png". The default watermark is 'ResourceSpace', but users can use their own and alter the above line to point to it. The watermark should be a PNG file, suitably transparent so that the photo is visible underneath. Watermarks are only created when the line above exists in the config.php. Users can run pages/tools/update_previews.php?previewbased=true to recreate watermarks for all resources, which will generate the new watermarked preview files. Watermarked previews will be displayed for users that meet the following requirements: the user group of that user has permission 'w' enabled, and the resource is restricted for that user. Users can set Admin menu -> System -> Image Sizes -> Screen to "Allow restricted download" to allow download of screen-sized watermarks. Users can add the following config option to display watermarked previews even if the user has non-restricted access to the resource: $watermark_open = true. Instead of having the watermark image tile across the preview, users can choose to place the image in one location and scale it.
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. However, it is important to note that the plugin does not enable single sign-on (SSO), meaning users will still need to enter a username and password to access the system. The plugin requires the PHP ldap extension to be installed and enabled. The plugin options page requires several pieces of information to be provided, including the directory provider, LDAP server, port, AD domain, email suffix, attribute to use for email address, attribute to use for telephone number, base DN, login field, user suffix, group field, create users, email-match, allow new accounts to be created if there are existing accounts with the same email address, update user group at each logon, notification address, fallback user group, and LDAP-ResourceSpace group mapping. The plugin can be tested by clicking on the 'Test LDAP configuration' button. Troubleshooting can be done by enabling the ResourceSpace debug log and searching for entries that start with 'LDAP'.
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. If the plugin is enabled at initial setup, only the API key is required and default metadata fields are used to store suggested tags, location information and extracted text. Once ResourceSpace is installed, the plugin options page allows various options to be configured, including selecting the metadata field that will store tags suggested by Google Vision, selecting the metadata field that will store landmark information suggested by Google Vision, and selecting the metadata field that will store extracted text. Google Vision can also leverage AI automated tagging of existing assets. The Google Vision API only returns English keywords, but the separate translation API can be used to translate these to other languages. Ensure the Translation API is enabled in the Google console.
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. To tag someone, users must go to view the resource, hover over the bottom of the preview of the image and click on the annotation tool icon. They then click and drag an area to select a face. Once the mouse is released, if the system has been trained, it will suggest the name of the person in the image. The system can suggest either "unknown person" or, if the face is recognised, a name from a fixed list field. Clicking on the suggested name will apply the tag. Once someone is tagged, the system will not automatically recognise them unless it has been retrained with that face. A system/server administrator should create a cronjob/scheduled task to run pages/tools/facial_recognition_trainer.php. Reliable predictions will usually begin to appear after the system has been trained with at least 10 images of the same face.
Antivirus
The antivirus plugin for ResourceSpace allows the platform to check every file uploaded to see if it is a known virus. The plugin can be configured to work with any antivirus that has a command line interface, and has been tested with ClamAV and Sophos. When setting up the antivirus plugin, it is important to use the CLI options that will only print infected files and no other summary. The path and the CLI options must be configured in config.php by system administrators.
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. ResourceSpace makes use of the open source ExifTool utility to read and write metadata. This is extremely flexible and any metadata present in a file can be mapped to ResourceSpace fields. Many different profiles are supported in addition to Exif, including XMP, IPTC, GPS, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP and ID3. ExifTool fully supports read/writing of several filetypes including JPG, GIF, PNG, TIF, EPS, PDF. It can also read data from other filetypes that are not write-supported. If you have files with metadata in them and want ResourceSpace to extract that information, you can use the metadata report and this output to construct the appropriate mappings. Exif fields are mapped using the $exif_* settings in include/config.php. IPTC fields are mapped using the 'IPTC Equiv.' option on each field in System Setup.
How to back up your ResourceSpace installation
Ensure that your ResourceSpace open source Digital Asset Management system has appropriate backups in place.
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.
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.ini, configuring IIS, verifying IIS settings for PHP with FastCGI, checking PHP works, installing dependencies, installing Subversion, and setting up ResourceSpace. The article also provides instructions for creating a new folder called filestore, editing folder permissions for "filestore" and "include", creating a database, and setting a scheduled task to run [webroot]/pages/tools/cron_copy_hitcount.php. The article also includes optional instructions for installing MySQL Workbench. The article emphasizes that the instructions should be adjusted to be suitable for the user's version of Windows Server or preferences.
Winauth
Enables users to login to ResourceSpace using Windows Integrated Authentication
ResourceConnect
ResourceConnect is a plugin that allows different ResourceSpace systems to connect to each other to enable searching between installations. The plugin has several advantages over other methods of centralising content, including no need to issue a new URL to users, no duplication of content, ownership remaining under the control of regional administrators, reliability, and being more economical. However, there are some caveats for using ResourceConnect, including a trimmed-down interface for remote search results and viewing remote resources, and it is not currently possible to search for remote resources using Advanced Search or move between resources when on the resource view page. To set up ResourceConnect, users should navigate to the ResourceConnect config folder on the server, create a copy of the config.default.php file, name it config.php, and change the $resourceconnect_affiliates array so that the base URL for the first element is the base URL for the current system. Users should then enable the ResourceConnect plugin through the plugin manager and go to the options page for that plugin to see the access key for this installation.
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. It is important to note that when a resource is archived in Falcon, any external sharing links that were created will still remain in place to ensure that any existing posts using the Falcon template do not break. The plugin requires users to obtain an API key from Falcon, which can be found under the 'API keys' tab in the 'Integrations and API' section of the 'Development > Settings' page. The plugin options page requires users to provide information such as the Falcon API key, Falcon template text field, ResourceSpace - Falcon tag fields, default tag text, metadata field to store the Falcon identifier, valid Falcon Resource Types, filter to determine which resources can be published to Falcon, user text to display for shares that created for Falcon use, and groups that have access to manage Falcon templates.
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. The Enabled option specifies whether the field will be used for resource display, editing, and searching. The Required option allows administrators to specify that a metadata field is mandatory during the upload process. The Index option allows the text within the metadata field to be searchable when a user runs a keyword search. The Display full width on view page option uses the full width of the resource metadata panel to display the values for this field. The Display field option hides the metadata field from all users when viewing the resource. The Enable advanced search option determines whether a metadata field should be available on the Advanced Search page. The Enable simple search option enables the metadata field to show on the Simple Search panel. The May contain personal data option flags that a metadata field may contain personal data. The Hide when uploading option hides a metadata field during the upload process. Finally, the Hide when restricted option hides a metadata field when the user has restricted access to the resource.
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. However, TMS is not a requirement to enable the IIIF interface. The ResourceSpace IIIF interface follows the guidance of the IIIF Presentation API 2.1 for publishing the manifest. Manifests are created based on search results returned for the specified identifier in the designated metadata field. The metadata for each manifest will be obtained from the first resource returned. Each canvas in the sequence described by a IIIF manifest will correspond to a ResourceSpace resource. The sequence of views published by the manifest will be based upon data stored in another ResourceSpace metadata field, thus allowing for reordering. To control which resources are published via IIIF and the access levels, the IIIF interface is configured to use the permissions of a standard ResourceSpace user account. By using the permissions and access of a user account, resources can be made available or hidden from the IIIF interface by the use of standard metadata fields and search filters.
Geolocation
This article provides instructions on how to add location data to a resource on a website. Users can add a location to a resource by clicking on the 'Add location' button on the resource view page and setting the marker for the location on the map that appears. Once the location has been added, users can use the Geographic search to find the resource by dragging an area on the Geographic search map. The article also provides a link to more advanced settings for configuring geolocation settings and adding tile servers to show more detailed maps.
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. If the user chooses not to migrate data at the time of changing the field type, none of the existing free text data will be shown for resources. However, the user can still migrate data later by navigating to the relevant numeric field ID. The script provides options such as the unique field identifier, separator, run without changing any data, and delete redundant data after migration. The user can check the box to run a simulated migration without adding any data to ensure the options are correct. The user should not navigate away from the page once the script has started, and a system message will be received once the migration is completed. However, real-time updates are not currently available when using Internet Explorer or Microsoft Edge.
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. These installers can be quickly installed on the operating system without interfering with existing software. Additionally, ResourceSpace can be operated using a virtual machine. ResourceSpace can also be easily run on various cloud platforms, including 1&1, Amazon, Azure, CenturyLink, Google, and Oracle. Users can visit Bitnami for more information on these installation options.
resource_log_last_rows
adding information on the log codes recorded in the type field
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. The following UI elements can have their colours changed: Header background colour, Header link colour, Introduction text, dash tiles and simple search background colour, User collection bar background colour, and User collection bar foreground colour (resource panels, drop downs and resizing bar). Additionally, you can also customise the logo and favicon of the system. This can be done by uploading the desired image files in the Logo and Favicon sections respectively. Customising the interface colours, logo and favicon can help to create a more personalised and branded experience for users of the system.
Resources not showing for a given user group
The article discusses the possible reasons why a resource may not be visible to some users, while it is visible to others. The reasons could be related to permissions, such as whether the user has access to the workflow state the resource is in or whether the user can see the resource type. The article suggests checking the permissions that start with the letter 'z' for workflow state and 'T' for resource type. Additionally, the article suggests checking if any search filters or config overrides are set up, which could be causing the issue. The article provides links to the relevant knowledge base articles for further information on these topics.
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. The default text for the user consent message can be amended by going to Admin -> System -> Site Content and pasting the "user_registration_opt_in_message" language string into the Search content box. System administrators can check user consent by navigating to Admin -> System -> System log and filtering by "User opt-in" if ResourceSpace is configured to auto-create users, otherwise, consent can be seen in the email/notification sent by the system to the administrators.
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". The search results will be displayed showing how many results were found in total, which Image Bank was searched through, and how many results to show per page. Users can interact with the results by clicking on the preview image to go to the Image Bank Providers' page of that file, clicking on the download icon to download the file to their system, or clicking on the create new resource icon to create a new resource based on the result from Pixabay. The Image Banks plugin can be configured based on each Providers' requirements, and developers can add new providers with little effort. All providers must extend the Provider class, and the runSearch() method must return a ProviderSearchResults object.
Cookies notification
The cookies_notification plugin is a tool that can be activated under Plugins via the System menu. It creates a header on the login page to notify users that their activity will be tracked via cookies. The plugin can be configured to force users to accept cookies before proceeding to access ResourceSpace. Alternatively, users may be allowed to access the page without accepting, although the warning header remains.
Security settings
ResourceSpace allows users to customise the security settings of their accounts. The length, complexity and frequency of password expiry can be configured, as can a failed login protocol, which determines when a ban is placed on a user account or IP address. To aid GDPR compliance, the system has an additional layer of security, which logs users out after a predetermined period of idleness. By default, this is set at 300 minutes, but it can be increased or decreased, or auto logout disabled, according to user requirements.
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. The php.ini file should be configured as described on the provided page. Additionally, the latest version of ImageMagick, FFmpeg, Ghostscript, ExifTool, and Inkscape are required for creating previews of images, video and audio files, PDF files, and vector-based images. Apache Version 2.4 or later is recommended for the web server, and Internet Information Services (IIS) 7.0+ is also supported. MariaDB version 10.0.1+ is an alternative to MySQL version 5.6+.
What file formats can be uploaded to ResourceSpace?
ResourceSpace allows any type of file to be uploaded except for banned extensions such as php, cgi, pl, exe, asp, jsp, sh, and bash. The list of banned extensions can be changed using the config option $banned_extensions. ResourceSpace attempts to create preview files for any uploaded files, including images, videos, and audio files. The list of supported formats is extensive, but common file types such as jpg, png, gif, bmp, tiff, tga, psd, avi, flv, mp4, mov, wmv, ogg, webm, mp3, aac, wma, and flac are supported. By default, no preview files are created in ResourceSpace due to the performance impact. However, the preview already embedded in the image itself can be extracted and used by setting any of the following config options to true: $cr2_thumb_extract, $nef_thumb_extract, $dng_thumb_extract, $rw2_thumb_extract, $raf_thumb_extract, and $arw_thumb_extract.
Smart collections
Smart collections are a new feature that can be enabled in a system by using the config option $allow_smart_collections. Once enabled, a new option will appear in the Actions drop-down menu on the Search page, allowing users to save a search as a smart collection. The collection will be named automatically based on the search criteria and will add or remove resources from the collection as they match or cease to match the criteria. Additionally, enabling the config option $smart_collections_async will update the collections after each search rather than constantly in the background.
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'. The 'Email notify' address is no longer used and has been replaced by $email_notify_usergroups. If the address does not belong to a real user, users can set up a dummy user account with the required email address and a secure password, then add the user to a dedicated notifications usergroup, log on as that user through user edit page and set their preferences as required. The article also provides a list of user settings that can be configured in the include/config.php file, including the default user preference for receiving notifications about resource state changes, resource requests, account requests, system messages, and daily email digests of unread messages. Users can override these settings by changing their preferences. The article concludes by advising users to set up their email and messaging settings according to their preferences and requirements.
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. Users can grant access as limited as resource viewing only or as open as full edit and download rights. The search permission allows users to search for resources, while the metadata fields permission allows users to see all fields or specific fields. The resource creation permission allows users to create resources or upload files, while the featured collections permission allows users to publish featured collections and edit all collections. The restrictive permissions include not being able to change one's password, delete resources, share resources externally, or lock resources. The administration permission allows users to access the system menu, manage research requests, manage resource requests/orders, manage content, bulk-mail users, manage users, manage keywords, manage external shares, manage licenses, and manage consent records. The restrictive group permissions allow isolated groups to be created, with users being able to manage users in children groups or email resources to users in their own group, children groups, and parent group only.
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. The article advises that when changing these values, users should copy them to the config.php file and change the value there rather than changing the default file. The article then lists the core configuration options, including the host name or IP address of the MySQL server, the port number of the MySQL server, the username and password of the MySQL user with both read and write permissions, the username and password of the MySQL user with only read permission, the database name for ResourceSpace, and the 'base' web address for the installation. The article provides example values for each of these options.
TMS link
Help for setting up the tms_link plugin.
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. To aid GDPR compliance, users can tag metadata fields that may contain personal data, and when creating a CSV file, there is an option to include only the metadata from these tagged fields. Users can also choose to include all available metadata fields in the CSV file, which will override the system field selection and extract all metadata from all fields that the user has permission to see.
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. The job queue functionality has been expanded to allow the creation of alternative files from specified commands, running a command that will create an output file, optionally specifying a download URL that can be sent to the user, creating previews for resources or alternative files, downloading collections of resources, deleting files, and extracting text from the resource and saving it to a configured metadata field. Offline jobs cannot be run individually by a user, they are run in the command line, usually using a regular cron job. To enable this, users must enable a scheduled task (Windows) or cron job (Linux) that runs /pages/tools/offline_jobs.php as frequently as desired. The offline_jobs.php script can accept additional parameters as per the script help text output.
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. The browse bar provides a folder-like searching mechanism while remaining based on metadata, allowing users to freely browse the asset repository in an intuitive and recognisable manner. Clicking on a resource type will return all resources of that type. It is also under each resource type that users will find the appropriate metadata fields to search by, simply expand the "type" to see the fields. 'Browse by tag' allows users to drill down through resource type, metadata fields (fixed list fields only) and metadata field options (nodes). Clicking on a field option will perform a search for all resources of the selected type with that field option set. The browse bar is a powerful tool, but for some users, especially those new to ResourceSpace, it can be an unfamiliar way of working. The browse bar can therefore be a great place for people to start finding resources.
Adobe link
This plugin allows you to import files from ResourceSpace directly into Adobe InDesign and Photoshop.
Google Analytics
ResourceSpace has added support for Google Analytics in its version 10.1, allowing users to track website activity such as session duration, pages visited per session, bounce rate, exit rate, and the source of traffic. The plugin triggers Google Analytics to track the activity of users. Universal Analytics is being replaced by Google Analytics 4, which will stop processing new hits from 1 July 2023. ResourceSpace's support for Google Analytics includes an option to switch between Universal Analytics and Google Analytics 4 until the cut-off date. To set up Google Analytics, users need to obtain a tracking ID, activate the Google Analytics plugin, and visit the dashboard for the website at Google Analytics to check the statistics. Google Analytics can provide users with information on website activity, such as the number of users, the number of sessions, the bounce rate, and the average session duration.
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. The plugin has an option to allow API calls by administrators to bypass versioning, such as when using the API function replace_resource_file(). If the link to the configuration page is not visible, the rse_version plugin may need to be disabled and re-enabled to make it appear.
Developers
The article provides information for developers interested in working with ResourceSpace, an open source project written in PHP and Javascript. The code is freely available to browse via SVN, and the article provides links to the project structure and database schema. All developers must adhere to the coding standards set by ResourceSpace.
1. Finding your way around
An overview of the ResourceSpace user interface.
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.
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.
7. Reporting
ResourceSpace include comprehensive reporting and analytics capabilities.
File integrity checking
ResourceSpace has a tool to verify the file integrity of primary resource files, which notifies users of any corruption and allows them to take remedial action. To configure the system to check file integrity, users need to have full file checksums configured, the ResourceSpace cron script configured to run frequently as a cron task or scheduled task, and the file integrity verify window enabled to set the hours between which the script will run. The integrity check script will be started whenever the cron script is run and will check all primary resource files that have not been verified in the last 24 hours or that have never been verified. The system will continue to perform file integrity checks until all have been completed, as long as it is within the configured time window. When the script has finished, ResourceSpace will send a notification message to the system administrators if any resources have failed, who can then take action as necessary to resolve the situation. Running the special search '!integrityfail' will show all resources that have failed the last integrity check. The stored checksums can be downloaded and viewed by choosing the 'CSV export - metadata' option for any set of search results and selecting the 'Include data from all accessible fields' option.
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. To add a help link to a page, use the render_help_link function, which takes the Knowledge Base page as a parameter without the base URL. When adding the link into Javascript, it is helpful to create the link as a string variable before using it as creating the link inline can give undesirable results.
Site content
All text strings in ResourceSpace can be customised from the Manage content area.
The Complete Guide to Developing Your Brand Guidelines
Your brand characterises your business. Without it, your products and services become indistinguishable from those offered by 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. The use of this plugin is dependent on the organisation having implemented a SAML compliant single sign-on solution. Implementing a new single sign-on solution is not trivial and is normally an organisation-wide decision requiring a significant amount of work. The configuration of this plugin will require co-operation between the ResourceSpace hosting provider and the administrators of the Single Sign-On system. The instructions for configuring the plugin are basic and assume that the user already has a working IdP. The mapping between ResourceSpace and Wordpress user information is as follows: username -> display name, email -> email, and full name -> display name. ResourceSpace has CSRF protection enabled by default, and when configuring the Wordpress_SSO plugin, it is essential to ensure that ResourceSpace is whitelisting the IdP system.
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. The debug log can be enabled by changing $debug_log to true. The second method is to track variables from the System console area. The user can input the variable names they want to track and how long they should be tracked for. The third method is to use Xdebug, a PHP extension that provides debugging and profiling capabilities. Xdebug can be integrated into various IDEs such as Sublime Text and Visual Studio Code. The article suggests using a proper debugger like Xdebug for stepping through code to see precisely where an error occurs or for viewing the content of variables at run time. The article also provides examples of how to use the debug() function and debug_track_vars() function.
Checksums
Checksums are a sequence of numbers and letters that are produced by running a file through an algorithm that uses a cryptographic hash to create a unique identifier. Even the slightest change in the original file will produce a different checksum, making them useful for ensuring file integrity and preventing resource duplication. To enable checksums, users can add the code "$file_checksums = true;" to their config.php file. It is also possible to block duplicate files based on checksums, although this has a performance impact and is disabled by default. Users can enable this feature by adding "$file_upload_block_duplicates=true;" to their config.php file. However, this will not work reliably with $file_checksums_offline=true unless the checksum script is run frequently. Metadata can affect the checksum of a resource, so the same file with different embedded metadata will have a different checksum and will not be classed as a duplicate. Once enabled, newly uploaded resources will have their checksum generated automatically, and checksums can be retrospectively generated for previously uploaded resources by running the script "pages/tools/update_checksums.php --recreate." Users should consider how much of the file to generate checksums for and whether to generate checksums in real-time. The stored checksums can be viewed by choosing the "CSV export - metadata" option for any set of search results and selecting the "Include data from all accessible fields" option.
Track field history
The track field history plugin is a tool that allows users to easily view the history of metadata for a resource by breaking it down by field. Users can select which fields to track and a History link will be placed next to those fields on the resource details panel of the resource view page. This link allows users to see the log of all edits made to that field alone, removing the need to read through the entire resource log to find one change. All changes are timestamped and are shown as previous and new field values, along with the name of the user who made the edit. The plugin can be configured to track changes to any field type and group access options control which user groups are able to view the field history.
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. HTML2PDF is required by ResourceSpace to create PDFs. Custom templates can be used and should be in HTML with specific wildcards supported. These wildcards include the name of the ResourceSpace system, the URL of the ResourceSpace system in full, the URL of the ResourceSpace system without the base domain, the name of the PDF that is being generated, the date at the time of PDF generation, the resource type of the resource, the title of a metadata field, and the value of a metadata field. Current page number and the number of pages can also be included in the templates.
Exporting data
ResourceSpace allows users to export data and configuration files for testing purposes. This feature requires offline jobs to be configured and the config option $system_download_config to be enabled. Users can navigate to Admin > System > Export data to choose the options for the exported data. The options include obfuscating exported data, including resources and associated metadata from a collection ID, and creating separate SQL export files for each database table. Once the options are selected, users can click on Export and an offline job will be created. A system notification will be sent when the file is ready for download. The zip file will contain the config.php file and a mysql folder containing all the exported data as .sql files. These sql files can then be imported into another MySQL database. If users wish to download the database of their ResourceSpace system, they can navigate to pages/team/team_export.php where they can download a SQL or XML database dump file. The config option $mysql_bin_path will need to be set for this.
Access control
The article discusses access control and how it enforces policies to prevent users from acting outside of their intended permissions. Failures in access control can lead to unauthorized information disclosure, modification or destruction of data, or performing a business function outside of the limits of the user. The authentication process is handled by including the /include/authenticate.php file on every page that needs to be available to authenticated users. ResourceSpace provides access control using a group membership mechanism where a user can belong to only one user group at a particular point in time. Each user group has permissions to different parts/functions of the system, such as edit/view fields and download resources. The low-level function used to verify if a user has a particular permission is checkperm($perm).
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. Once uploaded, a URL to the video will be stored against the resource. To set up the plugin, users need to register ResourceSpace as an app with Vimeo and get an OAuth client ID and Secret. Users can publish to their own Vimeo account, and the first time they publish a video, they will be prompted to log in and grant ResourceSpace access. This Vimeo account will be stored against their ResourceSpace user account, although they can change this and use a new Vimeo account at any time. ResourceSpace can also be configured so that all users publish to the same Vimeo account. To set this up, users need to navigate to Admin > System > Plugins and click on the options link next to the Vimeo Publish plugin. They should then set the option 'Allow users to publish to their own Vimeo accounts' to 'false' and click on 'Set Vimeo account'. They will be prompted to log in to Vimeo if not already logged in and authorize ResourceSpace to access their Vimeo account.
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. To restore ResourceSpace to a new server, the user requires a full backup of the ResourceSpace database, a copy of the ResourceSpace filestore folder, a backup of the configuration file, and a server with ResourceSpace and dependencies installed. The restore steps include installing ResourceSpace on the new server, creating an empty database on the new server and importing the database backup into it, copying the filestore backup into the new ResourceSpace filestore, copying any settings from the config.php file across, and ensuring that the $scramble_key and $api_scramble_key settings are correct. The article also provides additional information on preventing character encoding issues and restoring the entire ResourceSpace directory.
Query caching
Query caching is a technique that can be used to cache the results of selected queries to disk. This is useful where the same query is likely to be called a large number of times, for example, queries that are common across several pages and the same for large groups of users. The disk cache files are in filestore/tmp/querycache, which is emptied completely by the cron task. If a cached result set is older than 30 minutes, it is discarded. The cache files are JSON encoded result sets, and the cache files filenames are scrambled using the scramble key. The query itself is stored in the JSON, and a final check is made to ensure there hasn't been a hash collision, and the cache is discarded in that event. Using the cache for a query is as simple as setting the $cache parameter on ps_query(), ps_value() or ps_array(). It should be set to the name of a cache group, such as "sitetext" or "themeimage" that broadly categorises the functionality. The cache for that area can then be flushed when edits/deletes/updates are made to that area via clear_query_cache().
Database schema
Database schema for ResourceSpace.
Project structure
A breakdown of the folders used within ResourceSpace, and their typical contents and function.
Fixed list fields
ResourceSpace has various metadata field types, including text boxes, check box lists, dropdown lists, date fields, category trees, and radio button lists. Some of these fields can have their options defined by an administrator of the system, and these fields are called fixed list fields. A fixed list field option is saved as a node internally, and its value is broken down into keywords using the add_node_keyword_mappings() function. All functions that affect nodes should live in include/node_functions.php. Whenever the code refers to a node, unless explicitly mentioned otherwise, always assume the node structure will be: ref, resource_type_field, name, parent, and orderby. The core node functions include set_node(), delete_node(), delete_nodes_for_resource_type_field(), get_node(), get_nodes(), is_parent_node(), get_tree_node_level(), get_root_node_by_leaf(), reorder_node(), reorder_nodes(), get_node_order_by(), add_node_keyword(), remove_node_keyword(), remove_all_node_keyword_mappings(), check_node_indexed(), add_node_keyword_mappings(), remove_node_keyword_mappings(), and get_nodes_from_keywords(). The core node functions must not check any form of access control as these functions are considered low level. From a data model perspective, the resource_type_field can have multiple nodes associated with it.
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. Before choosing download options, users may be required to accept terms and/or state their intended usage. On the download page, users will be given a number of options, including download size, use original if selected size is unavailable, include metadata CSV file to the archive, download file format, and embed resource metadata in the downloaded file(s). The download file creation will take place immediately while users wait on some systems, while on other systems, the file will be created in the background, and users will receive a system notification to let them know when the download is ready. The exact sequence and options available will vary depending on system configuration, and users should contact their system administrator for more information on their specific setup.
ResourceSpace plugin for WordPress
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. The ResourceSpace plugin should then be activated under the plugins menu. Users can add resources to their pages, posts or other custom content using shortcodes generated from the ResourceSpace panel within the admin section, or from the block or classic editor options. A ResourceSpace tab in the Media Library allows users to copy resources to the local server or to embed a resource using a generated shortcode. The shortcodes support CSS properties as arguments, if and when those need to be updated manually.
Sensitive image blurring
The sensitive image blurring plugin can blur selected images from users both in the results and on the resource view page. The plugin can be configured by enabling it and choosing a desired field for the "sensitive message" in the plugin's options page. The field will typically be a new field created specifically to store a message containing a warning message about the sensitive nature of the image. The message entered into the field will be shown on the view page. However, this functionality will only blur images on the resource view page and search page. Administrative and editing areas, and some other areas such as dash tiles, will not feature the blurred images. Additionally, the annotation and lightbox plugins, if enabled, override the areas of ResourceSpace that are used by this plugin, so the blurring will not work with either of those plugins enabled.
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. The Do One Thing and Do It Well principle advises against having a multi-purpose page or function, instead recommending a series of smaller, dedicated and focused functions and pages. The You Aren't Going to Need It principle advises against adding in placeholders, stubs, etc. to build groundwork for future functionality, which will likely never happen. Finally, the Don't Repeat Yourself principle advises against duplicating code, which adds technical debt and makes the code more complex to support. ResourceSpace acknowledges that its existing codebase does not always adhere to these principles, but it is always moving in the right direction by refactoring as necessary and peer reviewing new code.
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. The compatible file formats include .pdf, .doc, .docx, .txt, .html, .xlsx, .odt, .ods, and .odp.
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. When uploading, users select the resource type they wish to create and then choose the metadata template that best describes those resources. Only the fields relevant to the chosen type will be applied. To configure metadata templates, users must first create a new resource type and set the $metadata_template_resource_type option in config.php, adding the ID of the new type. This type should also be configured as a data-only resource type using the $data_only_resource_types option. Users should also configure a separate title field for the metadata templates, which is the template identifier, separate from a resource title. To create a new template, users must use sequence edit then upload, choose the new template resource type, and complete the metadata as required. The template will be created as a data-only resource. To test the template, users return to upload and select a resource type, then choose the template from the selector. The template resource type can be hidden by managing user group permissions to prevent users from accidentally creating new templates.
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. A designated user group is created with permissions that can be managed in the same way as familiar user groups, allowing users to determine which resources can be viewed, what metadata can be seen, or even to permit upload and download of resources. A single user is created and placed in the designated user group, with the username added to the $anonymous_login option in config.php. Once configured, a non-registered user can visit the ResourceSpace URL and view the resources permitted access to, without needing to enter user credentials. Users can also create a tailored welcome message and configure the view unregistered users have by hiding the login panel or hiding or displaying the default dash tiles.
Resources slow to create previews
The article provides solutions to two common issues that can arise when creating previews for videos. The first issue is that preview creation can take too long, causing the system to time out. To solve this, the article suggests disabling automatic preview creation upon upload and setting up offline preview creation using a crontab entry or scheduled task. The second issue is that preview generation for large video files can fail due to a large number of informational messages logged during the process. To reduce the level of informational/warning log entries, the article suggests including the parameter "-loglevel error" in the config entries $ffmpeg_global_options or $ffmpeg_preview_options. By implementing these solutions, users can speed up the preview creation process and make it more resilient.
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. The article provides the parameters required to make an API call, including the name of the API function, an array of named parameters to pass to the function, and an optional callback function that will be run once the API call has completed. The article also provides examples of how to use the api() function, including creating a new collection and selecting it in the collection bar, and retrieving the URL for the 'scr' size image preview for a resource ID and opening it in a new tab.
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. The URL of this page can be used in an application that processes RSS feed URLs. It is also possible to install browser extensions that can automatically detect when an RSS feed page is loaded and will automatically offer to add it to their RSS reader. If a user performs any search in ResourceSpace, they can create an RSS feed URL for the search results by selecting "Create RSS feed for this query" from the Actions dropdown at the top of the search results page. The plugin's configuration options include choosing the fields that will be included in the "description" XML node of the RSS feed, setting the time to live of the data, and showing the name of the field chosen from the "RSS fields" config option alongside the data.
Modals
Calling and using modals
get_users
The article provides information on the get_users function, which is used to retrieve a list of users. The function honours permissions, so users from other groups to which the user does not have access will be omitted. The function takes two variables, $find and $exact_username_match, which are used to search for a partial match on username and denote whether $find must be an exact username, respectively. The function returns an array of matching user records, including ID ("ref"), username, full name, and user group ID.
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. These options include $geo_leaflet_maps_sources, $map_usgstopo, $map_usgsimagery, $geo_leaflet_sources, $search_map_max_results, $map_zoomslider, $map_zoomnavbar, $map_default_cache, $map_layer_cache, $map_retina, $map_default, $marker_resource_preview, $marker_metadata_field, $marker_metadata_array, $map_kml, $map_kml_file, $geo_tile_caching, $geo_tile_cache_directory, $geo_tile_cache_lifetime, $hide_geolocation_panel, $geo_locate_collection, $geolocation_default_bounds, $view_mapheight, and $geo_search_restrict. The article provides a brief description of each option and its default value. For example, $map_zoomslider is set to true by default and enables the use of a zoom slidebar instead of standard +/- buttons. The article also includes an example of how to configure an array of minimum and maximum numeric values for custom map marker coloring.
Further videos
The article provides a list of videos that cover various topics related to using the ResourceSpace digital asset management system. The videos cover topics such as creating users, customizing the homepage slideshow, search filters, sharing resources, and more. The videos are organized into categories such as plugins, system administration, resource administration, and user guides. Each video is accompanied by a thumbnail image and a brief description of the topic covered. The videos are designed to provide users with step-by-step instructions on how to use the various features of ResourceSpace. The article is a useful resource for users who are new to ResourceSpace or who want to learn more about its features and capabilities.
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. One option available is to hide resource types on simple and advanced search, which will remove the ability to filter by resource type at the top of the search areas.
Consent manager
Adds the capability to manage resource licensing via the resource view page.
Mobile responsive mode
ResourceSpace, the open source digital asset management software, is now available on mobile devices. The software's interface automatically adjusts to account for the smaller screen, but the functionality remains the same. The simple search bar is available from every page, and the "More" button displays the usual search fields across the top of the page so users can filter by resource type. The resource view page displays metadata, image tools and download options for all image sizes as normal. To add resources to a collection, users can view the image and click "Add to collection" on the resource tools section. The selected collection can be expanded using the tab on the right of the screen and will display the resource thumbnails when open. More advanced options like the Admin menu and user preferences are accessed from the user icon at the top of the page. The "Menu" option reveals the header links users would usually see, such as "Recent" and "Featured collections".
get_system_status
The get_system_status API provides system status information, which is configuration-dependent, such as mysql_log_transactions. The API does not require any parameters. The API returns a JSON object that contains the system status information. The JSON object contains a "results" field that contains the status information for various components of the system, such as quota_limit, version, svn, plugins, and recent_user_count. Each component has a status field that indicates whether the component is OK or not. If a component is not OK, the JSON object contains an info field that provides additional information about the problem. The JSON object also contains a "status" field that indicates whether the overall system status is OK or not. If the overall system status is not OK, the JSON object contains a "results" field that provides additional information about the problem.
E-commerce and PayPal
This article provides a guide to setting up a PayPal account for e-commerce testing purposes. The article explains how to register a regular PayPal account and access the PayPal developer portal. The PayPal sandbox is a special environment that allows test accounts to be set up for e-commerce, and it is attached to the primary account. The sandbox creates two sandbox accounts: a personal account and a business account. The personal account belongs to a ResourceSpace user who will be making resource purchases, and the business account belongs to the organization that owns the RS website. Funds will be credited to the business account via the PayPal sandbox from RS users who have purchased resources. The article also explains how to log into the PayPal business sandbox account to set up Instant Payment Notifications. Finally, the article explains how to switch PayPal from sandbox to production, which involves preparing the production business PayPal account to receive payments and changing the configuration to point to production PayPal.
System reset
The article describes the use of the System Reset plugin in ResourceSpace, which allows users to completely reset their installation by deleting all files and data. To activate the plugin, users must select System then Plugins from the top right menu, and then select the System Reset option from the System menu. Once the plugin is activated, users can click the button to permanently erase all files and data. This plugin can be useful for users who want to start fresh with their ResourceSpace installation or who are experiencing issues that cannot be resolved through other means.
Configuring Expiry date field
The article explains how to configure an expiry date field in a system to help users know when a particular resource has expired and should no longer be used. The expiry date field type can be set by selecting "Expiry date" in the field type option. Users can be notified of expired resources by calling the /batch/expiry_notification.php script on a regular basis, which will notify all resource administrators. System administrators can also configure the system to send a notification X days prior to expiry to all users who have ever downloaded those resources. The configuration option is $notify_on_resource_expiry_days, which can be set to any number of days before the expiry date. The article also includes an image of an expired date message that can be displayed to users when a resource has expired.
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.
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. From version 10, the new send_user_notification() function should be used instead. The article outlines the steps to take when sending a notification, including creating a new ResourceSpaceUserNotification instance, setting the notification subject, setting the main notification text, setting the related notification URL, checking a user preference that must be set if notification is to be sent, setting the email template to use, setting email template variables, and sending the notification. The article also highlights the importance of understanding that for any language strings in the notification subject and text to be correctly translated when sending, these strings must not be added to the notification by referencing the $lang array as usual but should instead be built up using component parts.
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. They work exactly the same way as the functions they replace except they have a new second parameter, which is used to pass in parameters to use in the SQL. Using these functions means a prepared statement is used for query execution when parameters are passed also, which is faster and much more secure. Parameters passed in must NOT be escaped and quotes must not be used around parameters in SQL. The new second parameter takes the form of an array which has the values type, parameter, type, parameter and so on, with type being one of: i - integer, d - double, s - string, b - BLOB. There are also a couple of helper functions that remove some of the potential repetitiveness that can exist with prepared statements.
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. The plugin can be enabled in the Plugin Manager, and an example configuration is provided in the config folder. The plugin supports two buttons, which are displayed to the user on the resource edit page in the bottom bar with the existing "Save" button, right-aligned with the configured label text. When pressed, the configured URL is accessed via a POST request. Any updated information on the resource form is saved prior to the POST request, ensuring any new data entered by the user is used. The plugin can be used to integrate ResourceSpace with a third-party Collections Management System, where a field contains the remote CMS ID. The user can enter a value in this field, and a button labelled "Fetch object data from CMS" is configured to call a third-party script that uses the ResourceSpace API to fetch the just-entered CMS ID using the provided ResourceSpace resource ID, uses the CMS API to fetch metadata as appropriate, and uses the ResourceSpace API to update the ResourceSpace resource record with the fetched CMS metadata.
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. However, important related resources of specific resource types can be configured to appear alongside the current resource metadata by adding the resource type ID to the system configuration variable $related_type_show_with_data. The related resource can also be set to appear in a metadata tab, and the allocated tab for each resource type is defined by the "Tab name" option on the resource type configuration page. Once configured, users can link-click through to the related resource from its "Title," displayed on the allocated tab in the image metadata. To make it easier to upload resources of a commonly related type directly from the primary resource, a link will appear alongside the related resources that will set the appropriate resource type and return the user to the current resource once the upload is completed. The article also explains how to show related resources alongside metadata as thumbnails.
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. However, it is not part of, or affiliated with ResourceSpace. If you are running your own ResourceSpace server, integrating Uppy Companion requires you to set up and manage a new Companion service in addition to ResourceSpace. You will need to perform additional steps for each service provider you want to enable. There are numerous configurations possible for running Companion and the method you choose will depend on your own organisational processes and preferences. The steps to set up the Companion server can be found on the Uppy Companion website. Once you have completed the Companion server setup, you will need to update your ResourceSpace configuration to link to it by adding the lines as below. If you try to enable providers that the companion server has not been configured with, your users will encounter errors should they select that option.
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. Parameters are grouped in categories such as User interface, Search, and Security. Users can also override some of these options by changing their user preferences through the user menu. New in version 10.2, the search function enables partial matches for a parameter label to be found, and there is a checkbox to filter the results to show only those which have been changed previously. The options in the System Configuration Page complement those configured in config.php, which requires access to the server. Over time, further options are expected to be added to the System Configuration Page.
What is Digital Asset Management?
Explore the world of Digital Asset Management (DAM) and its pivotal role in organising and securing digital assets. Dive into its benefits, practical applications, and how it streamlines the asset management process.
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. To assess whether your organization needs a DAM system, you can complete a personalized DAM assessment consisting of 21 questions. Once you answer these questions, you will receive a personalized report detailing how a DAM system can fit into your organization and solve specific challenges. If you want to try out a full version of ResourceSpace, a DAM system, you can download it for free. The assessment covers various aspects of your organization, such as its name, sector, number of employees requiring access to digital assets, estimated budget and timeline for DAM implementation, types of digital assets used, current methods of managing and organizing digital assets, time spent searching for assets, collaboration with teams or departments, issues with version control or outdated assets, importance of brand consistency, compliance or regulatory requirements, tracking usage and rights/licenses, sharing assets with external stakeholders, and dedicated team or person responsible for managing digital assets. The assessment also includes questions about DAM features and preferences, such as automating tasks, integrating with third-party software, and user-friendly interface and search functionality.
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. If the upload is successful, a 204 HTTP status will be returned. However, if there are any issues, different HTTP statuses will be returned along with a payload message describing the problem. Examples of possible errors include general errors, file size too big errors, and duplicate file errors. The article also provides examples of how to make a request using PHP and cURL. In the PHP example, the private API key and username need to be set, and the API binding query data needs to be formulated. The query is then signed using the private key, and the request is made using cURL. The cURL example shows how to generate the signature and make the request using cURL.
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". The feature works well as a compliment to other ways to track the popularity of a resource.
get_resource_type_fields
The "get_resource_type_fields" function allows users to retrieve metadata field information for all matching fields. This function is available from version 10.3+ and requires permission "a". Users can filter the results by resource type, fuzzy searching, and field type. The response will include the information of the matching fields or a 403 HTTP status if the user is not authorized. An example response is provided, which includes information about a specific field such as its reference number, name, title, field type, order, and other properties.
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. For Linux systems, the cron job can be set up by editing the /etc/cron.d/resourcespace file. The path to the cron_copy_hitcount file and the schedule should be adjusted as needed. The lines to be added should include the path to the PHP executable and the command to run the cron_copy_hitcount.php file. For Windows systems, the Windows Task Scheduler utility can be used. The action should be set to "Start a program" and the program/script should be set to the path of the PHP executable. The arguments should include the path to the cron_copy_hitcount.php file. The user used for the task should have the same level of access as the web server application pool user. By setting up these scheduled tasks or cron jobs, ResourceSpace will be able to send notifications and perform regular tasks as required.
A Comprehensive Guide to Digital Curation: Tools and Techniques
Explore the world of digital curation. Learn about the concepts, tools, and techniques used to curate and preserve historical and culturally significant assets.
How do I delete resources from the system permanently?
To permanently delete resources from ResourceSpace, follow these steps: 1. Add the resources you want to remove to your collection. 2. From the "Actions" menu, choose "Delete all resources". 3. This action will move the resources to the "Deleted" workflow state. 4. Admins can access the deleted state by selecting "Deleted" in the "Status" area or clicking "Deleted" in the "Workflow" tab within the Browse bar. 5. Once in the "Deleted" area, repeat step 1 to permanently remove the selected resources. This two-step process ensures that resources are not accidentally deleted and provides a secure way to permanently remove them from the system.
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. Metadata is the lifeblood of a Digital Asset Management (DAM) system and is just as important as the content itself. It defines the value of an asset by providing all the necessary information about it. For example, metadata can provide historical context for a digital image of an ancient artifact, making it valuable. Unlike file storage solutions like Google Drive or Microsoft Sharepoint, DAM systems use metadata to enhance search functionality. There are three primary categories of metadata: structural, descriptive, and administrative. Structural metadata describes the file itself, including its format, size, and creation date. Descriptive metadata defines the contents of an asset, such as keywords and descriptions. Administrative metadata helps manage assets by providing information on governance, access controls, copyright, and license agreements. Administrative metadata ensures compliance with copyright and privacy laws and prevents unauthorized use of assets.
Navigating Consent and Digital Asset Management
Consent is not just limited to personal contact information or medical records; it also applies to artwork, photos, and videos where a person is identifiable. Digital asset managers need to have robust consent policies and procedures in place to comply with regulations and protect the privacy of individuals. There are six legal bases for processing personal information, and obtaining consent is one of them. Consent refers to when an individual gives clear permission for an organization to process their personal data for a specific purpose. The other legal bases include contract, legal obligations, vital interests, public task, and legitimate interests. Consent must be freely given, specific, informed, and unambiguous. To be considered a "genuine choice," individuals must be able to refuse consent without any negative consequences. For example, if consent is required for a purchase but not necessary for processing the order, it is not considered freely given. Digital asset managers must ensure that individuals have a genuine choice and control over how their data is used.
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. The ref column is an auto-incrementing index, while the name column is the display name of the collection. The user column is the ID of the user who created the collection, and the created column is the date and time the collection was created. The public column is set to 1 for public and featured collections, while the theme, theme2, and theme3 columns are used for multi-level featured collections. The allow_changes column indicates whether changes are allowed in the collection, while the cant_delete column prevents the collection from being deleted. The keywords column contains optional keywords entered by the user, and the type column indicates the collection type, such as public, featured, upload, or select. The parent column is used for collections existing within a tree structure, such as featured collections. The thumbnail_selection_method column indicates how thumbnails are selected for the collection, while the bg_img_resource_ref column contains the resource ID of the preview image.
Table: collection_keyword
The collection_keyword table is a join table that connects collections with keywords to enable rapid collection searching. It contains two columns: collection and keyword, both of which are of type int(11). The collection column is linked to the collection table, while the keyword column is linked to the keyword table. This table is empty by default and is used to index collections for faster searching. The schema overview provides more context for this table and was last updated on March 27, 2023, at 15:35 (Europe/London time).
Table: collection_log
The collection_log table is a log of all activity related to a collection. It contains an auto-incrementing index, date, user, collection, type, resource, and notes. The user and collection columns reference the user and collection tables, respectively, while the resource column references the resource table. The type column indicates the type of activity, with possible values defined in the include/definitions.php file. The notes column contains any additional notes related to the activity. This table is empty by default and is part of the ResourceSpace database schema. The schema overview provides additional context for the table and was last updated on March 27, 2023, at 15:35 (Europe/London time).
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. The table is empty by default, and the article provides a link to the schema overview for context.
Table: filter
This article provides a table definition for the "filter" table, which is used for search, edit, and derestrict filters on user groups. The table has three columns: "ref," which is an auto-incrementing index; "name," which is the name of the filter; and "filter_condition," which defines which rules must be met to satisfy the filter. The "filter_condition" column has three possible values: RS_FILTER_ALL, RS_FILTER_NONE, and RS_FILTER_ANY. The table is empty by default, and the article provides a link to a schema overview for context. The article was last updated on March 27, 2023, at 15:35 (Europe/London time).
Table: job_queue
The job_queue table is a list of active offline jobs such as preview processing. It contains several columns, including ref, which is an auto-incrementing index, type, which is the job type, job_data, which is the JSON-encoded job data, start_date, which is the earliest time to start the job, user, which is the user ID, status, which is the job status code, success_text, which is the text to include in the message if the job completes successfully, failure_text, which is the text to include in the message if the job fails, job_code, which is a unique hash used to prevent duplicate jobs, and priority, which is the job priority. The job_queue table is empty by default, and it can be used to create custom job types by plugins that include a handler. The schema overview provides more context, and the document was last updated on March 27, 2023, at 15:35 (Europe/London time).
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. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )
Table: keyword_related
The "keyword_related" table defines related keywords in ResourceSpace. When a keyword is searched for, related keywords are also searched for. The table has two columns: "keyword" and "related". The "keyword" column is of type int(11) and refers to the "keyword" table. The "related" column is also of type int(11) and contains the ID of the related keyword. The table is empty by default. The schema overview provides context for the table and was last updated on March 27, 2023, at 15:35 (Europe/London time).
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. The "message" column is a medium text column that contains the message text, and the "url" column is a text column that contains the message URL, which appears as a link with the message and in the message list. The "expires" column is a datetime column that contains the message expiration date. The "related_activity" column is used with the "related_ref" column to link system-generated messages to a user account request, so that all related messages can be deleted once the account is approved. The "type" column denotes various types of messages, such as user messages and screens, and is defined by the enabled bits. The table is empty by default, and the schema overview provides more context.
Table: node_keyword
Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 12343 tokens. Please reduce the length of the messages. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )
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. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )
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. The ref column is an auto-incrementing index, while the user column refers to the user table. The send_all_users column is deprecated and has been replaced by the email_notify_usergroups or Super Admin if the config option isn't set. The user_groups column is a list of user groups subscribed to receive the report, while the report column refers to the report table. The period column indicates the reported period, while the email_days column specifies how often the report should be emailed. The last_sent column stores the date the report was last emailed to users, while the search_params column holds the JSON-encoded search parameters for reports that apply to search results. The table is empty by default, and users can subscribe to receive reports by configuring their settings in ResourceSpace.
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. The table provides information on the various attributes of a resource, such as its metadata, access level, file size, and preview image. The article notes that the table is empty by default and provides a link to the schema overview for more context.
Table: resource_alt_files
The article provides information about the "resource_alt_files" table in ResourceSpace, which is used to store alternative files for a resource. The table contains columns such as "ref" (an auto-incrementing index), "resource" (a reference to the main resource), "name" (the name of the alternative file), "description" (a description of the alternative file), "file_name" (the name of the file), "file_extension" (the file extension), "file_size" (the size of the file), "creation_date" (the date the file was created), "unoconv" (a flag indicating whether the file has been processed by ResourceSpace's unoconv extension), "alt_type" (the type of alternative file), and "page_count" (the total number of pages in a multi-page document). The table is empty by default and is part of the ResourceSpace database schema. The article also provides a link to the schema overview for more context and notes that the information was last updated on March 27, 2023, at 15:35 (Europe/London time).
Table: resource_custom_access
The article provides information about the resource_custom_access table in ResourceSpace, which defines custom access for a resource. This table contains four columns, including resource, usergroup, user, access, and user_expires. The resource column is an integer that refers to the resource table, while the usergroup column is an integer that represents the user group ID. The user column is an integer that refers to the user table, and the access column is an integer that represents the custom access level. The available options for the access column are 0 - Open, 1 - Restricted, and 2 - Confidential. The user_expires column is a date that indicates when the custom access expires. This table is empty by default, and it is used to restrict access to a resource for a specific user group or user. The article also provides a link to the schema overview for context and was last updated on March 27, 2023, at 15:35 (Europe/London time).
Table: resource_keyword
The article provides information about the "resource_keyword" table, which is used to store indexed keywords for free text metadata. The table has six columns, including "resource," which is a foreign key referencing the "resource" table, and "keyword," which is a foreign key referencing the "keyword" table. The "hit_count" column stores the live hit count, which is copied from the "new_hit_count" column. The "position" column stores the position of the keyword in the indexed string for advanced searching, while the "resource_type_field" column is a foreign key referencing the "resource_type_field" table. The "new_hit_count" column is used to increment the hit count for each matching keyword in a search, without affecting existing results. The article notes that the table is empty by default and provides a link to the schema overview for more context.
Table: resource_log
The resource_log table is used to log all activity related to a resource in ResourceSpace. It contains an auto-incrementing index, the date the log was recorded, the user who performed the action, the resource that was affected, the type of log, and any notes related to the log. The table also includes a diff column that shows the difference between the old value and the new value, as well as columns for the resource download usage option, purchase size, purchase price, access key, and previous value. This table is empty by default and is used to track changes made to resources in ResourceSpace. The schema overview provides more context for this table and was last updated on March 27, 2023, at 15:35 (Europe/London time).
Table: resource_node
The resource_node table in ResourceSpace links fixed metadata nodes with resources to store metadata for fixed metadata types such as dropdowns. The table has three columns: resource, node, and hit_count. The resource column is an integer that refers to the resource table, while the node column is an integer that refers to the node table. The hit_count column is an integer that stores the live hit count, which is copied from the new_hit_count column. The new_hit_count column is an integer that increments the hit count for each matching keyword in a search, so existing results are not affected. The table is empty by default. The schema overview provides context for the table and was last updated on March 27, 2023, at 15:35 (Europe/London time).
Table: resource_type
This article provides a table of the resource_type database schema used in ResourceSpace, a digital asset management system. The resource_type table contains information about the types of resources, such as photo, video, or case study, and determines the metadata fields that a resource has. The table includes columns such as ref, which is an auto-incrementing index, name, which is the resource type name, allowed_extensions, which is a list of allowed extensions for the resource type, and order_by, which is the order defined by the administrators. Other columns include config_options, tab_name, push_metadata, inherit_global_fields, colour, icon, and tab. The default contents of the table include four resource types: photo, document, video, and audio. The article also provides a link to the schema overview for context and notes that the document was last updated on March 27, 2023, at 15:35 (Europe/London time).
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. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )
Table: site_text
The site_text table is used to store any custom site text that the user has entered, replacing that stored in the language folder. The table has six columns: page, name, text, ref, language, and specific_to_group. The page column indicates the page that the text relates to, excluding the .php extension. The name column indicates the name of the text string, while the text column contains the text itself. The ref column is an auto-incrementing index, while the language column indicates the language code of the text, such as 'en', 'no', or 'jp'. The specific_to_group column is the ID of the user group to use the text for, and the custom column indicates whether the text is a custom text or a core text string. The table is empty by default, and it is part of the ResourceSpace database schema.
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. The table also includes fields for the user's preferred language, account creation date, and any hidden collections. Additionally, the table includes fields for password reset links, antispam codes, and CSRF tokens, although these are not currently in use. The "user" table is empty by default and is part of the ResourceSpace database schema, which can be accessed by developers for context.
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. Other columns include "parent," which allows for group hierarchy and for groups to manage subgroups, "ip_restrict," which is a list of IP addresses that users can log in from, and "request_mode," which indicates how resource requests are handled for the group. The table also includes default contents for several user groups, including Administrators, General Users, Super Admin, Archivists, and Restricted Users. The article notes that the table is part of the schema overview and was last updated on March 27, 2023, at 15:35 (Europe/London time).
Table: tab
This article provides information about the "tab" table, which is used for organising metadata fields on the edit and view pages. The table has three columns: "ref", which is an auto-incrementing index; "name", which is a varchar(255) type; and "order_by", which is an integer type. The default contents of the table include a single row with a "ref" value of 1, a "name" value of "Default", and an "order_by" value of 10. The article also includes a link to the schema overview for context and notes that the document was last updated on March 27, 2023, at 15:05 (Europe/London time).
compile_collection_actions()
Developer reference for function compile_collection_actions()
render_actions()
Developer reference for function render_actions()
get_geolibraries()
Description Definition of providers. see http://leafletjs.com/reference.html#tilelayer for options in the options map. L.TileLayer.Provider.providers = { <?php foreach($geo_leaflet_sources as $leaflet_source) { echo htmlspecialchars($leaflet_source["code"]) .
OpenCV (facial recognition)
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. The article also suggests creating a cron job or a new scheduled task to run the facial recognition trainer on a regular basis.
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. The article explains that CSRF attacks specifically target state-changing requests, not theft of data, since the attacker has no way to see the response to the forged request. The article also explains that CORS is a mechanism that uses additional HTTP headers to let a user agent gain permission to access selected resources from a server on a different origin (domain) than the site currently in use. The article provides configuration options for CSRF and CORS, including enabling CSRF, defining the name of the query string parameter used for CSRF token validation, and allowing other systems to make cross-origin requests. The article concludes that configuring CSRF and CORS can help protect web applications from attacks.
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. Historically resources have been distributed in an uneven fashion throughout the filestore. Resources with IDs beginning with 1 will be located below filestore/1, resources beginning with 2 will be located under filestore/2 etc. As a result most systems have a far greater number of resources located in the lower numbered folders and this has made it difficult for server administrators to separate the filestore in order to spread it over a number of drives. ResourceSpace allows you to change this by setting the configuration option. On a Unix system, you can change the location of the filestore by simply creating a symbolic link named 'filestore' in the root of your ResourceSpace installation that points to another folder on the server. On a Windows system, it may be easier to use the config options $storagedir and $storageurl instead. By enabling the config option $originals_separate_storage and running the script at pages/tools/filestore_separation.php the filestore will be split into two folders - "original" and "resized".
Custom fields ("user" defined)
ResourceSpace, a digital asset management system, allows users to configure custom fields. These fields can be used to add additional metadata to assets, such as images or documents, and can be used to filter and search for specific assets. Custom fields can be created using an array structure that includes an ID, title, type, required status, and options. The ID is a unique number used to generate HTML properties, while the title is the label that is rendered. The type is the field type, and the required status indicates whether the field is mandatory. The options key is required if the type is part of the fixed list field types and is a list of options. If a field is missing any of the required keys, it will be dropped from the list of fields upon validation. To use custom fields, the process_custom_fields_submission() function is used to prepare default values or return posted data for each field. The render_custom_fields() function is then used to display the custom fields based on their type. If the type is not supported, the field will be displayed as a single-line text box.
get_user_actions()
Developer reference for function get_user_actions()
get_editable_resource_sql()
Developer reference for function get_editable_resource_sql()
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_permission_denied()
Developer reference for function ajax_permission_denied()
ajax_send_response()
Developer reference for function ajax_send_response()
ajax_send_text_response()
Developer reference for function ajax_send_text_response()
ajax_response_ok()
Developer reference for function ajax_response_ok()
ajax_response_fail()
Developer reference for function ajax_response_fail()
ajax_response_ok_no_data()
Developer reference for function ajax_response_ok_no_data()
ajax_unauthorized()
Developer reference for function ajax_unauthorized()
ajax_build_message()
Developer reference for function ajax_build_message()
getAnnotation()
Developer reference for function getAnnotation()
getAnnotations()
Developer reference for function getAnnotations()
getResourceAnnotationsCount()
Developer reference for function getResourceAnnotationsCount()
getResourceAnnotations()
Developer reference for function getResourceAnnotations()
getAnnotoriousResourceAnnotations()
Developer reference for function getAnnotoriousResourceAnnotations()
annotationEditable()
Developer reference for function annotationEditable()
getAnnotationTags()
Developer reference for function getAnnotationTags()
deleteAnnotation()
Developer reference for function deleteAnnotation()
createAnnotation()
Developer reference for function createAnnotation()
updateAnnotation()
Developer reference for function updateAnnotation()
addAnnotationNodes()
Developer reference for function addAnnotationNodes()
prepareTags()
Developer reference for function prepareTags()
get_api_key()
Developer reference for function get_api_key()
check_api_key()
Developer reference for function check_api_key()
execute_api_call()
Developer reference for function execute_api_call()
iiif_get_canvases()
Developer reference for function iiif_get_canvases()
iiif_get_thumbnail()
Developer reference for function iiif_get_thumbnail()
iiif_get_image()
Developer reference for function iiif_get_image()
iiif_error()
Developer reference for function iiif_error()
get_user_collections()
Developer reference for function get_user_collections()
get_collection()
Developer reference for function get_collection()
get_collection_resources()
Developer reference for function get_collection_resources()
get_collection_resources_with_data()
Developer reference for function get_collection_resources_with_data()
add_resource_to_collection()
Developer reference for function add_resource_to_collection()
remove_resource_from_collection()
Developer reference for function remove_resource_from_collection()
collection_writeable()
Developer reference for function collection_writeable()
collection_readable()
Developer reference for function collection_readable()
set_user_collection()
Developer reference for function set_user_collection()
create_collection()
Developer reference for function create_collection()
delete_collection()
Developer reference for function delete_collection()
refresh_collection_frame()
Developer reference for function refresh_collection_frame()
add_collection()
Developer reference for function add_collection()
remove_collection()
Developer reference for function remove_collection()
index_collection()
Developer reference for function index_collection()
save_collection()
Developer reference for function save_collection()
get_max_theme_levels()
Developer reference for function get_max_theme_levels()
get_theme_headers()
Developer reference for function get_theme_headers()
themes_comparator()
Developer reference for function themes_comparator()
collections_comparator()
Developer reference for function collections_comparator()
collections_comparator_desc()
Developer reference for function collections_comparator_desc()
get_themes()
Developer reference for function get_themes()
get_smart_theme_headers()
Developer reference for function get_smart_theme_headers()
get_smart_themes_nodes()
Developer reference for function get_smart_themes_nodes()
email_collection()
Developer reference for function email_collection()
generate_collection_access_key()
Developer reference for function generate_collection_access_key()
add_smart_collection()
Developer reference for function add_smart_collection()
allow_multi_edit()
Developer reference for function allow_multi_edit()
get_theme_image()
Developer reference for function get_theme_image()
swap_collection_order()
Developer reference for function swap_collection_order()
update_collection_order()
Developer reference for function update_collection_order()
get_collection_resource_comment()
Developer reference for function get_collection_resource_comment()
save_collection_resource_comment()
Developer reference for function save_collection_resource_comment()
relate_to_collection()
Developer reference for function relate_to_collection()
get_mycollection_name()
Developer reference for function get_mycollection_name()
get_collection_comments()
Developer reference for function get_collection_comments()
send_collection_feedback()
Developer reference for function send_collection_feedback()
copy_collection()
Developer reference for function copy_collection()
add_to_collection_link()
Developer reference for function add_to_collection_link()
remove_from_collection_link()
Developer reference for function remove_from_collection_link()
change_collection_link()
Developer reference for function change_collection_link()
get_collection_external_access()
Developer reference for function get_collection_external_access()
delete_collection_access_key()
Developer reference for function delete_collection_access_key()
collection_log()
Developer reference for function collection_log()
get_collection_log()
Developer reference for function get_collection_log()
get_collection_videocount()
Developer reference for function get_collection_videocount()
collection_max_access()
Developer reference for function collection_max_access()
collection_min_access()
Developer reference for function collection_min_access()
collection_set_public()
Developer reference for function collection_set_public()
collection_set_private()
Developer reference for function collection_set_private()
collection_set_themes()
Developer reference for function collection_set_themes()
remove_all_resources_from_collection()
Developer reference for function remove_all_resources_from_collection()
get_home_page_promoted_collections()
Developer reference for function get_home_page_promoted_collections()
is_collection_approved()
Developer reference for function is_collection_approved()
edit_collection_external_access()
Developer reference for function edit_collection_external_access()
show_hide_collection()
Developer reference for function show_hide_collection()
get_session_collections()
Developer reference for function get_session_collections()
update_collection_user()
Developer reference for function update_collection_user()
makeFilenameUnique()
Developer reference for function makeFilenameUnique()
new_featured_collection_form()
Developer reference for function new_featured_collection_form()
get_last_resource_edit()
Developer reference for function get_last_resource_edit()
GetThemesFromRequest()
Developer reference for function GetThemesFromRequest()
collection_download_get_archive_file()
Developer reference for function collection_download_get_archive_file()
collection_download_use_original_filenames_when_downloading()
Developer reference for function collection_download_use_original_filenames_when_downloading()
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()
update_zip_progress_file()
Developer reference for function update_zip_progress_file()
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_csv_metadata_file()
Developer reference for function collection_download_process_csv_metadata_file()
collection_download_process_command_to_file()
Developer reference for function collection_download_process_command_to_file()
collection_download_process_collection_download_name()
Developer reference for function collection_download_process_collection_download_name()
collection_download_process_archive_command()
Developer reference for function collection_download_process_archive_command()
collection_download_clean_temp_files()
Developer reference for function collection_download_clean_temp_files()
collection_cleanup_inaccessible_resources()
Developer reference for function collection_cleanup_inaccessible_resources()
relate_all_collection()
Developer reference for function relate_all_collection()
update_collection_type()
Developer reference for function update_collection_type()
get_user_selection_collection()
Developer reference for function get_user_selection_collection()
delete_old_collections()
Developer reference for function delete_old_collections()
comments_submit()
Developer reference for function comments_submit()
comments_show()
Developer reference for function comments_show()
validate_field()
Developer reference for function validate_field()
render_select_option()
Developer reference for function render_select_option()
render_bool_option()
Developer reference for function render_bool_option()
render_text_option()
Developer reference for function render_text_option()
set_config_option()
Developer reference for function set_config_option()
get_config_option()
Developer reference for function get_config_option()
get_config_option_users()
Developer reference for function get_config_option_users()
get_config_options()
Developer reference for function get_config_options()
process_config_options()
Developer reference for function process_config_options()
config_clean()
Developer reference for function config_clean()
config_html()
Developer reference for function config_html()
config_add_html()
Developer reference for function config_add_html()
config_text_input()
Developer reference for function config_text_input()
config_add_text_input()
Developer reference for function config_add_text_input()
config_file_input()
Developer reference for function config_file_input()
config_colouroverride_input()
Developer reference for function config_colouroverride_input()
config_add_file_input()
Developer reference for function config_add_file_input()
config_single_select()
Developer reference for function config_single_select()
config_add_single_select()
Developer reference for function config_add_single_select()
config_boolean_select()
Developer reference for function config_boolean_select()
config_add_boolean_select()
Developer reference for function config_add_boolean_select()
config_checkbox_select()
Developer reference for function config_checkbox_select()
config_add_checkbox_select()
Developer reference for function config_add_checkbox_select()
config_add_colouroverride_input()
Developer reference for function config_add_colouroverride_input()
config_add_single_ftype_select()
Developer reference for function config_add_single_ftype_select()
config_single_ftype_select()
Developer reference for function config_single_ftype_select()
config_generate_AutoSaveConfigOption_function()
Developer reference for function config_generate_AutoSaveConfigOption_function()
config_process_file_input()
Developer reference for function config_process_file_input()
config_generate_html()
Developer reference for function config_generate_html()
config_merge_non_image_types()
Developer reference for function config_merge_non_image_types()
get_header_image()
Developer reference for function get_header_image()
config_register_core_fieldvars()
Developer reference for function config_register_core_fieldvars()
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()
delete_dash_tile()
Developer reference for function delete_dash_tile()
revoke_all_users_flag_cascade_delete()
Developer reference for function revoke_all_users_flag_cascade_delete()
append_default_position()
Developer reference for function append_default_position()
reorder_default_dash()
Developer reference for function reorder_default_dash()
update_default_dash_tile_order()
Developer reference for function update_default_dash_tile_order()
get_tile()
Developer reference for function get_tile()
all_user_dash_tile_active()
Developer reference for function all_user_dash_tile_active()
existing_tile()
Developer reference for function existing_tile()
cleanup_dash_tiles()
Developer reference for function cleanup_dash_tiles()
checkTileConfig()
Developer reference for function checkTileConfig()
checkConfigCustomHomePanels()
Developer reference for function checkConfigCustomHomePanels()
get_alluser_available_tiles()
Developer reference for function get_alluser_available_tiles()
get_default_dash()
Developer reference for function get_default_dash()
get_managed_dash()
Developer reference for function get_managed_dash()
add_usergroup_dash_tile()
Developer reference for function add_usergroup_dash_tile()
append_usergroup_position()
Developer reference for function append_usergroup_position()
reorder_usergroup_dash()
Developer reference for function reorder_usergroup_dash()
update_usergroup_dash_tile_order()
Developer reference for function update_usergroup_dash_tile_order()
build_usergroup_dash()
Developer reference for function build_usergroup_dash()
get_tile_user_groups()
Developer reference for function get_tile_user_groups()
get_usergroup_available_tiles()
Developer reference for function get_usergroup_available_tiles()
get_usergroup_tile()
Developer reference for function get_usergroup_tile()
add_user_dash_tile()
Developer reference for function add_user_dash_tile()
get_user_tile()
Developer reference for function get_user_tile()
create_new_user_dash()
Developer reference for function create_new_user_dash()
update_user_dash_tile_order()
Developer reference for function update_user_dash_tile_order()
delete_user_dash_tile()
Developer reference for function delete_user_dash_tile()
empty_user_dash()
Developer reference for function empty_user_dash()
reorder_user_dash()
Developer reference for function reorder_user_dash()
append_user_position()
Developer reference for function append_user_position()
get_user_available_tiles()
Developer reference for function get_user_available_tiles()
get_user_dash()
Developer reference for function get_user_dash()
render_delete_dialog_JS()
Developer reference for function render_delete_dialog_JS()
parse_dashtile_link()
Developer reference for function parse_dashtile_link()
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()
get_tile_custom_style()
Developer reference for function get_tile_custom_style()
delete_usergroup_dash_tile()
Developer reference for function delete_usergroup_dash_tile()
allowPromotedResources()
Developer reference for function allowPromotedResources()
render_upgrade_available_tile()
Developer reference for function render_upgrade_available_tile()
generate_dash_tile_toolbar()
Developer reference for function generate_dash_tile_toolbar()
check_debug_log_override()
Developer reference for function check_debug_log_override()
create_debug_log_override()
Developer reference for function create_debug_log_override()
debug_function_call()
Developer reference for function debug_function_call()
rsEncrypt()
Developer reference for function rsEncrypt()
rsDecrypt()
Developer reference for function rsDecrypt()
initFacialRecognition()
Developer reference for function initFacialRecognition()
prepareFaceImage()
Developer reference for function prepareFaceImage()
faceRecognizerPredict()
Developer reference for function faceRecognizerPredict()
safe_file_name()
Developer reference for function safe_file_name()
generateUserFilenameUID()
Developer reference for function generateUserFilenameUID()
isPathWhitelisted()
Developer reference for function isPathWhitelisted()
get_checksum()
Developer reference for function get_checksum()
get_stats_activity_types()
Developer reference for function get_stats_activity_types()
get_all_site_text()
Developer reference for function get_all_site_text()
send_mail()
Developer reference for function send_mail()
pager()
Developer reference for function pager()
filesize_unlimited()
Developer reference for function filesize_unlimited()
get_temp_dir()
Developer reference for function get_temp_dir()
xml_entities()
Developer reference for function xml_entities()
sortmulti()
Developer reference for function sortmulti()
txt2html()
Developer reference for function txt2html()
rs_setcookie()
Developer reference for function rs_setcookie()
tail()
Developer reference for function tail()
emptyiszero()
Developer reference for function emptyiszero()
job_queue_add()
Developer reference for function job_queue_add()
job_queue_update()
Developer reference for function job_queue_update()
job_queue_delete()
Developer reference for function job_queue_delete()
job_queue_get_jobs()
Developer reference for function job_queue_get_jobs()
job_queue_run_job()
Developer reference for function job_queue_run_job()
findDuplicates()
Developer reference for function findDuplicates()
hook()
Developer reference for function hook()
get_debug_log_dir()
Developer reference for function get_debug_log_dir()
pagename()
Developer reference for function pagename()
hash()
Developer reference for function hash()
str_split()
Developer reference for function str_split()
sha256()
Developer reference for function sha256()
lang_or_i18n_get_translated()
Developer reference for function lang_or_i18n_get_translated()
i18n_get_translated()
Developer reference for function i18n_get_translated()
i18n_get_collection_name()
Developer reference for function i18n_get_collection_name()
i18n_get_indexable()
Developer reference for function i18n_get_indexable()
i18n_get_translations()
Developer reference for function i18n_get_translations()
str_replace_formatted_placeholder()
Developer reference for function str_replace_formatted_placeholder()
ucfirstletter()
Developer reference for function ucfirstletter()
ucfirstletter_callback()
Developer reference for function ucfirstletter_callback()
normalize_keyword()
Developer reference for function normalize_keyword()
remove_accents()
Developer reference for function remove_accents()
seems_utf8()
Developer reference for function seems_utf8()
http_get_preferred_language()
Developer reference for function http_get_preferred_language()
setLanguage()
Developer reference for function setLanguage()
get_activity_log()
Developer reference for function get_activity_log()
perform_login()
Developer reference for function perform_login()
generate_session_hash()
Developer reference for function generate_session_hash()
set_login_cookies()
Developer reference for function set_login_cookies()
message_get()
Developer reference for function message_get()
message_add()
Developer reference for function message_add()
message_remove()
Developer reference for function message_remove()
message_seen()
Developer reference for function message_seen()
message_unseen()
Developer reference for function message_unseen()
message_seen_all()
Developer reference for function message_seen_all()
message_purge()
Developer reference for function message_purge()
message_send_unread_emails()
Developer reference for function message_send_unread_emails()
message_remove_related()
Developer reference for function message_remove_related()
message_user_remove()
Developer reference for function message_user_remove()
system_notification()
Developer reference for function system_notification()
runFitsForFile()
Developer reference for function runFitsForFile()
getFitsMetadataFieldValue()
Developer reference for function getFitsMetadataFieldValue()
extractFitsMetadata()
Developer reference for function extractFitsMetadata()
check_date_format()
Developer reference for function check_date_format()
check_date_parts()
Developer reference for function check_date_parts()
check_view_display_condition()
Developer reference for function check_view_display_condition()
migrate_resource_type_field_check()
Developer reference for function migrate_resource_type_field_check()
migrate_category_tree_to_nodes()
Developer reference for function migrate_category_tree_to_nodes()
populate_resource_nodes()
Developer reference for function populate_resource_nodes()
migrate_filter()
Developer reference for function migrate_filter()
random_char()
Developer reference for function random_char()
validateDatetime()
Developer reference for function validateDatetime()
mix_date()
Developer reference for function mix_date()
mix_text()
Developer reference for function mix_text()
alter_data()
Developer reference for function alter_data()
mix_url()
Developer reference for function mix_url()
mix_filename()
Developer reference for function mix_filename()
mix_email()
Developer reference for function mix_email()
safe_export()
Developer reference for function safe_export()
get_export_tables()
Developer reference for function get_export_tables()
edit_filter_to_restype_permission()
Developer reference for function edit_filter_to_restype_permission()
set_node()
Developer reference for function set_node()
delete_node()
Developer reference for function delete_node()
delete_nodes_for_resource_type_field()
Developer reference for function delete_nodes_for_resource_type_field()
get_node()
Developer reference for function get_node()
get_nodes()
Developer reference for function get_nodes()
is_parent_node()
Developer reference for function is_parent_node()
get_tree_node_level()
Developer reference for function get_tree_node_level()
get_root_node_by_leaf()
Developer reference for function get_root_node_by_leaf()
reorder_node()
Developer reference for function reorder_node()
reorder_nodes()
Developer reference for function reorder_nodes()
render_new_node_record()
Developer reference for function render_new_node_record()
get_node_order_by()
Developer reference for function get_node_order_by()
draw_tree_node_table()
Developer reference for function draw_tree_node_table()
node_field_options_override()
Developer reference for function node_field_options_override()
add_node_keyword()
Developer reference for function add_node_keyword()
remove_node_keyword()
Developer reference for function remove_node_keyword()
remove_all_node_keyword_mappings()
Developer reference for function remove_all_node_keyword_mappings()
check_node_indexed()
Developer reference for function check_node_indexed()
add_node_keyword_mappings()
Developer reference for function add_node_keyword_mappings()
remove_node_keyword_mappings()
Developer reference for function remove_node_keyword_mappings()
add_resource_nodes()
Developer reference for function add_resource_nodes()
add_resource_nodes_multi()
Developer reference for function add_resource_nodes_multi()
get_resource_nodes()
Developer reference for function get_resource_nodes()
delete_resource_nodes()
Developer reference for function delete_resource_nodes()
delete_resource_nodes_multi()
Developer reference for function delete_resource_nodes_multi()
delete_all_resource_nodes()
Developer reference for function delete_all_resource_nodes()
copy_resource_nodes()
Developer reference for function copy_resource_nodes()
get_nodes_from_keywords()
Developer reference for function get_nodes_from_keywords()
update_resource_node_hitcount()
Developer reference for function update_resource_node_hitcount()
copy_resource_type_field_nodes()
Developer reference for function copy_resource_type_field_nodes()
get_parent_nodes()
Developer reference for function get_parent_nodes()
get_nodes_count()
Developer reference for function get_nodes_count()
extract_node_options()
Developer reference for function extract_node_options()
get_node_by_name()
Developer reference for function get_node_by_name()
get_node_id()
Developer reference for function get_node_id()
node_name_comparator()
Developer reference for function node_name_comparator()
node_orderby_comparator()
Developer reference for function node_orderby_comparator()
get_node_elements()
Developer reference for function get_node_elements()
get_node_tree()
Developer reference for function get_node_tree()
get_tree_strings()
Developer reference for function get_tree_strings()
get_pdf_template_path()
Developer reference for function get_pdf_template_path()
generate_pdf()
Developer reference for function generate_pdf()
get_template_path()
Developer reference for function get_template_path()
process_template()
Developer reference for function process_template()
process_if_statements()
Developer reference for function process_if_statements()
resolve_pdf_language()
Developer reference for function resolve_pdf_language()
get_pdf_templates()
Developer reference for function get_pdf_templates()
activate_plugin()
Developer reference for function activate_plugin()
deactivate_plugin()
Developer reference for function deactivate_plugin()
purge_plugin_config()
Developer reference for function purge_plugin_config()
get_plugin_yaml()
Developer reference for function get_plugin_yaml()
config_json_encode()
Developer reference for function config_json_encode()
config_encode()
Developer reference for function config_encode()
get_plugin_config()
Developer reference for function get_plugin_config()
set_plugin_config()
Developer reference for function set_plugin_config()
is_plugin_activated()
Developer reference for function is_plugin_activated()
handle_rsc_upload()
Developer reference for function handle_rsc_upload()
display_rsc_upload()
Developer reference for function display_rsc_upload()
config_gen_setup_post()
Developer reference for function config_gen_setup_post()
config_gen_setup_html()
Developer reference for function config_gen_setup_html()
config_section_header()
Developer reference for function config_section_header()
config_add_section_header()
Developer reference for function config_add_section_header()
config_add_text_list_input()
Developer reference for function config_add_text_list_input()
config_multi_select()
Developer reference for function config_multi_select()
config_add_multi_select()
Developer reference for function config_add_multi_select()
config_single_user_select()
Developer reference for function config_single_user_select()
config_add_single_user_select()
Developer reference for function config_add_single_user_select()
config_multi_user_select()
Developer reference for function config_multi_user_select()
config_add_multi_user_select()
Developer reference for function config_add_multi_user_select()
config_single_group_select()
Developer reference for function config_single_group_select()
config_add_single_group_select()
Developer reference for function config_add_single_group_select()
config_multi_group_select()
Developer reference for function config_multi_group_select()
config_add_multi_group_select()
Developer reference for function config_add_multi_group_select()
config_multi_ftype_select()
Developer reference for function config_multi_ftype_select()
config_add_multi_ftype_select()
Developer reference for function config_add_multi_ftype_select()
config_single_rtype_select()
Developer reference for function config_single_rtype_select()
config_add_single_rtype_select()
Developer reference for function config_add_single_rtype_select()
config_multi_rtype_select()
Developer reference for function config_multi_rtype_select()
config_add_multi_rtype_select()
Developer reference for function config_add_multi_rtype_select()
config_db_single_select()
Developer reference for function config_db_single_select()
config_add_db_single_select()
Developer reference for function config_add_db_single_select()
config_db_multi_select()
Developer reference for function config_db_multi_select()
config_add_db_multi_select()
Developer reference for function config_add_db_multi_select()
config_add_hidden()
Developer reference for function config_add_hidden()
config_text_field()
Developer reference for function config_text_field()
config_userselect_field()
Developer reference for function config_userselect_field()
config_field_select()
Developer reference for function config_field_select()
config_boolean_field()
Developer reference for function config_boolean_field()
config_custom_select_multi()
Developer reference for function config_custom_select_multi()
config_custom_select()
Developer reference for function config_custom_select()
get_plugin_css()
Developer reference for function get_plugin_css()
plugin_activate_for_setup()
Developer reference for function plugin_activate_for_setup()
include_plugin_config()
Developer reference for function include_plugin_config()
register_plugin_language()
Developer reference for function register_plugin_language()
get_plugin_path()
Developer reference for function get_plugin_path()
register_plugin()
Developer reference for function register_plugin()
render_sort_order()
Developer reference for function render_sort_order()
render_dropdown_option()
Developer reference for function render_dropdown_option()
render_user_group_multi_select()
Developer reference for function render_user_group_multi_select()
render_user_group_select()
Developer reference for function render_user_group_select()
render_user_group_checkbox_select()
Developer reference for function render_user_group_checkbox_select()
render_text_question()
Developer reference for function render_text_question()
render_split_text_question()
Developer reference for function render_split_text_question()
render_dropdown_question()
Developer reference for function render_dropdown_question()
render_access_key_tr()
Developer reference for function render_access_key_tr()
is_field_displayed()
Developer reference for function is_field_displayed()
display_multilingual_text_field()
Developer reference for function display_multilingual_text_field()
display_field()
Developer reference for function display_field()
render_date_range_field()
Developer reference for function render_date_range_field()
renderBreadcrumbs()
Developer reference for function renderBreadcrumbs()
renderCallToActionTile()
Developer reference for function renderCallToActionTile()
renderSocialMediaShareLinksForUrl()
Developer reference for function renderSocialMediaShareLinksForUrl()
renderLockButton()
Developer reference for function renderLockButton()
render_resource_image()
Developer reference for function render_resource_image()
calculate_image_display()
Developer reference for function calculate_image_display()
render_share_options()
Developer reference for function render_share_options()
render_field_selector_question()
Developer reference for function render_field_selector_question()
render_filter_bar_button()
Developer reference for function render_filter_bar_button()
render_upload_here_button()
Developer reference for function render_upload_here_button()
render_trash()
Developer reference for function render_trash()
render_browse_bar()
Developer reference for function render_browse_bar()
generate_browse_bar_item()
Developer reference for function generate_browse_bar_item()
render_help_link()
Developer reference for function render_help_link()
render_question_div()
Developer reference for function render_question_div()
render_custom_fields()
Developer reference for function render_custom_fields()
render_selected_resources_counter()
Developer reference for function render_selected_resources_counter()
render_edit_selected_btn()
Developer reference for function render_edit_selected_btn()
render_clear_selected_btn()
Developer reference for function render_clear_selected_btn()
render_selected_collection_actions()
Developer reference for function render_selected_collection_actions()
render_user_collection_select()
Developer reference for function render_user_collection_select()
render_csrf_data_attributes()
Developer reference for function render_csrf_data_attributes()
check_display_condition()
Developer reference for function check_display_condition()
has_browsebar()
Developer reference for function has_browsebar()
display_upload_options()
Developer reference for function display_upload_options()
display_field_data()
Developer reference for function display_field_data()
render_resource_lock_link()
Developer reference for function render_resource_lock_link()
EditNav()
Developer reference for function EditNav()
SaveAndClearButtons()
Developer reference for function SaveAndClearButtons()
get_report_name()
Developer reference for function get_report_name()
get_reports()
Developer reference for function get_reports()
do_report()
Developer reference for function do_report()
create_periodic_email()
Developer reference for function create_periodic_email()
send_periodic_report_emails()
Developer reference for function send_periodic_report_emails()
delete_periodic_report()
Developer reference for function delete_periodic_report()
unsubscribe_user_from_periodic_report()
Developer reference for function unsubscribe_user_from_periodic_report()
get_translated_activity_type()
Developer reference for function get_translated_activity_type()
get_request()
Developer reference for function get_request()
get_user_requests()
Developer reference for function get_user_requests()
save_request()
Developer reference for function save_request()
get_requests()
Developer reference for function get_requests()
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()
get_valid_custom_fields()
Developer reference for function get_valid_custom_fields()
gen_custom_fields_html_props()
Developer reference for function gen_custom_fields_html_props()
process_custom_fields_submission()
Developer reference for function process_custom_fields_submission()
get_resource_path()
Developer reference for function get_resource_path()
get_resource_data()
Developer reference for function get_resource_data()
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()
append_field_value()
Developer reference for function append_field_value()
remove_keyword_mappings()
Developer reference for function remove_keyword_mappings()
remove_keyword_from_resource()
Developer reference for function remove_keyword_from_resource()
add_keyword_mappings()
Developer reference for function add_keyword_mappings()
add_keyword_to_resource()
Developer reference for function add_keyword_to_resource()
remove_all_keyword_mappings_for_field()
Developer reference for function remove_all_keyword_mappings_for_field()
update_field()
Developer reference for function update_field()
email_resource()
Developer reference for function email_resource()
delete_resource()
Developer reference for function delete_resource()
get_resource_type_field()
Developer reference for function get_resource_type_field()
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_types()
Developer reference for function get_resource_types()
get_resource_top_keywords()
Developer reference for function get_resource_top_keywords()
clear_resource_data()
Developer reference for function clear_resource_data()
get_max_resource_ref()
Developer reference for function get_max_resource_ref()
get_resource_ref_range()
Developer reference for function get_resource_ref_range()
copy_resource()
Developer reference for function copy_resource()
resource_log()
Developer reference for function resource_log()
get_resource_log()
Developer reference for function get_resource_log()
get_resource_type_name()
Developer reference for function get_resource_type_name()
get_resource_custom_access()
Developer reference for function get_resource_custom_access()
get_resource_custom_access_users_usergroups()
Developer reference for function get_resource_custom_access_users_usergroups()
save_resource_custom_access()
Developer reference for function save_resource_custom_access()
get_custom_access()
Developer reference for function get_custom_access()
get_themes_by_resource()
Developer reference for function get_themes_by_resource()
update_resource_type()
Developer reference for function update_resource_type()
relate_to_array()
Developer reference for function relate_to_array()
get_exiftool_fields()
Developer reference for function get_exiftool_fields()
createTempFile()
Developer reference for function createTempFile()
stripMetadata()
Developer reference for function stripMetadata()
write_metadata()
Developer reference for function write_metadata()
delete_exif_tmpfile()
Developer reference for function delete_exif_tmpfile()
update_resource()
Developer reference for function update_resource()
import_resource()
Developer reference for function import_resource()
get_alternative_files()
Developer reference for function get_alternative_files()
add_alternative_file()
Developer reference for function add_alternative_file()
delete_alternative_file()
Developer reference for function delete_alternative_file()
get_alternative_file()
Developer reference for function get_alternative_file()
save_alternative_file()
Developer reference for function save_alternative_file()
user_rating_save()
Developer reference for function user_rating_save()
process_notify_user_contributed_submitted()
Developer reference for function process_notify_user_contributed_submitted()
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_field()
Developer reference for function get_field()
get_field_options_with_stats()
Developer reference for function get_field_options_with_stats()
save_field_options()
Developer reference for function save_field_options()
get_resources_matching_keyword()
Developer reference for function get_resources_matching_keyword()
get_keyword_from_option()
Developer reference for function get_keyword_from_option()
add_field_option()
Developer reference for function add_field_option()
get_resource_access()
Developer reference for function get_resource_access()
get_custom_access_user()
Developer reference for function get_custom_access_user()
edit_resource_external_access()
Developer reference for function edit_resource_external_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()
log_diff()
Developer reference for function log_diff()
get_metadata_templates()
Developer reference for function get_metadata_templates()
get_resource_collections()
Developer reference for function get_resource_collections()
download_summary()
Developer reference for function download_summary()
check_use_watermark()
Developer reference for function check_use_watermark()
autocomplete_blank_fields()
Developer reference for function autocomplete_blank_fields()
get_resource_files()
Developer reference for function get_resource_files()
reindex_resource()
Developer reference for function reindex_resource()
get_page_count()
Developer reference for function get_page_count()
update_disk_usage()
Developer reference for function update_disk_usage()
update_disk_usage_cron()
Developer reference for function update_disk_usage_cron()
get_total_disk_usage()
Developer reference for function get_total_disk_usage()
overquota()
Developer reference for function overquota()
notify_user_resources_approved()
Developer reference for function notify_user_resources_approved()
get_original_imagesize()
Developer reference for function get_original_imagesize()
generate_resource_access_key()
Developer reference for function generate_resource_access_key()
get_resource_external_access()
Developer reference for function get_resource_external_access()
delete_resource_access_key()
Developer reference for function delete_resource_access_key()
resource_type_config_override()
Developer reference for function resource_type_config_override()
update_archive_status()
Developer reference for function update_archive_status()
delete_resources_in_collection()
Developer reference for function delete_resources_in_collection()
update_related_resource()
Developer reference for function update_related_resource()
can_share_resource()
Developer reference for function can_share_resource()
delete_resource_custom_access_usergroups()
Developer reference for function delete_resource_custom_access_usergroups()
truncate_join_field_value()
Developer reference for function truncate_join_field_value()
get_video_snapshots()
Developer reference for function get_video_snapshots()
resource_file_readonly()
Developer reference for function resource_file_readonly()
delete_resource_custom_user_access()
Developer reference for function delete_resource_custom_user_access()
get_video_info()
Developer reference for function get_video_info()
copyAllDataToResource()
Developer reference for function copyAllDataToResource()
copyResourceDataValues()
Developer reference for function copyResourceDataValues()
copy_locked_data()
Developer reference for function copy_locked_data()
copy_locked_fields()
Developer reference for function copy_locked_fields()
copyRelatedResources()
Developer reference for function copyRelatedResources()
process_edit_form()
Developer reference for function process_edit_form()
update_timestamp()
Developer reference for function update_timestamp()
get_extension()
Developer reference for function get_extension()
get_last_resource_edit_array()
Developer reference for function get_last_resource_edit_array()
get_default_archive_state()
Developer reference for function get_default_archive_state()
save_original_file_as_alternative()
Developer reference for function save_original_file_as_alternative()
replace_resource_file()
Developer reference for function replace_resource_file()
get_resource_all_image_sizes()
Developer reference for function get_resource_all_image_sizes()
sanitize_date_field_input()
Developer reference for function sanitize_date_field_input()
download_link_generate_key()
Developer reference for function download_link_generate_key()
download_link_check_key()
Developer reference for function download_link_check_key()
filter_check()
Developer reference for function filter_check()
update_resource_keyword_hitcount()
Developer reference for function update_resource_keyword_hitcount()
copy_hitcount_to_live()
Developer reference for function copy_hitcount_to_live()
get_image_sizes()
Developer reference for function get_image_sizes()
get_preview_quality()
Developer reference for function get_preview_quality()
get_related_resources()
Developer reference for function get_related_resources()
get_field_options()
Developer reference for function get_field_options()
get_data_by_field()
Developer reference for function get_data_by_field()
get_resources_by_resource_data_value()
Developer reference for function get_resources_by_resource_data_value()
get_all_image_sizes()
Developer reference for function get_all_image_sizes()
image_size_restricted_access()
Developer reference for function image_size_restricted_access()
get_fields()
Developer reference for function get_fields()
get_hidden_indexed_fields()
Developer reference for function get_hidden_indexed_fields()
get_category_tree_fields()
Developer reference for function get_category_tree_fields()
get_OR_fields()
Developer reference for function get_OR_fields()
get_nopreview_icon()
Developer reference for function get_nopreview_icon()
purchase_set_size()
Developer reference for function purchase_set_size()
payment_set_complete()
Developer reference for function payment_set_complete()
get_indexed_resource_type_fields()
Developer reference for function get_indexed_resource_type_fields()
get_resource_type_fields()
Developer reference for function get_resource_type_fields()
notify_resource_change()
Developer reference for function notify_resource_change()
add_verbatim_keywords()
Developer reference for function add_verbatim_keywords()
metadata_field_edit_access()
Developer reference for function metadata_field_edit_access()
get_download_filename()
Developer reference for function get_download_filename()
get_resource_type_from_extension()
Developer reference for function get_resource_type_from_extension()
canSeePreviewTools()
Developer reference for function canSeePreviewTools()
checkPreviewToolsOptionUniqueness()
Developer reference for function checkPreviewToolsOptionUniqueness()
alt_is_ffmpeg_alternative()
Developer reference for function alt_is_ffmpeg_alternative()
create_resource_type_field()
Developer reference for function create_resource_type_field()
metadata_field_view_access()
Developer reference for function metadata_field_view_access()
get_workflow_states()
Developer reference for function get_workflow_states()
delete_resource_type_field()
Developer reference for function delete_resource_type_field()
tab_names()
Developer reference for function tab_names()
get_resource_table_joins()
Developer reference for function get_resource_table_joins()
update_resource_lock()
Developer reference for function update_resource_lock()
get_resource_lock_message()
Developer reference for function get_resource_lock_message()
resolve_soundex()
Developer reference for function resolve_soundex()
suggest_refinement()
Developer reference for function suggest_refinement()
resolve_nodes_from_string()
Developer reference for function resolve_nodes_from_string()
get_upload_here_selected_nodes()
Developer reference for function get_upload_here_selected_nodes()
get_filter_sql()
Developer reference for function get_filter_sql()
split_keywords()
Developer reference for function split_keywords()
cleanse_string()
Developer reference for function cleanse_string()
resolve_keyword()
Developer reference for function resolve_keyword()
add_partial_index()
Developer reference for function add_partial_index()
highlightkeywords()
Developer reference for function highlightkeywords()
str_highlight()
Developer reference for function str_highlight()
sorthighlights()
Developer reference for function sorthighlights()
get_suggested_keywords()
Developer reference for function get_suggested_keywords()
get_related_keywords()
Developer reference for function get_related_keywords()
get_grouped_related_keywords()
Developer reference for function get_grouped_related_keywords()
save_related_keywords()
Developer reference for function save_related_keywords()
get_filters()
Developer reference for function get_filters()
get_filter()
Developer reference for function get_filter()
get_filter_rules()
Developer reference for function get_filter_rules()
get_filter_rule()
Developer reference for function get_filter_rule()
save_filter()
Developer reference for function save_filter()
save_filter_rule()
Developer reference for function save_filter_rule()
delete_filter()
Developer reference for function delete_filter()
delete_filter_rule()
Developer reference for function delete_filter_rule()
copy_filter()
Developer reference for function copy_filter()
set_slideshow()
Developer reference for function set_slideshow()
delete_slideshow()
Developer reference for function delete_slideshow()
reorder_slideshow_images()
Developer reference for function reorder_slideshow_images()
get_slideshow_image_file_path()
Developer reference for function get_slideshow_image_file_path()
getThemePathPerms()
Developer reference for function getThemePathPerms()
validate_user()
Developer reference for function validate_user()
get_users()
Developer reference for function get_users()
get_users_with_permission()
Developer reference for function get_users_with_permission()
get_user_by_email()
Developer reference for function get_user_by_email()
get_user_by_username()
Developer reference for function get_user_by_username()
get_usergroups()
Developer reference for function get_usergroups()
get_notification_users()
Developer reference for function get_notification_users()
offset_user_local_timezone()
Developer reference for function offset_user_local_timezone()
get_video_resolution()
Developer reference for function get_video_resolution()
save_themename()
Developer reference for function save_themename()
ResolveKB()
Developer reference for function ResolveKB()
display_size_option()
Developer reference for function display_size_option()
get_selectedtypes()
Developer reference for function get_selectedtypes()
check_order_by_in_table_joins()
Developer reference for function check_order_by_in_table_joins()
existing_dash_tile()
Developer reference for function existing_dash_tile()
show_upgrade_in_progress()
Developer reference for function show_upgrade_in_progress()
render_audio_download_link()
Developer reference for function render_audio_download_link()
config_multi_archive_select()
Developer reference for function config_multi_archive_select()
config_add_multi_archive_select()
Developer reference for function config_add_multi_archive_select()
job_queue_get_job()
Developer reference for function job_queue_get_job()
job_queue_purge()
Developer reference for function job_queue_purge()
render_table()
Developer reference for function render_table()
render_array_in_table_cells()
Developer reference for function render_array_in_table_cells()
get_featured_collection_resources()
Developer reference for function get_featured_collection_resources()
get_featured_collection_categ_sub_fcs()
Developer reference for function get_featured_collection_categ_sub_fcs()
generate_featured_collection_image_urls()
Developer reference for function generate_featured_collection_image_urls()
update_collection_parent()
Developer reference for function update_collection_parent()
get_featured_collections()
Developer reference for function get_featured_collections()
featured_collections_permissions_filter_sql()
Developer reference for function featured_collections_permissions_filter_sql()
featured_collection_check_access_control()
Developer reference for function featured_collection_check_access_control()
order_featured_collections_by_hasresources()
Developer reference for function order_featured_collections_by_hasresources()
get_featured_collection_categories()
Developer reference for function get_featured_collection_categories()
is_featured_collection_category()
Developer reference for function is_featured_collection_category()
is_featured_collection_category_by_children()
Developer reference for function is_featured_collection_category_by_children()
validate_collection_parent()
Developer reference for function validate_collection_parent()
get_featured_collection_category_branch_by_leaf()
Developer reference for function get_featured_collection_category_branch_by_leaf()
process_posted_featured_collection_categories()
Developer reference for function process_posted_featured_collection_categories()
get_featured_collection_ref_by_name()
Developer reference for function get_featured_collection_ref_by_name()
allow_collection_share()
Developer reference for function allow_collection_share()
allow_featured_collection_share()
Developer reference for function allow_featured_collection_share()
filter_featured_collections_by_root()
Developer reference for function filter_featured_collections_by_root()
get_featured_collections_by_resources()
Developer reference for function get_featured_collections_by_resources()
can_delete_featured_collection()
Developer reference for function can_delete_featured_collection()
render_new_featured_collection_cta()
Developer reference for function render_new_featured_collection_cta()
render_featured_collection_category_selector()
Developer reference for function render_featured_collection_category_selector()
render_featured_collections()
Developer reference for function render_featured_collections()
render_featured_collection()
Developer reference for function render_featured_collection()
DrawOption()
Developer reference for function DrawOption()
render_featured_collections_category_permissions()
Developer reference for function render_featured_collections_category_permissions()
dash_tile_featured_collection_get_resources()
Developer reference for function dash_tile_featured_collection_get_resources()
order_featured_collections()
Developer reference for function order_featured_collections()
strip_prefix_chars()
Developer reference for function strip_prefix_chars()
allow_upload_to_collection()
Developer reference for function allow_upload_to_collection()
render_top_page_error_style()
Developer reference for function render_top_page_error_style()
get_all_featured_collections()
Developer reference for function get_all_featured_collections()
compute_featured_collections_acess_control()
Developer reference for function compute_featured_collections_acess_control()
array_flip_by_value_key()
Developer reference for function array_flip_by_value_key()
compute_node_branch_path()
Developer reference for function compute_node_branch_path()
compute_nodes_by_parent()
Developer reference for function compute_nodes_by_parent()
get_resource_nodes_batch()
Developer reference for function get_resource_nodes_batch()
get_resource_data_batch()
Developer reference for function get_resource_data_batch()
compute_featured_collections_access_control()
Description Compute the featured collections allowed based on current access control TRUE if user has access to all featured collections. If some access control is in place, then the return will be an array with all the allowed featured collections Parameters This function accepts no parameters.
cleanup_anonymous_collections()
Description Remove all old anonymous collections Parameters Column Type Default Description $limit int 100 Maximum number of collections to delete - if run from browser this is kept low to avoid delays Return void Location include/collections_functions.
update_fieldx()
Description updates the value of fieldx field further to a metadata field value update Parameters Column Type Default Description $metadata_field_ref: int get_resource_table_joins $metadata_field_ref integer - metadata field ref Location include/metadata_functions.
get_nodes_by_refs()
Description Find and return node details for a list of node IDs. Parameters Column Type Default Description $refs array List of node IDs Return array Location include/node_functions.
get_session_api_key()
Description Return the session specific key for the given user. Parameters Column Type Default Description $user integer The user ID Return string Location include/api_functions.
api_login()
Description API login function Parameters Column Type Default Description $username string Username $password string Password to validate Return string|false FALSE if invalid, session API key if valid Location include/api_functions.
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.
set_user_profile()
Description Set user's profile image and profile description (bio). Used by ../pages/user/user_profile_edit.php to setup user's profile. Parameters Column Type Default Description $user_ref int User id of user who's profile is being set.
get_collections_resource_count()
Description Get collection total resource count for a list of collections note that the returned array might NOT contain keys for all the input IDs (e.g validation failed).
comments_tags_to_links()
Description Parse a comment and replace and add links to any user, resource and collection tags Parameters Column Type Default Description string $text: preg_replace'/@\S+/s' href '
Frequently Asked Questions (FAQs)
The most frequently asked questions about ResourceSpace, the free and open source Digital Asset Management system.
can_share_upload_link()
Description Check if user is permitted to create an external upload link for the given collection Parameters Column Type Default Description $collection_data array Array of collection data Return boolean Location include/collections_functions.
can_edit_upload_share()
Description Check if user can edit an existing upload share Parameters Column Type Default Description $collection int Collection ID of share $uploadkey string External upload key Return bool Location include/collections_functions.
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.
generate_share_key()
Description Generates an external share key based on provided string Parameters Column Type Default Description $string string Return string Generated key Location include/collections_functions.
upload_share_active()
Description Check if an external upload link is being used Parameters This function accepts no parameters. Return mixed false|int ID of upload collection, or false if not active Location include/collections_functions.
upload_share_setup()
Description Set up external upload share "collection" - (int) collection ID "user" - (int) user ID of share creator "usergroup" - (int) usergroup ID used for share Parameters Column Type Default Description $key string access key $shareopts array array Array of share options Return void 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.
purge_expired_shares()
Description Purge all expired shares "share_group" - (int) Usergroup ref 'shared as' "share_user" - (int) user ID of share creator "share_type" - (int) 0=view, 1=upload "share_collection" - (int) Collection ID Parameters Column Type Default Description $filteropts array Array of options to filter shares purged Return string|int Location include/collections_functions.
render_workflow_state_question()
Parameters Column Type Default Description $current null $checkaccess true Location include/render_functions.
render_share_password_question()
Parameters Column Type Default Description $blank true Location include/render_functions.
get_external_shares()
Description Get details of external shares "share_group" - (int) Usergroup ref 'shared as' "share_user" - (int) user ID of share creator "share_order_by" - (string) order by column "share_sort" - (string) sortorder (ASC or DESC) "share_type" - (int) 0=view, 1=upload "share_collection" - (int) Collection ID "share_resource" - (int) Resource ID "access_key" - (string) Access key "ignore_permissions"- (bool) Show all shares, irrespective of permissions Parameters Column Type Default Description $filteropts array Array of options to filter shares returned Return array Location include/resource_functions.
config_add_hidden_input()
Description Generate a data structure to instruct the configuration page generator to add a hidden input Parameters Column Type Default Description $cf_var_name string Plugins' configuration variable name $cf_var_value string '' Value Return array Location include/config_functions.
config_register_core_field_refs()
Description Used to block deletion of 'core' fields. Parameters Column Type Default Description $source string What part (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.
render_hidden_input()
Description Render an HTML hidden input Parameters Column Type Default Description $name string Input name $value string Input value Location include/render_functions.
leaflet_osm_basemaps()
Parameters Column Type Default Description OpenStreetMap // { '" detectRetina: 19 maxZoom: osm_attribute attribution: 18 maxZoom: 20 maxZoom: osm_fr_attribute attribution: L.
leaflet_polygon_parsing()
Parameters Column Type Default Description $fields $minmax true Location include/map_functions.
leaflet_coordinate_check()
Parameters Column Type Default Description $coordinate $type Location include/map_functions.
leaflet_markers_legend()
Parameters This function accepts no parameters. Location include/map_functions.php lines 518 to 548 Definition function leaflet_markers_legend () { global $lang , $marker_metadata_field , $marker_metadata_array , $MARKER_COLORS ; if (!isset( $marker_metadata_field ) || $lang [ 'custom_metadata_markers' ] == '' ) { ?> <b> echo $lang [ 'legend_text' ] ?> </b> $restypes = get_resource_types (); foreach( $restypes as $restype ) { $markercolour = (isset( $restype [ "colour" ]) && $restype [ "colour" ] > 0 ) ? (int) $restype [ "colour" ] : ( $restype [ 'ref' ] % count ( $MARKER_COLORS )); echo "<img src='.
header_add_map_providers()
Parameters This function accepts no parameters. Location include/map_functions.php lines 550 to 699 Definition function header_add_map_providers () { global $geo_leaflet_sources , $baseurl , $geo_tile_caching ; ?> <script> // Copied from leaflet-providers.
set_geo_map_centerview()
Description Set bounds for default map view (geo_search.php and geo_edit.php) Parameters This function accepts no parameters. Return void Location include/map_functions.
get_geo_maps_scripts()
Parameters This function accepts no parameters. Location include/map_functions.php lines 739 to 745 Definition function get_geo_maps_scripts () { global $baseurl ; ?> <script src=" echo $baseurl?> /lib/leaflet_plugins/leaflet-markercluster-1.
clear_tracking_vars_info()
Description Clear sysvar entries used for tracking variables in ResourceSpace Parameters Column Type Default Description $users array List of user IDs Location include/debug_functions.
debug_stringify()
Description Stringify variables for use in the debug log. This is used more as fallback to json_encode() failing to maintain quick readability of the logs. Parameters Column Type Default Description $value mixed Any value that needs stringified Return string Location include/debug_functions.
is_tracking_vars_active()
Description Check if ResourceSpace is still tracking variables for debug purposes. Parameters Column Type Default Description $user int User ID for which we check if tracking vars is active Return boolean Location include/debug_functions.
get_tracked_vars()
Description Get all tracked variables (for debug) for user. If user invalid, it will get all the variables currently being tracked by all users. Parameters Column Type Default Description $user int User ID Return array List of variable names Location include/debug_functions.
debug_track_vars()
Description Debug log tracked variables (as configured in System > System console). IMPORTANT: the debug log will contain the JSON encoded version of the tracked variable. For further analysis, just copy the value (ie.
radio_get_layout()
Description Get required rows and columns for use when displaying radio buttons in a table Parameters Column Type Default Description $options array Array of text options Return array (Number of rows, number of columns) Location include/render_functions.
render_radio_buttons_question()
Description render_radio_buttons_question - Used to display a question with radio buttons Parameters Column Type Default Description $label string Label of question $inputname string Name of input field $options array array Array of options (value and text pairs) (eg.
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.
rs_password_verify()
Description ResourceSpace verify password value is the actual value for that variable. Parameters Column Type Default Description $password string Password $hash string Password hash $data array Extra data required for matching hash expectations (e.
get_password_hash_info()
Description Helper function to get the password hash information (algorithm and options) from the global scope. Parameters This function accepts no parameters. Return array Location include/login_functions.
message_get_conversation()
Description Get all messages between the given user IDs "msgfind" - (string) Text to find "sort_desc" - (bool) Sort by message ID in descending order? False = Ascending "msglimit" - (int) Maximum number of messages to return Parameters Column Type Default Description $user int $msgusers array array Array of other user IDs $filteropts array array Array of extra options to filter and sort messages returned $users int User ID Return array Array of messages Location include/message_functions.
send_user_message()
Description Send a user to user(s) message Parameters Column Type Default Description $users array Array of user IDs or usernames/groupnames from user select $text string Message text Return bool|string True if sent ok or error message Location include/message_functions.
render_message()
Parameters Column Type Default Description $message "" Location include/render_functions.
message_deleteselusrmsg()
Description Delete all selected messages Parameters Column Type Default Description $messages List $messages of message refs in JSON list format Return void Location include/message_functions.
message_selectedseen()
Description Mark all selected messages as seen Parameters Column Type Default Description $messages List $messages of message refs in JSON list format Return void Location include/message_functions.
message_selectedunseen()
Description Mark all selected messages as unseen Parameters Column Type Default Description $messages List $messages of message refs in JSON list format Return void Location include/message_functions.
message_getrefs()
Description Get all message refs for a given user Parameters Column Type Default Description $user string User ID Return void Location include/message_functions.
get_video_duration()
Description Get video duration Parameters Column Type Default Description $file_path string Path to video file Return float Location include/resource_functions.
is_not_wildcard_only()
Description Helper function to check a string is not just the asterisk. Parameters Column Type Default Description $str string The string to be checked.
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.
validate_tile_style()
Description Validate the type of dash tile and check that the style provided is valid for it. Parameters Column Type Default Description $type string Tile type name.
render_antispam_question()
Description Render the antispam Question form section Parameters This function accepts no parameters. Location include/render_functions.php lines 5801 to 5857 Definition function render_antispam_question () { global $scramble_key , $lang ; $rndword = array_merge ( range ( '0' , '9' ), range ( 'A' , 'Z' )); shuffle ( $rndword ); $timestamp = time (); $rndwordarray = array_slice ( $rndword , 0 , 6 ); $rndcode = hash ( "SHA256" , implode ( "" , $rndwordarray ) .
move_featured_collection_branch_path_root()
Description Move a featured collection branch paths' root to the node determined by the global configuration option $featured_collections_root_collection. This temporarily moves the root of the featured collection branch, removing any nodes on the branch from the real root up to the new root.
validate_build_url()
Description Sanitise the url provided when saving a dash tile. This function will take the value obtained by the form and pass it through if valid. If the url supplied is invalid, a blank value will be returned allowing the default standard tile type to be used.
render_fixed_text_question()
Description Renders a 'fixed' text question - not an input but to display information or values that cannot be changed Parameters Column Type Default Description $label string $text string Return void Location include/render_functions.
get_job_type_priority()
Description Get the default priority for a given job type Parameters Column Type Default Description $type string "" Name of job type e.
exiftool_resolution_calc()
Description Set resource dimensions using data from exiftool. Parameters Column Type Default Description $file_path string Path to the original file.
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.
allowed_type_mime()
Description Convert the permitted resource type extension to MIME type. Used by upload_batch.php Parameters Column Type Default Description $allowedtype $extension string File extension Return string MIME type e.
relate_all_resources()
Description Relate all resources in the passed array with each other Parameters Column Type Default Description $related array [] Array of resource IDs Return boolean Location include/resource_functions.
collection_add_resources()
Description Add resource(s) $resources to collection $collection Parameters Column Type Default Description $collection mixed $resources mixed '' $search '' $selected false Return boolean | string Location include/collections_functions.
collection_remove_resources()
Description collection_remove_resources Parameters Column Type Default Description $collection mixed $resources mixed '' $removeall mixed false $selected false Return boolean | string 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.
get_default_user_collection()
Description Get the user's default collection, creating one if necessary Parameters Column Type Default Description $setactive bool false Set the collection as the user's active collection? Return int collection ID Location include/collections_functions.
temp_local_download_remote_file()
Description Download remote file to the temp filestore location. Parameters Column Type Default Description $url string Source URL $key string "" Optional key to use - to prevent conflicts when simultaneous calls use same file name Return string|bool Returns the new temp filestore location or false otherwise.
display_video_subtitles()
Description Generate HTML to display subtitles in playback of a video resource. Parameters Column Type Default Description $ref int Resource ID $access int Resource access level - e.
report_has_date()
Description Checks for the presence of date placeholders in a report's SQL query. Parameters Column Type Default Description $query string The report's SQL query.
report_has_date_by_id()
Description Checks for the presence of date placeholders in a report's sql query using the report's id. Parameters Column Type Default Description $report int Report id of the report to retrieve the query data from the report table.
can_reorder_featured_collections()
Description Check if user is allowed to re-order featured collections Parameters This function accepts no parameters. Return boolean Location include/collections_functions.
reorder_collections()
Description Re-order collections Parameters Column Type Default Description $refs array List of collection IDs in the new order Return void Location include/collections_functions.
check_valid_file_extension()
Description Basic check of uploaded file against list of allowed extensions Parameters Column Type Default Description $uploadedfile array - an element from the $_FILES PHP reserved variable $validextensions array Array of valid extension strings Return bool Location include/file_functions.
check_filestore_browseability()
Description Check filestore folder browseability. For security reasons (e.g data breach) the filestore location shouldn't be indexed by the web server (in Apache2 - disable autoindex module) - status: An end user status of OK/FAIL - info: Any extra relevant information (aimed at end users) - filestore_url: ResourceSpace URL to the filestore location - index_disabled: PHP bool (used by code).
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.
rrmdir()
Description Recursively remove a folder and its contents. Paths to ignore can be specified. Parameters Column Type Default Description $dir string The folder to delete.
clean_comment_tree()
Description Check all comments that are children of the comment ref provided. If there is a branch made up entirely of hidden comments then remove the branch. Parameters Column Type Default Description $ref int Ref of the comment that is being deleted.
find_root_comment()
Description Find the root of a comment tree that the ref provided is a part of Parameters Column Type Default Description $ref int ref of a comment Return int|null ref of the root comment or null if the comment tree has been completely removed / the comment being checked has already been deleted.
eval_check_signed()
Description Prior to eval() checks to make sure the code has been signed first, by the offline script / migration script. Parameters Column Type Default Description $code string The code to check Return string The code, if correctly signed, or an empty string if not.
sign_code()
Description Returns a signature for a given block of code. Parameters Column Type Default Description $code string The code to sign Return string The signature Location include/encryption_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.
check_imagemagick_cli_version_found()
Description Check CLI version found for ImageMagick is as expected. - utility - New utility value for its display name - found - PHP bool representing whether we've found what we were expecting in the version output.
check_numeric_cli_version_found()
Description Check CLI numeric version found for a utility is as expected. - utility - not used - found - PHP bool representing whether we've found what we were expecting in the version output.
check_utility_cli_version_found_by_name()
Description Check CLI version found for a utility is as expected by looking up for its name. - utility - not used - found - PHP bool representing whether we've found what we were expecting in the version output.
command_line_only()
Description Check we're running on the command line, exit otherwise. Security feature for the scripts in /pages/tools/ Parameters This function accepts no parameters. Return void This article was last updated 10th December 2023 17:05 Europe/London time based on the source file dated 6th December 2023 15:05 Europe/London time.
lang_load_site_text()
Description Load all site text for the given page and language into the global $lang array Parameters Column Type Default Description &$lang $pagename string Pagename $language string "" Language $lang array Passed by reference Return void Location include/language_functions.
send_user_notification()
Description Send system notifications to specified users, checking the user preferences first if specified This will contain two arrays:- "emails" array of emails sent, with the following elements:- "email" => Email address "subject" => Email subject "body" => Body text "messages" Array of system messages sent with the following elements :- "user" => User ID "message" => message text "url" => url Parameters Column Type Default Description $users array Array of user IDs or array of user details from get_users() $notifymessage ResourceSpaceUserNotification An instance of a ResourceSpaceUserNotification object holding message properties $forcemail bool false Force system to send email instead of notification? Return array Array containing resulting messages - can be used for testing when emails are not being sent Location include/message_functions.
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. The Default tab is a permanent feature that cannot be deleted and will be the fallback location for any unassigned metadata field. Tabs support multi-lingual syntax, and users can access it only when editing a tab. By default, the system is configured to sort tabs alphabetically when rendering them in the UI. However, users can manually control the tabs ordering by disabling the default setting and reordering the tabs by dragging and dropping them to the new position. On the resource view page, if at least one metadata field is configured to be displayed on a tab, any other fields that have not been assigned to a tab will be placed on the Default tab. On the edit/upload page, all unassigned fields will be placed on the Default tab. If users see only the Default tab and have no need for other tabs, they should consider disabling tabs on edit.
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.
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.
get_nodes_use_count()
The get_nodes_use_count() function is a PHP function in ResourceSpace that returns an array of node references as keys and the number of resources using them as values. The function takes an array of node references as input and filters out any non-integer values. If the resulting array is empty, an empty array is returned. Otherwise, a SQL query is executed to count the number of resources that use each node in the input array. The results of the query are returned as an array with node references as keys and use counts as values. The function uses the ps_query() and ps_param_insert() functions to execute the SQL query and fill in the parameters. The array_column() function is used to extract the use counts from the query results and return them as an array with node references as keys. This function is located in the node_functions.php file in ResourceSpace and can be used to get a count of how many resources are using specific nodes.
check_delete_nodes()
The check_delete_nodes() function is used to check an array of node IDs and delete any that relate to non-fixed list fields and are unused. The function takes an array of node IDs as a parameter and checks each node to see if it is related to a non-fixed list field. If it is, the function checks to see if the node is unused. If the node is both related to a non-fixed list field and unused, it is deleted. The function uses the global variable $FIXED_LIST_FIELD_TYPES to determine which fields are fixed list fields. The function also uses the get_nodes_use_count() function to determine if a node is unused. If a node is unused, it is deleted using the delete_node() function. The function includes debug statements to help with troubleshooting. This function is located in the node_functions.php file and is defined between lines 2561 and 2586. This article was last updated on March 27th, 2023, based on the source file dated March 15th, 2023.
remove_field_keywords()
The remove_field_keywords() function is a PHP function used in ResourceSpace, an open-source digital asset management system. The function deletes all keywords associated with a specified field ID for all nodes. The function takes one parameter, which is the field ID, and returns a boolean value. The function is defined in the node_functions.php file and is located on lines 2595 to 2599. The function uses a ps_query to delete the keywords from the node_keyword table, which is left-joined with the node table to ensure that only nodes associated with the specified field are affected. The article was last updated on March 27th, 2023, based on the source file dated March 15th, 2023.
update_resource_field_column()
The update_resource_field_column() function is used to update the value of a specific metadata field on a resource table. It takes three parameters: the resource ID, the metadata field ID, and the new value. The function returns a boolean value indicating whether the update was successful or not. The function is defined in the resource_functions.php file and can be found on lines 9188 to 9194. The function uses an SQL query to update the field value in the resource table. The SQL query is constructed using the field ID and the resource ID, and the new value is passed as a parameter. The function also uses the ps_query() function to execute the SQL query. The article was last updated on 27th March 2023 at 15:35 Europe/London time, based on the source file dated 21st March 2023 at 10:00 Europe/London time.
render_fa_icon_selector()
Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 4732 tokens. Please reduce the length of the messages. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )
escape_quoted_data()
The article describes a PHP function called `escape_quoted_data()` that is used for output encoding in HTML and JavaScript when unsafe input is rendered inside it. The function takes a single parameter, `$unsafe`, which is a string that needs to be encoded. The function uses the `htmlspecialchars()` function to encode the string and the `ENT_QUOTES` flag to encode both single and double quotes. The function is defined in the `render_functions.php` file and is located on lines 5788 to 5791. The article also provides a code snippet that shows the function definition. The article was last updated on March 27th, 2023, and is based on the source file dated March 17th, 2023.
acl_can_manage_tabs()
The article provides information about the function `acl_can_manage_tabs()` which is located in the `tab_functions.php` file. This function does not accept any parameters and returns the result of the `checkperm()` function with the parameter `'a'`. The `checkperm()` function is used to check if the current user has permission to perform a certain action, and the parameter `'a'` indicates that the function is checking if the user has permission to manage tabs. The article also includes the definition of the `acl_can_manage_tabs()` function in code format. The function is defined with the `function` keyword and returns the result of the `checkperm()` function. Finally, the article provides information about the last update of the article and the source file. The article was last updated on March 27, 2023, and the source file was last modified on October 21, 2022.
get_tabs_by_refs()
The get_tabs_by_refs() function is a PHP function that retrieves entire tab records for a list of IDs. The function takes an array of tab refs as a parameter and returns an array of tab records. The function first filters the array of tab refs to remove any non-integer values. It then counts the number of remaining tab refs and checks if it is greater than zero. If there are any tab refs, the function executes a SQL query to retrieve the tab records for the specified tab refs. The SQL query selects the ref, name, and order_by columns from the tab table where the ref is in the list of tab refs. The tab records are ordered by the order_by column. The function returns the tab records as an array. If there are no tab refs, the function returns an empty array. This function is defined in the tab_functions.php file and is located on lines 20 to 33. This article was last updated on March 27, 2023, based on the source file dated October 21, 2022.
get_tabs_with_usage_count()
The get_tabs_with_usage_count() function is used to retrieve tabs based on certain criteria, such as order by and limit. The function takes an array of criteria information as a parameter, including the order by and limit values. The function then uses this information to construct a SQL query that retrieves the tabs from the database. The query includes a subquery that counts the number of times each tab is used in the resource_type_field and resource_type tables. The function returns an array of tabs, along with the total count of tabs that match the criteria. The function is defined in the tab_functions.php file and is located on lines 43 to 69. The article also includes the function's definition and parameters, as well as its location in the source code. The article was last updated on March 27, 2023, based on the source file dated October 21, 2022.
get_all_tabs()
The get_all_tabs() function is a PHP function that retrieves all tab records sorted by the order_by column. This function does not accept any parameters and returns an array. The function is located in the tab_functions.php file, specifically on lines 76 to 79. The function definition uses the ps_query() function to execute a SQL query that selects the reference, name, and order_by columns from the tab table and orders the results by the order_by column. This article was last updated on March 27, 2023, at 15:35 Europe/London time, based on the source file dated October 21, 2022, at 16:35 Europe/London time.
get_tab_name_options()
The article describes a function called `get_tab_name_options()` that returns a list of all tabs sorted based on the current configuration. The function takes no parameters and returns an array where the key is the tab's ID and the value is its translated name. The function always adds a fake record with reference number 0 to indicate no assignment. The location of the function is in the `tab_functions.php` file, specifically on lines 87 to 92. The function definition includes an array map and column to get all tabs and their names, and then sorts them based on the current configuration. The article was last updated on March 27th, 2023, based on the source file dated October 21st, 2022.
sort_tabs_as_configured()
The article describes a PHP function called "sort_tabs_as_configured()" that sorts a list of tab names while preserving their key ID. The function takes an array of tab ID and translated name pairs as input and returns the sorted array. The sorting is based on a configuration setting called "sort_tabs" that is a global variable. If the "sort_tabs" setting is true, the function sorts the tabs in ascending order using the "asort()" function. If the setting is false or not defined, the function returns the original unsorted array. The function is defined in the "tab_functions.php" file and is located on lines 102 to 110. The article also provides a code snippet of the function definition. The article was last updated on 27th March 2023 at 15:35 Europe/London time and is based on the source file dated 21st October 2022 at 16:35 Europe/London time.
create_tab()
The create_tab() function is used to create a new system tab record. The function takes an array as a parameter, which contains the name of the new tab. The function first checks if the user has permission to manage tabs and then inserts the new tab into the database. The order_by parameter is only set when the user is reordering the set. The function returns the new tab record ID if successful, or FALSE otherwise. The function is defined in the tab_functions.php file and is located on lines 119 to 143. The article was last updated on 27th March 2023 at 15:35 Europe/London time, based on the source file dated 21st October 2022 at 16:35 Europe/London time.
delete_tabs()
The delete_tabs() function is a system function that deletes tabs in ResourceSpace. The function takes an array of tab IDs as input and returns a boolean value indicating whether the query was executed successfully or not. It is important to note that the "Default" tab should never be deleted as it is the fallback location for information that has no association with other tabs. The function is defined in the tab_functions.php file and is located on lines 156 to 180. The function checks if the user has permission to manage tabs before executing the query. The list of tab IDs is sanitized to only include numbers and the "Default" tab is never allowed to be deleted. The function then chunks the list of tab IDs and executes the query for each chunk. A batch activity logger is used to log the deletion of each tab. The article was last updated on 27th March 2023 at 15:35 Europe/London time based on the source file dated 21st October 2022 at 16:35 Europe/London time.
save_tab()
The `save_tab()` function is used to update an existing tab in ResourceSpace. It takes an array of tab records as input and returns a boolean value indicating whether the query was executed successfully or not. The function first extracts the reference ID and name of the tab from the input array. It then checks if the reference ID is greater than zero, the name is not empty, and the user has permission to manage tabs. If all these conditions are met, the function logs the activity of editing the tab, updates the name of the tab in the database, and returns true. Otherwise, it returns false. The `save_tab()` function is defined in the `tab_functions.php` file and is located on lines 191 to 204. This article was last updated on March 27, 2023, based on the source file dated October 21, 2022.
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. During initialization, the global variables $owner_field and $owner_field_mappings are updated for validation purposes. The function filters out non-numeric user group IDs and non-numeric node IDs. It returns true if the system is configured with a valid $owner_field and numeric $owner_field_mappings, false otherwise. The $owner_field_mappings variable is an array of user group IDs and node IDs that are mapped to the owner field. The function checks if the $owner_field variable is greater than 0, if the $owner_field_mappings variable is not empty, and if the owner field is in the list of resource type fields that are drop-down lists or radio buttons. The can_use_owner_field() function is located in the request_functions.php file, and the article was last updated on 27th March 2023.
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. The function returns an array containing user IDs and email addresses. The function is located in the request_functions.php file and is defined using the function keyword. The function uses a metadata field and a defined map to determine which users should be notified based on the owner field value and its mappings. The function first determines which users should be notified based on the owner field value and its mappings. It then determines which users should be filtered out based on the owner field value and its mappings. Finally, it returns an array containing user IDs and email addresses. The function is used to automate the process of notifying users about requested resources owned by particular groups.
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. The function extracts the variables from the array and runs the PHP code using `eval()`. After the code has been executed, the function loops through the temporary variables and sets them as global variables using `$GLOBALS`. The function returns void. This function is located in the `config_functions.php` file and is defined on lines 1284 to 1297. The article was last updated on March 27th, 2023, based on the source file dated December 29th, 2022.
get_cattree_nodes_ordered()
Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 4684 tokens. Please reduce the length of the messages. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )
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. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )
cattree_node_creator()
The cattree_node_creator() function is a helper function used to build node entry arrays for ordering. It takes in several parameters, including the node ID, category tree field ID, node name, parent node ID, node order by, resource ID, and an array of child node IDs. The function returns an array containing the provided parameters. This function is located in the node_functions.php file and is defined on lines 2172 to 2175. The article was last updated on March 27th, 2023, at 15:35 Europe/London time, based on the source file dated March 15th, 2023, at 16:55 Europe/London time.
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. The function is defined in the node_functions.php file, specifically on lines 2185 to 2199. The function first builds the node being flattened and then appends children after the flattened node. It does this by creating a flat element array and a cumulative entries array. The cumulative entries array is then merged with the flattened child nodes using recursion. The function is used to flatten out the category tree in ResourceSpace, a digital asset management system. The article was last updated on March 27th, 2023, based on the source file dated March 15th, 2023.
get_resources_nodes_by_rtf()
The get_resources_nodes_by_rtf() function is a PHP function that retrieves all resource nodes associated with a specific resource type field. The function takes a single parameter, which is the resource type field ID. The function returns a generator that yields each resource node associated with the specified resource type field. The function is defined in the node_functions.php file, which is located in the include directory of the ResourceSpace source code. The function uses SQL queries to retrieve the resource nodes and resource data from the ResourceSpace database. The function retrieves the resource nodes in batches of 1000 and uses a do-while loop to iterate through the batches until all resource nodes have been retrieved. The function then uses a foreach loop to yield each resource node to the calling code. The function is designed to be used by other ResourceSpace functions and is not intended to be called directly by end-users.
get_user_message()
The get_user_message() function retrieves the user message for the given reference. It takes two parameters: $ref, which is the message ID, and $checkaccess, which is a boolean value that checks if the user can see the given message. If $checkaccess is true and the user does not have access to the message, or if the requested message does not exist, the function returns false. If the message exists and the user has access to it, the function returns an array with three elements: 'message', which is the message text, 'url', which is the message URL, and 'owner', which is the message owner. The function is defined in the message_functions.php file and is located on lines 1068 to 1082. This article was last updated on March 27th, 2023, based on the source file dated March 22nd, 2023.
get_node_strings()
The get_node_strings() function is a PHP function that returns an array of strings representing the full paths to each tree node passed. The function takes three parameters: $resource_nodes, $allnodes, and $translate. $resource_nodes is an array of nodes to parse, $allnodes is a boolean value that determines whether to include paths to all nodes or just the paths to the end leaf nodes, and $translate is a boolean value that determines whether to translate strings. The function arranges all passed nodes with parents first so that unnecessary paths can be removed. It then creates an array of all branch nodes for each node and returns an array of strings for all nodes passed in correct hierarchical order. The function is defined in the node_functions.php file and is located on lines 2211 to 2228. The article was last updated on March 27th, 2023, at 15:35 Europe/London time based on the source file dated March 15th, 2023, at 16:55 Europe/London time.
remove_empty_temp_directory()
The remove_empty_temp_directory() function is used to remove an empty folder from the path to a file. It is particularly useful for removing temporary directories that are no longer needed once the file they were created to hold no longer exists. The function should only be called once the directory to be removed is empty. The function takes a single parameter, which is the full path to the file in the file store. If the path is not empty and the file does not exist, the function will retrieve the path to the folder and remove it using the rmdir() function. This function is located in the file_functions.php file, specifically on lines 239 to 247. The article was last updated on March 27, 2023, at 15:35 Europe/London time, based on the source file dated October 27, 2022, at 16:50 Europe/London time.
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. The function accepts no parameters and returns an array of resource types that includes the resource type's reference, name, allowed extensions, order by, configuration options, tab name, push metadata, inherit global fields, colour, and icon. The function is defined in the resource_functions.php file on lines 3633 to 3651. The article was last updated on March 27th, 2023, at 15:35 Europe/London time, based on the source file dated March 21st, 2023, at 10:00 Europe/London time.
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. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )
data_joins_field_value_translate_and_csv()
The function `data_joins_field_value_translate_and_csv()` is used to convert `$data_joins` value to a user-friendly version. The text value is split by the configured separator and all parts are translated. To correctly translate tree paths, a part will also be broken into path elements and glued back using the same separator. The function takes a single parameter `$value`, which is the text to be processed. The function returns a string or null. If the `$value` parameter is null, the function returns null. The function first splits the `$value` parameter by the configured separator, and then translates each part of the split value. The translated parts are then glued back together using the same separator. The function is defined in the `resource_functions.php` file and is located on lines 9210 to 9225. The article provides the function definition, parameters, return type, and location. The article was last updated on 27th March 2023 at 15:35 Europe/London time based on the source file dated 21st March 2023 at 10:00 Europe/London time.
report_has_thumbnail()
The article describes a function called "report_has_thumbnail()" that checks if a report has a "thumbnail" column in its SQL query. The function takes a single parameter, which is the report's SQL query. The function uses a regular expression to search for the "thumbnail" column in the query and returns a boolean value indicating whether the column is present or not. The article also provides the location of the function in the source code and its definition. The article was last updated on March 27th, 2023, based on the source file dated January 23rd, 2023.
report_process_query_placeholders()
The report_process_query_placeholders() function is used to find and replace a report's query placeholders with their values. It takes two parameters: $query, which is the report's SQL query, and $placeholders, which is an array that maps between a placeholder and its actual value. The function first merges the default placeholders with the provided ones, then iterates over all placeholders and replaces them with their corresponding values in the SQL query. Finally, it returns the modified SQL query. This function is defined in the reporting_functions.php file and can be found on lines 697 to 711. The article also includes a warning not to edit the article as it is automatically updated from the ResourceSpace source code, and any edits will be lost. The article was last updated on March 27th, 2023, based on the source file dated January 23rd, 2023.
can_edit_tile()
The can_edit_tile() function checks whether the current user can edit a dashboard tile. If the tile is only visible to the user, the function checks whether the user is the owner of the tile. If the tile is visible to all users, the function checks whether the user has dashboard admin permissions. The function takes four parameters: $tileref, which is the reference of the tile being edited; $audience, which is 0 if the tile is only visible to the user and 1 if the tile is visible to all users; $user, which is the reference of the user editing the tile; and $usertile, which is the reference of the tile being edited. The function returns a boolean value, true if editing is allowed and false if it is not. The function is located in the dash_functions.php file, between lines 2189 and 2210. This article was last updated on March 27th, 2023, at 15:35 Europe/London time, based on the source file dated March 24th, 2023, at 15:55 Europe/London time.
order_tree_nodes()
Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 6337 tokens. Please reduce the length of the messages. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )
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. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )
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`. The function takes one parameter, `$url`, which is the full URL. The function returns a boolean value, true if a valid URL is found, and false otherwise. The function first filters the URL using `filter_var()` and checks if it is false. If it is false, the function returns false. The function then uses `parse_url()` to parse the URL and checks if the scheme is in the `BLOCKED_STREAM_WRAPPERS` array. If it is, the function returns false. The function then checks if the hostname is in the `$api_upload_urls` array. If it is, the function returns true. If it is not, the function returns false. The function is located in `include/api_functions.php` and is defined between lines 430 to 457. The article also provides the source code for the function.
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. The function splits multiple value fields before translation and then recombines them. The function returns the resource record with updated data_joins (ie fieldX columns) values. The function is defined in the resource_functions.php file and is located between lines 9208 to 9236. The function uses an array_flip$fieldX_column_names to map the fieldX columns and a fieldX_data array to store the data in the fieldX columns. The function then uses a fieldX_translated_csv array to store the translated data in the fieldX columns. The function uses the i18n_get_translated() function to translate non-multiple value fields and the data_joins_field_value_translate_and_csv() function to translate multiple value fields. The function then merges the resource and fieldX_translated_csv arrays and returns the result.
canSeeAnnotationsFields()
The canSeeAnnotationsFields() function is a helper function that determines whether annotations are to be displayed. It takes an array of annotation fields as a parameter and returns an array of annotation fields that can be viewed. The function is defined in the resource_functions.php file and is located on lines 8523 to 8540. The function first checks if annotations are enabled and if the $k parameter is empty. If both conditions are met, the function loops through the annotation fields and checks if the metadata field view access is granted for each field. If access is granted, the field is added to the $can_view_fields array. The function then returns the $can_view_fields array. This function is useful for determining which annotation fields can be viewed by a user and can be used in conjunction with other functions to display annotations in a user-friendly way.
check_upload_terms()
The check_upload_terms() function is used to verify if the terms have been accepted for a given upload. The terms only need to be accepted when uploading through an upload share link, and if so, the accepted terms are stored in $_COOKIE["acceptedterms"]. If the upload is not external, the function returns false if external upload share and terms have not been accepted. The function takes two parameters: $collection, which is the collection reference, and $k, which is the share key. The function returns a boolean value, true if external upload share and terms have also been accepted. The function is defined in the collections_functions.php file, and its location is specified in the article. The article also provides the function's parameters, return value, and definition. The article was last updated on March 17th, 2023, based on the source file dated March 16th, 2023.
display_related_resources()
Description Render all related resources on view page Parameters Column Type Default Description $context array Array with all required info from the view page Return void * Location include/render_functions.
remove_config_option()
Description Remove system/user preferences Parameters Column Type Default Description $user_id ?int Database user ID $name: string $name string Configuration option (variable) name Location include/config_functions.
unrelate_all_collection()
Description Un-relate all resources in a collection Parameters Column Type Default Description $collection integer ID of collection $checkperms true Return boolean Location include/collections_functions.
migrate_fixed_to_text()
Description Migrate fixed list field data to text field data for a given resource reference. Useful when changing resource type field from a data type that can contain multiple values such as a dynamic keywords field.
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.
is_banned_extension()
Description Is the given extension in the list of blocked extensions? Also ensures extension is no longer than 10 characters due to resource.file_extension limit Parameters Column Type Default Description $extension string - file extension to check Return bool Location include/file_functions.
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.
get_resource_type_field_resource_types()
Description Get all resource_type->resource-type_field associations Parameters Column Type Default Description $fields array [] Optional array of resource_type_field data returned by get_resource_type_fields() Return array Array with resource_type_field ID as keys and arrays of resource_type IDs as values Location include/config_functions.
create_resource_type()
Description Create a new resource type with the specified name Parameters Column Type Default Description $name Name $name of new resouce type Return int| bool ref of new resource type or false if invalid data passed Location include/config_functions.
save_resource_type()
Description Save updated resource_type data Parameters Column Type Default Description $ref int Ref of resource type $savedata array Array of column values Return bool * Location include/config_functions.
rs_get_resource_type()
Description Get resource_type data Parameters Column Type Default Description $ref int Return array * Location include/config_functions.
save_resource_type_field()
Description Save resource type field - used on pages/admin/admin_resource_type_field_edit.php Parameters Column Type Default Description $ref int Field ID $columns array Array of column data bool $postdata: $migrate_data $onload_message $lang true; []; foreach$resource_types as $resource_type true false $postdata mixed POST'd data Return bool * 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 class "schema"; ?>
admin_resource_type_field_option()
Description Render metadata field option input on admin_resource_type_field_edit.php Parameters Column Type Default Description $propertyname string Field property/column name $propertytitle string Title $helptext string Help text $type mixed Input type (0=text,1=boolean,2=text area) $currentvalue mixed Current field setting $fieldtype int Field type.
render_resource_type_selector_question()
Description Renders a resource type selection dropdown Parameters Column Type Default Description $label string label for the field $name string name of form select $class string "stdwidth" array CSS class to apply $hidden boolean false optionally hide the question usng CSS display:none $current int Current selected value true false true; Return void Location include/render_functions.
is_valid_upload_path()
Description Confirm upload path is one of valid paths. Parameters Column Type Default Description $file_path string Upload path.
resource_random_jpg()
Parameters Column Type Default Description $resource $width $height Location include/test_functions.
assert_post_request()
Description Assert API request is using POST method. Parameters Column Type Default Description $force: bool $force bool Force the assertion Return array Returns JSend data back {@see ajax_functions.
assert_content_type()
Description Assert API sent the expected content type. Parameters Column Type Default Description $expected string MIME type $received_raw: string $received_raw string MIME type Return array Returns JSend data back {@see ajax_functions.
get_resource_type_field_columns()
Parameters This function accepts no parameters. Location include/config_functions.php lines 1763 to 1815 Definition function get_resource_type_field_columns () { global $lang ; $resource_type_field_column_definitions = execution_lockout_remove_resource_type_field_props ([ 'active' => [ $lang [ 'property-field_active' ], '' , 1 , 1 ], 'global' => [ $lang [ 'property-resource_type' ], '' , 1 , 0 ], 'title' => [ $lang [ 'property-title' ], '' , 0 , 1 ], 'type' => [ $lang [ 'property-field_type' ], '' , 0 , 1 ], 'linked_data_field' => [ $lang [ 'property-field_raw_edtf' ], '' , 0 , 1 ], 'name' => [ $lang [ 'property-shorthand_name' ], $lang [ 'information-shorthand_name' ], 0 , 1 ], 'required' => [ $lang [ 'property-required' ], '' , 1 , 1 ], 'order_by' => [ $lang [ 'property-order_by' ], '' , 0 , 0 ], 'keywords_index' => [ $lang [ 'property-index_this_field' ], $lang [ "information_index_warning" ] .
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.
delete_config_option()
Description Delete entry from the user_preferences table completely (instead of setting to blank via set_config_option). Used by system preferences page when deleting a file to allow fallback to value (if set) in config.
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 Return actions for all users? If false, or if the current user does not have $userref; []; // Find all resources that have changed archive state in the given number of minutes ifis_int_loose$view_title_field 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 Array of actions as returned by get_user_actions_recent() func_get_args; $actions_resource_requests $actions_account_requests $actions_approve_hide_groups; Return array Subset of actions for the given user as would be provided by get_user_actions() Location include/action_functions.
resource_request_visible()
Description Can the logged in user see the request specified? Parameters Column Type Default Description $request array Array of request details Return bool * Location include/request_functions.
generate_temp_download_key()
Description Generate a temporary download key for user. Used to enable temporary resource access to a file via download.php so that API can access resources after calling get_resource_path() Parameters Column Type Default Description $user int User ID $resource int Resource ID $size: string array'col' 'thm' && 'pre' $size string Download size to access.
get_all_parents_by_leaf()
Description Build a row consisting of all parents of a given leaf node Example: 1 2 2.3 2.7 2.8.4 2.8.5 2.8.6 2.9 3 Passing in node 5 will return nodes 8,2 in one row Parameters Column Type Default Description $ref integer Node ID of tree leaf $level integer Node depth level (as returned by get_tree_node_level()) Return integer|boolean Location include/node_functions.
get_all_ancestors_for_node()
Description Return a row consisting of all ancestor nodes of a given node Example: 1 2 2.3 2.7 2.8.4 2.8.5 2.8.6 2.9 3 Passing in node 5 will return nodes 8,2 in one row Parameters Column Type Default Description $ref integer A tree node $level integer Node depth level (as returned by get_tree_node_level()) Return array|boolean Location include/node_functions.
render_pie_graph()
Description Output the Javascript to build a pie chart in the canvas denoted by $id $data must be in the following format $data = array( "slice_a label" => "slice_a value", "slice_b label" => "slice_b value", ); a string can be used to denote the total value to pad the data to Parameters Column Type Default Description $id string identifier for the canvas to render the chart in $data array data to be rendered in the chart $total string|null NULL null will mean that the data is complete and an extra field is not required Return void Location include/reporting_functions.
render_bar_graph()
Description Output the Javascript to build a bar chart in the canvas denoted by $id $data must be in the following format $data = array( "point_a x value" => "point_a y value", "point_b x value" => "point_b y value", Parameters Column Type Default Description $id string identifier for the canvas to render the chart in $data array data to be rendered in the chart Return void Location include/reporting_functions.
log_keyword_usage()
Description Log which keywords are used in a search Parameters Column Type Default Description $keywords array refs of keywords used in a search $search_result $search_results array result of the search Location include/search_functions.
create_random_image()
Description Generate a random image which can be used during testing (e.g to upload, or create previews for) - text -> Image content text - filename (default: random) - width (default: 150) - height (default: 50) - bg[red|green|blue] -> Background colour (RGB), e.
create_random_video()
Description Generate a random video which can be used during testing (e.g to upload, or create previews for) - duration (default: 5 seconds) - width (default: 300) - height (default: 300) - filename (default: random) - extension (default: mp4) - text -> Video content text (optional) Parameters Column Type Default Description $info: array $GLOBALS['ffmpeg_supported_extensions'] $info array Set video parameters: Return array Returns an "error" key if something went wrong, otherwise provides some useful info (e.
skip_scr_size_preview()
Description Determine if the scr size should be used for previews. When $resource_view_use_pre is true the scr size shouldn't be used. Where access is restricted and restricted access users can't access the scr size, the scr size shouldn't be used.
i18n_get_all_translations()
Description Return an array of all available language strings for the given id, with the language code as the key Parameters Column Type Default Description $langid: string $applicationname // $storagedir; $langid string The identifier of the lang string Return array * Location include/language_functions.
add_download_column()
Description Render the Download info for the resource tool (on view page) Parameters Column Type Default Description $ref int Resource ref $size_info array Preview size information $downloadthissize bool Should the size be downloadable or requested? $view_in_browser bool false Allow the size to be viewed directly in the browser Location include/render_functions.