Search results


Background information

ResourceSpace is a fully featured Digital Asset Management Solution released under an Open Source License

Read more...


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.

Read more...


Fixed list metadata

Article in the ResourceSpace Knowledge Base explaining Concepts about Fixed List Metadata.

Read more...


Exiftool

Exiftool is a useful third party tool that allows data embedded within a file to be automatically extracted on upload into the resource metadata. The fields the embedded data is placed into are configured by an administrator and can accommodate any metadata stored within the file.

Read more...


Featured & public collections

An introduction to Featured Collections Featured Collections are a good way to showcase your best and most in-demand content. They may contain only a select number of resources, but Featured Collections encourage users to browse content by directing them to tags or ideas that they may find useful elsewhere on the system.

Read more...


Getting the most from your search

1. Refining your search The ResourceSpace search feature is a very powerful tool and if used effectively can quickly lead you to the resources you want.

Read more...


Alternative files

Resources are intended to be a single entity, however, sometimes it is necessary to store multiple versions together with a single set of metadata, this is when you need to use alternative files. Unlike related resources which allows you to link resources with a common subject or theme, alternative files allow users to search for one resource and easily access multiple variations of it from a single point.

Read more...


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.

Read more...


PDF contact sheet

The article explains how to create a PDF contact sheet for a collection in ResourceSpace. A contact sheet is a quick reference overview of what is in a collection, which can be printed or downloaded. To create a contact sheet, users need to choose the "Contact Sheet" option in the collection Actions list. This will bring them to a configuration page where they can choose page size, number of columns, orientation, and number of thumbnails per page for their sheet. Users can preview the sheet and then click create to download or print it. The article also provides advanced configuration options for contact sheets, such as producing a separate resource file, changing the font family, resizing the logo, and showing the contact sheet footer. Users can also set certain fields to show based on the display mode selected. The article notes that the arrays should contain only the ID of the fields users would like to use.

Read more...


Flickr publishing

The Flickr publishing plugin allows users to publish selected resources from selected collections to a Flickr account. To use the plugin, users must create a featured collection or collection that contains resources they wish to publish. On the featured collections page or in the collection bar, users can select "Publish to Flickr" from the dropdown list of actions. If not already logged in, users must click on "Log in to the target Flickr account," granting permission if necessary and reloading the page. Users can then select the resources they wish to publish. The plugin options page allows a ResourceSpace administrator to customize the behavior of the plugin. The Flickr API key and secret do not need to be changed unless there is a good reason to do so. From v9.8+, users can select the ResourceSpace field that will be used to populate the title. Users can also select the ResourceSpace field that will be used to populate the caption and keywords. The plugin also allows users to add the ResourceSpace ID to the title, select the default preview size to publish, and publish alternative sizes if the one selected above is not available. Additionally, users can use a popout with nicer output when publishing, show previews on popout, and show metadata to be published on popout.

Read more...


 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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


 Advanced metadata field configuration

This page covers the advanced options for metadata field configuration.

Read more...


 Smart featured collections

Smart featured collections are an automated way of collating resources with a common theme.

Read more...


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.

Read more...


 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.

Read more...


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.

Read more...


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.

Read more...


Advanced workflow

workflow, process, publish, embargo, archive, review,state, status

Read more...


get_resource_field_data

The article provides information about the function "get_resource_field_data" which returns all field data for a given resource. The function requires the ID of the resource as input and returns a JSON containing the resource metadata. The article does not provide any information about the programming language or platform on which this function can be used.

Read more...


update_field

The article provides information on the update_field function, which is used to set the value of a metadata field. The function requires the ID of the resource, the numeric ID or shortname of the field, and the value to set the field to. For fixed list option fields, the value can be a comma-separated list. The function also has an optional parameter, $nodevalues, which should be set to TRUE if passing in values as a comma-separated list of field option IDs. The available nodes can be retrieved via get_field_options(). The function returns a boolean value indicating whether the operation was successful or not.

Read more...


get_alternative_files

The article describes a function called "get_alternative_files" that returns a list of alternative files for a given resource. The function takes in three optional parameters: $orderby, $sort, and $type. $orderby specifies which column to use for ordering, $sort specifies whether to sort in ascending or descending order, and $type specifies the type of alternative files to return. The function returns a list of alternative files for the given resource. The article provides a table that describes the parameters of the function and their data types. The function is useful for retrieving alternative files for a resource, which can be used for various purposes such as providing users with different file formats or resolutions.

Read more...


add_alternative_file

The article provides information on the function "add_alternative_file" which is used to add a new alternative file. The function requires the ID of the resource and a short descriptive name for the new alternative file. A more verbose description, file name, file extension, file size, alt_type, and file location are optional parameters. The alt_type is used as a tag that, in conjunction with configuration $alt_types_organize, will group and organize the display of alternative files. The function returns the ID of the new alternative file or false on failure.

Read more...


delete_alternative_file

The article provides information on the function 'delete_alternative_file' which is used to delete an alternative file. The function requires two parameters, the ID of the resource and the ID of the alternative file, both of which are of integer data type. The function returns a boolean value indicating the success of the operation. The article does not provide any further details on the context or purpose of the function.

Read more...


upload_file

The "upload_file" function allows users to upload a new local file to an existing resource, replacing any file that is already attached. The function takes in several variables, including the ID of the resource, a flag to process embedded metadata, a flag to re-process an existing file, a flag to automatically rotate images, and the path on disk of the file to upload. The function returns a boolean value indicating whether the operation was successful or not. This function can be useful for updating resources with new files or re-processing existing files with updated metadata mappings.

Read more...


upload_file_by_url

The "upload_file_by_url" function allows users to upload a new remote file to an existing resource, replacing any file that is already attached. The function requires the ID of the resource, which must already exist, and the URL of the file to upload. ResourceSpace will copy the file to the local system then import it to the specified resource. Users can also set optional parameters such as whether to process embedded metadata, whether to revert to the existing file, and whether to automatically rotate images if the rotation flag is set on the image. The function returns a boolean value indicating whether the operation was successful or not.

Read more...


get_field_options

The get_field_options function returns all the available tags or selectable options for a given field. The function takes two parameters: $ref, which is the ID or shortname of the field, and $nodeinfo, which provides extended field option information if set to TRUE. The function returns a list of the options for the field, such as a list of countries for a country field. If $nodeinfo is set to TRUE, each field will return additional information, including the unique ID of the field option, the translated text of the option, the parent option ID (used by category tree fields), and the order_by value used to determine rendering order.

Read more...


remove_resource_from_collection

The article provides a brief description of the "remove_resource_from_collection" function, which is used to remove a resource from a collection. The function requires two parameters: the ID of the resource and the ID of the collection from which the resource needs to be removed. The data type for both parameters is an integer. The function returns a Boolean value, which is true if the operation is successful and false if it fails. The article does not provide any information on the programming language or platform on which the function can be used.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


 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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


 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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


 Format chooser

This plugin allows you to choose different formats when downloading files which are generated on the fly.

Read more...


QuickTime reporting corrupt file when using H264 encoding

QuickTime can report that an MP4 file is corrupt when generating previews using H264 encoding. This can occur when using automated alternatives or normal previews, depending on the options used to generate the preview. To avoid compatibility issues with QuickTime, it is recommended to use YUV planar color space with 4:2:0 chroma subsampling as a safe pixel format for H.264 video. This can be achieved by adding the options "-vf format=yuv420p" or "-pix_fmt yuv420p" to the preview options.

Read more...


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.

Read more...


 1. Finding your way around

An overview of the ResourceSpace user interface.

Read more...


 3. File sizes and formats

When we click on a resource we are shown all the available metadata for that resource, and also a list of available versions.

Read more...


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.

Read more...


Feedback

The Feedback plugin adds a user feedback function to the header for all users. Once enabled, users will be prompted to answer a configurable feedback form, and responses to these forms are stored in a CSV file inside the feedback plugin folder on the server. The user feedback form can be configured by editing the pop-up prompt and individual questions in the form. Each question in the form has several options, including the format of the question, the ability to delete or add new questions, the text or HTML displayed for the question, and options for list-type questions. The Feedback plugin is a useful tool for gathering feedback from users and improving website functionality.

Read more...


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.

Read more...


replace_resource_file

The article describes the function 'replace_resource_file' which replaces the primary resource file for a given resource. The function requires the ID of the resource to replace the file for and the file path or URL of the file to use as the replacement. The file location must be accessible without authentication from the server. The function also provides optional parameters such as 'no_exif' which determines whether to process embedded metadata, 'autorotate' which automatically rotates images if the rotation flag is set on the image, and 'keep_original' which preserves the original resource file. The function returns a JSON encoded array including 'Status' (SUCCESS/FAILED) indicating whether the replacement was successful and 'Message' providing further information on the result. The 'keep_original' parameter must be set to true if using the rse_version plugin unless it is explicitly permitted to be disabled in the plugin configuration. If this plugin is not in use, then setting this to true will save the original resource file as an alternative file.

Read more...


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.

Read more...


Configuring the database

This article provides instructions on how to configure a database for ResourceSpace, an open-source digital asset management system. The article explains how to create a new database and how to create dedicated users for ResourceSpace, which is a good security practice. The article provides instructions for creating users with read-write access and read-only access levels. The article emphasizes the importance of changing the passwords given as an example to ensure security. ResourceSpace will automatically create database tables, indexes, and other necessary components.

Read more...


Creating and editing filters

Creating and editing filters. Filters can be set to control access to resources

Read more...


Configuring geolocation settings

ResourceSpace, the open source digital asset management software, can be configured to use Leaflet Maps, an open source mapping library, instead of the current system based on OpenLayers, which will soon be discontinued. However, showing exact geolocation data requires a large number of map images, which take up a lot of disk space and the space required for them gets exponentially larger at each additional zoom level. ResourceSpace does not specify tile servers by default but includes geographic map tiles with a very basic level of detail. This means that although users can see high-level tiles, they are unable to zoom into the maps to see exact locations unless tile servers are configured in the configuration file. A list of tile servers can be found at https://wiki.openstreetmap.org/wiki/Tile_servers. The article provides a list of geolocation and tile server configuration options that can be configured to add tile servers and customise how geolocation data is displayed.

Read more...


Digital object identifier

The Digital Object Identifier (DOI) is a unique alphanumeric string that is used to permanently identify an object and link it to its metadata and digital location. The DOI plugin enables users to create DOIs for their resources individually or in bulk as a collection action. These DOIs are then registered with DataCite, but in order to register a DOI with DataCite, users must be a Direct Member. The plugin is a useful tool for researchers and publishers who want to ensure that their work is easily identifiable and accessible.

Read more...


Excluding terms from your search

Array ( [error] => Array ( [message] => That model is currently overloaded with other requests. You can retry your request, or contact us through our help center at help.openai.com if the error persists. (Please include the request ID f782d24440b0f4ba933405eeb64004f9 in your message.) [type] => server_error [param] => [code] => ) )

Read more...


Edit access for contributors

ResourceSpace administrators can configure the system to grant contributors edit access to the resources they have uploaded. To enable this, the configuration option $edit_access_for_contributor should be set to true. If certain user groups need to have edit access to Active state but administrators do not want those users to be able to edit resources they have not contributed, ResourceSpace can be configured to force edit access only to contributors, regardless of what edit access is granted via general permissions. This can be done by adding the configuration option $edit_only_own_contributions to the configuration file or in a specific user group configuration override.

Read more...


Removing resources from collections

The article provides three methods to remove resources from a collection. The first method involves clicking and dragging the resource to be removed from the collection and dropping it onto the trash icon that appears at the top of the screen. The second method involves selecting the collection and using the minus icon on the thumbnail to remove the resource. The third method involves selecting multiple resources using the checkbox on the thumbnail and choosing "remove selected from collection" from the actions drop-down menu. All three methods can be used to remove resources from any collection, whether private, public, or featured, provided the user has the required permissions to edit the collection.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


Managing offline jobs

The My Jobs page is a tool used to check the status of jobs, such as collection downloads and preview creation. Administrators can also use this page to check on the status of jobs systemwide. The page displays information about jobs in the queue, including job priority, job reference, job type, user that created the job (admins only), job status, and the earliest job start date. The tools column provides options to delete the job, display job information (admins only), reset the job (admins only), and boost the job (admins only). Completed jobs will only appear if the configuration setting $offline_job_delete_completed is set to false. The page allows users to filter jobs by job type, job status, or the user that created the job. The job priority is indicated by icons, including urgent, user jobs, system jobs, and completed jobs.

Read more...


My Profile

The My Profile page in ResourceSpace allows users to configure their user profile to collaborate more effectively with team members and other users. The page has two fields: Profile/Bio and Profile image. The Profile/Bio field is a space to enter details about oneself, such as their role within the organization or responsibilities within ResourceSpace. Up to 500 characters can be entered. The Profile image field allows users to upload a profile image in .jpg or .jpeg format. The image will be shown in place of the user menu icon at the right of the header bar and will also be visible against any comments users add to resources. Once the form has been completed, users can click Save to store the details. The profile image uploaded will be displayed at the bottom of the form along with a Delete button should users wish to remove it. Users can update their profile text or image by making the changes and clicking Save. Tips for creating an effective profile message include keeping it clear and concise, while clear images with the subject in the center are most effective as a profile image.

Read more...


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.

Read more...


Configuring Leaflet Maps

This article provides a guide to configuring Leaflet maps in ResourceSpace. To enable Leaflet maps, the configuration option $leaflet_maps_enable must be set to true. The article then 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.

Read more...


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.

Read more...


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.

Read more...


Offline archive

The Offline Archive plugin allows users to relocate archived files to an offline location. Once enabled, users can configure the plugin to specify how the relocation will occur. There are four configuration options available: selecting the metadata field that will hold the archive reference code, entering the location that the archives will be created in, specifying a subfolder of the StaticSync folder that restored files will be placed in, and determining whether to carry across the timestamp of the original file. Users should select a field that contains data to be included in the archive filename, which should be a required field that is always populated. The location entered should be the path relative to the filestore. The subfolder setting is only relevant for StaticSync users, and when left blank, the archived files will be relocated to the main StaticSync folder. The preserve file timestamp setting determines whether the file will carry the timestamp at the point of relocation if not specified.

Read more...


Create Alternative Video Files

ResourceSpace can be configured to automatically generate a video file in a different size or format from the uploaded original. This can be useful where a smaller size is required for uploading to the web. To configure this, the $ffmpeg_alternatives option is used, with example values for two different video types. Each configuration block represents a defined size. Before applying the configuration, check that the values entered, in particular the vcodec and acodec, are supported by ffmpeg. If ResourceSpace is configured with $originals_separate_storage=true, then the $originals_separate_storage_ffmpegalts_as_previews configuration can be used to vary the destination of the alternative file. The preview shown when viewing the resource may also be updated to allow selection and preview of the alternative files generated by $ffmpeg_alternatives. To make them available in the preview window, the $videojs_resolution_selection configuration can be added and updated to match the files.

Read more...


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.

Read more...


 Ordering featured collections

Users of version 9.8 of Montala's CMS can now order featured collections by drag and drop. The feature allows users to reorder collections at one level at a time. If no order has been defined, categories are displayed first, followed by collections sorted by name. The legacy behaviour of using stars to indicate order is also applied when sorting by name. Smart featured collections cannot be ordered or part of the general order and will always be at the end of the list. Dragging and dropping only reorders featured collections at a particular depth.

Read more...


Subtitles for Video Preview

Moodle has added a new feature that allows subtitles to be included when previewing video resources. Once configured, users can select the subtitle track from the player controls when playing a video resource preview. Multiple tracks can be added as required. To add subtitles, users must upload a subtitle .vtt file as an alternative file to the resource, edit the alternative files and use the description field to set a name for the subtitle track, and reload the resource and start the preview to select the subtitle track in the player. Subtitles will also be included in the output from the Embed Video plugin.

Read more...


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.

Read more...


Configuring Apache

The article provides instructions on how to configure Apache to ensure that the filestore is not browseable by disabling indexing. This can be done by either disabling the autoindex module or by setting the directory's options directive. The article also lists several locations that don't need to be accessed from a web browser and provides instructions on how to block access to these locations. Additionally, the article provides instructions on how to block access to all .svn files by adding a code snippet to the Apache .conf file.

Read more...


Customising the font

The article provides instructions on how to customise the font in the user interface of a system. Users can navigate to Admin -> System -> System configuration and expand the User interface section to choose a preset font from the Font drop-down or upload a custom font file (extension woff2, woff, ttf or otf) with the Custom font file option. Changes are applied immediately, but users are advised to check key areas of the system after applying a custom font as some fonts may cause unexpected display issues. The article also includes an image of the Font drop-down menu.

Read more...


Managing resource requests notifications

Resource requests notifications in ResourceSpace v10+ can now be managed using a metadata field value. The metadata field is designated to hold information that the system can use to determine the user group responsible for a resource. The allowed field types are fixed list fields with only a single current value, such as drop-down lists or radio buttons. The system will disable the feature if it is incorrectly configured. When configured, the system will take the list of users that should have been notified and filter it down based on the configured metadata field for all the requested resources. This will override any legacy $resource_type_request_emails configuration option that may be set. The behaviour of the configuration option $manage_request_admin or "Auto-assign Managed Requests" plugin should remain unchanged.

Read more...


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.

Read more...


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.

Read more...


The Beginner's Guide to Managing Consent for Charities & Non-Profits

The article provides a beginner's guide to managing consent for charities and non-profits. It covers different types of consent and how they can be obtained, as well as looking at the intricacies of specific use cases and best practices when consent is in place. The guide is aimed at helping organizations navigate the complex world of data protection and privacy regulations, such as the General Data Protection Regulation (GDPR) and the California Consumer Privacy Act (CCPA). The guide also emphasizes the importance of transparency and communication with donors and supporters, as well as the need for ongoing monitoring and review of consent processes. The article includes a form to download the free guide.

Read more...


The Beginner's Guide to Managing Consent for Charities & non-profits Download

Thank you for downloading the PDF version of The Beginner's Guide to Managing Consent.

Read more...


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).

Read more...


Table: filter_rule

The "filter_rule" table is a part of the ResourceSpace database schema and defines the rules that make up a filter. It has two columns: "ref" and "filter". The "ref" column is an auto-incrementing index, while the "filter" column is a reference to the "filter" table. This table is empty by default and is used to store filter rules that are created by users to filter resources based on specific criteria. The "filter" table contains information about the filters that are available in ResourceSpace, and the "filter_rule" table is used to define the rules that make up these filters. The schema overview provides more context for this table and other tables in the ResourceSpace database. This article was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


Table: filter_rule_node

The article provides a table called "filter_rule_node" that defines the nodes and conditions that make up a filter rule. The table has three columns: "filter_rule," "node_condition," and "node." The "filter_rule" column is an integer that refers to the "filter_rule" table, while the "node_condition" column is a boolean that indicates whether the given node is required to be present or absent to satisfy the rule. The "node" column is an integer that refers to the "node" table. The table is empty by default, and the article provides a link to the schema overview for context. The document was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


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).

Read more...


Table: resource_type_field

Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 10150 tokens. Please reduce the length of the messages. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )

Read more...


Table: user_preferences

The user_preferences table stores all user preferences and system configurations. It has three columns: ref, user, parameter, and value. The ref column is an auto-incrementing index, while the user column refers to the user table. The parameter column contains the name of the preference, which is usually set in the config file, and the value column contains the preference value. This table is empty by default. The schema overview provides more context for this table.

Read more...


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.

Read more...


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.

Read more...


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".

Read more...


Cross-Site Request Forgery (CSRF)

Cross-Site Request Forgery (CSRF) is an attack that forces an authenticated user to execute unwanted actions on a web application. The attack targets state-changing requests, not data theft, as the attacker has no way to see the response to the forged request. The attacker can trick users into executing actions of their choosing through social engineering, such as sending a link via email or chat. If the victim is a normal user, a successful CSRF attack can force the user to perform state-changing requests like adding new users or changing their email address. If the victim is part of a "Super Admin" user group, CSRF can compromise the entire web application. To prevent CSRF attacks, developers should use generateFormToken() to render a hidden input tag with the CSRF token for the form. They should also enforcePostRequest() when processing state-changing operations and add CSRF tokens until there are no failed CSRF validation errors. For AJAX requests, developers should use echo generateAjaxToken() in their post data and ensure that generateAjaxToken() is always used at the end of post data. If there is ever a need to use these in a pure JS file, then the identifier should be set using the $CSRF_token_identifier configuration option and the token generated using generateCSRFToken().

Read more...


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.

Read more...


update_resource_type_field_order()

Developer reference for function update_resource_type_field_order()

Read more...


ajax_response_fail()

Developer reference for function ajax_response_fail()

Read more...


iiif_get_canvases()

Developer reference for function iiif_get_canvases()

Read more...


iiif_get_thumbnail()

Developer reference for function iiif_get_thumbnail()

Read more...


