Katalog - Externí vyhledávací formulář

Naposledy změněno Martin Mahr 2024/10/21 22:15

Katalog Tritia umožňuje přijímat požadavky na vyhledávání i z externího vyhledávací formuláře umístěného např. na stránkách knihovny. Pro implementaci vyhledávacího formuláře katalog nabízí dvě možnosti, kde každá má svoje výhody a nevýhody, které jsou popsané níže. Zvažte prosím pečlivě, která varianta je pro vás vhodnější.

HTML formulář

Nejjednodušší způsob, jak implementovat externí formulář pro vyhledávání v katalogu Tritia je sestrojení jednoduchého HTML formuláře. Katalog totiž přijímá vyhledávací frázi na URL adrese: 

https://merkur.tritius.cz/search?q=neff

Formulář, který zajistí takovéto volání katalogu vypadá následovně:

 
<form method="get" action="https://merkur.tritius.cz/search">
    <input type="text" name="q" />
 
    <button type="submit">Vyhledej</button>
</form>

Jak je vidět, tak sestavení formuláře a jeho zapracování do stránek knihovny je velice jednoduché. Formulář umožňuje velice jednoduše provolat jednoduché vyhledávání katalogu. Nevýhodou je, že tímto způsobem lze provolávat pouze jednoduché hledání bez dalších nastavení (omezení vyhledávného pole, řazení apod.). Tyto další možnosti jsou totiž vázané na nastavení Tritia a na systémová ID jednotlivých prvků vyhledávání. Např. prohledávané oblasti nebo ID vyhledávaných polí.

 Pokud jste zběhlí v HTML a webových technologiích, jistě vás napadlo, že ID např. prohledávaných oblastí lze opsat z Tritia a do formuláře doplnit. Ano lze to, ale my to nedoporučujeme. Při jakékoli změně nastavení v Tritiu je pravděpodobné, že se takový formulář rozbije. Navíc existuje riziko, že z nějakých důvodů změníme pojmenování identifikátorů nebo se rozhodneme místo ID pracovat s nějakými názvy a formulář také přestane fungovat po nasazení nové verze Tritia.

JS formulář

Podobně jako Katalog - Externí přihlašovací formulář existuje i pro vyhledávací formulář jeho JS varianta.

 
<!-- Základní kostra formuláře -->
<form id="tritius-search-form" data-tritius-url="https://tritius.knihovna.cz">
</form>
   
<!-- Import obslužného JS kódu -->
<script type="text/javascript" src="https://tritius.knihovna.cz/js/tritius.js"></script>
   
<!-- Inicializace Tritius pluginu -->
<script type="text/javascript">
    (function(window) {
        tritius.init();
    })(window);
</script>
  • ID formuláře musí být "tritius-search-form".
  • Atribut data-tritius-url obsahuje URL, na které běží katalog Tritia.
  • Všechny pole formuláře jsou přidána automaticky (pokud nejsou přepsána viz níže)
  • Je nutné v Tritiu nastavit doménu, na které je povolen externí přihlašovací formulář (Položky nastavení: EXTERNAL_LOGIN_FORM_ALLOWED_ORIGIN). Platí i pro externí vyhledávací formulář.

Formulář obsahuje několik polí:

Název pole (name)

Popis

Přepisovatelné

Hodnota

wdWebová definice.Ano

ID webové definice, do které se bude čtenář přihlašovat.

Defaultně prázdná

qVyhledávaný výraz.AnoZadává uživatel.
areaProhledávaná oblast.NeVýběr prohledávaných oblastí je sestaven automaticky z nastavení Tritia.
fieldProhledávané pole.NeVýběr prohledávaného pole (autor, název). Je sestaven automaticky z nastavení Tritia.
submitOdesílací tlačítko.Ano 

Přepisování formulářových polí

Obslužný skript se vždy před přidáním formulářového pole podívá, zda-li pole daného jména již neexistuje. Pokud ano, pak jej nepřidá a ponechá to zapsané v HTML.

<!-- Import obslužného JS kódu -->

<script type="text/javascript" src="https://tritius.knihovna.cz/js/tritius.js"></script>

<!-- Základní kostra formuláře -->

<form id="tritius-login-form" data-tritius-url="https://tritius.knihovna.cz">

    <input type="text" name="q"  placeholder="Vyhledávání..." />

</form>

Popisky (překlady)

Plugin umožňuje definovat popisky pro jednotlivá pole:

<!-- Základní kostra formuláře -->

<form id="tritius-search-form" data-tritius-url="https://tritius.knihovna.cz">

</form>

<!-- Import obslužného JS kódu -->

<script type="text/javascript" src="https://tritius.knihovna.cz/js/tritius.js"></script>

<!-- Inicializace Tritius pluginu -->

<script type="text/javascript>

    (function(window) {

        tritius.messages.search = 'Vyhledat';

        tritius.messages.to_search = 'Vyhledat...'; 

        tritius.init();

    })(window);

</script>