Tällä sivulla kuvataan melko teknisellä tasolla se, miten Finnassa näytettävä tietueiden sisältö valitaan. Allaolevan esimerkin avulla toiminta toivon mukaan hahmottuu helpommin, mutta kokonaisuuden hahmottaminen on haastavaa. VuFindin wikissä on kehittäjille suunnattua yleistä tietoa siitä, miten tietueita käsitellään VuFindissa, johon Finnakin pohjautuu. Lisäksi siellä on lista yleisistä record drivereissa käytetyistä metodeista ja niiden palauttamasta sisällöstä.

Tietueiden esikatselutoiminto Finnassa on erittäin hyödyllinen käytännön kokeiluissa.


Finnassa tavoitteena on loppukäyttäjän kannalta mahdollisimman suuri yhtenäisyys, eli käyttäjälle pyritään tarjoamaan tietueista mahdollisimman samantyyppinen näyttö riippumatta tietosisällöstä. Tietueen muodosta (MARC, LIDO, EAD jne.) riippuen näytetään kuitenkin vähän erilaisia tietoja, ja myös tietuesivun ulkoasu vaihtelee jonkin verran. Kattavaa taulukkoa siitä, mitä tietueista näytetään käyttäjälle, esim. MARC-kentät, joita näytetään, on vaikea koota taulukkoon. Formaatteja on useita, järjestelmää kehitetään jatkuvasti, ja usein säännöt näytettävälle sisällölle ovat monimutkaisia. Tälle sivulle on koottu yleistä tietoa, jonka perusteella voi tarvittaessa selvittää tarkemmin, mitä metadatasta tulee Finnan listoihin tai tietuenäyttöön.

Finnan hallintaliittymässä voidaan valita, mitä tietoja listoissa tai koko tietue -näytöllä näytetään. Varsinaista näyttämistä ohjaavat sivupohjat, jotka voidaan jakaa kolmeen kategoriaan:

  1. core.phtml ohjaa koko tietue -näytön muodostamista
  2. result-list.phtml, result-grid.phtml ja result-condensed.phtml ohjaavat erimuotoisten hakutuloslistojen muodostamista
  3. list-entry.phtml ohjaa tietueen näyttämistä listoissa, esim. omissa suosikeissa

Jokaisella formaatilla voi olla omat versiot yllämainituista tiedostoista, mutta ne voivat käyttää myös oletuspohjia ("Default"). Sivupohjien sisältöä voi tutkia osoitteessa https://github.com/NatLibFi/NDL-VuFind2/tree/master/themes/finna/templates/RecordDriver. Esimerkiksi MARC-tietueiden koko tietue -näyttöä ohjaa themes/finna2/templates/RecordDriver/DefaultRecord/core.phtml. Monimutkaisuutta tähän lisää se, että nämä pääsivupohjat käyttävät sisällön luomiseen vielä apupohjia ja ns. helpereitä, joten yksittäisen sivun muodostuminen on monipolvinen prosessi. Taulukkomuotoinen sisältö muodostetaan RecordDataFormatterin sääntöjen perusteella.

Sivupohjat käyttävät vielä erillistä formaattikohtaista ajuria ("Record Driver"), jotka vastaavat halutun tiedon hakemisesta kunkin formaatin sisältämästä metadatasta. Nämä ajurit on tehty PHP-kielellä, ja niitä voi tarkastella osoitteessa https://github.com/NatLibFi/NDL-VuFind2/tree/master/module/Finna/src/Finna/RecordDriver. Useimmat ajurit polveutuvat VuFindin alkuperäisistä ajureista, joista suuri osa toiminnallisuudesta löytyy. Niitä toi tutkailla osoitteessa https://github.com/NatLibFi/NDL-VuFind2/tree/master/module/VuFind/src/VuFind/RecordDriver.

Esim. MARC-tietueilla käytettävä ajuri on Finnan omat muutokset sisältävä https://github.com/NatLibFi/NDL-VuFind2/blob/master/module/Finna/src/Finna/RecordDriver/SolrMarc.php. Se puolestaan pohjautuu VuFindin omaan MARC-ajuriin https://github.com/NatLibFi/NDL-VuFind2/blob/master/module/VuFind/src/VuFind/RecordDriver/SolrMarc.php, joka puolestaan perustuu formaattiriippumattomaan perusajuriin https://github.com/NatLibFi/NDL-VuFind2/blob/master/module/VuFind/src/VuFind/RecordDriver/SolrDefault.php.

Esimerkki sisällön muodostumisesta

Tietuesivulla voi näkyä eri kenttiä formaatista riippuen. Tietuesivulla näkyvät kentät selviävät RecordDataFormatterista, esim. MARC-tietuesivulla käytössä olevat kentät on listattu funktiossa filterMarcFields. Listauksessa näkyvät vain otsikoiden käännösavaimet, joille on sitten määritetty käännökset eri kielille. Esim. MARC-tietuesivulla on käytössä kenttä subjects_extended, jonka suomenkielinen käännös on "Aiheet".

Jos sitten selvitetään, mitä MARC-kenttiä näytetään Aiheet-otsikon alla, lähdetään tarkastelemaan RecordDataFormatterFactoryn sääntöjä. Sieltä voidaan selvittää, että aiheiden näyttämiseen käytetään record driverin toimintoa getAllSubjectHeadingsExtended. Sellainen löytyy record driverista https://github.com/NatLibFi/NDL-VuFind2/blob/master/module/Finna/src/Finna/RecordDriver/SolrMarc.php. Sieltä nähdään, että aiheet tulevat kentistä '600', '610', '611', '630', '648', '650', '651', '653' ja '656', ja näytettäväksi hyväksytään kaikki osakentät numeerisia lukuunottamatta.

  • No labels