iiif_get_image()

Developer reference for function iiif_get_image()

Read more...


iiif_error()

Developer reference for function iiif_error()

Read more...


remove_resource_from_collection()

Developer reference for function remove_resource_from_collection()

Read more...


refresh_collection_frame()

Developer reference for function refresh_collection_frame()

Read more...


send_collection_feedback()

Developer reference for function send_collection_feedback()

Read more...


remove_from_collection_link()

Developer reference for function remove_from_collection_link()

Read more...


remove_all_resources_from_collection()

Developer reference for function remove_all_resources_from_collection()

Read more...


makeFilenameUnique()

Developer reference for function makeFilenameUnique()

Read more...


new_featured_collection_form()

Developer reference for function new_featured_collection_form()

Read more...


GetThemesFromRequest()

Developer reference for function GetThemesFromRequest()

Read more...


collection_download_get_archive_file()

Developer reference for function collection_download_get_archive_file()

Read more...


collection_download_use_original_filenames_when_downloading()

Developer reference for function collection_download_use_original_filenames_when_downloading()

Read more...


collection_download_process_text_file()

Developer reference for function collection_download_process_text_file()

Read more...


update_zip_progress_file()

Developer reference for function update_zip_progress_file()

Read more...


collection_download_process_csv_metadata_file()

Developer reference for function collection_download_process_csv_metadata_file()

Read more...


collection_download_process_command_to_file()

Developer reference for function collection_download_process_command_to_file()

Read more...


collection_download_clean_temp_files()

Developer reference for function collection_download_clean_temp_files()

Read more...


validateAnonymousFlag()

Developer reference for function validateAnonymousFlag()

Read more...


validateFlag()

Developer reference for function validateFlag()

Read more...


submitForm()

Developer reference for function submitForm()

Read more...


validate_field()

Developer reference for function validate_field()

Read more...


set_config_option()

Developer reference for function set_config_option()

Read more...


get_config_option()

Developer reference for function get_config_option()

Read more...


get_config_option_users()

Developer reference for function get_config_option_users()

Read more...


get_config_options()

Developer reference for function get_config_options()

Read more...


process_config_options()

Developer reference for function process_config_options()

Read more...


config_clean()

Developer reference for function config_clean()

Read more...


config_html()

Developer reference for function config_html()

Read more...


config_add_html()

Developer reference for function config_add_html()

Read more...


config_text_input()

Developer reference for function config_text_input()

Read more...


config_add_text_input()

Developer reference for function config_add_text_input()

Read more...


config_file_input()

Developer reference for function config_file_input()

Read more...


config_colouroverride_input()

Developer reference for function config_colouroverride_input()

Read more...


config_add_file_input()

Developer reference for function config_add_file_input()

Read more...


config_single_select()

Developer reference for function config_single_select()

Read more...


config_add_single_select()

Developer reference for function config_add_single_select()

Read more...


config_boolean_select()

Developer reference for function config_boolean_select()

Read more...


config_add_boolean_select()

Developer reference for function config_add_boolean_select()

Read more...


config_checkbox_select()

Developer reference for function config_checkbox_select()

Read more...


config_add_checkbox_select()

Developer reference for function config_add_checkbox_select()

Read more...


config_add_colouroverride_input()

Developer reference for function config_add_colouroverride_input()

Read more...


config_add_single_ftype_select()

Developer reference for function config_add_single_ftype_select()

Read more...


config_single_ftype_select()

Developer reference for function config_single_ftype_select()

Read more...


config_generate_AutoSaveConfigOption_function()

Developer reference for function config_generate_AutoSaveConfigOption_function()

Read more...


config_process_file_input()

Developer reference for function config_process_file_input()

Read more...


config_generate_html()

Developer reference for function config_generate_html()

Read more...


config_merge_non_image_types()

Developer reference for function config_merge_non_image_types()

Read more...


config_register_core_fieldvars()

Developer reference for function config_register_core_fieldvars()

Read more...


revoke_all_users_flag_cascade_delete()

Developer reference for function revoke_all_users_flag_cascade_delete()

Read more...


append_default_position()

Developer reference for function append_default_position()

Read more...


reorder_default_dash()

Developer reference for function reorder_default_dash()

Read more...


update_default_dash_tile_order()

Developer reference for function update_default_dash_tile_order()

Read more...


checkTileConfig()

Developer reference for function checkTileConfig()

Read more...


checkConfigCustomHomePanels()

Developer reference for function checkConfigCustomHomePanels()

Read more...


get_default_dash()

Developer reference for function get_default_dash()

Read more...


deleteDefaultDashTile()

Developer reference for function deleteDefaultDashTile()

Read more...


render_delete_dialog_JS()

Developer reference for function render_delete_dialog_JS()

Read more...


debug_function_call()

Developer reference for function debug_function_call()

Read more...


initFacialRecognition()

Developer reference for function initFacialRecognition()

Read more...


prepareFaceImage()

Developer reference for function prepareFaceImage()

Read more...


faceRecognizerPredict()

Developer reference for function faceRecognizerPredict()

Read more...


safe_file_name()

Developer reference for function safe_file_name()

Read more...


generateUserFilenameUID()

Developer reference for function generateUserFilenameUID()

Read more...


formatfilesize()

Developer reference for function formatfilesize()

Read more...


filesize2bytes()

Developer reference for function filesize2bytes()

Read more...


verify_extension()

Developer reference for function verify_extension()

Read more...


getFolderContents()

Developer reference for function getFolderContents()

Read more...


filesize_unlimited()

Developer reference for function filesize_unlimited()

Read more...


format_display_field()

Developer reference for function format_display_field()

Read more...


format_string_more_link()

Developer reference for function format_string_more_link()

Read more...


draw_performance_footer()

Developer reference for function draw_performance_footer()

Read more...


sql_affected_rows()

Developer reference for function sql_affected_rows()

Read more...


get_slideshow_files_data()

Developer reference for function get_slideshow_files_data()

Read more...


form_value_display()

Developer reference for function form_value_display()

Read more...


generateCSRFToken()

Developer reference for function generateCSRFToken()

Read more...


isValidCSRFToken()

Developer reference for function isValidCSRFToken()

Read more...


generateFormToken()

Developer reference for function generateFormToken()

Read more...


enforcePostRequest()

Developer reference for function enforcePostRequest()

Read more...


findDuplicates()

Developer reference for function findDuplicates()

Read more...


str_replace_formatted_placeholder()

Developer reference for function str_replace_formatted_placeholder()

Read more...


ucfirstletter()

Developer reference for function ucfirstletter()

Read more...


ucfirstletter_callback()

Developer reference for function ucfirstletter_callback()

Read more...


seems_utf8()

Developer reference for function seems_utf8()

Read more...


http_get_preferred_language()

Developer reference for function http_get_preferred_language()

Read more...


perform_login()

Developer reference for function perform_login()

Read more...


system_notification()

Developer reference for function system_notification()

Read more...


runFitsForFile()

Developer reference for function runFitsForFile()

Read more...


getFitsMetadataFieldValue()

Developer reference for function getFitsMetadataFieldValue()

Read more...


extractFitsMetadata()

Developer reference for function extractFitsMetadata()

Read more...


check_date_format()

Developer reference for function check_date_format()

Read more...


migrate_resource_type_field_check()

Developer reference for function migrate_resource_type_field_check()

Read more...


migrate_filter()

Developer reference for function migrate_filter()

Read more...


mix_filename()

Developer reference for function mix_filename()

Read more...


safe_export()

Developer reference for function safe_export()

Read more...


edit_filter_to_restype_permission()

Developer reference for function edit_filter_to_restype_permission()

Read more...


delete_nodes_for_resource_type_field()

Developer reference for function delete_nodes_for_resource_type_field()

Read more...


get_root_node_by_leaf()

Developer reference for function get_root_node_by_leaf()

Read more...


node_field_options_override()

Developer reference for function node_field_options_override()

Read more...


get_nodes_from_keywords()

Developer reference for function get_nodes_from_keywords()

Read more...


copy_resource_type_field_nodes()

Developer reference for function copy_resource_type_field_nodes()

Read more...


get_pdf_template_path()

Developer reference for function get_pdf_template_path()

Read more...


generate_pdf()

Developer reference for function generate_pdf()

Read more...


process_if_statements()

Developer reference for function process_if_statements()

Read more...


resolve_pdf_language()

Developer reference for function resolve_pdf_language()

Read more...


get_pdf_templates()

Developer reference for function get_pdf_templates()

Read more...


purge_plugin_config()

Developer reference for function purge_plugin_config()

Read more...


config_json_encode()

Developer reference for function config_json_encode()

Read more...


config_encode()

Developer reference for function config_encode()

Read more...


get_plugin_config()

Developer reference for function get_plugin_config()

Read more...


set_plugin_config()

Developer reference for function set_plugin_config()

Read more...


config_gen_setup_post()

Developer reference for function config_gen_setup_post()

Read more...


config_gen_setup_html()

Developer reference for function config_gen_setup_html()

Read more...


config_section_header()

Developer reference for function config_section_header()

Read more...


config_add_section_header()

Developer reference for function config_add_section_header()

Read more...


config_add_text_list_input()

Developer reference for function config_add_text_list_input()

Read more...


config_multi_select()

Developer reference for function config_multi_select()

Read more...


config_add_multi_select()

Developer reference for function config_add_multi_select()

Read more...


config_single_user_select()

Developer reference for function config_single_user_select()

Read more...


config_add_single_user_select()

Developer reference for function config_add_single_user_select()

Read more...


config_multi_user_select()

Developer reference for function config_multi_user_select()

Read more...


config_add_multi_user_select()

Developer reference for function config_add_multi_user_select()

Read more...


config_single_group_select()

Developer reference for function config_single_group_select()

Read more...


config_add_single_group_select()

Developer reference for function config_add_single_group_select()

Read more...


config_multi_group_select()

Developer reference for function config_multi_group_select()

Read more...


config_add_multi_group_select()

Developer reference for function config_add_multi_group_select()

Read more...


config_multi_ftype_select()

Developer reference for function config_multi_ftype_select()

Read more...


config_add_multi_ftype_select()

Developer reference for function config_add_multi_ftype_select()

Read more...


config_single_rtype_select()

Developer reference for function config_single_rtype_select()

Read more...


config_add_single_rtype_select()

Developer reference for function config_add_single_rtype_select()

Read more...


config_multi_rtype_select()

Developer reference for function config_multi_rtype_select()

Read more...


config_add_multi_rtype_select()

Developer reference for function config_add_multi_rtype_select()

Read more...


config_db_single_select()

Developer reference for function config_db_single_select()

Read more...


config_add_db_single_select()

Developer reference for function config_add_db_single_select()

Read more...


config_db_multi_select()

Developer reference for function config_db_multi_select()

Read more...


config_add_db_multi_select()

Developer reference for function config_add_db_multi_select()

Read more...


config_add_hidden()

Developer reference for function config_add_hidden()

Read more...


config_text_field()

Developer reference for function config_text_field()

Read more...


config_userselect_field()

Developer reference for function config_userselect_field()

Read more...


config_field_select()

Developer reference for function config_field_select()

Read more...


config_boolean_field()

Developer reference for function config_boolean_field()

Read more...


config_custom_select_multi()

Developer reference for function config_custom_select_multi()

Read more...


config_custom_select()

Developer reference for function config_custom_select()

Read more...


plugin_activate_for_setup()

Developer reference for function plugin_activate_for_setup()

Read more...


include_plugin_config()

Developer reference for function include_plugin_config()

Read more...


render_search_field()

Developer reference for function render_search_field()

Read more...


is_field_displayed()

Developer reference for function is_field_displayed()

Read more...


display_multilingual_text_field()

Developer reference for function display_multilingual_text_field()

Read more...


display_field()

Developer reference for function display_field()

Read more...


render_date_range_field()

Developer reference for function render_date_range_field()

Read more...


renderSocialMediaShareLinksForUrl()

Developer reference for function renderSocialMediaShareLinksForUrl()

Read more...


render_field_selector_question()

Developer reference for function render_field_selector_question()

Read more...


render_filter_bar_button()

Developer reference for function render_filter_bar_button()

Read more...


render_custom_fields()

Developer reference for function render_custom_fields()

Read more...


render_csrf_data_attributes()

Developer reference for function render_csrf_data_attributes()

Read more...


display_field_data()

Developer reference for function display_field_data()

Read more...


unsubscribe_user_from_periodic_report()

Developer reference for function unsubscribe_user_from_periodic_report()

Read more...


get_valid_custom_fields()

Developer reference for function get_valid_custom_fields()

Read more...


gen_custom_fields_html_props()

Developer reference for function gen_custom_fields_html_props()

Read more...


process_custom_fields_submission()

Developer reference for function process_custom_fields_submission()

Read more...


set_resource_defaults()

Developer reference for function set_resource_defaults()

Read more...


append_field_value()

Developer reference for function append_field_value()

Read more...


remove_keyword_from_resource()

Developer reference for function remove_keyword_from_resource()

Read more...


remove_all_keyword_mappings_for_field()

Developer reference for function remove_all_keyword_mappings_for_field()

Read more...


update_field()

Developer reference for function update_field()

Read more...


get_resource_type_field()

Developer reference for function get_resource_type_field()

Read more...


get_resource_field_data()

Developer reference for function get_resource_field_data()

Read more...


get_resource_field_data_batch()

Developer reference for function get_resource_field_data_batch()

Read more...


get_max_resource_ref()

Developer reference for function get_max_resource_ref()

Read more...


get_resource_ref_range()

Developer reference for function get_resource_ref_range()

Read more...


get_exiftool_fields()

Developer reference for function get_exiftool_fields()

Read more...


createTempFile()

Developer reference for function createTempFile()

Read more...


delete_exif_tmpfile()

Developer reference for function delete_exif_tmpfile()

Read more...


get_alternative_files()

Developer reference for function get_alternative_files()

Read more...


add_alternative_file()

Developer reference for function add_alternative_file()

Read more...


delete_alternative_file()

Developer reference for function delete_alternative_file()

Read more...


get_alternative_file()

Developer reference for function get_alternative_file()

Read more...


save_alternative_file()

Developer reference for function save_alternative_file()

Read more...


process_notify_user_contributed_submitted()

Developer reference for function process_notify_user_contributed_submitted()

Read more...


notify_user_contributed_submitted()

Developer reference for function notify_user_contributed_submitted()

Read more...


notify_user_contributed_unsubmitted()

Developer reference for function notify_user_contributed_unsubmitted()

Read more...


get_field()

Developer reference for function get_field()

Read more...


get_field_options_with_stats()

Developer reference for function get_field_options_with_stats()

Read more...


save_field_options()

Developer reference for function save_field_options()

Read more...


get_keyword_from_option()

Developer reference for function get_keyword_from_option()

Read more...


add_field_option()

Developer reference for function add_field_option()

Read more...


filter_match()

Developer reference for function filter_match()

Read more...


log_diff()

Developer reference for function log_diff()

Read more...


autocomplete_blank_fields()

Developer reference for function autocomplete_blank_fields()

Read more...


get_resource_files()

Developer reference for function get_resource_files()

Read more...


notify_user_resources_approved()

Developer reference for function notify_user_resources_approved()

Read more...


resource_type_config_override()

Developer reference for function resource_type_config_override()

Read more...


truncate_join_field_value()

Developer reference for function truncate_join_field_value()

Read more...


resource_file_readonly()

Developer reference for function resource_file_readonly()

Read more...


get_video_info()

Developer reference for function get_video_info()

Read more...


copy_locked_fields()

Developer reference for function copy_locked_fields()

Read more...


process_edit_form()

Developer reference for function process_edit_form()

Read more...


get_default_archive_state()

Developer reference for function get_default_archive_state()

Read more...


save_original_file_as_alternative()

Developer reference for function save_original_file_as_alternative()

Read more...


replace_resource_file()

Developer reference for function replace_resource_file()

Read more...


sanitize_date_field_input()

Developer reference for function sanitize_date_field_input()

Read more...


filter_check()

Developer reference for function filter_check()

Read more...


get_field_options()

Developer reference for function get_field_options()

Read more...


get_data_by_field()

Developer reference for function get_data_by_field()

Read more...


get_fields()

Developer reference for function get_fields()

Read more...


get_hidden_indexed_fields()

Developer reference for function get_hidden_indexed_fields()

Read more...


get_category_tree_fields()

Developer reference for function get_category_tree_fields()

Read more...


get_OR_fields()

Developer reference for function get_OR_fields()

Read more...


get_indexed_resource_type_fields()

Developer reference for function get_indexed_resource_type_fields()

Read more...


get_resource_type_fields()

Developer reference for function get_resource_type_fields()

Read more...


notify_resource_change()

Developer reference for function notify_resource_change()

Read more...


metadata_field_edit_access()

Developer reference for function metadata_field_edit_access()

Read more...


get_download_filename()

Developer reference for function get_download_filename()

Read more...


get_resource_type_from_extension()

Developer reference for function get_resource_type_from_extension()

Read more...


alt_is_ffmpeg_alternative()

Developer reference for function alt_is_ffmpeg_alternative()

Read more...


create_resource_type_field()

Developer reference for function create_resource_type_field()

Read more...


metadata_field_view_access()

Developer reference for function metadata_field_view_access()

Read more...


get_workflow_states()

Developer reference for function get_workflow_states()

Read more...


delete_resource_type_field()

Developer reference for function delete_resource_type_field()

Read more...


suggest_refinement()

Developer reference for function suggest_refinement()

Read more...


get_advanced_search_fields()

Developer reference for function get_advanced_search_fields()

Read more...


get_advanced_search_collection_fields()

Developer reference for function get_advanced_search_collection_fields()

Read more...


search_form_to_search_query()

Developer reference for function search_form_to_search_query()

Read more...


refine_searchstring()

Developer reference for function refine_searchstring()

Read more...


search_filter()

Developer reference for function search_filter()

Read more...


resolve_nodes_from_string()

Developer reference for function resolve_nodes_from_string()

Read more...


rebuild_specific_field_search_from_node()

Developer reference for function rebuild_specific_field_search_from_node()

Read more...


get_default_search_states()

Developer reference for function get_default_search_states()

Read more...


get_filter_sql()

Developer reference for function get_filter_sql()

Read more...


get_simple_search_fields()

Developer reference for function get_simple_search_fields()

Read more...


get_fields_for_search_display()

Developer reference for function get_fields_for_search_display()

Read more...


get_filters()

Developer reference for function get_filters()

Read more...


get_filter()

Developer reference for function get_filter()

Read more...


get_filter_rules()

Developer reference for function get_filter_rules()

Read more...


get_filter_rule()

Developer reference for function get_filter_rule()

Read more...


save_filter()

Developer reference for function save_filter()

Read more...


save_filter_rule()

Developer reference for function save_filter_rule()

Read more...


delete_filter()

Developer reference for function delete_filter()

Read more...


delete_filter_rule()

Developer reference for function delete_filter_rule()

Read more...


copy_filter()

Developer reference for function copy_filter()

Read more...


update_search_from_request()

Developer reference for function update_search_from_request()

Read more...


get_slideshow_image_file_path()

Developer reference for function get_slideshow_image_file_path()

Read more...


remove_groups_smart_from_userlist()

Developer reference for function remove_groups_smart_from_userlist()

Read more...


get_notification_users()

Developer reference for function get_notification_users()

Read more...


verify_antispam()

Developer reference for function verify_antispam()

Read more...


get_users_from_permission_lookup()

Developer reference for function get_users_from_permission_lookup()

Read more...


offset_user_local_timezone()

Developer reference for function offset_user_local_timezone()

Read more...


get_search_default_restypes()

Developer reference for function get_search_default_restypes()

Read more...


trim_filename()

Developer reference for function trim_filename()

Read more...


config_multi_archive_select()

Developer reference for function config_multi_archive_select()

Read more...


config_add_multi_archive_select()

Developer reference for function config_add_multi_archive_select()

Read more...


get_featured_collection_resources()

Developer reference for function get_featured_collection_resources()

Read more...


get_featured_collection_categ_sub_fcs()

Developer reference for function get_featured_collection_categ_sub_fcs()

Read more...


generate_featured_collection_image_urls()

Developer reference for function generate_featured_collection_image_urls()

Read more...


get_featured_collections()

Developer reference for function get_featured_collections()

Read more...


featured_collections_permissions_filter_sql()

Developer reference for function featured_collections_permissions_filter_sql()

Read more...


featured_collection_check_access_control()

Developer reference for function featured_collection_check_access_control()

Read more...


order_featured_collections_by_hasresources()

Developer reference for function order_featured_collections_by_hasresources()

Read more...


get_featured_collection_categories()

Developer reference for function get_featured_collection_categories()

Read more...


is_featured_collection_category()

Developer reference for function is_featured_collection_category()

Read more...


is_featured_collection_category_by_children()

Developer reference for function is_featured_collection_category_by_children()

Read more...


