Skip to content


Choose a tag to compare
@zerocrates zerocrates released this 08 Oct 15:46
· 650 commits to develop since this release

Omeka S 3.0.0 is a major release containing backwards-incompatible changes.

You must update modules and themes when upgrading to this version.


  • Fine-grained assignement of items to sites
    • Items can now be explicity added to or removed from sites one-by-one.
    • A new "auto-assign new items" setting is provided for sites that should include all newly created items
    • The prior search-based "pool" can be used to make bulk changes to the pool of items assigned to a site, but the search is no longer executed "live." The search interface can be used to add to the current pool, replace it completely, or to remove only the searched items.
  • Search across multiple sites
    • New search capability to find items, sets, pages across all sites in the installation. Item and set results will present a list of the sites in which they can be found
    • This search is now available on the default "list of sites" installation front page
    • Sites have a new setting allowing the main search box to be either the previous "current site only" search or the new "across all sites" search
    • New user setting to allow each user to set default sites to be selected when adding new items
  • Public/private setting for individual pages within a site (#1603, contributed by @Daniel-KM)
  • Admin page list for sites now includes display of the added/modified date for each page and control over sorting (#1615, contributed by @Daniel-KM)
  • Added site setting for which types of resources to search (#1486, contributed by @Daniel-KM)
  • Search results now omits headers and other clutter when no results of a particular type are found
  • Drag-and-drop reordering for values within a property when editing resources
  • Public item views now include a list of the pages of the current site that the item is attached to, controlled by a new "Show attached pages" setting
  • Advanced search for resources now includes an option to search by owner
  • The IIIF media type now supports IIIF Image API v3 (#1585, contributed by @Daniel-KM)
  • Media can be reordered on the form when it is initially added, no longer requiring the user to wait until the media is added to reorder it (#1599, contributed by @ManOnDaMoon)
  • Default public media show pages now include a link back to their parent item
  • New UI allowing administrators to manually set the owner of resources
  • Resource templates can select multiple data types for each property (#1634, contributed by @Daniel-KM)
  • Administrators can set a list of suggestions for the value language input (#1617, contributed by @Daniel-KM)
  • Improved .htaccess rules to exclude serving of PHP scripts, hidden files (partially contributed by @Daniel-KM)


  • Updated labels for roles to reduce confusion:
    • The label for the "Site Administrator" role is now "Supervisor"
    • The label for the "Admin" site permissions role is now "Manager"
    • The label for the "Editor" site permissions role is now "Creator"
  • The "Settings" sub-page of sites is now merged with "Site info," which is renamed "Site admin"
  • "Thumbnail" tab for resources now included in "Advanced" tab
  • Advanced search layout updated to be more compact
  • Error pages now include more text/explanation by default
  • Admin dashboard links to sites are swapped to align with their presentation elsewhere: the name of the site now links to its admin area, and the former "edit" icon link is replaced by a "view in public" icon
  • Harmonized code and behavior for instances of "selection" sidebars

Bugs Fixed

  • Pages with attachments pointing to private items or media could cause errors when viewed by unprivileged/anonymous users
  • Redundant values_json key was left in resource add/edit post data (#1551, contributed by @mikesname)
  • The searchOne API method could work incorrectly for results that were not numerically indexed (#1546, #1604, contributed by @Daniel-KM)
  • Admin user browse sidebars had to be "closed" several times to actually close (#1555, contributed by @ManOnDaMoon)
  • The objectValues() method for resources incorrectly excluded values of resource sub-types (#1568, contributed by @Daniel-KM)
  • Sites could not be sorted by owner
  • data-term and data-property-id attributes were missing from the property select element when restricting a site's search form by a template
  • Configure forms for modules did not include a CSRF token check
  • Pages using the "fragment" for other purposes could conflict with our JS for handling switching between tabs/sections
  • Some SVG images could not be uploaded as assets (#1583, contributed by @Daniel-KM)
  • Fulltext search did not work when used with returnScalar request option
  • Template select boxes were not ordered in the same order as the template browse (#1618, #1627, contributed by @Daniel-KM)
  • A DQL/SQL issue could occur when modules used subrequests during item set queries (#1519, contributed by @Daniel-KM)
  • Resource template import/export did not include the resource title, description settings (contributed by @Daniel-KM)
  • Stray whitespace was possibly allowed in the resource template import process (#1631, contributed by @Daniel-KM)
  • Some pages that should have shown "404" errors instead showed other types of error
  • "Modules" section of left admin nav displayed even if no modules were present there (#1587, contributed by @Daniel-KM)
  • Batch update for site permissions for users was broken (#1538, contributed by @ManOnDaMoon)
  • Failed ingests could leave behind stale temporary files
  • Some form details could not be expanded and viewed by the user (#1554, contributed by @ManOnDaMoon)

For Developers

  • Updated from Zend Framework to Laminas Project
  • EasyRDF moved back to upstream, updated to version 1.0 (contributed by @Daniel-KM)
  • The REST API now includes a header Omeka-S-Total-Results on "browse" requests that includes the total number of results
  • The media API now allows ingester and renderer query keys
  • All API resources now accept multiple or single IDs in the id parameter to search
  • New used search parameter for properties, classes to return only vocab members actually being used in items (partially contributed by @Daniel-KM)
  • The returnScalar API option now allows retrieval of the IDs of associated entities
  • New thumbnail_display_urls entry in resource API results for simpler access to thumbnail URLs without additional requests or client logic
  • The thumanail() view helper can now be used directly on uploaded assets (#1545, contributed by @Daniel-KM)
  • The value() method for resource representations now allows type and language to be arrays, to retrieve values matching any of multiple types/languages in one call (#1632, #1633, contributed by @Daniel-KM)
  • The zend-soap/laminas-soap component has been removed
  • The default return for value() is now an array when the all option is enabled (#1489, contributed by @Daniel-KM)
  • New Gulp tasks for testing code standards for modules and for fixing code standards for core and modules
  • New o:property-added JS event triggered when new properties are loaded onto the resource edit form
  • New view.$action.form.advanced PHP event for adding to the new Advanced tab
  • Instructions for installing Gulp updated to suggest npx instead of globally installing Gulp CLI (#1606, contributed by @Trott)