Object view would be of limited utility without the ability to actually view an object on the page. Object viewers enable this. CONTENTdm® is capable of storing any file type, and dmBridge should therefore ideally be able to display as many different file types (images, audio, text, video...) as possible.
Every object viewer in dmBridge is its own class, in its own file on disk. A number
of object viewers are provided (in the
folder) that are capable of handling many common file types.
Object viewers are assigned on a per-collection basis. Which viewer is used for which file type depends on the associations defined in the Collections section of the Control Panel. Here, you can associate a particular object viewer class with a particular media (MIME) type.
Every object viewer class must implement the
DMObjectViewerDelegate interface. This requires writing three
Should return the name of the viewer.
Should return an HTML fragment that will render the viewer.
isLowBandwidthCompatible()(new in 2.1)
Should return true or false depending on whether the content rendered by the object viewer is expected to always be "low-bandwidth safe." "Low bandwidth," in this case, is somewhat subjective; if a significant portion of the users of the viewer will be expected to experience bandwidth-related problems, then the viewer is not low-bandwidth-safe.
Examples of generally low-bandwidth-compatible viewers include:
Streaming media players
Image viewers that display reduced-size derivatives of larger source objects
Examples of generally non-low-bandwidth-compatible viewers, in contrast, include any that link directly to an object's bitstream.
for an example of how an object viewer works.
Adding your own custom object viewer is as simple as writing your own class in the pattern of the existing ones and defining the associations in the Collections section of the Control Panel.
Custom viewers must be saved in the
folder. The class name of the viewer must match the filename, and the class file must be
saved in a folder with the same name as the class. For example:
dm/extensions/viewers/ MyCustomViewer/ MyCustomViewer.php
MyCustomViewer.php, then, would contain a class named