get_featured_collection_category_branch_by_leaf()

Developer reference for function get_featured_collection_category_branch_by_leaf()

Read more...


process_posted_featured_collection_categories()

Developer reference for function process_posted_featured_collection_categories()

Read more...


get_featured_collection_ref_by_name()

Developer reference for function get_featured_collection_ref_by_name()

Read more...


allow_featured_collection_share()

Developer reference for function allow_featured_collection_share()

Read more...


filter_featured_collections_by_root()

Developer reference for function filter_featured_collections_by_root()

Read more...


get_featured_collections_by_resources()

Developer reference for function get_featured_collections_by_resources()

Read more...


can_delete_featured_collection()

Developer reference for function can_delete_featured_collection()

Read more...


render_new_featured_collection_cta()

Developer reference for function render_new_featured_collection_cta()

Read more...


render_featured_collection_category_selector()

Developer reference for function render_featured_collection_category_selector()

Read more...


render_featured_collections()

Developer reference for function render_featured_collections()

Read more...


render_featured_collection()

Developer reference for function render_featured_collection()

Read more...


render_featured_collections_category_permissions()

Developer reference for function render_featured_collections_category_permissions()

Read more...


dash_tile_featured_collection_get_resources()

Developer reference for function dash_tile_featured_collection_get_resources()

Read more...


order_featured_collections()

Developer reference for function order_featured_collections()

Read more...


strip_prefix_chars()

Developer reference for function strip_prefix_chars()

Read more...


get_inner_html_from_tag()

Developer reference for function get_inner_html_from_tag()

Read more...


get_all_featured_collections()

Developer reference for function get_all_featured_collections()

Read more...


compute_featured_collections_acess_control()

Developer reference for function compute_featured_collections_acess_control()

Read more...


array_flip_by_value_key()

Developer reference for function array_flip_by_value_key()

Read more...


cleanup_files()

Description Delete temporary files Parameters Column Type Default Description $files array array of file paths Return void This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 5th May 2023 13:50 Europe/London time.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


delete_profile_image()

Description Delete a user's profile image. This will first remove the file and then update the db to clear the existing value. Parameters Column Type Default Description $user_ref mixed User id of the user who's profile image is to be deleted.

Read more...


get_profile_image()

Description Generate the url to the user's profile image. Fetch the url by the user's id or by the profile image filename. Parameters Column Type Default Description $user_ref int "" User id of the user who's profile image is requested.

Read more...


get_profile_text()

Description Return user profile for a defined user. Parameters Column Type Default Description $user_ref int User id to fetch profile details for.

Read more...


get_languages_notify_users()

Description load language files for all users that need to be notified into an array - use for message and email notification load in default language strings first and then overwrite with preferred language strings Parameters Column Type Default Description $languages array array - array of language strings Return array $language_strings_all This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 20th April 2023 15:50 Europe/London time.

Read more...


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.

Read more...


render_workflow_state_question()

Parameters Column Type Default Description $current null $checkaccess true Location include/render_functions.

Read more...


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.

Read more...


config_register_core_field_refs()

Description Used to block deletion of 'core' fields. Parameters Column Type Default Description $source string What part (e.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


set_unique_filename()

Description Ensures filename is unique in $filenames array and adds resulting filename to the array Parameters Column Type Default Description &$filename &$filenames $filename string Requested filename to be added.

Read more...


leaflet_osm_basemaps()

Parameters Column Type Default Description OpenStreetMap // { '" detectRetina: 19 maxZoom: osm_attribute attribution: 18 maxZoom: 20 maxZoom: osm_fr_attribute attribution: L.

Read more...


leaflet_polygon_parsing()

Parameters Column Type Default Description $fields $minmax true Location include/map_functions.

Read more...


leaflet_coordinate_check()

Parameters Column Type Default Description $coordinate $type Location include/map_functions.

Read more...


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' ] ?> &nbsp;</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='.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


exiftool_resolution_calc()

Description Set resource dimensions using data from exiftool. Parameters Column Type Default Description $file_path string Path to the original file.

Read more...


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.

Read more...


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.

Read more...


fetch_assoc_stmt()

Description Fetches the results of a prepared statement as an array of associative arrays such that each stored array is keyed by the result's column names. Parameters Column Type Default Description $stmt \mysqli_stmt $buffer true $fetchrows -1 Must stmt have been successfully prepared and executed prior to calling this function Whether buffer to buffer the result set; if true, results are freed at end of function The fetchrows maximum numbers of rows to return; results will be truncated if necessary Return An array, possibly empty, containing one associative array per result row OR true if there was no result set.

Read more...


ps_param_fill()

Description When constructing prepared statements and using e.g. ref in (some list of values), assists in preparing the parameter array. Parameters Column Type Default Description $array array The input array, to prepare for output.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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).

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


render_fa_icon_selector()

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 ) )

Read more...


filterIcons()

The article discusses the process of creating a filterIcons() function in JavaScript, which can be used to filter and display icons based on user input. The function takes an array of objects, each containing information about an icon, and filters them based on the user's search query. The article provides a step-by-step guide on how to create the function, including creating an HTML form for user input and using the filter() method to filter the icons based on the search query. The article also includes code snippets and explanations for each step of the process. Additionally, the article discusses how to style the filtered icons using CSS and provides examples of different styling options. Overall, the article provides a comprehensive guide for creating a filterIcons() function in JavaScript and customizing it to fit specific design needs.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


prefix_value()

Description Helper function to quickly build a list of values, all prefixed the same way. Example use: $fieldXs = array_map(prefix_value('field'), [3, 88]); Parameters Column Type Default Description $prefix: string $needle $prefix string Prefix value to prepend.

Read more...


Open source

ResourceSpace Digital Asset Management System: Open Source, Open Culture, Free Software, Free Forever

Read more...


Pending review and submission

Some users will have restricted permissions within ResourceSpace, affecting how they upload assets to the library. With a standard configuration, members of the General Users group will first upload into the 'Pending Submission' state.

Read more...


Simple search

The simple search panel sits to the right of every page within ResourceSpace, making it easy to search from anywhere within the system. The basic panel features a general search box for quick, free text searching across all indexed fields, along with resource type and date.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


Simple SAML

Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 4917 tokens. Please reduce the length of the messages. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )

Read more...


Google VR View

Google VR View is a plugin that displays previews of 360-degree images and videos using the Google VR View browser API. The plugin is supported on modern versions of Chrome, Opera, Safari, Firefox, IE 11 and Edge on Windows, macOS, Linux, Android and iOS. The images and videos should be stored in the equirectangular-panoramic format for correct rendering. The plugin options page requires information such as whether to use the Google hosted VR View javascript library, the URL to VR View javascript library, resource types to display using VR View, whether to enable autopan, disable VR mode button, use original resource file as source for image preview and video preview, field used to determine whether VR View is used, required value for VR View to be enabled, field used to determine whether image/video is stereo and field used to determine whether roll/pitch should be prevented. The metadata field selected will be used to determine whether or not to display the preview in VR View.

Read more...


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.

Read more...


ResourceSpace messages

ResourceSpace uses messages to ensure that notifications are prominently displayed so that important messages are not overlooked. A counter next to the user's profile will increase to indicate the activity as new messages are received. Users can manage all messages sent to them by marking them as read or unread and deleting them using the links at the top of the table when at least one message is selected. Users can control which messages they receive by managing their 'Preferences' settings from the user menu at the top of the screen. The 'Show me system notifications on screen as they are received' option is useful if users receive a lot of notifications and want to quickly check messages without having to navigate to the messages screen. Enabling the 'Send me resource messages about resource management such as resource state or metadata changes' option will let users know when resources they have downloaded have been replaced. For administrators, this will also enable notifications of user uploads if $send_collection_to_admin is enabled on the system. The 'Send me messages about important system events e.g. low disk space' option is for administrators only and provides information about important server events. The 'Send me user administration messages e.g. new user account requests' option is to notify user administrators when a new account request has been made. The 'Send me messages about resource access e.g. resource requests' option sends users messages when users request access to restricted resources.

Read more...


Emails

ResourceSpace uses emails to notify users of relevant activity such as resource submissions, user account requests, or resource download requests. However, most email notifications have been replaced by system messages, but users can still opt to receive emails by modifying their user preferences. Users can configure their accounts to decide which emails they wish to receive, and they must have a valid email address set to see these options. The options include sending emails instead of system notifications where possible, sending emails in addition to system notifications, CCing users when sending resources and collections, sending a daily email with all unread notifications from the last 24 hours, sending a daily email with all unread notifications if not logged on for more than X days, and marking messages as read once the summary email has been sent. The last option may be disabled for new ResourceSpace systems until it is confirmed that emails from the system are getting through.

Read more...


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.

Read more...


Project structure

A breakdown of the folders used within ResourceSpace, and their typical contents and function.

Read more...


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.

Read more...


 Image tools

The Image Tools plugin enables users to edit images by rotating, cropping or scaling them. The plugin also allows users to modify the home slideshow image using resources that have previously been uploaded to ResourceSpace. To open the transform plugin, users must browse to the resource they want to edit and select "Image tools" from Resource Tools. The icons next to the image allow for simple editing and adjustments, including cropping, resetting, rotating, flipping vertically or horizontally, and tweaking the gamma levels of the image. Custom options can be added to the list of preconfigured sizes in the drop-down list. The plugin also offers extra options, including embedding suggested resolution information in the image metadata, allowing users to select the quality of the resultant file (JPG/PNG only), creating the resultant file with the sRGB profile, and enabling basic batch rotation functionality for a collection of resources. Note that the output file format for a given action will affect the level of compression that can be achieved.

Read more...


Messaging

The article provides instructions on how to view and send messages on a website. To view messages, users need to click on the user profile icon and select "Messages". Messages are listed in date order, newest first, and users can mark them as read, delete them, or reply to them. To send a message, users can either click on "Reply" next to a message, click on the "New message" link, click on the "Send message" link from a user's profile page, or click on the "Message" link from the "Manage users" page or the edit user page (administrators only). Users can send messages to multiple users at once by typing the user's name in the "Recipients" box and clicking on the correct user when they appear. If users are sending messages to a single user, their messages and any replies will be shown as they are received. However, if they are sending messages to multiple users, the conversation view is not visible.

Read more...


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.

Read more...


get_user_message

The article describes a function called "get_user_message" which retrieves a given message ID. The function only allows access to messages that belong to the user who is requesting them. The function takes a single parameter, which is the message ID, and returns an array with three elements: the message text, the message URL, and the message owner. If the user does not have access to the message or the message does not exist, the function returns false. The article does not provide any information about the programming language or platform on which the function can be used.

Read more...


 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.

Read more...


Welcome to ResourceSpace

The ResourceSpace Knowledge Base provides a library of guides and information to help individuals and businesses with their Digital Asset Management System.

Read more...


New to ResourceSpace?

Find out from the Knowledge Base how to get started with the ResourceSpace Digital Asset Management System.

Read more...


User guides

Introduction to the user guides section of the ResourceSpace Knowledge Base

Read more...


Knowledge Base structure

Article to explain how the ResourceSpace Knowledge Base is structured to assist with finding content specific for the reader

Read more...


Resources and structure

Article to explain the concept of Resources and how they are structured with ResourceSpace Digital Asset Manager

Read more...


Metadata

ResourceSpace Digital Asset Management System uses embedded and user inserted metadata to describe and track your resources

Read more...


Accounts & access

A ResourceSpace Knowledge Base article explaining user accounts and access within ResourceSpace for users.

Read more...


 Language options

  To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video   ResourceSpace has built a large international community with a wide range of supported languages.

Read more...


Resource administrators

Knowledge Base Section introduction for Resource Administers to learn and understand how to work within ResourceSpace

Read more...


System Administrators

ResourceSpace Knowledge Base article to introduce the System Administrators role within ResourceSpace

Read more...


 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.

Read more...


Advanced search

The advanced search page provides access to a wider selection of metadata fields, making it possible to create very refined searches. These fields are grouped by resource type, with global fields (those which may apply to any resource) coming at the top of the page, and fields that are specific to a selected resource type further down.

Read more...


Resource tools

Resource tools provide options and controls for managing each resource. The options you see will depend on your user group permissions but the view here is what you would see if you have full access to the resource and all system actions.

Read more...


Editing resources

Metadata should be added when the resource is uploaded to ensure it is useful and easily found, however, it is also important to monitor your resources and to keep your metadata relevant and up to date.

Read more...


Editing multiple resources

As well as editing individual resources , you can also edit multiple resources using a batch edit. This allows you to easily apply the same change to any number of resources in one action which can help with continuity.

Read more...


Editing resource previews

Resource previews are an important aspect of ResourceSpace as this is the first contact users will have with your resources and is likely to be how they will decide which assests to use. Missing previews are the first thing that should be remedied after upload.

Read more...


Resource status & access

Resource status and access are central to controlling how ResourceSpace users interact with resources. The Status determines whether the resource can be found or edited by users, the Access controls which users can download the resource.

Read more...


 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.

Read more...


Deleting resources

There are two ways to delete resources within ResourceSpace: Delete individually Find the resource you wish to delete. Under Resource tools , click Delete Depending on system configuration, you may then have to do one of the following: Confirm your deletion via a pop-up window confirmation Enter your password on the next page to confirm deletion Batch delete To delete multiple resources using a collection: Add the resources you wish to delete to a collection.

Read more...


 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.

Read more...


 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."

Read more...


Deleting collections

This article explains how to delete collections in a simple and straightforward manner. Users are unable to delete their default "My Collection", but any other collection can be deleted by going to the "Manage My Collections Page", clicking "Delete" against the collection to be deleted, and confirming the deletion. It is important to note that deleting a collection will not delete the resources themselves. To delete multiple collections, users can select the items required by checking the boxes on the left side of the grid, and then clicking the bin icon above the grid to delete all the selected collections. A prompt will appear to confirm the deletion before the collections are permanently deleted.

Read more...


 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.

Read more...


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.

Read more...


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.

Read more...


 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.

Read more...


 Annotate

The article discusses the Annotate feature that allows users to add annotations to a resource and connect them to a part of the resource preview. The annotations could include names or features of note within an image. To annotate a resource, users can hover over the preview image on a resource's page and click "Add Annotation." Users can also hide annotations from the hovering annotate menu on the resource preview image, and change the size of the hover area by dragging the yellow box edges while the annotation edit pane is open. A metadata field is required to store the annotations on the resource, and it must be defined as a dynamic keywords list to be selectable in the "Metadata field" dropdown at the lower end of the setup page. The article also mentions that it is possible to print annotations into a PDF with an option that requires switching on in the plugin configuration. This adds a link on the preview page and underneath the preview on the resource view page that allows users to create a PDF that stores all the annotation contents in a table and shows the annotations numbered over the resource.

Read more...


Embed document

The article explains how to embed document resource previews on another website using a short HTML script. The process involves browsing to the resource with the configured resource type, selecting "Embed" next to the document resource, and copying the HTML code to paste into the other site's source. Additionally, there is an option to download the PDF variant of the document resource. The article provides a visual aid in the form of an image to help users understand the process.

Read more...


Embed slideshow

This article provides instructions on how to generate HTML for embeddable collection slideshows on remote sites using a function. The process involves creating a dynamic collection, selecting 'Share' from the collection options, choosing the size, preview duration, and maximise option, and then generating the HTML. The generated HTML can then be copied and pasted into the external site source to embed the slideshow. The article also mentions that administrators may have enabled the option to display captions on the embedded slideshow. However, due to the dynamic nature of collections, a square box with black will appear until the slideshow is embedded. An image is also provided to illustrate the process.

Read more...


 Embed video

This article provides instructions on how to embed a video in an external site using an HTML script. The process involves browsing to the configured resource type, selecting "Embed" next to the video resource, and copying the HTML code to paste into the other site's source. The article notes that subtitle tracks will also be included if available for the resource. The article includes an image of the "Embed video" button and a sample HTML script for embedding a video using VideoJS. The script includes a video element with controls, a poster image, and a source element with the video file's URL and type. The article also includes links to additional resources for adding subtitles to video previews.

Read more...


 License manager

Adds the capability to manage resource licensing via the resource view page.

Read more...


News

The article provides instructions on how to add a news segment to a website's structure. This feature allows updates to be posted on the website, providing further advertising or information to users. The process involves browsing to the "Manage News Items" section in the admin panel, creating news items by providing a date, headline, and body content, and then editing or deleting them as needed. The news items will then be displayed on the website for all to see. The article is accompanied by an image of the news segment.

Read more...


 Propose changes

The article explains how users who cannot edit a resource can propose changes to its metadata to administrators. The administrators can then approve or reject these changes. To submit a change, the user must navigate to a resource page and click "Propose Changes" in Resource Tools. Next to the field they wish to change, they must click "Propose Change" and select/enter the new value they wish to suggest for that field. They can repeat this process until satisfied and then click "Save". This will notify a moderator who can check those changes. The article also includes an image that shows the steps to propose changes.

Read more...


 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.

Read more...


Youtube publish

The YouTube Publish plugin allows users to publish video resources to a configured YouTube account. The plugin uploads data and has configurable mapped fields to automatically add descriptions, titles, and tags. Once uploaded, a URL to the video will be stored against the resource. To publish a video to YouTube, users must log onto Google and go to their dashboard. They should create a new project, click 'ENABLE API'S AND SERVICES', scroll down to 'YouTube Data API' option, and click 'Enable'. On the left-hand side, users should select 'Credentials' and then click 'CREATE CREDENTIALS' and select 'Oauth client ID' in the drop-down menu. Users will be presented with the 'Create OAuth client ID' page. To continue, they must click the blue button 'Configure consent screen', fill in the relevant information and save. Users should then select 'Web application' under 'Application type' and fill in the 'Authorized Javascript origins' with their system base URL and the redirect URL with the callback URL specified at the top of their Resource Space YouTube Publish plugin and click 'Create'. Users will then be presented with a screen showing their newly created 'client ID' and 'client secret'. They should note down the client ID and secret and then enter these details into their Resource Space.

Read more...


 Creating dash tiles

Dash tiles are a great way of creating shortcuts to your favourite things in ResourceSpace.

Read more...


Managing dash tiles

This article explains how to manage dash tiles in ResourceSpace. Dash Administrators can create tiles for all users or selected user groups, and reorder the tiles for those users who cannot manage their own dash. Users who have permission to manage their own dash can remove and reorder Administrator-created tiles, as well as create their own. To remove unwanted dash tiles, users can click and drag the tile and drop it on the trash icon that will appear at the top of the page. There is also a hover-over menu offering "Edit" and "Delete" options. Special dash tiles can be created to link to a user's contributions, featured collections, the upload page, or to another place within ResourceSpace such as public collections. These are created under "Manage dash tiles" and can be published for all or selected user groups. To reorder tiles, users can select "View tiles" on the manage dash tiles page and drag and drop the tiles to display them as they wish. The new location will be saved. Tiles are ordered in a linear manner, which means users can only move a tile to where an existing tile resides.

Read more...


Admin overview

Accessible from the top navigation bar, the Admin menu provides a whole range of tools to help manage ResourceSpace and its contents.

Read more...


 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.

Read more...


User resource requests

ResourceSpace allows users to request access to restricted resources. The request mode setting on the user group determines what happens with the request. If the request mode is set to email only, an email is sent to the administration notification address containing the request details. An admin user must respond manually by either transferring the resource files offline or by sending the user an 'external URL' with open access to the resource files. If the request mode is set to managed, an email is sent to the administration notification address and the admin user can log in to approve or decline the request. Once approved, the user will receive an email automatically and can download the files themselves via ResourceSpace. Managed requests appear in Admin > Manage Requests / Orders. Admin users can approve, decline, move, or delete requests. From v10+, resource requests notifications to the responsible administrators can be managed using a metadata field value.

Read more...


Collection and resource promotion

The article discusses ways to promote resources and collections using ResourceSpace. The homepage slideshow is a great way to showcase new and useful content, and careful management of it will keep the system looking fresh and encourage users to check regularly for new content. The article recommends using the transform plugin to select and crop slideshow images for optimal styling. Featured collections should be carefully maintained to ensure users are seeing only the best resources. This means adding new material as it is uploaded and removing resources that have had sufficient exposure. Public collections are also useful for promoting sets of resources and can be made into dash tiles so they are readily available to users. The article provides links to guides on creating featured and public collections. Overall, promoting resources and collections is a great way to showcase new and useful content, and ResourceSpace offers simple yet effective ways to do this.

Read more...


Homepage slideshow

ResourceSpace, a digital asset management software, has highlighted the importance of updating the homepage slideshow regularly to keep users engaged and the system looking appealing. The "big slideshow" provides a full-screen background image or slideshow for the homepage, while the "small slideshow" moves the slideshow window to the upper left side of the screen, leaving white space on the homepage for displaying dash tiles. ResourceSpace provides an interface to manage slideshow files by navigating to Admin > System > Manage slideshow. Super Administrators can set a slideshow to the home page, featured collections page, or login page. Each slideshow image linked to a resource will have a clickable preview that will point to the resource view page. The Manage slideshow will have the ability to add new, replace, or re-crop slideshow images only if the transform plugin is enabled. Users can also replace slides by using the Transform plugin from the resource view page or copy jpg files to the configured location with a naming convention 1.jpg,2.jpg,3.jpg.

