Using Externally Hosted IIIF Manifests with Viewers in Omeka-S


I’m brand new to Omeka-S, and I’m trying to figure out workflow and “module infrastructure” for displaying objects from externally hosted IIIF presentation manifests in Omeka-S with Mirador or Universal Viewer.

In the README for the Omeka-S-module-IiifServer repository, it suggests you can load externally hosted presentation API manifests by setting the alternative manifest to a specific field like dcterms:hasFormat. I assume this means in the configuration setting for whatever viewer you want to use. I’ve tried doing this in Universal Viewer by setting Manifest property to Dublin Core : Has Format. I’ve also assumed (perhaps incorrectly) that I should add an item with metadata that includes a dcterms:hasFormat with a valid presentation manifest. For example, I added a sample object like this:

Title: Test
Has Format:

In order to test this, I’ve added a Sample Page with a Universal Viewer block with an attachment to my Test item above.

When I view the page, Universal Viewer displays, but the canvases don’t. That’s because it’s loading this manifest:

which loads this JSON:

	"@context": ["", ""],
	"@id": "",
	"@type": "sc:Manifest",
	"label": "Test",
	"license": "",
	"attribution": "Provided by Example Organization",
	"related": {
		"@id": "",
		"format": "text/html"
	"seeAlso": {
		"@id": "",
		"format": "application/ld+json"
	"metadata": [{
		"label": "Title",
		"value": "Test"
	}, {
		"label": "Has Format",
		"value": ""
	"sequences": [{
		"@id": "",
		"@type": "sc:Sequence",
		"label": "Unsupported extension. This manifest is being used as a wrapper for non-IIIF content (e.g., audio, video) and is unfortunately incompatible with IIIF viewers.",
		"compatibilityHint": "displayIfContentUnsupported",
		"canvases": [{
			"@id": "/iiif/ixif-message/canvas/c1",
			"@type": "sc:Canvas",
			"label": "Placeholder image",
			"thumbnail": "/modules/IiifServer/asset/img/thumbnails/placeholder-image.png?v=3.5.16",
			"width": 200,
			"height": 200,
			"images": [{
				"@id": "/iiif/ixif-message/imageanno/placeholder",
				"@type": "oa:Annotation",
				"motivation": "sc:painting",
				"resource": {
					"@id": "/iiif/ixif-message-0/res/placeholder",
					"@type": "dctypes:Image",
					"width": 200,
					"height": 200
				"on": "/iiif/ixif-message/canvas/c1"

I’m obviously misunderstanding something here and not configuring this properly. The presentation manifest above is just displaying my dcterms:hasFormat, but not actually using it as the presentation manifest.

How do you display an object via an externally hosted IIIF presentation manifest in Omeka-S in either Mirador or Universal Viewer, and what modules do I need to do this? Do I just need Omeka-S-module-IiifServer and either Omeka-S-module-Mirador or Omeka-S-module-UniversalViewer. Finally, how do I add the object via the presentation manifest, and what did I misinterpret above?