Image banks

The image banks plugin provides the ability to search external image banks for photos without navigating manually to their system.

How to use it

Searches are run in the external image bank using the simple search box and using the dropdown selector called "Search external image banks".


Clicking Search runs the search for you. Note: some Image Bank providers might have restrictions and ResourceSpace will, where required, cache the results as per Providers' API requirements.

The search results will be displayed showing at the top how many results were found in total, which Image Bank you've searched through and how many results to show per page.


How to use the files

There are a few ways to interact with the results:

  • Clicking on the preview image will take you to the Image Bank Providers' page of that file
  • Clicking on will download the file to your system. Alternatively, you can right-click on the icon and select "Save link as"
  • Depending on the users' ability to create new resources in the system, an option to create a resource based on the result from Pixabay will be available. Click on to create new resource.


Image Banks plugin can be configured based on each Providers' requirements. For example, Pixabay only requires a Pixabay API key.

Shutterstock is also available to search from the image banks drop down, images can be downloaded but cannot be used to create resources directly as with Pixabay. Clicking Download will take you to the Shutterstock site to complete the download.


Image Banks plugin has been designed to allow developers to add new providers with little effort.

New providers should be added to the providers folder, each in its own separate file. Any libraries that should be installed for a particular provider should be added to the lib folder.

Note: we would advise developers to not commit the dependent libraries to ResourceSpace, but use the checkDependencies() method the provider needs to implement to notify admins a particular provider needs to be configured more (e.g install libraries).

Most important requirements are:

  • All Providers MUST extend the Provider class
  • The runSearch() method MUST return a ProviderSearchResults object
  • All elements of a ProviderSearchResults object MUST be a ProviderResult object

If needed to add certain elements for the configuration page of the plugin, use the buildConfigPageDefinition() method. Any configs used for the configuration page will have to be set in the configs property so the system can register them for the plugin.