Read more...


User contributions

ResourceSpace allows for user contributions to be managed through user group upload permissions. Trusted uploaders, such as administrators, can add resources without review, while new users must upload their resources in a pending state for review by resource administrators. Administrators can review resources by accessing them through the Admin menu or by viewing their list of user actions. Once reviewed, administrators can move resources to the active state, making them accessible to all users. Batch approval is also available for multiple resources in the pending review state. Administrators can create a new collection or select an empty collection, add resources to the collection, and select the 'Publish' option from the dropdown actions. From version 10, user actions are the primary means by which administrators are made aware of resources that need reviewing, and older notifications have been removed.

Read more...


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.

Read more...


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.

Read more...


Deleted resources

The article provides information on how to manage deleted resources in a system. The directory for deleted resources can be found in the Admin section of the system, and it contains all the deleted resources. Users can recover or permanently delete resources from this location, either in batches or individually using the normal resource or collection tools. It is important to manage deleted resources efficiently to make the best use of storage, but users should be careful when deleting resources as deleting resources already in the deleted state will result in them being irretrievably removed from the system. To recover a resource, users need to select the resource they wish to recover, click "Edit" in Resource tools, change the resource status from "Deleted" to "Active," and click Save. Permanently deleting a resource is as simple as deleting a resource that is already in the deleted state. It is also possible to configure the system to permanently delete a resource when it is first moved to the deleted state. Users can follow the same process for deleting resources to permanently delete resources in the deleted state.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


 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.

Read more...


Edit & upload tabs

This article provides guidance on how to set up and manage tabs in ResourceSpace, a digital asset management system. Tabs can be used to group related metadata fields together, making it easier for users to navigate and edit metadata. In version 10 of ResourceSpace, users can set a tab name on individual fields in system setup, and the fields will then be arranged on tabs. However, it is important to ensure that all visible fields have a tab name specified, otherwise the tab functionality will not work correctly. In addition, the field ordering must be such that fields with the same tab name appear together. The article provides an example of how to correctly order fields to produce the desired tabs, as well as an example of how not to do it. The article includes a screenshot of the ResourceSpace metadata tabs interface.

Read more...


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.

Read more...


 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.

Read more...


User account requests

ResourceSpace offers the option for users to request accounts, which can be enabled or disabled in the system config file. There are four ways in which account requests can work, depending on how the installation is configured. The first is manual creation, where a user submits a form that is emailed to the administrator, who then sets up the account. The second is automatic creation, which requires approval, where requests for accounts are automatically created but must be approved by the administrator before the user can log in. The third is automatic creation with no approval required, where account requests generate an account that is automatically approved and active. The fourth is automatic creation with no approval required for emails ending in a specified domain, where account requests generate an account that is automatically approved if the email matches the specified domains. The configuration also allows for additional fields to be added to the form for manually created accounts to obtain more information about the request.

Read more...


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.

Read more...


Writing your own plugins

Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, you requested 4687 tokens (3663 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 ) )

Read more...


Customising the header image

The article provides a simple guide on how to customize the header image of an installation. Users can access the option to replace the header image by navigating to the "System Configuration" option under the "System" menu on the admin page. From there, users can upload a new file to replace the existing header image. The article includes an image to illustrate the process.

Read more...


 Customising the homepage slideshow

This article provides instructions on how to customise the homepage slideshow on a website. The slideshow images can be selected through the "Admin" -> "System" -> "Slideshow" section. The article also includes code for embedding a video into the homepage slideshow using VideoJS. The code includes links to the necessary JavaScript and CSS files, as well as the video source and poster image. The video is set to autoplay and loop, and can be customised further by adjusting the width, height, and other attributes. The article concludes with an image of a sample homepage with a customised slideshow.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


 Analytics

The analytics function allows detailed reporting on a variety of system actions which can be broken down by user group and filtered by a number of options.

Read more...


Version control

The article explains how to use version control functions from the resource log. Users can click on a log entry to bring up a page showing the full log entry, and a revert link will be displayed where it is relevant. The revert link allows users to undo each edit made to the resource metadata individually and revert an upload where a record file has been replaced. Where the log entry refers to a metadata edit, reverting will reinstate the previous value stored for this field. A confirmation page details the proposed change. Where the log entry refers to a file replacement upload, the revert action will restore the previous file to the record. It is possible to restore the contents of a metadata field for all resources within a collection. Users can select the field on the 'Edit all' screen and choose the option to "Revert to state as of date/time", and the batch operation will then restore the contents of that field to how it was at the specified time. It is also possible to revert to an earlier archive state for an entire collection of resources. Note that reversion operations themselves (both single and batch) are edit actions so will appear in the logs and can also be reverted.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


copy_resource

The article provides information on the "copy_resource" function, which is used to copy a resource. The function only copies metadata and property, not the attached files. The function requires the ID of the resource to be copied and the ID of the resource type for the new resource. The default value for the resource type ID is -1. The function returns the ID of the newly created resource or false if the operation fails.

Read more...


get_resource_log

The "get_resource_log" function returns the full log for a resource. The function takes two parameters: the ID of the resource and the number of rows to return. The default value for the number of rows is -1, which means that all rows will be returned. The function returns the resource log entries.

Read more...


update_resource_type

The article describes the function update_resource_type, which is used to change the resource type of a resource. The function takes two parameters: the ID of the resource and the new resource type ID. The resource type can be changed from one type to another, for example, from photo to video. The function returns a boolean value indicating whether the operation was successful or not.

Read more...


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.

Read more...


get_resource_data

The article provides information about the function get_resource_data() which returns the top-level property data for a resource. The function includes truncated summary metadata, and for full, non-truncated metadata, the function get_resource_field_data() should be used. The function requires the ID of the resource as input, which should be an integer. The return values of the function depend on the system configuration and provide the resource properties. The article does not provide any further information about the context or purpose of the function.

Read more...


get_resource_types

The "get_resource_types" function returns all the configured resource types available to the user. The function does not require any parameters and returns a list of resource types. The list includes the reference number, name, allowed extensions, order by, configuration options, tab name, and push metadata for each resource type. The function can be used to retrieve information about the available resource types and their configurations.

Read more...


delete_resource

The article provides information on how to delete a resource using the delete_resource function. The function requires the ID of the resource to be deleted, which should be an integer. The article does not provide any information on the type of resource that can be deleted using this function. The function returns a boolean value indicating whether the operation was successful or not. The article does not provide any information on the possible reasons for the failure of the operation. The article is brief and provides only the basic information required to use the delete_resource function.

Read more...


get_related_resources

The article describes a function called "get_related_resources" which returns a list of resources that are related to a particular resource. The function takes a single parameter, which is the ID of the resource. The data type of the parameter is an integer. The function returns a list of related resources. The article does not provide any information about the specific implementation of the function or the types of resources that it can return.

Read more...


get_user_collections

The "get_user_collections" function returns a list of collections belonging to a user. This function does not require any parameters to be passed.

Read more...


add_resource_to_collection

The article provides a brief description of the add_resource_to_collection function, which is used to add a resource to a collection. The function takes two parameters, $resource and $collection, which are the IDs of the resource and collection, respectively. The data type for both parameters is integer. The function returns a boolean value, true or false, depending on the success of the operation. The article does not provide any further details about the function, such as its purpose or how it is used in a larger context.

Read more...


create_collection

This article provides instructions on how to create a new collection for a user. The user needs to provide a name for the collection, which is a required field. If the user wants to use the standard upload naming format, they can set the $forupload variable to true and leave the name field empty. The function returns an integer value that represents the ID of the newly created collection. If the collection creation is not permitted, the function returns false.

Read more...


delete_collection

The "delete_collection" function is used to delete a collection, and the user must have write access to the collection. The function requires the ID of the collection, which is an integer data type. The return values of the function are either true or false, depending on the success of the operation.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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'.

Read more...


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.

Read more...


Google OAuth

The article provides a step-by-step guide on how to create a Google API Console project to use the Google OAuth plugin. The first step is to download the Google APIs Client Library for PHP to /lib/google_api_php_client_2.2.0. Then, the user needs to go to the Google API Console and select an existing project or create a new one. In the Credentials tab, the user needs to select the New credentials drop-down list and choose OAuth client ID. Under Application type, the user needs to select Web application and register the origins from which the app is allowed to access the Google APIs. The Authorized JavaScript origins field should contain the origin for the app, and the Authorized redirect URI should be the one seen on the setup page of the plugin. Finally, the user needs to copy the Client ID and Client Secret from the resulting OAuth client dialog box. The article also notes that in most cases, it is better to use SimpleSAML for Google authentication, and the Google OAuth plugin has been removed as of version 10.0.

Read more...


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.

Read more...


How to back up your ResourceSpace installation

Ensure that your ResourceSpace open source Digital Asset Management system has appropriate backups in place.

Read more...


Lockable metadata

The article discusses the use of lockable metadata fields to speed up the process of refining metadata after uploading new resources. The feature is intended for use when the default upload sequence is set to 'Upload first, then set metadata'. To use the feature, users can click on the padlock icon next to a field to lock it, and a new "Save all with locked values" button will appear. When the user completes the resource metadata and clicks on "Save and next", the contents of any locked fields will be applied to the next resource in the upload batch. If the user wishes the locked metadata to be applied to all resources in the upload batch, they can click "Save all with locked values". Locked fields can be unlocked at any time by clicking on the locked padlock icon. The configuration option to enable this functionality is $upload_review_lock_metadata = true. However, note that if the user is operating in 'Set metadata, then upload' mode, then lockable metadata will not apply.

Read more...


 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.

Read more...


 CSV user import

The CSV user import plugin allows administrators to create user accounts in bulk based on information stored in a CSV file. The CSV file must be encoded in UTF-8 format and without BOM, and should have text cells quoted in case they contain commas or other special characters. The required column headers are username and email, while the optional columns include password, fullname, account_expires, comments, ip_restrict, and lang. If no password is given to specific users in the CSV or the CSV does not contain a password column, a password will be generated for those users followed by a password reset email sent out to the provided corresponding email address. The plugin adds a 'Batch user import' field to the Manage users page, and to create the user accounts, the administrator must enable the plugin, navigate to Admin > System > Manage users, click on the 'Import' link, choose the CSV file containing the user information, select the target user group in which the users will be created, review the report for any errors, and click on 'Process CSV'. Troubleshooting tips include checking for errors such as existing email addresses, missing mandatory columns, and unknown columns.

Read more...


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.

Read more...


Winauth

Enables users to login to ResourceSpace using Windows Integrated Authentication

Read more...


Video bookend

ResourceSpace has introduced a new feature called Video Bookend, which allows users to add opening and closing image slides to a video stored in ResourceSpace. To use this feature, users need to upload their slides as alternative files for the video resource. Under Resource Tools, users will see the Bookend option, which takes them to the page where they can choose which alternative file should open the video and which should be the closing image. Users can choose from the drop-down menu and download their bookended file. However, users need to ensure that both slide images have the same dimensions as their video (width x height). This feature can be useful for adding branding or context to videos, making them more engaging and informative.

Read more...


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.

Read more...


Troubleshooting

The article provides a troubleshooting guide for common issues encountered while using ResourceSpace. The guide suggests visiting the Installation Check page to resolve any error messages, checking server logs to resolve error code 500, and ensuring the latest version of ResourceSpace is being used by running the command 'svn update' in the web root. The article is intended to help diagnose and resolve issues with ResourceSpace.

Read more...


Username/password not accepted

The article provides a simple solution to the problem of username and password not being accepted in ResourceSpace. It suggests that users should be mindful of case sensitivity while typing out their username. The article explains that usernames with different cases are treated as different usernames in ResourceSpace. For example, 'user123' and 'User123' are considered as two different usernames. Therefore, users should ensure that they type their username with the correct case. This will help them to avoid the problem of their username and password not being accepted in ResourceSpace.

Read more...


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.

Read more...


set_node

The article provides information on the set_node function, which is used to create a new node in ResourceSpace. The function requires the ID of the node to be updated, the ID of the related metadata field, and the name of the node. The name of the node can be a multi-language string in ResourceSpace's supported syntax. The function also has optional parameters, including the ID of the parent node, the order of the node in relation to other nodes for the same field, and the option to return the existing ID of a node with the same value. The function returns the ID of the newly created or existing node. The set_node function is useful for creating new nodes in ResourceSpace, particularly in fixed list fields.

Read more...


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.

Read more...


resource_log_last_rows

adding information on the log codes recorded in the type field

Read more...


add_resource_nodes

The article provides a brief description of the add_resource_nodes function, which is used to add all node IDs in a list to a resource. The function takes two parameters: the ID of the resource to add nodes to and a list of node IDs to add. The function returns a boolean value indicating whether the operation was successful or not. The article also includes a table that provides more details about the parameters, including their data types.

Read more...


add_resource_nodes_multi

The article describes a function called "add_resource_nodes_multi" which adds all node IDs in a list to the specified resources. The function takes two parameters: $resourceid, which is a list of resource IDs to add nodes to, and $nodes, which is a list of node IDs to add. Both parameters are of the string data type. The function returns a Boolean value indicating whether the operation was successful or not. The article does not provide any information on the programming language or platform on which this function can be used.

Read more...


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.

Read more...


 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.

Read more...


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.

Read more...


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+.

Read more...


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.

Read more...


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.

Read more...


E-commerce

ResourceSpace offers e-commerce functionality that allows users to purchase different sizes of resources at set prices. Payments are processed via PayPal. The e-commerce function can be enabled on a per-user group basis, and the user group should have restricted access to the resource they will be buying. The user group can choose the request mode from email only, managed request, payment-immediate, and payment-invoice. E-commerce can be configured with different options such as setting the price for each resource preview size, currency options, PayPal options, and other options. The basket stores size, which means the size of the file required is selected earlier and stored in the basket, and the total price can appear in the basket.

Read more...


TMS link

Help for setting up the tms_link plugin.

Read more...


Manage image sizes

ResourceSpace allows users to upload files in their original form, but also creates derivative files in other resolutions that are stored alongside the resource. The default sizes of these derivative files are appropriate for most uses, but users may require a specific size to be available. New sizes can be configured in Admin -> System -> Image Sizes. Users can create a new size and define its dimensions by setting the number of pixels in its height and width. The height:width ratio of the original resource will be maintained within the dimension parameters. Users can decide if an on-screen preview should be made available for the new size and whether it should be available for download by users with restricted access to the resource. The file for the new size derivative will be automatically created for future resources, but previews will need to be regenerated for resources previously uploaded.

Read more...


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.

Read more...


Logs

ResourceSpace has a log that records the actions of each user, which is accessible in the Users section of the Admin area. The logs record the date and time of user logins, resources they have created, deleted and downloaded, and edits they have made to resources, showing both the previous and new values. Failed login attempts are shown with the notes showing the reason the login attempt failed. Similarly, there is a log attached to each resource, accessed in the Tools section of the resource view page. This log records all actions made against a resource, including upload, edits to its metadata and changes in access or status along with the user who performed each action. It will also indicate any downloads with the corresponding date, time and user. Collections also have a log, available via their actions menu. This log shows when the collection was created, a list of resources added and removed, the time and date of the edit and the user who took the action.

Read more...


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.

Read more...


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.

Read more...


 Adobe link

This plugin allows you to import files from ResourceSpace directly into Adobe InDesign and Photoshop.

Read more...


Resource commenting

Resource commenting can be enabled in ResourceSpace by using the config option $comments_resource_enable. This feature adds a new area below the resource metadata, allowing users to add and respond to comments about the resource. The comments area can be customised by applying other configuration options, such as adding a character limit and enabling a flat view. Users can tag other users in comments by typing the "@" symbol followed by the first few characters of their username, first name or surname. ResourceSpace will suggest matching user accounts, which can be clicked to auto-complete the correct username. Tagging a user in this way will mean they receive a notification message directing them to the comment. Additionally, users can tag collections and resources in comments by entering "r" followed by the resource ID or "c" followed by the collection ID. This will create a link to the respective resource or collection.

Read more...


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.

Read more...


Accessibility

The accessibility plugin for ResourceSpace is aimed at making the platform more user-friendly for those with limited vision. The plugin increases the size and boldness of key text and icons throughout the interface. Group access options allow this feature to be enabled for users who need it the most.

Read more...


 Image text

The Image Text plugin enables metadata fields to be included as captions when a resource is downloaded. The plugin can be configured to apply captions to specific resource types and file extensions, and to extract text from a chosen field, such as the title. A default caption can also be applied if the configured field is empty. The plugin allows for customisation of the caption's styling, including font choice and placement relative to the resource. The height of the banner in which the caption is placed can also be configured. User group access settings can be used to determine which users should always download with the caption applied, which should never have it applied, and those who should be given the option to download with or without the caption text.

Read more...


 Grant edit

The Grant Edit plugin allows administrators to grant edit access to a user or user group for the metadata of a resource they would not normally have permission to edit. Plugin settings determine which user group has the ability to grant edit access to the resource and to remove access previously granted. Once enabled, the option to grant edit access is at the bottom of the resource edit screen, where a username or user group may be entered or removed. There is also the option to specify a date on which the access should expire.

Read more...


Discount code

The Discount Code plugin is designed for E-commerce ResourceSpace installations that allow users to purchase resources. The plugin provides a discount facility for prospective purchasers of resources. To set up discount codes, an E-commerce user group must be created, and the discount code plugin must be activated. The setup page can be used to create the discount codes that will be available, and an expiry date can be supplied against each discount code if it is time-limited. When a user logs on to ResourceSpace and views a resource, they will see the "Add to basket" button. After adding one or more resources to their basket, the user can choose to "Buy now." Clicking the button will present them with the "Buy now" page, which will include an input field where they can enter a discount code. If a correct discount code is supplied, the corresponding discount will be applied to the purchase amount.

Read more...


Checkmail

The Checkmail plugin has been developed to expand ResourceSpace's capabilities by enabling the ingestion of resources using email. The plugin allows devices to contribute digital assets to the system, and provides advanced configuration options and the ability to handle a wide range of email types. With the Checkmail plugin, ResourceSpace can receive resources as file attachments sent from a defined set of users to a designated IMAP email account. Multiple resource attachments are automatically grouped into a collection, and Checkmail accepts both HTML and plain text emails. The plugin can handle all variations of MIME parts and character sets, and the attachments can either be regular or inline. The plugin also allows the subject and body of the email to be mapped to specific metadata fields on the created resource, and confirmation emails can notify the sending user that their attachments have been uploaded. The created resources will be marked with a predefined status, enabling a review process or a specified workflow entry point, and a predefined access flag is also configured.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


 Conditional terms

Montala has launched a plugin that enables users to make acceptance of terms and conditions necessary prior to downloading certain resources based on their metadata. The plugin configuration allows users to select a metadata field value which, when met, will require the terms to be accepted. This is useful for resources that are sensitive or should be used in certain cases only. Group access settings mean that the plugin can be enabled on a user group basis.

Read more...


Meta append

The Meta Append plugin allows users to add a timestamp and daily upload number to each resource they contribute. The plugin automatically applies the user-defined timestamp and upload number to the selected field, which can be configured in the plugin settings. When uploading, users can select or deselect the option to append the timestamp and upload number by checking or unchecking a box next to the configured field.

Read more...


Resource bot

The Resource Bot plugin is a new feature that integrates Chat Bot functionality from the main ResourceSpace website with your ResourceSpace installation. This plugin provides on-hand assistance for your users and offers support for those who are less confident. The Resource Bot plugin can be disabled for more advanced users.

Read more...


Resource usage

The Resource Usage plugin enables users to keep a log of how a resource has been used, along with the usage medium, such as print or TV. Once enabled, a new section is added to the bottom of the resource view page, where users can click "New usage" to create a new record of where the resource was used. On the following page, users can specify the usage, medium, description, and date of when the resource was used. Each new added usage will be displayed on the resource view page in a table where users can manage each item. Users with download access to the resource can add new usages, and only users with edit access can edit or delete the usage log entry. The various usage mediums can be changed from the plugin Options page.

Read more...


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.

Read more...


Contributing to the base code

ResourceSpace welcomes contributions to its base code. The process involves completing a Contributor License Agreement and ensuring familiarity with the Coding Standards. After this, diff patches should be manually submitted via email for review and addition to the base. Once several successful patch submissions have been made and the quality of the code has been established, the contributor may be given Subversion commit access.

Read more...


 Auto assign

The autoassign_mrequests plugin enables managed resource requests to be automatically assigned to a specific user for approval, based on a metadata field value mapping. The user to which the request is assigned must be in a user group able to access the admin area and with the permissions to manage requests and to be assigned resource requests. When a user with restricted access to a resource places a request for it, the nominated user will be notified of the request and will be able to approve, decline or delete it.

