OG Images Omeka S module

Releases

1.0.4

Oct 20, 2026

  • Editors and other roles below Supervisor who open an OG Images page (the templates, a template, the settings) now get Omeka's Forbidden page with HTTP status 403, and the template editor's preview endpoints answer them with a JSON 403. They used to get Omeka's error page Omeka S encountered an error with status 500. Who may use each page is unchanged.

1.0.3

Oct 20, 2026

  • The OG Image Templates section on a site's admin page never appeared: it listened for a site controller that Omeka S 4 does not have, and the admin stylesheet would have hidden it anyway. It now shows at the bottom of the site's admin page (below the Info and Settings tabs) and of its details page, for the users who may edit the site (see below). On the admin page the page's own Save saves the section along with the site's Info and Settings (the overrides first, and only when one changed); if they cannot be saved, nothing is saved, the page stays open and the reason shows under the section. Leaving the page with an unsaved override warns like any other change. The details page has no Save, so there the section keeps a Save OG Template Overrides button, which saves in the background and says so next to it (the save used to be answered with a redirect, so no confirmation appeared). The section and a template's Site Assignments edit the same overrides; when a template's resource type is changed, saving it now also drops the overrides it had for its old type.
  • The site overrides endpoint (POST /admin/og-images/site-settings) now requires the CSRF token the section sends, answering 403 without it, and only accepts a template of the slot's resource type (a missing or wrong-type template is refused with 400 and nothing is saved). Before, any template could be set for any type, and the request needed no token.
  • A site's overrides can only be changed by someone who may edit that site, as its admin page requires: its owner, users with the Admin role in its User permissions, and Site and Global Administrators. The section is shown only to them, and the endpoint checks the site named by site_id, answering 403 to anyone else, so the Admin of one site cannot change another site's overrides. A site's Admin whose own role is below Site Administrator gets the section on that site (only Site and Global Administrators could use it before).
  • Blog post cards: an excerpt written in the post editor printed its HTML (a literal <p>, &ndash;) on the card and in the page's og:description; both now get plain text. A featured image chosen as an asset, the post form's only option, now fills {{blog_post.thumbnail_url}} (only an image URL did before).
  • {{blog_post.thumbnail_url}} takes the featured asset's current URL before any image URL stored with the post. Blog stored a copy of the asset's URL until 1.4.1, so a site that had moved to a new address got share cards with the image from the old one. The stored URL is used only for a post without an asset.
  • Item cards: {{item.creator}}, {{item.date}}, {{item.type}} and the item and item set descriptions give a linked resource's title and a URI's label; a creator linked to another item used to come out empty on the card (and as a URL in the editor preview). The og:description of item and item set pages does the same; a linked description gave the linked item's URL.
  • Item set pages (/s/{site}/item-set/{id}) get their Open Graph tags. The module waited for an item set "show" page, which Omeka S 4 does not have: an item set's page is the item list filtered to the set, so these pages had no og:image at all. The list of all items still gets none.
  • Template editor: the Background color swatch no longer covers its label; layer fields put their label above the field, so Image Style and Source URL no longer crowd their controls and long values such as {{item.thumbnail_url}} stay readable beside the {{}} button.
  • Template add and edit pages: Template name, Resource type, Set as default and Background image URL each sat in a grey box inside a second grey box; every field now has one box, like the width, height and background colour fields. The settings page had the same doubled boxes; the cache TTL and cache directory explanations are now behind the field's ▸ toggle, as on Omeka's own settings pages, and Flush all caches no longer stretches to the height of its row.
  • Template list: the Edit, Duplicate, Flush cache and Delete buttons sit on one line instead of stacking three rows high, and the cache count reads "1 image" rather than "1 images" (here and on the settings page).
  • PHP 8.4: the service and controller factories no longer trigger the "implicitly nullable parameter" deprecation.

1.0.2

Sep 22, 2026

  • Fixed the cross-site search Open Graph image, which returned HTTP 500. The image controller never read the q parameter and passed the site ID to the search resolver, which under strict_types raised an uncaught TypeError. The query is now read from ?q=, passed to the resolver so {{search.query}} renders the search text, and cached per query and site. Resolver failures of any kind now fall back to an empty variable map instead of a server error.
  • A Cache TTL of 0 now regenerates the image on every request and writes nothing to the disk cache, as the settings hint promised. Previously a TTL of 0 skipped the age check, so cached images never expired.

1.0.1

No release notes.

Log in for Support