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
- Automated Testing
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
Project structure
The following table lists the folders found within a typical ResourceSpace installation.
| Folder path | Contents |
|---|---|
| /api | Endpoint for the ResourceSpace API |
| /api/iiif | Endpoint for the IIIF API |
| /batch | Contains scripts designed to be accessed offline |
| /css | Contains all presentation style sheets |
| /dbstruct | Files that define the database structure and default data |
| /documentation | Contains licenses and a link to this Knowledge Base |
| /filestore | Created during installation; contains the resource files themselves stored at scrambled paths - can optionally be stored at another location outside of the web root e.g. on a NAS or similar |
| /filestore/tmp | Temporary files created during certain operations, e.g. preparing a zip for download |
| /gfx | Contains image files used by the ResourceSpace UI |
| /iccprofiles | Contains default colour profiles used for processing uploaded image files |
| /include | PHP files defining functions or specific areas of functionality |
| /include/job_handlers | PHP files for offline jobs |
| /languages | All of the language strings in the ResourceSpace UI, defined for all supported languages, one PHP file per language. "en.php" is used as a fallback if there are missing entries for the selected language. |
| /include/job_handlers | PHP files for offline jobs |
| /lib | Third party libraries |
| /pages | PHP files for the ResourceSpace UI. All files should contain presentation output and logic only with functions in /include doing the core work. |
| /plugins | ResourceSpace plugins included by default. |
| /templates | Templates used for creating PDF files, for contact sheets and resource metadata sheets. |
| /tests | Automated testing for use by developers. "test.php" should be executed from the command line and the tests in test_list are executed one at a time against a temporary filestore and database. |
| /upgrade | Scripts required to upgrade the system from various versions - these are executed automatically as needed |