Read more...


 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.

Read more...


 4. Sharing and collections

Sharing single resources is very straightforward. We can send the resource to other users of the system, but we can also enter e-mail addresses and share with people that are not users of the system. They receive a special link that allows them to access only the resource you've shared with them.

Read more...


 5. Working with collections

There are various actions that can be performed that will affect the items in the collection, available from an actions menu on the collection bar.

Read more...


 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.

Read more...


 7. Reporting

ResourceSpace include comprehensive reporting and analytics capabilities.

Read more...


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.

Read more...


 Site content

All text strings in ResourceSpace can be customised from the Manage content area.

Read more...


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.

Read more...


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.

Read more...


get_resource_all_image_sizes

The article describes a function called "get_resource_all_image_sizes" which is used to retrieve all available sizes for a specific resource. The function takes in the ID of the resource as an input and returns a JSON object containing all the available sizes for the resource. The function is designed to work with multi-page resources as well, and includes each page size in the response. The article provides a table with the variable, description, and data type for the input parameter. The "resource" parameter is required and must be an integer. The article does not provide any information on how to use the function or any examples of its implementation.

Read more...


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.

Read more...


get_node_id

The get_node_id function is used to find a node ID in a fixed tag field by providing the name of the node and the ID of the related metadata field. The function returns the ID of the existing node or boolean FALSE if no matching node was found for the specified field. This function can be useful in situations where a developer needs to retrieve information about a specific node in a fixed tag field.

Read more...


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.

Read more...


Remote assist

The article discusses a new plugin that has been developed to extend the home page welcome text area of ResourceSpace. The plugin is called Remote Assist and it displays various help links for using ResourceSpace. The purpose of the plugin is to provide users with easy access to help resources and support, which can help them to use ResourceSpace more effectively. The plugin is designed to be user-friendly and easy to install, and it can be customized to meet the specific needs of different organizations. The article includes an image of the plugin in action, which shows how it can be used to provide users with quick access to help resources. Overall, the Remote Assist plugin is a useful tool for organizations that use ResourceSpace and want to provide their users with easy access to help and support.

Read more...


The Complete Guide to Developing Your Brand Guidelines Download

Thank you for downloading the PDF version of our Guide to Developing Your Brand Guidelines.

Read more...


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.

Read more...


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).

Read more...


Injection

Injection attacks are a type of attack vector that occur when an attacker can send hostile data to an interpreter as part of a command or query, which alters the execution of that program. The most common injection flaws are cross-site scripting (XSS), SQL injections (SQLi), command injections which can lead to remote code execution (RCE) vulnerabilities, and LDAP injections. To prevent injection, data should be kept separate from commands and queries, and "whitelist" server-side input validation should be used. User input should be validated on input, checking data types, ranges, lengths, and expected values, and further sanitized on output depending on context. In ResourceSpace, SQL injections can be prevented by using prepared statements, and when prepared statements can't be used, input should be sanitized. To prevent XSS, untrusted data should be separated from active browser content. In ResourceSpace, htmlspecialchars() should be used when echoing text to the screen that should not include HTML, and strip_tags_and_attributes() should be used when the text can include valid HTML. To prevent command injection, developers should use the run_command() function, which automatically escapeshellarg() every single parameter before using it in the command.

Read more...


Plugins | ResourceSpace

Explore the range of plugins that are available to expand ResourceSpace's base functionality, including integrations with third party software and systems.

Read more...


Auto login

The auto_login plugin enables automatic authentication of users based on a specified IP pattern. This is useful in situations where a user needs to log in to ResourceSpace but should not have knowledge of account credentials, such as a generic team account. The plugin can be enabled on a per-user basis under the user's account settings, and wildcard IPs or complete IP addresses can be used. However, using a complete IP address may require the account to be accessed from a single workstation.

Read more...


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.

Read more...


Creating public collections

The article explains how to create public collections, which are a simple way to share groups of resources with other users in the system. Public collections can be used to highlight the best of a user's uploads so that administrators can promote them as featured collections. To create a public collection, users need to select an existing collection and go to its edit page, change the "Access" field to public, select whether they wish to give users edit access to the collection, and hit save. The collection will then show up under public collections and can be used as a featured collection by following the instructions for creating featured collections. The article also provides instructions for sharing collections with others.

Read more...


Usage history

ResourceSpace, the open source digital asset management software, is logging every time a user downloads a resource from the system, even one of its available sizes. By default, this is not shown on the view page of a resource, but there are configuration options which can change this behaviour. When the system has been configured to show the usage history and its breakdown, a new section will be shown underneath the resource tools. Users can then click on Total downloads to see all the downloads of that resource along with any notes, if available. For even more granular access to the data, users can also click on individual usage mediums (under the Usage breakdown) allowing them to filter the logs for a particular medium. To display the download summary showing only the total number of downloads, the system should be configured with $download_summary = true. ResourceSpace also has the ability to ask users for the intended usage of a resource before downloading. To configure the system to do so, it should be configured with $download_usage = true and $terms_download = true.

Read more...


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.

Read more...


Resource locking

Resource locking is a feature that allows users with edit access to lock resources to prevent other users from editing them and causing metadata conflicts. Once a resource is locked, metadata cannot be changed, and alternative files cannot be managed. Administrators can disable resource locking by adding the 'nolock' permission to a user group. To lock a resource, a user must have edit access and click on the padlock icon located on the view page in the resource tools section. To unlock a resource, a user can click on the locked padlock icon, or a system administrator can unlock a resource that another user has locked. When a resource is locked, a locked padlock icon will be displayed, and certain resource tools will be disabled. Image editing tools such as crop can still be used when a resource is locked as they do not alter the resource. Note that when using StaticSync in non-ingest mode, locking will not prevent changes being made to the resource file itself.

Read more...


put_resource_data

The put_resource_data API endpoint allows users with edit access to update the properties of a resource. The endpoint requires the ID of the resource and an associative array of columns and values in JSON format. Valid columns include resource_type, creation_date, rating, user_rating, archive, access, created_by, mapzoom, modified, geo_lat, and geo_long. The created_by column requires the "v" permission and the configuration "$edit_contributed_by" to be set to true.

Read more...


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().

Read more...


Database schema

Database schema for ResourceSpace.

Read more...


Intellectual property

ResourceSpace, an open source digital asset management software, has issued guidelines for the use of intellectual property in its platform. The company has stated that all code, images, libraries and other digital content included in ResourceSpace must meet certain criteria. For material created by the user, the user or their employer must have signed the Contributor License Agreement. Where material is created by a third party, it must meet the definition of open source and the accompanying license must be included in the /documentation/licenses folder in ResourceSpace. The company has warned that it is not permissible to include any material in the code without meeting these criteria. The company has also requested that users report any code within the project that is not open source or is open source but is missing the accompanying license.

Read more...


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.

Read more...


 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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


 Sharing upload links

ResourceSpace has introduced a new feature that allows users to share upload links externally. This feature enables external media creators to upload files into ResourceSpace without requiring an account. An upload link is created for a specific collection, making it easy to see what has been uploaded. To create a new externally accessible upload share, users need to have either the 'a' permission (system administrators) or the new 'exup' permission. Users can create an upload link by either clicking on the 'Share upload link' link from the upload page when uploading to a collection, or by selecting the 'Share upload link' from the collection actions dropdown list. Users can select options for the share, including user group, expiry date of the upload link, and an optional share password that the recipient will need to access the upload share. Once the files have been uploaded, the user will be prompted to set metadata for the resources created. When this has been completed, they will see a message indicating that the upload is complete along with a link to upload further files. The creator of the link will receive a system notification to advise them that resources have been contributed.

Read more...


Managing external shares

The article provides guidance on managing external shares in ResourceSpace. Users can manage their external shares by clicking on the user menu and selecting 'My shares'. Administrators can manage all existing shares via the 'External shares' link under the admin menu. The page displays information such as collection ID, resource ID, shared user group, email, created by, expiry date, created date, last used date, access key, and share type. The delete column has a checkbox for selecting shares to be deleted. The tools column has options for deleting and editing shares. The page allows users to filter shares by collection, user group, and share type. There is a bulk option for deleting multiple shares, which is only shown if one or more shares have their delete checkbox ticked. The page also allows users to delete all expired shares by clicking on the 'Delete expired shares' link.

Read more...


update_related_resource

The article describes the update_related_resource API endpoint, which allows users to add or remove resource relationships. The endpoint requires the ID of the resource and a comma-separated list of resource IDs to relate or unrelate. Users can set the $add parameter to 1 to add relationships (default) or 0 to remove them. The API returns a boolean value indicating whether the operation was successful or not. The article provides a table with the variable descriptions, data types, and default values for the endpoint. The update_related_resource endpoint is useful for managing relationships between resources in an API.

Read more...


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.

Read more...


login

The article provides instructions on how to log in with a username and password to retrieve a session API key. This key can be used to generate the sign value for subsequent API calls with the 'authmode' parameter set to 'sessionkey'. The article also provides a table with the variables required for the login process, including the username and password. The return values for the login process are either a session API key in string form if the login succeeds or FALSE if the credentials are invalid. The article advises readers to refer to the main API documentation for an example of how to use the session API key for subsequent API calls.

Read more...


Modals

Calling and using modals

Read more...


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.

Read more...


save_collection

The "save_collection" API binding allows users to save collection data. The API requires a POST request to avoid URL limits being reached. The API requires two variables: "$ref" and "$coldata". "$ref" is the ID of the collection, and "$coldata" is the JSON encoded collection data. The data should be an array containing any of the allowed collection properties, such as keywords, allow_changes, users, name, public, type, parent, force_featured_collection_type, thumbnail_selection_method, and bg_img_resource_ref. The API returns "false" if access control fails or invalid arguments have been received, and "true" otherwise. The API is designed for featured collections, and some options only apply to featured collections.

Read more...


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.

Read more...


get_collection

The article provides information on the "get_collection" function, which is used to retrieve collection details. The function requires administrator access and takes the collection ID as input. The return values include the collection owner's name, description, public/private status, and thumbnail image reference. The article also provides a link to the collection table for full details on all available columns.

Read more...


 Image preview zoom

The article discusses the image preview zoom feature in ResourceSpace, a digital asset management system. If the system is configured with zoomable previews, users can enable the OpenSeadragon viewer on the view page by toggling the image preview zoom tool available in the image preview toolbar. Once enabled, users can zoom in/out using the scroll wheel, click on the image and move it around. The preview also has icons for zooming in/out, centering the image, and viewing fullscreen. The article provides a configuration example for enabling the image preview zoom feature and creating extra preview tiles. It is recommended to enable preview tiles to get the most out of the feature, but it may increase the space occupied by a resource. The article also mentions that preview tiles are used as part of the IIIF feature in ResourceSpace.

Read more...


Recently added resources

The article discusses the feature of recently added resources on a website. Users can access this feature by clicking on the 'Recent' link in the header. The latest resources will be displayed, but users will only be able to view those they have permission to access. The article includes an image of the 'Recent' link for reference.

Read more...


Consent manager

Adds the capability to manage resource licensing via the resource view page.

Read more...


User IP restriction

ResourceSpace allows users to limit the locations from which their users access the platform by applying an IP restriction to user accounts. This is done on a per-user basis, allowing tighter controls on certain accounts where necessary. The IP restriction is added by editing the user via Admin > Users, and entering the required IP into the 'IP address restriction' field. This can limit access to a certain workstation only or to a company building if using a wildcard such as 194.128.*.

Read more...


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".

Read more...


Speed tagging

Speed tagging is a feature that can be enabled by system administrators to help users add metadata to resources without requiring edit access. It places a link in the top navigation bar that directs users to all resources that do not have an entry in a nominated metadata field. Clicking the link displays these resources one at a time, allowing users to add tags into the configured field. This feature can help improve the accuracy and completeness of metadata, which can in turn improve search results and make it easier to find relevant resources.

Read more...


get_system_status

The get_system_status API provides system status information, which is configuration-dependent, such as mysql_log_transactions. The API does not require any parameters. The API returns a JSON object that contains the system status information. 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.

Read more...


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.

Read more...


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.

Read more...


relate_all_resources

The "relate_all_resources" function is used to relate all the provided resources with each other. This function is used to support the "$relate_on_upload" configuration option. The function takes a comma-separated list of resource IDs as input and returns a boolean value indicating whether the operation was successful or not. The function is designed to be used at upload time to automatically relate all the resources that are being uploaded. This can be useful in situations where you want to ensure that all the resources are related to each other, such as when uploading a set of images that belong to the same gallery. The function is easy to use and can be integrated into your existing upload process with minimal effort.

Read more...


show_hide_collection

The show_hide_collection function allows users to show or hide a collection from their drop-down list. The function requires three variables: the ID of the collection, a bit value of 1 to show or 0 to hide, and the user reference. The data types for these variables are integer and bit. The function returns a Boolean value depending on the success of the operation.

Read more...


send_collection_to_admin

The article provides a brief description of the function "send_collection_to_admin" which sends a copy of the collection for admin review. The function takes one parameter, $collection, which is the ID of the collection and has a data type of integer. The function returns a boolean value, true or false, depending on the success of the operation. The article does not provide any further details about the function, such as its purpose or how it is used in a larger system.

Read more...


get_nodes

The get_nodes function retrieves all nodes from a database for a specific metadata field or parent. The function takes several parameters, including the ID of the metadata field, the ID of the parent node, a boolean flag to indicate whether to retrieve children nodes, an offset value to specify the first row to return, a maximum number of rows to return, a filter by name of node, a flag to show how many resources use a particular node in the node properties, and a flag to order by translated names rather than the order_by column. The function returns an array of nodes that match the specified criteria. This function can be useful for retrieving a list of nodes to display in a user interface or for performing operations on a set of nodes.

Read more...


 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.

Read more...


Integrating ResourceSpace with BrandStencil

Instantly create marketing materials from templates using your DAM images thanks to ResourceSpace's integration with BrandStencil.

Read more...


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.

Read more...


Integrating ResourceSpace with RightMarket

Create branded marketing materials, including posters, social graphics or point of sale materials, with ResourceSpace's RightMarket integration.

Read more...


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.

Read more...


mark_email_as_invalid

The article describes a function called "mark_email_as_invalid" that can be used to mark a specified email address as invalid. This function can be used to block email addresses before the send_mail() function tries to dispatch any emails. The function takes a single parameter, which is the email address to be marked as invalid. The email address can be of type string. The function returns a boolean value, which is true if one or more users are found and marked as having invalid addresses, and false otherwise. This function can be useful in preventing spam or unwanted emails from being sent to specific email addresses.

Read more...


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.

Read more...


get_users_by_permission

The article describes a function called "get_users_by_permission" that retrieves information on all users with the given permissions. The function is available in version 10.1 or later and requires an array of permission strings as input. Users who do not have access to the groups with the specified permissions will be omitted. The function returns an array of matching user records with a subset of information from the user record. The article does not provide any information on how the function can be used or integrated into a system.

Read more...


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.

Read more...


 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.

Read more...


 Video timestamp links

The article discusses a plugin that enables the use of timestamp links on videos in ResourceSpace. The plugin allows users to bookmark specific points in a video and add them to an appropriate metadata field, such as a caption or long description field. The time references must be added in the 'hours:minutes:seconds' format, and a description can be added after each one. This feature is useful for long video files, allowing users to quickly point to specific sections, such as different chapters or scenes. Once the references are saved, they will appear as links in the 'Resource details' section of the resource view page. Users can add as many links as they need, and clicking on each one will take them to the exact point in the video they are looking for.

Read more...


 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.

Read more...


Resource downloads

The Resource downloads area of the resource View page in ResourceSpace allows users to download, view and request resource files. Depending on the user's system configuration and permissions, there may be a number of download options available to provide different sizes and formats for the resource. Direct download is always available except when the system has been configured to require terms or download usage on download. The View option shows a preview of the image in full screen, which may appear as either a lightbox modal or a new page. PDF and MP3 file types have the option to view the original file directly in the user's web browser, which also extends to alternative files. However, the file types are deliberately limited due to the security risks associated with displaying many file types in the browser, such as malicious SVG files.

Read more...


Table: activity_log

The article describes the structure of the "activity_log" table, which is used to log all user activity across the system. The table contains several columns, including "ref", which is an auto-incrementing index, "logged", which records the date and time of the activity, "user", which refers to the user who performed the activity, and "log_code", which is a single character code defining the type of activity. The table also includes columns for "note", "value_old", "value_new", and "value_diff", which provide further information about the activity, particularly if it involved a change. Additionally, the table includes columns for "remote_table", "remote_column", and "remote_ref", which identify the table, column, and row that the activity related to. The article notes that the table is empty by default and provides a link to a schema overview for more context.

Read more...


Table: annotation

This article provides a table called "annotation" that is used for resource annotations. The table contains columns such as "ref", "resource", "resource_type_field", "user", "x", "y", "width", "height", and "page". The "ref" column is an auto-incrementing index, while the "resource" column refers to the "resource" table, and the "resource_type_field" column refers to the "resource_type_field" table. The "user" column refers to the "user" table, and the "x", "y", "width", and "height" columns represent the coordinates and dimensions of the annotation. The "page" column is used for multi-page resources and indicates the page of the annotation. The table is empty by default, and the article provides a link to the schema overview for more context.

Read more...


Table: annotation_node

The article provides information about the "annotation_node" table, which is a join table that connects resource annotations to keyword nodes for annotating resources with fixed list metadata. The table has two columns: "annotation" and "node," both of which are of type "int(11)." The "annotation" column is linked to the "annotation" table, while the "node" column is linked to the "node" table. The article notes that the table is empty by default and provides a link to the schema overview for context. The document was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


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.

Read more...


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).

Read more...


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).

Read more...


Table: collection_resource

The article provides a table called "collection_resource" that defines the contents of a collection. The table consists of 11 columns, including "collection," "resource," "date_added," "comment," "rating," "use_as_theme_thumbnail," "purchase_size," "purchase_complete," "purchase_price," and "sortorder." The "collection" and "resource" columns are linked to the "collection" and "resource" tables, respectively. The "date_added" column indicates the date when a resource was added to a collection. The "comment" and "rating" columns are used if the $collection_commenting=true. The "use_as_theme_thumbnail" column is a boolean column that indicates whether a resource should be used as a featured collection thumbnail image. The "purchase_size," "purchase_complete," and "purchase_price" columns are used for ecommerce purposes. Finally, the "sortorder" column indicates the order in which resources should be displayed in a collection. The article notes that the table is empty by default and provides a link to the schema overview for more context.

Read more...


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.

Read more...


Table: comment

This article provides a table schema for the ResourceSpace software's comment feature. The table is called "comment" and contains columns such as "ref" (an auto-incrementing index), "ref_parent" (the reference of the parent comment), "created" (the timestamp of when the comment was created), "hide" (a boolean value indicating whether the comment should be hidden), "collection_ref" (the reference of the collection the comment is associated with), "resource_ref" (the reference of the resource the comment is associated with), "user_ref" (the reference of the user who created the comment), "fullname" (the full name of an external commenter), "email" (the email of an external commenter), "website_url" (the website URL of an external commenter), and "body" (the text of the comment). The table is empty by default, and the article provides a link to the schema overview for more context.

Read more...


Table: daily_stat

The article describes the structure of the "daily_stat" table, which is used to store daily statistics grouped by day, user group, and activity type. The table has columns for the year, month, and day when the activity took place, the user group that carried out the activity, the activity type code, the ID of the table in question, the count of how many times the activity was carried out on the object in the day in question by any user, and whether the activity happened via an external share. The table is empty by default and is used for easy summaries used by analytics. 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).

Read more...


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.

Read more...


Table: dynamic_tree_node

The dynamic_tree_node table is a list of nodes used for category trees. It has four columns: ref, resource_type_field, parent, and name. The ref column is an auto-incrementing index, while the resource_type_field column refers to the resource_type_field table. The parent column indicates the parent node, and the name column contains the node name. This table is empty by default. The schema overview provides context for this table and was last updated on June 30, 2021, at 16:35 (Europe/London time).

Read more...


Table: external_access_keys

The article provides a table called "external_access_keys" that is used for externally sharing resources. The table contains several columns, including "resource," which refers to the resource being shared, "access_key," which is the external access key, "user," which refers to the user who created the share, "usergroup," which refers to the user group that the share belongs to, "collection," which refers to the collection that the share belongs to, "request_feedback," which is a boolean value that determines whether external contacts can provide feedback when accessing the share, "email," which is the email address that the share was created for, "date," which is the date the share was created, "lastused," which is the date the share was last accessed, "access," which is the access level (0 for open, 1 for restricted), "expires," which is the share expiration date, "password_hash," which is the hash of the share password (NULL if not set), and "upload," which is set to 0 for standard external view access share and 1 for an external upload share for a collection. The table is empty by default, and the article provides a link to the schema overview for more context.

