{"id":25368353,"url":"https://github.com/discoverygarden/islandora_viewers","last_synced_at":"2025-04-09T06:18:09.943Z","repository":{"id":3022960,"uuid":"4042719","full_name":"discoverygarden/islandora_viewers","owner":"discoverygarden","description":null,"archived":false,"fork":false,"pushed_at":"2016-12-08T16:11:01.000Z","size":633,"stargazers_count":0,"open_issues_count":0,"forks_count":3,"subscribers_count":30,"default_branch":"7.x","last_synced_at":"2025-02-15T00:37:15.858Z","etag":null,"topics":["customization","drupal-6","drupal-7","viewer"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/discoverygarden.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-04-16T16:17:47.000Z","updated_at":"2018-05-04T11:36:28.000Z","dependencies_parsed_at":"2022-09-11T05:20:16.251Z","dependency_job_id":null,"html_url":"https://github.com/discoverygarden/islandora_viewers","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discoverygarden%2Fislandora_viewers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discoverygarden%2Fislandora_viewers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discoverygarden%2Fislandora_viewers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discoverygarden%2Fislandora_viewers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/discoverygarden","download_url":"https://codeload.github.com/discoverygarden/islandora_viewers/tar.gz/refs/heads/7.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247987236,"owners_count":21028895,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["customization","drupal-6","drupal-7","viewer"],"created_at":"2025-02-15T00:37:20.853Z","updated_at":"2025-04-09T06:18:09.920Z","avatar_url":"https://github.com/discoverygarden.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"@author William Panting\n\nThis module is meant to describe the interface \nfor modules implementing the Islandora viewer hooks.\nIt also creates an admin interface/DB entry to record settings regarding \nwhat theme function to use under what conditions.\nIt provides a way to detect wich viewer is selected through the admin interface.\nThis functionality may be extended in the future.\nA source of possible bugs is the deactivation of viewers: \nA function should be created that viewers call on deactivation to remove any DB entry\nregarding their module.\n\nDECISION DIMENSIONS FOR CHOSING A VIEWER:\nDSID (do not suggest supporting)\nPID (do not suggest supporting)\nSOLUTION_PACK_DEFAULT (would be hardcoded, or configurable in solution pack admin)\n    Solution pack dependent.\n    If the code falls through to this and it doesn't exist we should \nMIME_TYPE (for aggregate content models this would be a unique string. \n            Is there a convention for mime-types of distributed media?\n            multipart/vnd.islandora.content_model) \n    implemented \n    this is the most basic way to make the decision\nCONTENT_MODEL (can override MIME_TYPE)\n    The first dev who needs this needs to implement it.\n    This is the prefered way to make the decision in Islandora.\nCOLLECTION (can override CONTENT_MODEL)\n    The first dev who needs this needs to implement it.\n\nHOOK:\nislandora_viewers(mimetype)\n    ON NULL: return an array(mime_type=\u003etheme function)\n    ON MIMETYPE MATCH: return the theme function\n    OTHERWISE: return nothing\n\nDETECT VIEWER SETTINGS:\nislandora_viewers.inc: islandora_viewers_get_viewer_theme($mime_type)\n\nEXPECTED VIEWER/THEME INTERFACE:\ntheme(PID, DSID) @TODO: exameine; Xhould this be the URI of datastream?\n    CONTENTS IN VIEWER\n\nEXAMPLES:\n\nVIEWERS:\nhttps://github.com/willtp87/islandora_flexpaper_viewer\n\nThis approach is extendible to the object level: we can use it to overide an object level theme (display) such as 'Object Details'.\nIt is also extendible to metadata display, though the details of a well performing implementation need to be ironed out:\nMaybe a relation on datstreams describing their schema. So the datastream would not need to be accessed more than once and not need to be passed around.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiscoverygarden%2Fislandora_viewers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiscoverygarden%2Fislandora_viewers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiscoverygarden%2Fislandora_viewers/lists"}