You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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. VuFind 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ä.

 

Finnassa tavoitteena on loppukäyttäjän kannalta mahdollisimman suuri yhtenäisyys, eli käyttäjälle pyritään tarjoamaan tietueista mahdollisimman yhtenäinen näyttö riippumatta tietosisällöstä. Tietueen muodosta (MARC, LIDO, EAD jne.) riippuen näytetään kuitenkin vähän erilaisia tietoja. Kattavaa taulukkoa siitä, mitä tietueista näytetään käyttäjälle, esim. MARC-kentät, joita näytetään, on vaikea koota taulukkoon, koska formaatteja on useita, järjestelmää kehitetään jatkuvasti ja usein säännöt sille, mitä näytetään, 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 https://github.com/NatLibFi/NDL-VuFind2/blob/master/themes/finna/templates/RecordDriver/SolrDefault/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.

Sivupohjat käyttävät vielä erillistä formaattikohtaista ajuria ("Record Driver"), joka vastaa 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

Jos esim. selvitetään, mitä MARC-kenttiä käytetään Aiheet-kentän näyttämiseen, lähdetään tarkastelemaan tiedostosta https://github.com/NatLibFi/NDL-VuFind2/blob/master/themes/finna/templates/RecordDriver/SolrDefault/core.phtml. Sieltä voidaan selvittää, että aiheiden näyttämiseen käytetään record driverin toimintoa getAllSubjectHeadings. 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