Read more...


Table: ip_lockout

The article provides information about the "ip_lockout" table, which is used for denying access after a certain number of invalid login attempts. The table has three columns: "ip" for storing the client IP address, "tries" for storing the number of login attempts, and "last_try" for storing the time and date of the last attempt. 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 context and was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


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).

Read more...


Table: keyword

Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 13192 tokens. Please reduce the length of the messages. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )

Read more...


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).

Read more...


Table: mail_log

The mail_log table is a log that stores all emails sent, mainly for diagnosis purposes. It has six columns: ref, date, mail_to, mail_from, subject, and sender_email. The ref column is an auto-incrementing index, while the date column stores the date and time the email was sent. The mail_to column stores the recipient's email address, while the mail_from column stores the user ID of the sending user. The subject column stores the email subject, while the sender_email column stores the email address of the sending user. This table is empty by default and is part of the ResourceSpace database schema. The schema overview provides context for this table and was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


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.

Read more...


Table: node

Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 10048 tokens. Please reduce the length of the messages. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )

Read more...


Table: node_keyword

Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 11793 tokens. Please reduce the length of the messages. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )

Read more...


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.

Read more...


Table: preview_size

The article provides a table called "preview_size" that defines the preview sizes used for resource preview and thumbnail generation. The table has ten columns, including an auto-incrementing index, a short code, width and height in pixels, a boolean value to add padding to make the image the required size, a friendly name, a boolean value for system use to prevent deletion, and two boolean values to show a link to preview this size on the resource view page and allow users with restricted access to see this preview size. The table also includes a column for JPEG quality. The default contents of the table are provided, including six preview sizes with their respective values for each column. The article concludes by providing a link to the schema overview for context and stating that the document was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


Table: report

Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 4876 tokens. Please reduce the length of the messages. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )

Read more...


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.

Read more...


Table: report_periodic_emails_unsubscribe

The article provides a table report_periodic_emails_unsubscribe, which lists the users who have unsubscribed from a periodic email. The table has three columns: id, user_id, and periodic_email_id. The id column is an integer type, while the user_id and periodic_email_id columns are both of integer type and refer to the user and periodic email tables, respectively. The table is empty by default. The article also provides a link to the schema overview for context and mentions that the document was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


Table: request

The "request" table is a database table in ResourceSpace that tracks resource requests made by users with restricted access and fulfilled by admin users. The table has several columns, including "ref," which is an auto-incrementing index, "user," which refers to the user who made the request, and "collection," which refers to the collection the requested resource belongs to. Other columns include "created," which records the date the request was made, "request_mode," which indicates how the request is managed, and "status," which tracks the progress of the request. The "comments" column allows users to provide a reason for the request, while the "expires" column records the expiry date of an approved request. The "assigned_to" column indicates the administrator handling the request, while the "reason" and "reasonapproved" columns record the administrator's reason for declining or approving the request, respectively. Finally, the "approved_declined_by" column records the administrator who declined the request. The table is empty by default and is part of the ResourceSpace database schema.

Read more...


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.

Read more...


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.

Read more...


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).

Read more...


Table: resource_data

The resource_data table is a database table in ResourceSpace that stores free text metadata for a resource. It has three columns: resource, resource_type_field, and value. The resource column is a foreign key that references the resource table, while the resource_type_field column is a foreign key that references the resource_type_field table. The value column stores the actual metadata value as a MEDIUMTEXT data type. This table is empty by default and is used to store custom metadata fields that are defined in the resource_type_field table. The resource_data table is an important part of the ResourceSpace database schema and is used extensively by the application to store and retrieve metadata for resources. Developers who are working with ResourceSpace should be familiar with this table and its relationship to other tables in the database schema. The schema overview provides more context and information about the ResourceSpace database schema, and this document was last updated on the 28th of June 2022 at 15:05 (Europe/London time).

Read more...


Table: resource_dimensions

The article provides information about the "resource_dimensions" table, which is a part of the ResourceSpace database schema. This table contains additional metrics for a resource, including width, height, file size, resolution, unit information, and total page count for multi-page previews. The "resource" column in this table is linked to the "resource" table. The "resolution" and "unit" columns require the $exiftool_resolution_calc. The table is empty by default and is used to store information about the dimensions of resources in ResourceSpace. The article also provides a link to the schema overview for context and mentions that the document was last updated on the 27th of March 2023 at 15:35 (Europe/London time).

Read more...


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.

Read more...


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).

Read more...


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).

Read more...


Table: resource_related

The "resource_related" table defines related resources in ResourceSpace. It has two columns: "resource" and "related". The "resource" column is an integer that refers to the ID of the resource in the "resource" table. The "related" column is a comma-separated list of resource IDs that are related to the resource in the "resource" column. This table is empty by default. The schema overview provides context for this table and was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


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).

Read more...


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.

Read more...


Table: slideshow

The Table: slideshow is a database table that stores the images used in the home page slideshow of a website. The table has four columns: ref, resource_ref, homepage_show, and featured_collections_show. The ref column is an auto-incrementing index, while the resource_ref column refers to the resource table. The homepage_show column is a boolean value that determines whether the image should be included in the home page slideshow, while the featured_collections_show column determines whether the image should be included in the featured collections page. The login_show column determines whether the image should be included in the login page sequence. The table is empty by default, and it is part of the schema overview of the website's database. The document was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


Table: sysvars

The article provides information about the sysvars table, which is used by upgrade scripts and other non-user functions. The table has two columns: name and value. The name column is of type varchar(50) and represents the variable name, while the value column is of type text and represents the value of the variable. The table is empty by default. The article also provides a link to the schema overview for context and mentions that the document was last updated on the 27th of March 2023 at 15:35 (Europe/London time).

Read more...


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.

Read more...


Table: user_collection

The article provides information about the user_collection table, which is used to determine which internal users a collection has been shared with. The table has three columns: user, collection, and request_feedback. The user column is an integer that refers to the user table, while the collection column is an integer that refers to the collection table. The request_feedback column is also an integer that determines whether feedback is requested when emailing the collection. The default contents of the table are provided in a table format, which includes the user ID, collection ID, and request_feedback value. The article also includes a link to the schema overview for context and was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


Table: user_dash_tile

The article provides a table schema for the user_dash_tile table in ResourceSpace. This table defines which dash tiles are available to a user and allows for the customization of the order in which they appear. The table has four columns: ref, user, dash_tile, and order_by. The ref column is an auto-incrementing index, while the user and dash_tile columns reference the user and dash_tile tables, respectively. The order_by column defines the order in which the dash tiles appear for the user. The table is empty by default and is part of the ResourceSpace database schema. The article provides a link to the schema overview for additional context and was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


Table: user_message

The article provides information about the user_message table, which is used to define which users will see a message and which have seen it. The table has three columns: ref, user, and message. The ref column is an auto-incrementing index, while the user column refers to the user table, and the message column refers to the message table. The seen column indicates whether a user has seen the message or not. The table is empty by default. 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).

Read more...


Table: user_rating

The article provides information about the user_rating table in ResourceSpace's database schema. This table stores user ratings for a given resource, with columns for the user ID, rating (out of 5), and resource ID. The user column is linked to the user table, while the ref column is linked to the resource table. The table is empty by default, and the article provides a link to the schema overview for more context. The article was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


Table: user_report

The article provides a table schema for the user_report table, which is used to store user-specific report parameters. The table has four columns: ref, name, user, and params. The ref column is an auto-incrementing index, while the name column stores the name of the report. The user column is a foreign key that references the user table, and the params column stores the report parameters. The table is empty by default, and the article provides a link to the schema overview for context. The article was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


Table: user_userlist

The article provides information about the user_userlist table, which is used for creating custom lists of users if $sharing_userlists is enabled. The table has four columns, including ref, user, userlist_name, and userlist_string. The ref column is an auto-incrementing index, while the user column represents the user reference of the list owner. The userlist_name column is used to store the name of the user list, while the userlist_string column stores a comma-separated list of usernames. The table is empty by default, and it is part of the Resourcespace database schema. The article provides a link to the schema overview for more context, and it was last updated on the 27th of March 2023 at 15:35 (Europe/London time).

Read more...


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).

Read more...


Table: usergroup_collection

The usergroup_collection table is a database table in ResourceSpace that stores collections shared with user groups. It has three columns: usergroup, collection, and request_feedback. The usergroup column is an integer that references the usergroup table, which contains information about user groups. The collection column is also an integer that references the collection table, which contains information about collections. The request_feedback column is deprecated and is still used in user_collection and external_access_keys. This table is empty by default and is used to keep track of collections that are shared with user groups. The schema overview provides more context for this table and was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


Table: usergroup_dash_tile

The usergroup_dash_tile table is a configuration table in ResourceSpace that stores dash tiles for user groups. It has five columns, including an auto-incrementing index, usergroup, dash_tile, default_order_by, and order_by. The usergroup column is linked to the usergroup table, while the dash_tile column is linked to the dash_tile table. The default_order_by column defines the default position of the dash tile, which is ignored if the user has reordered their dash. The order_by column is used to define the position of the dash tile in relation to others. This table is empty by default and is used to configure dash tiles for user groups. The schema overview provides more context for this table and was last updated on March 27, 2023, at 15:35 (Europe/London time).

Read more...


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.

Read more...


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).

Read more...


YT2RS (Youtube embed)

The Youtube to ResourceSpace plugin allows users to embed a YouTube video into the Resource view page. Users can enter the ID of a metadata field that stores the URL of the Youtube video on the options page for the plugin. If a user enters a valid Youtube URL into the metadata field, a Youtube video will be displayed on the Resource view page. Additionally, if a user is using the 'Edit then upload' uploading sequence, entering the Youtube URL on the Edit page will display a link to a suitable preview to use for the resource under the 'Thumbnail Path' header. Users can visit this location and save the file to get a preview image that may be useful to use for the resource.

Read more...


VM2RS (Vimeo embed)

The VM2RS plugin is a Vimeo to ResourceSpace plugin that allows users to embed Vimeo videos on the Resource view page. Users can enter the ID of a metadata field that stores the URL of the Vimeo video on the options page for the plugin. Once a resource is created and a valid Vimeo URL is entered into the metadata field, a Vimeo video will be displayed on the Resource view page. The plugin also provides a link to a suitable preview to use for the resource under the 'Thumbnail Path' header if the user enters the Vimeo URL on the Edit page while using the 'Edit then upload' uploading sequence. Users can visit this location and save the file to get a preview image that may be useful to use for the resource.

Read more...


get_user_actions()

Developer reference for function get_user_actions()

Read more...


get_editable_resource_sql()

Developer reference for function get_editable_resource_sql()

Read more...


update_resource_type_order()

Developer reference for function update_resource_type_order()

Read more...


ajax_permission_denied()

Developer reference for function ajax_permission_denied()

Read more...


ajax_send_response()

Developer reference for function ajax_send_response()

Read more...


ajax_send_text_response()

Developer reference for function ajax_send_text_response()

Read more...


ajax_response_ok()

Developer reference for function ajax_response_ok()

Read more...


ajax_response_ok_no_data()

Developer reference for function ajax_response_ok_no_data()

Read more...


ajax_unauthorized()

Developer reference for function ajax_unauthorized()

Read more...


ajax_build_message()

Developer reference for function ajax_build_message()

Read more...


getAnnotation()

Developer reference for function getAnnotation()

Read more...


getAnnotations()

Developer reference for function getAnnotations()

Read more...


getResourceAnnotationsCount()

Developer reference for function getResourceAnnotationsCount()

Read more...


getResourceAnnotations()

Developer reference for function getResourceAnnotations()

Read more...


getAnnotoriousResourceAnnotations()

Developer reference for function getAnnotoriousResourceAnnotations()

Read more...


annotationEditable()

Developer reference for function annotationEditable()

Read more...


getAnnotationTags()

Developer reference for function getAnnotationTags()

Read more...


deleteAnnotation()

Developer reference for function deleteAnnotation()

Read more...


createAnnotation()

Developer reference for function createAnnotation()

Read more...


updateAnnotation()

Developer reference for function updateAnnotation()

Read more...


addAnnotationNodes()

Developer reference for function addAnnotationNodes()

Read more...


prepareTags()

Developer reference for function prepareTags()

Read more...


get_api_key()

Developer reference for function get_api_key()

Read more...


check_api_key()

Developer reference for function check_api_key()

Read more...


execute_api_call()

Developer reference for function execute_api_call()

Read more...


get_user_collections()

Developer reference for function get_user_collections()

Read more...


get_collection()

Developer reference for function get_collection()

Read more...


get_collection_resources()

Developer reference for function get_collection_resources()

Read more...


get_collection_resources_with_data()

Developer reference for function get_collection_resources_with_data()

Read more...


add_resource_to_collection()

Developer reference for function add_resource_to_collection()

Read more...


collection_writeable()

Developer reference for function collection_writeable()

Read more...


collection_readable()

Developer reference for function collection_readable()

Read more...


set_user_collection()

Developer reference for function set_user_collection()

Read more...


create_collection()

Developer reference for function create_collection()

Read more...


delete_collection()

Developer reference for function delete_collection()

Read more...


search_public_collections()

Developer reference for function search_public_collections()

Read more...


do_collections_search()

Developer reference for function do_collections_search()

Read more...


add_collection()

Developer reference for function add_collection()

Read more...


remove_collection()

Developer reference for function remove_collection()

Read more...


index_collection()

Developer reference for function index_collection()

Read more...


save_collection()

Developer reference for function save_collection()

Read more...


get_max_theme_levels()

Developer reference for function get_max_theme_levels()

Read more...


get_theme_headers()

Developer reference for function get_theme_headers()

Read more...


themes_comparator()

Developer reference for function themes_comparator()

Read more...


collections_comparator()

Developer reference for function collections_comparator()

Read more...


collections_comparator_desc()

Developer reference for function collections_comparator_desc()

Read more...


get_themes()

Developer reference for function get_themes()

Read more...


get_smart_theme_headers()

Developer reference for function get_smart_theme_headers()

Read more...


get_smart_themes_nodes()

Developer reference for function get_smart_themes_nodes()

Read more...


email_collection()

Developer reference for function email_collection()

Read more...


generate_collection_access_key()

Developer reference for function generate_collection_access_key()

Read more...


get_saved_searches()

Developer reference for function get_saved_searches()

Read more...


add_saved_search()

Developer reference for function add_saved_search()

Read more...


remove_saved_search()

Developer reference for function remove_saved_search()

Read more...


add_smart_collection()

Developer reference for function add_smart_collection()

Read more...


get_search_title()

Developer reference for function get_search_title()

Read more...


add_saved_search_items()

Developer reference for function add_saved_search_items()

Read more...


allow_multi_edit()

Developer reference for function allow_multi_edit()

Read more...


get_theme_image()

Developer reference for function get_theme_image()

Read more...


swap_collection_order()

Developer reference for function swap_collection_order()

Read more...


update_collection_order()

Developer reference for function update_collection_order()

Read more...


get_collection_resource_comment()

Developer reference for function get_collection_resource_comment()

Read more...


save_collection_resource_comment()

Developer reference for function save_collection_resource_comment()

Read more...


relate_to_collection()

Developer reference for function relate_to_collection()

Read more...


get_mycollection_name()

Developer reference for function get_mycollection_name()

Read more...


get_collection_comments()

Developer reference for function get_collection_comments()

Read more...


copy_collection()

Developer reference for function copy_collection()

Read more...


collection_is_research_request()

Developer reference for function collection_is_research_request()

Read more...


add_to_collection_link()

Developer reference for function add_to_collection_link()

Read more...


change_collection_link()

Developer reference for function change_collection_link()

Read more...


get_collection_external_access()

Developer reference for function get_collection_external_access()

Read more...


delete_collection_access_key()

Developer reference for function delete_collection_access_key()

Read more...


collection_log()

Developer reference for function collection_log()

Read more...


get_collection_log()

Developer reference for function get_collection_log()

Read more...


get_collection_videocount()

Developer reference for function get_collection_videocount()

Read more...


collection_max_access()

Developer reference for function collection_max_access()

Read more...


collection_min_access()

Developer reference for function collection_min_access()

Read more...


collection_set_public()

Developer reference for function collection_set_public()

Read more...


collection_set_private()

Developer reference for function collection_set_private()

Read more...


collection_set_themes()

Developer reference for function collection_set_themes()

Read more...


get_home_page_promoted_collections()

Developer reference for function get_home_page_promoted_collections()

Read more...


is_collection_approved()

Developer reference for function is_collection_approved()

Read more...


edit_collection_external_access()

Developer reference for function edit_collection_external_access()

Read more...


show_hide_collection()

Developer reference for function show_hide_collection()

Read more...


get_session_collections()

Developer reference for function get_session_collections()

Read more...


update_collection_user()

Developer reference for function update_collection_user()

Read more...


compile_collection_actions()

Developer reference for function compile_collection_actions()

Read more...


get_last_resource_edit()

Developer reference for function get_last_resource_edit()

Read more...


collection_download_log_resource_ready()

Developer reference for function collection_download_log_resource_ready()

Read more...


collection_download_process_data_only_types()

Developer reference for function collection_download_process_data_only_types()

Read more...


collection_download_process_summary_notes()

Developer reference for function collection_download_process_summary_notes()

Read more...


collection_download_process_collection_download_name()

Developer reference for function collection_download_process_collection_download_name()

Read more...


collection_download_process_archive_command()

Developer reference for function collection_download_process_archive_command()

Read more...


collection_cleanup_inaccessible_resources()

Developer reference for function collection_cleanup_inaccessible_resources()

Read more...


relate_all_collection()

Developer reference for function relate_all_collection()

Read more...


update_collection_type()

Developer reference for function update_collection_type()

Read more...


get_user_selection_collection()

Developer reference for function get_user_selection_collection()

Read more...


delete_old_collections()

Developer reference for function delete_old_collections()

Read more...


comments_submit()

Developer reference for function comments_submit()

Read more...


comments_show()

Developer reference for function comments_show()

Read more...


render_select_option()

Developer reference for function render_select_option()

Read more...


render_bool_option()

Developer reference for function render_bool_option()

Read more...


render_text_option()

Developer reference for function render_text_option()

Read more...


get_header_image()

Developer reference for function get_header_image()

Read more...


generateResourcesMetadataCSV()

Developer reference for function generateResourcesMetadataCSV()

Read more...


generateNodesExport()

Developer reference for function generateNodesExport()

Read more...


create_dash_tile()

Developer reference for function create_dash_tile()

Read more...


update_dash_tile()

Developer reference for function update_dash_tile()

Read more...


delete_dash_tile()

Developer reference for function delete_dash_tile()

Read more...


get_tile()

Developer reference for function get_tile()

Read more...


all_user_dash_tile_active()

Developer reference for function all_user_dash_tile_active()

Read more...


existing_tile()

Developer reference for function existing_tile()

Read more...


cleanup_dash_tiles()

Developer reference for function cleanup_dash_tiles()

Read more...


get_alluser_available_tiles()

Developer reference for function get_alluser_available_tiles()

Read more...


get_managed_dash()

Developer reference for function get_managed_dash()

Read more...


add_usergroup_dash_tile()

Developer reference for function add_usergroup_dash_tile()

Read more...


append_usergroup_position()

Developer reference for function append_usergroup_position()

Read more...


reorder_usergroup_dash()

Developer reference for function reorder_usergroup_dash()

Read more...


update_usergroup_dash_tile_order()

Developer reference for function update_usergroup_dash_tile_order()

Read more...


build_usergroup_dash()

Developer reference for function build_usergroup_dash()

Read more...


get_tile_user_groups()

Developer reference for function get_tile_user_groups()

Read more...


get_usergroup_available_tiles()

Developer reference for function get_usergroup_available_tiles()

Read more...


get_usergroup_tile()

Developer reference for function get_usergroup_tile()

Read more...


add_user_dash_tile()

Developer reference for function add_user_dash_tile()

Read more...


get_user_tile()

Developer reference for function get_user_tile()

Read more...


create_new_user_dash()

Developer reference for function create_new_user_dash()

Read more...


update_user_dash_tile_order()

Developer reference for function update_user_dash_tile_order()

Read more...


delete_user_dash_tile()

Developer reference for function delete_user_dash_tile()

Read more...


empty_user_dash()

Developer reference for function empty_user_dash()

Read more...


reorder_user_dash()

Developer reference for function reorder_user_dash()

Read more...


append_user_position()

Developer reference for function append_user_position()

Read more...


get_user_available_tiles()

Developer reference for function get_user_available_tiles()

Read more...


get_user_dash()

Developer reference for function get_user_dash()

Read more...


parse_dashtile_link()

Developer reference for function parse_dashtile_link()

Read more...


build_dash_tile_list()

Developer reference for function build_dash_tile_list()

Read more...


allow_tile_colour_change()

Developer reference for function allow_tile_colour_change()

