Palveluvalikko (SFX)

Palveluvalikon kohteiden järjestäminen

Normaalisti palveluvalikon targetit järjestyvät omassa ryhmässään aakkoselliseen järjestykseen. Jos haluat, että jotkin targetit näkyvät määrätyssä järjestyksessä ensimmäisinä tai viimeisinä, tarkista ensin oman instanssin SFXAdminin kohdasta Administrator Tools > Menu Configuration alaosiosta Menu Design, onko käytössä (Active template) Advanced- vai Simplified-valikkopohja.

Mikäli käytössä on Simplified-pohja, järjestystä voidaan muuttaa suoraan samasta Menu Design -osiosta. Kohdassa Target Precedence listataan ne targetit joiden halutaan näkyvän ryhmässään ensimmäisinä (target precedence) tai viimeisinä (targets to be placed last). Kun olet tehnyt halutut muutokset, muista klikata sivuvalikosta Save, jotta muutokset järjestykseen tulevat voimaan.

Advanced-valikkopohjaa käyttäessä järjestyksen muuttaminen toimii hiukan eri tavalla, sillä menu design -osio ei siinä vaikuta palveluvalikkoon. Tällöin tulee UNIX-puolella editoida oman SFX-instanssin config-hakemistossa tiedostoa: sort_services.config_

Täällä listataan kaikki uudelleen järjestettävien targettien nimet, jotka tulevat siten palveluvalikkoon ensimmäiseksi siinä järjestyksessä, missä ne on listattu. Huom! listassa käytetään targettien nimiä esimerkiksi: LOCAL_CATALOGUE_ENDEAVOR_VOYAGER_LINDA

Targettien nimet listataan tiedostossa osion aloitus- ja lopetusrivin väliin (Section - EndSection) seuraavan malliesimerkin mukaisesti:

Section "sort" Type=LIST
LOCAL_CATALOGUE_ENDEAVOR_VOYAGER_LINDA
LOCAL_CATALOGUE_ENDEAVOR_VOYAGER_VIOLA_L
EndSection

Target-kohtaisten lisähuomioiden ja ohjeiden näyttäminen

Jokaisen palveluvalikossa näytettävään targetin mukana voidaan näyttää omia ohjeita ja lisähuomioita. Niitä lisätään editoimalla targetin ominaisuuksien kohtaa Notes.

Kaukolainapyyntö palveluvalikossa

Jotta parserista olisi iloa, täytyy kaukolainapyyntölomakkeen pystyä ottamaan vastaan URL:sta seuraavat tiedot:

Attribuutti (Selitys)
Author (Tekijä)
Title (Kirjan tai artikkelin nimeke)
Source (Lehden nimeke)
Number (Standardinumero (esim. ISBN tai ISSN))
Year (Vuosi)
Vol (Volume numero)
Iss (Issue numero)
Pages (Sivunumerot (esim. 4-7))

Jos lomake on staattinen (vain HTML:ää), eikä pysty vastaanottamaan parametrejä, voidaan niiden käsittely toteuttaa myös JavaScriptillä lomakkeessa. Esimerkki tästä löytyy osoitteesta http://www.lib.helsinki.fi/finelib/portaali/kaukolainalomakemalli.html ja alla sen lähdekoodista.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Kaukolainalomake-testi</title>
<!--
Kopioi allaoleva JavaScript-lohko omalle sivullesi,
päivitä fill_form-funktiosta löytyvät kenttien nimet ja
lisää fill_form() body-tagin onload-attribuuttiin
(esim. <body onload="fill_form()">).
-->
<script language="javascript">
<!--
function get_param(a_param)
{
var regexp = "\\?&"name"=(^&#*)";
var regexp = new RegExp("\\?&" + a_param + "=(^&#*)");
var href = window.location.href;
var results = regexp.exec(href);
if (!results)
return "";
return unescape(results1);
}
function fill_form()
{
// Jokaisella lomakkeen kentällä tulee olla yksilöivä ID.
// Alla olevien nimien, esim. "tekija", pitää vastata lomakkeen
// kenttien ID:itä. Tätä funktiota on kutsuttava body-tagin
// onload-attribuutin avulla (katso malli alempana) kenttien
// täyttämiseksi.
document.getElementById("tekija").value = get_param("author");
document.getElementById("nimeke").value = get_param("title");
document.getElementById("lehti").value = get_param("source");
document.getElementById("tunnus").value = get_param("number");
document.getElementById("vuosi").value = get_param("year");
document.getElementById("volyymi").value = get_param("vol");
document.getElementById("numero").value = get_param("iss");
document.getElementById("sivut").value = get_param("pages");
}
-->
</script>
</head>
<body onload="fill_form()">
<h2>Kaukolainapyyntötesti</h2>
<p><b>Huom!</b> Tämä lomake on ruma vain siksi, että se olisi mahdollisimman yksinkertainen.</p>
<form action="." method="GET">
<p>
Tekijä: <input type="text" name="tekija" id="tekija"><br>
Kirjan tai artikkeli nimi: <input type="text" name="nimeke" id="nimeke"><br>
Lehden nimi: <input type="text" name="lehti" id="lehti"><br>
Tunnus (ISSN, ISBN): <input type="text" name="tunnus" id="tunnus"><br>
Vuosi: <input type="text" name="vuosi" id="vuosi"><br>
Volyymi: <input type="text" name="volyymi" id="volyymi"><br>
Numero: <input type="text" name="numero" id="numero"><br>
Sivut: <input type="text" name="sivut" id="sivut"><br>
</p>
<p>Lisäksi tähän pitää tietysti tulla asiakkaan yhteystiedot ja mahdollisesti muita tarpeellisia tietoja, joita ei
SFX:n kautta saada.</p>
<input type="submit" value="Lähetä">
</form>
</body>
</html>

