Coding standards
Security in ResourceSpace
Developer reference
- Project structure
- Database schema
- Fixed list fields
- Debugging ResourceSpace
- Writing your own plugins
- Context help links
- Custom fields ("user" defined)
- Query caching
- All user permissions
- Client side API calls
- Modals
- Sending user notifications
- Progressive Web App
- Managing (PHP) code dependencies
- Managing (JS) code dependencies
- OpenAPI documentation
Database
- Table: activity_log
- Table: annotation
- Table: annotation_node
- Table: collection
- Table: collection_keyword
- Table: collection_log
- Table: collection_resource
- Table: collection_savedsearch
- Table: comment
- Table: daily_stat
- Table: dash_tile
- Table: dynamic_tree_node
- Table: external_access_keys
- Table: filter
- Table: filter_rule
- Table: filter_rule_node
- Table: ip_lockout
- Table: job_queue
- Table: keyword
- Table: keyword_related
- Table: mail_log
- Table: message
- Table: node
- Table: node_keyword
- Table: plugins
- Table: preview_size
- Table: report
- Table: report_periodic_emails
- Table: report_periodic_emails_unsubscribe
- Table: request
- Table: research_request
- Table: resource
- Table: resource_alt_files
- Table: resource_custom_access
- Table: resource_dimensions
- Table: resource_keyword
- Table: resource_log
- Table: resource_node
- Table: resource_related
- Table: resource_type
- Table: resource_type_field
- Table: resource_type_field_resource_type
- Table: search_log
- Table: site_text
- Table: slideshow
- Table: sysvars
- Table: tab
- Table: user
- Table: user_collection
- Table: user_dash_tile
- Table: user_message
- Table: user_preferences
- Table: user_rating
- Table: user_report
- Table: user_userlist
- Table: usergroup
- Table: usergroup_collection
- Table: usergroup_dash_tile
Client side API requests
Instead of creating new AJAX calls to custom endpoints it is recommended to instead use the new api() JavaScript function. This makes calls to the ResourceSpace API using native browser authentication.
Please note that from v10.2 only functions appropriate for browser initiated activity are permitted in this mode.
To make an API call simply call the api() function with the following parameters:-
| name | The name of the API function. See https://www.resourcespace.com/knowledge-base/api/ for documentation on all available functions. | |
|---|---|---|
| params | An array of named parameters to pass to the function. These are specific to each function and are documented in the function reference. | |
| callback | An optional callback function that will be run once the API call has completed. The function will be called with the output of the API call as an argument. | |
| post_data_extra |
(new to v10.2) Any extra POST data you want/need to pass to the API function. Common use case is for passing the CSRF token for state changing operations. |
|
Examples
// This will create a new collection named 'Trees' and select it in the collection bar' api('create_collection',{"name":"Trees"},function(response){ChangeCollection(response,usercollection);}); // This will retrieve the URL for the 'scr' size image preview for resource ID 11912 and open it in a new tab api('get_resource_path',{"ref":"119912","getfilepath":"false","size":"scr"},function(response){window.open(response,'_blank');});
// Deleting a resource with a CSRF token
api(
'delete_resource',
{'resource': someID},
yourCallback,
);
// When inside JS land, an alternative is to target the data attribute of interest during some event:.
api(
'delete_resource',
{'resource': someID},
yourCallback,
jQuery(event.target).data('api-native-csrf')
);
Note: to add that data attribute, use generate_csrf_data_for_api_native_authmode()