Rozszerzenia aplikacji czytelnika

Mechanizm rozszerzeń aplikacji czytelnika systemu dLibra

Od 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 istnieją mechanizmy pozwalające na prezentacje niektórych typów plików w formie przyjaznej dla użytkowników. Mechanizmy te bazują na oprogramowaniu kompatybilnym z HTML oraz na domyślnych rozwiązaniach przeglądarek internetowych.

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ę).

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. 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/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:

  • 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. ${completeContentUrl} - 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/djvu_html5. 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 djvu_html5:

<link type="text/css" rel="stylesheet" href="${pathToHandler}/Djvu_html5.css">
<script type="text/javascript" language="javascript"
	src="${pathToHandler}/djvu_html5/djvu_html5.nocache.js"></script>
<noscript>
	<div
		style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
		Your web browser must have JavaScript enabled in order for this
		application to display correctly.</div>
</noscript>
<div id="djvuContainer" file="${completeContentUrl}"></div>
<script type="text/javascript">
var DJVU_CONTEXT = {
	parallelDownloads: 1,
};
</script>

Domyślny sposób prezentacji treści

W katalogu dlibra-webapp/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.