SFX:ssä on target parseri NELLI::ILL, jolla voi välittää kaukolainapyynnön tarvitsemat tiedot kirjaston omalle lomakkeelle URL:ssa.

Tässä lyhyet ohjeet parserin käyttöönottamiseksi SFX Admin Centerissä:

- Luo uusi target
- Kirjoita Target-kenttään nimi (esim. LOCAL_ILL).
- Kirjoita Public Name -kenttään palveluvalikossa näytettävä nimi (esim. Kaukolainapyyntö xxx kirjastosta)
- Luo uusi getDocumentDelivery-tyyppinen Target Service
- Public Name: Tee tilaus (tms.)
- Parser: NELLI::ILL
- Displayer: FT::NO_FILL_IN
- Parse Param: url= (esim. url=http://kirjastonosoite.fi/kaukolaina)
- Object Lookup: No
- Threshold (local):
$obj->need('ISBN') ||
$obj->need('ISSN') ||
$obj->need('bookTitle') ||
$obj->need('journalTitle') ||
$obj->need('articleTitle')

- Thresholdin voi myös jättää pois, jos haluaa tarjota kaukolainapyyntömahdollisuuden aina, vaikka ilman mitään tietoja

Alasvetovalikon tekeminen

Palveluvalikkoa voi lyhentää ja jäsentää luomalla esimerkiksi kirjastoluetteloista ryhmiä, jotka avautuvat kukin omassa alasvetovalikossaan. Alasvetovalikko ei ole palveluvalikon oletusnäyttönä, mutta sen voi tehdä Unixissa seuraavalla tavalla:

  • Luo SFX:ssä uusi target ETÄLAINAKIRJASTOT
  • Luo uusi Service getHolding
  • Määrittele Parser: ETAOPACS_PP::ALL
  • Määrittele Displayer: ETAOPACS_PP::ALL
  • Määrittele Object Lookup: No
  • Määrittele Threshold (local):
  • ( $obj->need('ISBN') \|\|
    $obj->need('ISSN') \|\|
    $obj->need('bookTitle') \|\|
    $obj->need('journalTitle'))
    
  • Luo TargetParser-hakemiston alle uusi ETAOPACS_PP-hakemisto
  • Luo/kopioi sen sisälle valmiit parseritiedostot TargetParser-hakemistosta
  • Luo TargetDisplayer-hakemiston alle uusi ETAOPACS_PP-hakemisto
  • Luo sen sisälle editoitu ALL.pm (= muuta sen "packageParsers::TargetDisplayer"-rivillä oleva hakemistopolku tämän näköiseksi)packageParsers::TargetDisplayer::ETAOPACS_PP::ALL;
  • Listaa valikossa käytettävät kirjastoluettelot tiedostoon
  • getHolding_ETAOPACS_PP.tmpl, joka tulee_/{}sfxtst3/templates/sfxmenu/services{}/_ -hakemistoon
  • Kopioi tarvittaessa Translate.pm TargetDisplayer-hakemistoon
  • Tee em. toimenpiteet jokaiselle haluamallesi pudotusvalikolle
  • TargetParser- ja TargetDisplayer-hakemistoihin on nopeat oikopolut tp ja td (esim. kirjoita komentorivillä: nelli10b@nelli:ver_3> tp).