Rozszerzenia aplikacji czytelnika

Mechanizm rozszerzeń aplikacji czytelnika systemu dLibra

W wersji 5.0 systemu dLibra wprowadzono mechanizm rozszerzeń prezentacji treści publikacji. Niektóre formaty dokumentów wymagają od użytkownika instalacji odpowiednich rozszerzeń dla przeglądarki np. format DjVu. W aplikacji czytelnika systemu dLibra w wersji 5.0 zostały zawarte mechanizmy pozwalające na prezentacje niektórych typów plików w formie przyjaznej dla użytkowników. Mechanizmy te bazują na wykorzystaniu ogólnie znanych wtyczek do przeglądarek takich jak Adobe Flash, Java lub korzystają z funkcjonalności oferowanej przez system operacyjny zainstalowany na komputerze użytkownika (Windows Media Player).

Aplikacja czytelnika na podstawie typu i nazwy głównego pliku publikacji określa czy dostępne są rozszerzenia sposobu prezentacji dla danej publikacji. Jeżeli tak, przed wyświetleniem treści prezentuje użytkownikowi listę dostępnych rozszerzeń (por. rysunek). Użytkownik może skorzystać z odtwarzacza wbudowanego w dLibrę lub pozostawić obsługę przeglądarce (jeżeli posiada już zainstalowaną wtyczkę).

Standardowo w aplikacji czytelnika dostępne są rozszerzenia dla następujących formatów: zdjęcia w formacie Zoomify, DjVu, MP3, MP4, AVI, FLV, WMV. Poniżej zestawiono listę typów MIME, które zostały przyporządkowane poszczególnym rozszerzeniom:

format

typ MIME

djvu

image/x.djv

avi/wmv

video/x-msvideo, video/x-ms-wmv

mp3

audio/mpeg, audio/x-mpeg, audio/mp3, audio/x-mp3, audio/mpeg3, audio/x-mpeg3, audio/mpg, audio/x-mpg, audio/x-mpegaudio, video/x-flv, flv-application/octet-stream

mp4

application/mp4, video/mp4, audio/mp4

zoomify

text/xml (plik o nazwie ImageProperties.xml)

Aby aplikacja czytelnika mogła poprawnie dobrać rozszerzenia prezentacji treści konieczne jest przypisanie plikowi głównemu właściwego (dla danego formatu) typu MIME.

Budowa i sposób działania rozszerzeń prezentacji treści.

Każde z rozszerzeń używanych do prezentacji treści składa się z dwóch części. Plików widocznych przez WWW np. skryptów JavaScipt, arkuszy CSS, apletów Java lub Flash. Pliki te znajdują się w katalogu dlibra-webapp-5.0/formats/nazwa-rozszerzenia. Plików z konfiguracją rozszerzeń np. ustawienia związane z tym jakie formaty dane rozszerzenie jest w stanie wyświetlać, szablony VTL używane do generowania kodu HTML rozszerzenia, tekst wyświetlanego ostrzeżenia. Pliki te znajdują się w katalogu dlibra-webapp-5.0/WEB-INF/formats/nazwa-rozszerzenia.
Poniżej przedstawione zostanie rozszerzenie wykorzystywane do prezentacji obrazów w formacie Zoomify. Składa się on z następujących plików:

  1. część widoczna przez strony WWW:
    dlibra-webapp-5.0/formats/zoomify/zoomifyViewer.swf - jest to skompilowany skrypt Adobe Flash, który otrzymawszy odpowiednie argumenty (jak adres pod którym znajduje się główny plik publikacji) jest w stanie wyświetlić obraz w formacie Zoomify.
  2. pliki konfiguracyjne:
  • settings.xml - konfiguracja rozszerzenia.
  • message_pl.xml, message_en.xml - etykiety tekstowe wyświetlane w treści ostrzeżenia.
  • content.vm, message.vm - szablony kodu HTML i szablon ostrzeżenia.
    Każde rozszerzenie prezentacji treści musi posiadać wymienione wyżej 5 plików, część widoczna od strony WWW jest opcjonalna.

Plik settings.xml zwiera najważniejsze ustawienia związane z działaniem rozszerzenia, są to między innymi:

  • handled.mime.types - lista oddzielonych przecinkami typów MIME obsługiwanych przez dane rozszerzenie. W przypadku omawianego rozszerzenia jest to tylko jeden typ text/xml.
  • handles.secured - parametr może mieć wartość true albo false. Jeżeli dane rozszerzenie potrafi zabezpieczyć treść publikacji przed kopiowaniem wartość tego parametru można ustawić na true, w przypadku rozszerzenia zoomify parametr ten ma wartość false.
  • handles.normal - parametr może mieć wartość true albo false. Jeżeli dana publikacja obsługuje prezentacje normalnych (nie zabezpieczonych) publikacji parametr ten ma wartość true (tak jest w przypadku omawianego rozszerzenia).
  • handled.filenames - parametr ten jest opcjonalny, należy tu podać oddzielone przecinkami dopuszczalne nazwy pliku głównego publikacji. Plik główny publikacji w formacie zoomify to prosty dokument XML aby odróżnić go od innych formatów, które również posiadają XML jako plik główny można wprowadzić wymóg zgodności nazwy pliku głównego. W omawianym przypadku wartość tego parametru to: ImageProperties.xml.

W momencie gdy użytkownik wybierze rozszerzenie jakiego chce użyć do prezentacji treści, aplikacja czytelnika generuje ostrzeżenie dotyczące formatu - renderowana jest zawartość pliku message.vm przy użyciu etykiet tekstowych z plików messages_pl.xml i messages_en.xml. Następnie użytkownik przechodzi do treści, aplikacja czytelnika wyświetla wyrenderowany szablon content.vm. W szablonie tym określone są odwołania do widocznych od strony WWW elementów rozszerzenia formatu prezentacji treści oraz do pliku z treścią publikacji. Z poziomu szablonu content.vm tworzący rozszerzenia prezentacji treści ma do dyspozycji dwie zmienne:

  1. ${completeContentBaseUrl} - kompletny odnośnik do głównego pliku publikacji
  2. ${pathToHandler} - adres WWW wskazujący na katalog danego rozszerzenia w przykładowo http://dlibra.psnc.pl/dlibra/formats/zoomify. W tym katalogu znajdują się skrypty danego rozszerzenia.

W przypadku prezentowanego rozszerzenia zoomify strona wyrenderowana podczas wyświetlania treści publikacji zawiera wywołanie skryptu zoomifyViewer.swf gdzie w argumentach podawana jest ścieżka do pliku głównego publikacji. Poniżej zawartość szablonu content.vm dla rozszerzenia zoomify:

#set ( $width = "100%" )
#set ( $height = "100%" )

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="${width}" height="${height}" id="theMovie">
      <param name="FlashVars" value="zoomifyImagePath=${completeContentBaseUrl}">
      <param name="menu" value="false">
      <param name="src" value="${pathToHandler}/zoomifyViewer.swf">
      <embed FlashVars="zoomifyImagePath=${completeContentBaseUrl}" src="${pathToHandler}/zoomifyViewer.swf" menu="false" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"  width="${width}" height="${height}" name="theMovie"></EMBED>
</object>

Domyślny sposób prezentacji treści

W katalogu dlibra-webapp-5.0/WEB-INF/formats znajdują się trzy pliki (message_pl.xml, message_en.xml i settings.xml) jest to konfiguracja domyślnej obsługi prezentacji formatów. Wszelkie zmiany w tych plikach mogą spowodować, że aplikacja czytelnika nie będzie działać poprawnie.