Read more...


render_dash_tile_colour_chooser()

Developer reference for function render_dash_tile_colour_chooser()

Read more...


get_tile_custom_style()

Developer reference for function get_tile_custom_style()

Read more...


delete_usergroup_dash_tile()

Developer reference for function delete_usergroup_dash_tile()

Read more...


allowPromotedResources()

Developer reference for function allowPromotedResources()

Read more...


render_upgrade_available_tile()

Developer reference for function render_upgrade_available_tile()

Read more...


generate_dash_tile_toolbar()

Developer reference for function generate_dash_tile_toolbar()

Read more...


errorhandler()

Developer reference for function errorhandler()

Read more...


db_use_multiple_connection_modes()

Developer reference for function db_use_multiple_connection_modes()

Read more...


db_set_connection_mode()

Developer reference for function db_set_connection_mode()

Read more...


db_get_connection_mode()

Developer reference for function db_get_connection_mode()

Read more...


db_clear_connection_mode()

Developer reference for function db_clear_connection_mode()

Read more...


sql_connect()

Developer reference for function sql_connect()

Read more...


db_begin_transaction()

Developer reference for function db_begin_transaction()

Read more...


sql_query_prepared()

Developer reference for function sql_query_prepared()

Read more...


db_end_transaction()

Developer reference for function db_end_transaction()

Read more...


db_rollback_transaction()

Developer reference for function db_rollback_transaction()

Read more...


sql_query()

Developer reference for function sql_query()

Read more...


sql_value()

Developer reference for function sql_value()

Read more...


sql_array()

Developer reference for function sql_array()

Read more...


sql_insert_id()

Developer reference for function sql_insert_id()

Read more...


get_query_cache_location()

Developer reference for function get_query_cache_location()

Read more...


clear_query_cache()

Developer reference for function clear_query_cache()

Read more...


check_db_structs()

Developer reference for function check_db_structs()

Read more...


CheckDBStruct()

Developer reference for function CheckDBStruct()

Read more...


sql_limit()

Developer reference for function sql_limit()

Read more...


check_debug_log_override()

Developer reference for function check_debug_log_override()

Read more...


create_debug_log_override()

Developer reference for function create_debug_log_override()

Read more...


rsEncrypt()

Developer reference for function rsEncrypt()

Read more...


rsDecrypt()

Developer reference for function rsDecrypt()

Read more...


isPathWhitelisted()

Developer reference for function isPathWhitelisted()

Read more...


get_checksum()

Developer reference for function get_checksum()

Read more...


getval()

Developer reference for function getval()

Read more...


getuid()

Developer reference for function getuid()

Read more...


escape_check()

Developer reference for function escape_check()

Read more...


unescape()

Developer reference for function unescape()

Read more...


nicedate()

Developer reference for function nicedate()

Read more...


redirect()

Developer reference for function redirect()

Read more...


trim_spaces()

Developer reference for function trim_spaces()

Read more...


trim_array()

Developer reference for function trim_array()

Read more...


tidylist()

Developer reference for function tidylist()

Read more...


tidy_trim()

Developer reference for function tidy_trim()

Read more...


average_length()

Developer reference for function average_length()

Read more...


get_stats_activity_types()

Developer reference for function get_stats_activity_types()

Read more...


get_stats_years()

Developer reference for function get_stats_years()

Read more...


newlines()

Developer reference for function newlines()

Read more...


get_all_site_text()

Developer reference for function get_all_site_text()

Read more...


get_site_text()

Developer reference for function get_site_text()

Read more...


check_site_text_custom()

Developer reference for function check_site_text_custom()

Read more...


save_site_text()

Developer reference for function save_site_text()

Read more...


string_similar()

Developer reference for function string_similar()

Read more...


get_mime_type()

Developer reference for function get_mime_type()

Read more...


send_mail()

Developer reference for function send_mail()

Read more...


send_mail_phpmailer()

Developer reference for function send_mail_phpmailer()

Read more...


log_mail()

Developer reference for function log_mail()

Read more...


rs_quoted_printable_encode()

Developer reference for function rs_quoted_printable_encode()

Read more...


rs_quoted_printable_encode_subject()

Developer reference for function rs_quoted_printable_encode_subject()

Read more...


pager()

Developer reference for function pager()

Read more...


send_statistics()

Developer reference for function send_statistics()

Read more...


remove_extension()

Developer reference for function remove_extension()

Read more...


get_allowed_extensions()

Developer reference for function get_allowed_extensions()

Read more...


get_allowed_extensions_by_type()

Developer reference for function get_allowed_extensions_by_type()

Read more...


getAbsolutePath()

Developer reference for function getAbsolutePath()

Read more...


mb_basename()

Developer reference for function mb_basename()

Read more...


strip_extension()

Developer reference for function strip_extension()

Read more...


is_process_lock()

Developer reference for function is_process_lock()

Read more...


set_process_lock()

Developer reference for function set_process_lock()

Read more...


clear_process_lock()

Developer reference for function clear_process_lock()

Read more...


strip_leading_comma()

Developer reference for function strip_leading_comma()

Read more...


convert()

Developer reference for function convert()

Read more...


get_temp_dir()

Developer reference for function get_temp_dir()

Read more...


convert_path_to_url()

Developer reference for function convert_path_to_url()

Read more...


escape_command_args()

Developer reference for function escape_command_args()

Read more...


run_command()

Developer reference for function run_command()

Read more...


run_external()

Developer reference for function run_external()

Read more...


error_alert()

Developer reference for function error_alert()

Read more...


xml_entities()

Developer reference for function xml_entities()

Read more...


get_xml_entity_at_index_0()

Developer reference for function get_xml_entity_at_index_0()

Read more...


sanitize_char()

Developer reference for function sanitize_char()

Read more...


sortmulti()

Developer reference for function sortmulti()

Read more...


get_imagemagick_path()

Developer reference for function get_imagemagick_path()

Read more...


get_utility_path()

Developer reference for function get_utility_path()

Read more...


get_executable_path()

Developer reference for function get_executable_path()

Read more...


truncate_cache_arrays()

Developer reference for function truncate_cache_arrays()

Read more...


txt2html()

Developer reference for function txt2html()

Read more...


is_html()

Developer reference for function is_html()

Read more...


rs_setcookie()

Developer reference for function rs_setcookie()

Read more...


get_editable_states()

Developer reference for function get_editable_states()

Read more...


validate_html()

Developer reference for function validate_html()

Read more...


generateURL()

Developer reference for function generateURL()

Read more...


tail()

Developer reference for function tail()

Read more...


move_array_element()

Developer reference for function move_array_element()

Read more...


emptyiszero()

Developer reference for function emptyiszero()

Read more...


array_column()

Developer reference for function array_column()

Read more...


job_queue_add()

Developer reference for function job_queue_add()

Read more...


job_queue_update()

Developer reference for function job_queue_update()

Read more...


job_queue_delete()

Developer reference for function job_queue_delete()

Read more...


job_queue_get_jobs()

Developer reference for function job_queue_get_jobs()

Read more...


job_queue_run_job()

Developer reference for function job_queue_run_job()

Read more...


user_set_usergroup()

Developer reference for function user_set_usergroup()

Read more...


generateSecureKey()

Developer reference for function generateSecureKey()

Read more...


IsModal()

Developer reference for function IsModal()

Read more...


generateAjaxToken()

Developer reference for function generateAjaxToken()

Read more...


is_resourcespace_upgrade_available()

Developer reference for function is_resourcespace_upgrade_available()

Read more...


get_recent_users()

Developer reference for function get_recent_users()

Read more...


check_script_last_ran()

Developer reference for function check_script_last_ran()

Read more...


count_errors()

Developer reference for function count_errors()

Read more...


search_array_by_keyvalue()

Developer reference for function search_array_by_keyvalue()

Read more...


bypass_permissions()

Developer reference for function bypass_permissions()

Read more...


set_sysvar()

Developer reference for function set_sysvar()

Read more...


get_sysvar()

Developer reference for function get_sysvar()

Read more...


hook()

Developer reference for function hook()

Read more...


strip_tags_and_attributes()

Developer reference for function strip_tags_and_attributes()

Read more...


show_pagetime()

Developer reference for function show_pagetime()

Read more...


get_debug_log_dir()

Developer reference for function get_debug_log_dir()

Read more...


debug()

Developer reference for function debug()

Read more...


rcRmdir()

Developer reference for function rcRmdir()

Read more...


daily_stat()

Developer reference for function daily_stat()

Read more...


pagename()

Developer reference for function pagename()

Read more...


text()

Developer reference for function text()

Read more...


get_section_list()

Developer reference for function get_section_list()

Read more...


resolve_user_agent()

Developer reference for function resolve_user_agent()

Read more...


get_ip()

Developer reference for function get_ip()

Read more...


nanoSha2()

Developer reference for function nanoSha2()

Read more...


char_pad()

Developer reference for function char_pad()

Read more...


addmod2n()

Developer reference for function addmod2n()

Read more...


SHR()

Developer reference for function SHR()

Read more...


ROTR()

Developer reference for function ROTR()

Read more...


Ch()

Developer reference for function Ch()

Read more...


Maj()

Developer reference for function Maj()

Read more...


Sigma0()

Developer reference for function Sigma0()

Read more...


Sigma1()

Developer reference for function Sigma1()

Read more...


sigma_0()

Developer reference for function sigma_0()

Read more...


sigma_1()

Developer reference for function sigma_1()

Read more...


int_split()

Developer reference for function int_split()

Read more...


hash()

Developer reference for function hash()

Read more...


str_split()

Developer reference for function str_split()

Read more...


sha256()

Developer reference for function sha256()

Read more...


_nano_sha256()

Developer reference for function _nano_sha256()

Read more...


lang_or_i18n_get_translated()

Developer reference for function lang_or_i18n_get_translated()

Read more...


i18n_get_translated()

Developer reference for function i18n_get_translated()

Read more...


i18n_get_collection_name()

Developer reference for function i18n_get_collection_name()

Read more...


i18n_get_indexable()

Developer reference for function i18n_get_indexable()

Read more...


i18n_get_translations()

Developer reference for function i18n_get_translations()

Read more...


normalize_keyword()

Developer reference for function normalize_keyword()

Read more...


remove_accents()

Developer reference for function remove_accents()

Read more...


setLanguage()

Developer reference for function setLanguage()

Read more...


log_activity()

Developer reference for function log_activity()

Read more...


logScript()

Developer reference for function logScript()

Read more...


resource_log_last_rows()

Developer reference for function resource_log_last_rows()

Read more...


get_activity_log()

Developer reference for function get_activity_log()

Read more...


get_user_downloads()

Developer reference for function get_user_downloads()

Read more...


log_node_changes()

Developer reference for function log_node_changes()

Read more...


generate_session_hash()

Developer reference for function generate_session_hash()

Read more...


set_login_cookies()

Developer reference for function set_login_cookies()

Read more...


message_get()

Developer reference for function message_get()

Read more...


message_add()

Developer reference for function message_add()

Read more...


message_remove()

Developer reference for function message_remove()

Read more...


message_seen()

Developer reference for function message_seen()

Read more...


message_unseen()

Developer reference for function message_unseen()

Read more...


message_seen_all()

Developer reference for function message_seen_all()

Read more...


message_purge()

Developer reference for function message_purge()

Read more...


message_send_unread_emails()

Developer reference for function message_send_unread_emails()

Read more...


message_remove_related()

Developer reference for function message_remove_related()

Read more...


message_user_remove()

Developer reference for function message_user_remove()

Read more...


check_date_parts()

Developer reference for function check_date_parts()

Read more...


check_view_display_condition()

Developer reference for function check_view_display_condition()

Read more...


migrate_category_tree_to_nodes()

Developer reference for function migrate_category_tree_to_nodes()

Read more...


populate_resource_nodes()

Developer reference for function populate_resource_nodes()

Read more...


random_char()

Developer reference for function random_char()

Read more...


validateDatetime()

Developer reference for function validateDatetime()

Read more...


mix_date()

Developer reference for function mix_date()

Read more...


mix_text()

Developer reference for function mix_text()

Read more...


alter_data()

Developer reference for function alter_data()

Read more...


mix_url()

Developer reference for function mix_url()

Read more...


mix_email()

Developer reference for function mix_email()

Read more...


get_export_tables()

Developer reference for function get_export_tables()

Read more...


set_node()

Developer reference for function set_node()

Read more...


delete_node()

Developer reference for function delete_node()

Read more...


get_node()

Developer reference for function get_node()

Read more...


get_nodes()

Developer reference for function get_nodes()

Read more...


is_parent_node()

Developer reference for function is_parent_node()

Read more...


get_tree_node_level()

Developer reference for function get_tree_node_level()

Read more...


reorder_node()

Developer reference for function reorder_node()

Read more...


reorder_nodes()

Developer reference for function reorder_nodes()

Read more...


render_new_node_record()

Developer reference for function render_new_node_record()

Read more...


get_node_order_by()

Developer reference for function get_node_order_by()

Read more...


draw_tree_node_table()

Developer reference for function draw_tree_node_table()

Read more...


add_node_keyword()

Developer reference for function add_node_keyword()

Read more...


remove_node_keyword()

Developer reference for function remove_node_keyword()

Read more...


remove_all_node_keyword_mappings()

Developer reference for function remove_all_node_keyword_mappings()

Read more...


check_node_indexed()

Developer reference for function check_node_indexed()

Read more...


add_node_keyword_mappings()

Developer reference for function add_node_keyword_mappings()

Read more...


remove_node_keyword_mappings()

Developer reference for function remove_node_keyword_mappings()

Read more...


add_resource_nodes()

Developer reference for function add_resource_nodes()

Read more...


add_resource_nodes_multi()

Developer reference for function add_resource_nodes_multi()

Read more...


get_resource_nodes()

Developer reference for function get_resource_nodes()

Read more...


delete_resource_nodes()

Developer reference for function delete_resource_nodes()

Read more...


delete_resource_nodes_multi()

Developer reference for function delete_resource_nodes_multi()

Read more...


delete_all_resource_nodes()

Developer reference for function delete_all_resource_nodes()

Read more...


copy_resource_nodes()

Developer reference for function copy_resource_nodes()

Read more...


update_resource_node_hitcount()

Developer reference for function update_resource_node_hitcount()

Read more...


get_parent_nodes()

Developer reference for function get_parent_nodes()

Read more...


get_nodes_count()

Developer reference for function get_nodes_count()

Read more...


extract_node_options()

Developer reference for function extract_node_options()

Read more...


get_node_by_name()

Developer reference for function get_node_by_name()

Read more...


get_node_id()

Developer reference for function get_node_id()

Read more...


node_name_comparator()

Developer reference for function node_name_comparator()

Read more...


node_orderby_comparator()

Developer reference for function node_orderby_comparator()

Read more...


get_node_elements()

Developer reference for function get_node_elements()

Read more...


get_node_tree()

Developer reference for function get_node_tree()

Read more...


get_tree_strings()

Developer reference for function get_tree_strings()

Read more...


get_template_path()

Developer reference for function get_template_path()

Read more...


process_template()

Developer reference for function process_template()

Read more...


activate_plugin()

Developer reference for function activate_plugin()

Read more...


deactivate_plugin()

Developer reference for function deactivate_plugin()

Read more...


get_plugin_yaml()

Developer reference for function get_plugin_yaml()

Read more...


is_plugin_activated()

Developer reference for function is_plugin_activated()

Read more...


handle_rsc_upload()

Developer reference for function handle_rsc_upload()

Read more...


display_rsc_upload()

Developer reference for function display_rsc_upload()

Read more...


get_plugin_css()

Developer reference for function get_plugin_css()

Read more...


register_plugin_language()

Developer reference for function register_plugin_language()

Read more...


get_plugin_path()

Developer reference for function get_plugin_path()

Read more...


register_plugin()

Developer reference for function register_plugin()

Read more...


render_sort_order()

Developer reference for function render_sort_order()

Read more...


render_dropdown_option()

Developer reference for function render_dropdown_option()

Read more...


render_actions()

Developer reference for function render_actions()

Read more...


render_user_group_multi_select()

Developer reference for function render_user_group_multi_select()

Read more...


render_user_group_select()

Developer reference for function render_user_group_select()

Read more...


render_user_group_checkbox_select()

Developer reference for function render_user_group_checkbox_select()

Read more...


render_text_question()

Developer reference for function render_text_question()

Read more...


render_split_text_question()

Developer reference for function render_split_text_question()

Read more...


render_dropdown_question()

Developer reference for function render_dropdown_question()

Read more...


render_access_key_tr()

Developer reference for function render_access_key_tr()

Read more...


renderBreadcrumbs()

Developer reference for function renderBreadcrumbs()

Read more...


renderCallToActionTile()

Developer reference for function renderCallToActionTile()

Read more...


renderLockButton()

Developer reference for function renderLockButton()

Read more...


render_resource_image()

Developer reference for function render_resource_image()

Read more...


calculate_image_display()

Developer reference for function calculate_image_display()

Read more...


render_share_options()

Developer reference for function render_share_options()

Read more...


render_upload_here_button()

Developer reference for function render_upload_here_button()

Read more...


render_trash()

Developer reference for function render_trash()

Read more...


render_browse_bar()

Developer reference for function render_browse_bar()

Read more...


generate_browse_bar_item()

Developer reference for function generate_browse_bar_item()

Read more...


render_help_link()

Developer reference for function render_help_link()

Read more...


render_question_div()

Developer reference for function render_question_div()

Read more...


render_selected_resources_counter()

Developer reference for function render_selected_resources_counter()

Read more...


render_edit_selected_btn()

Developer reference for function render_edit_selected_btn()

Read more...


render_clear_selected_btn()

Developer reference for function render_clear_selected_btn()

Read more...


render_selected_collection_actions()

Developer reference for function render_selected_collection_actions()

Read more...


render_user_collection_select()

Developer reference for function render_user_collection_select()

Read more...


check_display_condition()

Developer reference for function check_display_condition()

Read more...


has_browsebar()

Developer reference for function has_browsebar()

Read more...


display_upload_options()

Developer reference for function display_upload_options()

Read more...


render_resource_lock_link()

Developer reference for function render_resource_lock_link()

Read more...


EditNav()

Developer reference for function EditNav()

Read more...


SaveAndClearButtons()

Developer reference for function SaveAndClearButtons()

Read more...


get_report_name()

Developer reference for function get_report_name()

Read more...


get_reports()

Developer reference for function get_reports()

Read more...


do_report()

Developer reference for function do_report()

Read more...


create_periodic_email()

Developer reference for function create_periodic_email()

Read more...


send_periodic_report_emails()

Developer reference for function send_periodic_report_emails()

Read more...


delete_periodic_report()

Developer reference for function delete_periodic_report()

Read more...


get_translated_activity_type()

Developer reference for function get_translated_activity_type()

Read more...


get_request()

Developer reference for function get_request()

Read more...


get_user_requests()

Developer reference for function get_user_requests()

Read more...


save_request()

Developer reference for function save_request()

Read more...


get_requests()

Developer reference for function get_requests()

Read more...


email_collection_request()

Developer reference for function email_collection_request()

Read more...


managed_collection_request()

Developer reference for function managed_collection_request()

Read more...


email_resource_request()

Developer reference for function email_resource_request()

Read more...


send_research_request()

Developer reference for function send_research_request()

Read more...


get_research_requests()

Developer reference for function get_research_requests()

Read more...


get_research_request()

Developer reference for function get_research_request()

Read more...


save_research_request()

Developer reference for function save_research_request()

Read more...


get_research_request_collection()

Developer reference for function get_research_request_collection()

Read more...


set_research_collection()

Developer reference for function set_research_collection()

Read more...


get_resource_path()

Developer reference for function get_resource_path()

Read more...


get_resource_data()

Developer reference for function get_resource_data()

Read more...


put_resource_data()

Developer reference for function put_resource_data()

Read more...


create_resource()

Developer reference for function create_resource()

Read more...


update_hitcount()

Developer reference for function update_hitcount()

Read more...


save_resource_data()

Developer reference for function save_resource_data()

Read more...


save_resource_data_multi()

Developer reference for function save_resource_data_multi()

Read more...


remove_keyword_mappings()

Developer reference for function remove_keyword_mappings()

Read more...


add_keyword_mappings()

Developer reference for function add_keyword_mappings()

Read more...


add_keyword_to_resource()

Developer reference for function add_keyword_to_resource()

Read more...


email_resource()

Developer reference for function email_resource()

Read more...


delete_resource()

Developer reference for function delete_resource()

Read more...


get_resource_types()

Developer reference for function get_resource_types()

Read more...


get_resource_top_keywords()

Developer reference for function get_resource_top_keywords()

Read more...


clear_resource_data()

Developer reference for function clear_resource_data()

Read more...


copy_resource()

Developer reference for function copy_resource()

Read more...


resource_log()

Developer reference for function resource_log()

Read more...


get_resource_log()

Developer reference for function get_resource_log()

Read more...


get_resource_type_name()

Developer reference for function get_resource_type_name()

Read more...


get_resource_custom_access()

Developer reference for function get_resource_custom_access()

Read more...


get_resource_custom_access_users_usergroups()

Developer reference for function get_resource_custom_access_users_usergroups()

Read more...


save_resource_custom_access()

Developer reference for function save_resource_custom_access()

Read more...


get_custom_access()

Developer reference for function get_custom_access()

Read more...


get_themes_by_resource()

Developer reference for function get_themes_by_resource()

Read more...


update_resource_type()

Developer reference for function update_resource_type()

Read more...


relate_to_array()

Developer reference for function relate_to_array()

Read more...


stripMetadata()

Developer reference for function stripMetadata()

Read more...


write_metadata()

Developer reference for function write_metadata()

Read more...


update_resource()

Developer reference for function update_resource()

Read more...


import_resource()

Developer reference for function import_resource()

Read more...


user_rating_save()

Developer reference for function user_rating_save()

Read more...


get_resources_matching_keyword()

Developer reference for function get_resources_matching_keyword()

Read more...


get_resource_access()

Developer reference for function get_resource_access()

Read more...


get_custom_access_user()

Developer reference for function get_custom_access_user()

Read more...


edit_resource_external_access()

Developer reference for function edit_resource_external_access()

Read more...


resource_download_allowed()

Developer reference for function resource_download_allowed()

Read more...


get_edit_access()

Developer reference for function get_edit_access()

Read more...


get_metadata_templates()

Developer reference for function get_metadata_templates()

Read more...


get_resource_collections()

Developer reference for function get_resource_collections()

Read more...


download_summary()

Developer reference for function download_summary()

Read more...


check_use_watermark()

Developer reference for function check_use_watermark()

Read more...


reindex_resource()

Developer reference for function reindex_resource()

Read more...


get_page_count()

Developer reference for function get_page_count()

Read more...


update_disk_usage()

Developer reference for function update_disk_usage()

Read more...


update_disk_usage_cron()

Developer reference for function update_disk_usage_cron()

Read more...


get_total_disk_usage()

Developer reference for function get_total_disk_usage()

Read more...


overquota()

Developer reference for function overquota()

Read more...


get_original_imagesize()

Developer reference for function get_original_imagesize()

Read more...


generate_resource_access_key()

Developer reference for function generate_resource_access_key()

Read more...


get_resource_external_access()

Developer reference for function get_resource_external_access()

Read more...


delete_resource_access_key()

Developer reference for function delete_resource_access_key()

Read more...


update_archive_status()

Developer reference for function update_archive_status()

Read more...


delete_resources_in_collection()

Developer reference for function delete_resources_in_collection()

Read more...


update_related_resource()

Developer reference for function update_related_resource()

Read more...


can_share_resource()

Developer reference for function can_share_resource()

Read more...


delete_resource_custom_access_usergroups()

Developer reference for function delete_resource_custom_access_usergroups()

Read more...


get_video_snapshots()

Developer reference for function get_video_snapshots()

Read more...


delete_resource_custom_user_access()

Developer reference for function delete_resource_custom_user_access()

Read more...


copyAllDataToResource()

Developer reference for function copyAllDataToResource()

Read more...


copyResourceDataValues()

Developer reference for function copyResourceDataValues()

Read more...


copy_locked_data()

Developer reference for function copy_locked_data()

Read more...


copyRelatedResources()

Developer reference for function copyRelatedResources()

Read more...


update_timestamp()

Developer reference for function update_timestamp()

Read more...


get_extension()

Developer reference for function get_extension()

Read more...


get_last_resource_edit_array()

Developer reference for function get_last_resource_edit_array()

Read more...


get_resource_all_image_sizes()

Developer reference for function get_resource_all_image_sizes()

Read more...


download_link_generate_key()

Developer reference for function download_link_generate_key()

Read more...


download_link_check_key()

Developer reference for function download_link_check_key()

Read more...


update_resource_keyword_hitcount()

Developer reference for function update_resource_keyword_hitcount()

Read more...


copy_hitcount_to_live()

Developer reference for function copy_hitcount_to_live()

Read more...


get_image_sizes()

Developer reference for function get_image_sizes()

Read more...


get_preview_quality()

Developer reference for function get_preview_quality()

Read more...


get_related_resources()

Developer reference for function get_related_resources()

Read more...


get_resources_by_resource_data_value()

Developer reference for function get_resources_by_resource_data_value()

Read more...


get_all_image_sizes()

Developer reference for function get_all_image_sizes()

Read more...


image_size_restricted_access()

Developer reference for function image_size_restricted_access()

Read more...


get_nopreview_icon()

Developer reference for function get_nopreview_icon()

Read more...


purchase_set_size()

Developer reference for function purchase_set_size()

Read more...


payment_set_complete()

Developer reference for function payment_set_complete()

Read more...


add_verbatim_keywords()

Developer reference for function add_verbatim_keywords()

Read more...


canSeePreviewTools()

Developer reference for function canSeePreviewTools()

Read more...


checkPreviewToolsOptionUniqueness()

Developer reference for function checkPreviewToolsOptionUniqueness()

Read more...


tab_names()

Developer reference for function tab_names()

Read more...


get_resource_table_joins()

Developer reference for function get_resource_table_joins()

Read more...


update_resource_lock()

Developer reference for function update_resource_lock()

Read more...


get_resource_lock_message()

Developer reference for function get_resource_lock_message()

Read more...


resolve_soundex()

Developer reference for function resolve_soundex()

Read more...


compile_search_actions()

Developer reference for function compile_search_actions()

Read more...


search_special()

Developer reference for function search_special()

Read more...


search_get_previews()

Developer reference for function search_get_previews()

Read more...


get_upload_here_selected_nodes()

Developer reference for function get_upload_here_selected_nodes()

Read more...


split_keywords()

Developer reference for function split_keywords()

Read more...


cleanse_string()

Developer reference for function cleanse_string()

Read more...


resolve_keyword()

Developer reference for function resolve_keyword()

Read more...


add_partial_index()

Developer reference for function add_partial_index()

Read more...


highlightkeywords()

Developer reference for function highlightkeywords()

Read more...


str_highlight()

Developer reference for function str_highlight()

Read more...


sorthighlights()

Developer reference for function sorthighlights()

Read more...


get_suggested_keywords()

Developer reference for function get_suggested_keywords()

Read more...


get_related_keywords()

Developer reference for function get_related_keywords()

Read more...


get_grouped_related_keywords()

Developer reference for function get_grouped_related_keywords()

Read more...


save_related_keywords()

Developer reference for function save_related_keywords()

Read more...


set_slideshow()

Developer reference for function set_slideshow()

Read more...


delete_slideshow()

Developer reference for function delete_slideshow()

Read more...


reorder_slideshow_images()

Developer reference for function reorder_slideshow_images()

Read more...


getThemePathPerms()

Developer reference for function getThemePathPerms()

Read more...


validate_user()

Developer reference for function validate_user()

Read more...


setup_user()

Developer reference for function setup_user()

Read more...


get_users()

Developer reference for function get_users()

Read more...


get_users_with_permission()

Developer reference for function get_users_with_permission()

Read more...


get_user_by_email()

Developer reference for function get_user_by_email()

Read more...


get_user_by_username()

Developer reference for function get_user_by_username()

Read more...


get_usergroups()

Developer reference for function get_usergroups()

Read more...


get_usergroup()

Developer reference for function get_usergroup()

Read more...


get_user()

Developer reference for function get_user()

Read more...


save_user()

Developer reference for function save_user()

Read more...


email_user_welcome()

Developer reference for function email_user_welcome()

Read more...


email_reset_link()

Developer reference for function email_reset_link()

Read more...


auto_create_user_account()

Developer reference for function auto_create_user_account()

Read more...


email_user_request()

Developer reference for function email_user_request()

Read more...


new_user()

Developer reference for function new_user()

Read more...


get_active_users()

Developer reference for function get_active_users()

Read more...


change_password()

Developer reference for function change_password()

Read more...


make_password()

Developer reference for function make_password()

Read more...


bulk_mail()

Developer reference for function bulk_mail()

Read more...


get_user_log()

Developer reference for function get_user_log()

Read more...


resolve_userlist_groups()

Developer reference for function resolve_userlist_groups()

Read more...


resolve_userlist_groups_smart()

Developer reference for function resolve_userlist_groups_smart()

Read more...


check_password()

Developer reference for function check_password()

Read more...


resolve_users()

Developer reference for function resolve_users()

Read more...


check_access_key()

Developer reference for function check_access_key()

Read more...


check_access_key_collection()

Developer reference for function check_access_key_collection()

Read more...


make_username()

Developer reference for function make_username()

Read more...


get_registration_selectable_usergroups()

Developer reference for function get_registration_selectable_usergroups()

Read more...


open_access_to_user()

Developer reference for function open_access_to_user()

Read more...


open_access_to_group()

Developer reference for function open_access_to_group()

Read more...


resolve_open_access()

Developer reference for function resolve_open_access()

Read more...


remove_access_to_user()

Developer reference for function remove_access_to_user()

Read more...


user_email_exists()

Developer reference for function user_email_exists()

Read more...


resolve_user_emails()

Developer reference for function resolve_user_emails()

Read more...


create_password_reset_key()

Developer reference for function create_password_reset_key()

Read more...


get_rs_session_id()

Developer reference for function get_rs_session_id()

Read more...


check_share_password()

Developer reference for function check_share_password()

Read more...


checkPermission_anonymoususer()

Developer reference for function checkPermission_anonymoususer()

Read more...


checkPermission_dashadmin()

Developer reference for function checkPermission_dashadmin()

Read more...


checkPermission_dashuser()

Developer reference for function checkPermission_dashuser()

Read more...


checkPermission_dashmanage()

Developer reference for function checkPermission_dashmanage()

Read more...


checkPermission_dashcreate()

Developer reference for function checkPermission_dashcreate()

Read more...


checkperm()

Developer reference for function checkperm()

Read more...


checkperm_user_edit()

Developer reference for function checkperm_user_edit()

Read more...


get_video_resolution()

Developer reference for function get_video_resolution()

Read more...


save_themename()

Developer reference for function save_themename()

Read more...


ResolveKB()

Developer reference for function ResolveKB()

Read more...


display_size_option()

Developer reference for function display_size_option()

Read more...


get_selectedtypes()

Developer reference for function get_selectedtypes()

Read more...


render_advanced_search_buttons()

Developer reference for function render_advanced_search_buttons()

Read more...


check_order_by_in_table_joins()

Developer reference for function check_order_by_in_table_joins()

Read more...


existing_dash_tile()

Developer reference for function existing_dash_tile()

Read more...


show_upgrade_in_progress()

Developer reference for function show_upgrade_in_progress()

Read more...


render_audio_download_link()

Developer reference for function render_audio_download_link()

Read more...


job_queue_get_job()

Developer reference for function job_queue_get_job()

Read more...


job_queue_purge()

Developer reference for function job_queue_purge()

Read more...


render_table()

Developer reference for function render_table()

Read more...


render_array_in_table_cells()

Developer reference for function render_array_in_table_cells()

Read more...


update_collection_parent()

Developer reference for function update_collection_parent()

Read more...


validate_collection_parent()

Developer reference for function validate_collection_parent()

Read more...


allow_collection_share()

Developer reference for function allow_collection_share()

Read more...


sql_is_null_or_eq_val()

Developer reference for function sql_is_null_or_eq_val()

Read more...


sql_null_or_val()

Developer reference for function sql_null_or_val()

Read more...


DrawOption()

Developer reference for function DrawOption()

Read more...


internal_share_access()

Developer reference for function internal_share_access()

Read more...


allow_upload_to_collection()

Developer reference for function allow_upload_to_collection()

Read more...


render_top_page_error_style()

Developer reference for function render_top_page_error_style()

Read more...


reshape_array_by_value_keys()

Developer reference for function reshape_array_by_value_keys()

Read more...


permission_j()

Developer reference for function permission_j()

Read more...


permission_negative_j()

Developer reference for function permission_negative_j()

Read more...


compute_node_branch_path()

Developer reference for function compute_node_branch_path()

Read more...


compute_nodes_by_parent()

Developer reference for function compute_nodes_by_parent()

Read more...


get_resource_nodes_batch()

Developer reference for function get_resource_nodes_batch()

Read more...


get_resource_data_batch()

Developer reference for function get_resource_data_batch()

Read more...


is_int_loose()

Description Validate if value is integer or string integer Parameters Column Type Default Description $var mixed - variable to check Return boolean true if variable resolves to integer value This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 5th May 2023 13:50 Europe/London time.

Read more...


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.

Read more...


ip_matches()

Description Does the provided $ip match the string $ip_restrict? Used for restricting user access by IP address. Parameters Column Type Default Description $ip string $ip_restrict string Return boolean|integer This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 5th May 2023 13:50 Europe/London time.

Read more...


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 11th May 2023 20:05 Europe/London time based on the source file dated 23rd January 2023 16:50 Europe/London time.

Read more...


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.

Read more...


save_usergroup()

Description Save or create usergroup Parameters Column Type Default Description $ref int Group ref.

Read more...


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.

Read more...


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.

Read more...


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).

Read more...


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 '

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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 void Location include/collections_functions.

Read more...


render_share_password_question()

Parameters Column Type Default Description $blank true Location include/render_functions.

Read more...


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.

Read more...


get_upload_url()

Description Generate upload URL - alters based on $upload_then_edit setting and external uploads Parameters Column Type Default Description $collection string "" - optional collection $k "" $accesskey string - used for external users Return string This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 20th April 2023 15:50 Europe/London time.

Read more...


emulate_user()

Description Used to emulate system users when accessing system anonymously or via external shares Sets global array such as $userpermissions, $username and sets any relevant config options Parameters Column Type Default Description $user int User ID $usergroup int "" usergroup ID Return void This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 20th April 2023 15:50 Europe/London time.

Read more...


is_authenticated()

Parameters This function accepts no parameters. This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 20th April 2023 15:50 Europe/London time.

Read more...


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.

Read more...


sql_truncate_text_val()

Description Query helper to ensure code honours the database schema constraints on text columns. IMPORTANT: please use where appropriate! In some cases, truncating may mean losing useful information (e.

Read more...


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.

Read more...


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.

Read more...


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"]) .

Read more...


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.

Read more...


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.

Read more...


is_ecommerce_user()

Description Determine whether the user is setup as an e-commerce user Parameters This function accepts no parameters. Return boolean This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 20th April 2023 15:50 Europe/London time.

Read more...


build_permission()

Description Build a specific permission closure which can be applied to a list of items. Parameters Column Type Default Description $perm string Permission string to build (e.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


render_message()

Parameters Column Type Default Description $message "" Location include/render_functions.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


render_antispam_question()

Description Render the antispam Question form section Parameters This function accepts no parameters. Location include/render_functions.php lines 5739 to 5795 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 ) .

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


validate_remote_code()

Description Attempt to validate remote code. IMPORTANT: Never use this function or eval() on any code received externally from a source that can't be trusted! Parameters Column Type Default Description $code string Remote code to validate Return boolean This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 5th May 2023 13:50 Europe/London time.

Read more...


get_system_status()

Description Get system status information Parameters This function accepts no parameters. Return array This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 5th May 2023 13:50 Europe/London time.

Read more...


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 11th May 2023 20:05 Europe/London time based on the source file dated 27th April 2023 10:40 Europe/London time.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


ps_query()

Description Execute a prepared statement and return the results as an array. Parameters Column Type Default Description $sql string The SQL to execute $parameters string array An array of parameters used in the SQL in the order: type, value, type, value.

Read more...


copy_value()

Description Copy value as value (flatten / no references) Parameters Column Type Default Description $v This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 14th March 2023 16:40 Europe/London time.

Read more...


ps_value()

Parameters Column Type Default Description $query $parameters $default $cache "" This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 14th March 2023 16:40 Europe/London time.

Read more...


ps_array()

Description Like ps_value() but returns an array of all values found NOTE: The value returned must have the column name aliased to 'value' Parameters Column Type Default Description $query string SQL query $parameters array array SQL parameters with types, as for ps_query() $cache string "" Cache category (optional) Return array This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 14th March 2023 16:40 Europe/London time.

Read more...


ps_param_insert()

Description When constructing prepared statements and using e.g. ref in (some list of values), assists in outputting the correct number of parameters. Parameters Column Type Default Description $count integer How many parameters to insert, e.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


try_unlink()

Description Try and delete a file without triggering a fatal error Parameters Column Type Default Description $deletefile string Full path to file Return bool|string Returns TRUE on success or a string containing error This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 5th May 2023 13:50 Europe/London time.

Read more...


get_approver_usergroups()

Description Returns an array of the user groups the supplied user group acts as an approver for. Uses config $usergroup_approval_mappings. Parameters Column Type Default Description $usergroup int "" Approving user group Return array Array of subordinate user group ids.

Read more...


get_usergroup_approvers()

Description Returns an array of user groups who act as user request approvers to the user group supplied. Uses config $usergroup_approval_mappings. Parameters Column Type Default Description $usergroup int "" Subordinate user group who's approval user group we need to find.

Read more...


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.

Read more...


copy_usergroup_permissions()

Description Copy the permissions string from another usergroup Parameters Column Type Default Description $src_id int The group ID to copy from $dst_id int The group ID to copy to Return mixed bool|int True to indicate existing group has been updated or ID of newly created group This article was last updated 11th May 2023 20:05 Europe/London time based on the source file dated 20th April 2023 15:50 Europe/London time.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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 11th May 2023 20:05 Europe/London time based on the source file dated 5th May 2023 13:50 Europe/London time.

Read more...


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.

Read more...


 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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


columns_in()

The `columns_in()` function is a PHP function used in ResourceSpace, a digital asset management system. It returns a comma-separated list of table columns from a given table, with the option to use an alias instead of the table name to prefix the columns. The function is used to replace the "select" statement, which is not supported when using prepared statements. The function takes four parameters: `$table`, which is the source table; `$alias`, which is an optional different alias to use; `$plugin`, which specifies that the table is defined in a plugin with the supplied name; and `$return_list`, which is set to true to return a list of column names. The function returns a string. The article was last updated on March 27, 2023, based on the source file dated March 14, 2023.

Read more...


sql_limit_with_total_count()

The article describes a utility function called `sql_limit_with_total_count()` that is used to obtain the total number of rows found while paginating the results. The function requires a deterministic order in the input query to help with performance and avoid undefined behavior. The function takes several parameters, including the SQL query, the maximum number of rows to return, the offset of the first row to return, and an option to use previously cached count if available. The function returns an array that includes the count of total found records before paging and the paged result set. The article was last updated on March 27th, 2023, based on the source file dated March 14th, 2023.

Read more...


sql_reorder_records()

The `sql_reorder_records()` function is used to re-order rows in a table. It takes two parameters: `$table`, which is the name of the table that must have an "order_by" column, and `$refs`, which is an array of record IDs in the new desired order. The function does not return anything. This article was last updated on March 27th, 2023, based on the source file dated March 14th, 2023.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


mark_email_as_invalid()

The function `mark_email_as_invalid()` is a code snippet that can be used to find all users with a matching email and mark them as having an invalid email. The function takes a single parameter, `$email`, which is a string representing the email address to be marked as invalid. The function returns a boolean value indicating whether the operation was successful or not. This code snippet is part of the ResourceSpace source code and was last updated on March 27th, 2023.

Read more...


check_email_invalid()

The article describes a function called "check_email_invalid()" which checks if an email address entered is marked as invalid for any users. The function takes a single parameter, which is the email address to be checked. The function returns a boolean value of true if the email address is marked as invalid for any users with a matching email address. The article also includes a table that lists the parameters and their types, as well as the return value of the function. The article was last updated on March 27th, 2023, and is based on the source file dated March 17th, 2023.

Read more...


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.

Read more...


get_cattree_nodes_ordered()

Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 4532 tokens. Please reduce the length of the messages. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )

Read more...


get_cattree_node_strings()

Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, you requested 4955 tokens (3931 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 ) )

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


get_users_by_permission()

The "get_users_by_permission()" function retrieves all user records in groups with or without the specified permissions. It takes an array of permission strings to check as a parameter and returns a subset of columns for matching user records. The function cannot use a straight FIND_IN_SET for permissions since it is case-insensitive. The article was last updated on March 27th, 2023, based on the source file dated March 17th, 2023.

Read more...


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.

Read more...


update_smart_collection()

Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 7723 tokens. Please reduce the length of the messages. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


order_tree_nodes()

Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, your messages resulted in 6099 tokens. Please reduce the length of the messages. [type] => invalid_request_error [param] => messages [code] => context_length_exceeded ) )

Read more...


add_sql_node_language()

Array ( [error] => Array ( [message] => This model's maximum context length is 4097 tokens. However, you requested 5059 tokens (4035 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 ) )

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...


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.

Read more...