Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Lisätty esimerkki some-ikonien lisäämisestä omaan näkymään

...

Esimerkkejä hyödyllisistä CSS-muotoiluista:

CSS-luokka 
Esimerkki
fa-*

Ikonit. Sivupohjassa voi käyttää tiedostossa /themes/finna/less/bootstrap/finna/finnaicons.less määriteltyjä Font Awesome -kirjaston iconeja (fa-* luokat).


Code Block
<a href="..." title="..."><i class="fa fa-search"></i> Esimerkkihaku</a>
Jos tarvitset käyttöösi ikonin, jota ei ole käytetty Finnassa, voit etsiä halutun ikonin hex-arvon ja lisätä tämän tiedostoon /themes/custom/less/custom.less tiedostoon:
Code Block
.fa-barcode:before {
    content: "\f209";
}


infobox
Info-laatikko


Code Block
<div class="infobox">
    <h2>Luokan infobox tyylit voi määritellä  variables.less -tiedostossa</h2>
    <ul>
      <li>@infobox-background = laatikon taustaväri</li>
      <li>@infobox-border = laatikon reunat</li>
      <li>@infobox-text-color = laatikon tekstin oletusväri</li>
      <li>@infobox-box-shadow = laatikon varjostus</li>
    </ul>
  </div>


list-bullets
UL-lista, jossa elementtien edessä "pallo"


Code Block
languagetext
<ul class="list-bullets">
  <li>Elementti 1</li>
  <li>Elementti 2</li>
</ul>


...

Ruudukkopohja perustuu riveihin, joista jokainen voi sisältää maksimissaan 12 palstaa. Palstojen leveydet määritellään CSS-luokilla, jotka ovat muotoa: col-<päätelaite>-<leveys-palstoina>. Määrittelyt on mahdollista tehdä erikseen kolmelle eri päätelaitteelle:

 
Päätelaitteen tunnus
PäätelaiteKäytetään kun päätelaitteen ruudun leveys on
xsxtra-smallPuhelinalle 481 px
smsmallPuhelin/Tabletti481-768 px
mdmediumTabletti/PC769-1200 px
lglargePCyli 1200 px

...

Code Block
<div class="row">
    <div class="col-sm-7">
      <div class="row">
          <div class="col-xs-6">1. palsta</div>
          <div class="col-xs-6">2. palsta</div>
      </div>
    </div>
    <div class="col-sm-5">3. palsta</div>
</div>

...


Ruudukkopohjan skaalautuvuus (eli toimivuus eri näytön leveyksillä) kannattaa testata joko oikealla mobiililaitteella, mobiiliemulaattorilla tai yksinkertaisesti vaihtamalla selainikkunan leveyttä.

...

Etusivun sisältö on jaettu järjestyksessä ylhäältä alaspäin seuraaviin sivupohjiin:

Sivupohja 
templates/search/home/home-left.phtml
Hakupalkin alla vasemmalla. Tilaa tekstille.
templates/search/home/home-right.phtml
Haulla löydät -linkit, hakupalkin alla oikealla. Hakulinkit tekevät tiettyyn aineistotyyppiin rajatun haun. Voit poistaa linkit, joiden aineistotyypeillä ei löydy hakutuloksia näkymän aineistojen joukosta.
templates/search/home/home-2.phtml
Infolaatikot, kaksi vaakamuotoista kuvakarusellia.
templates/search/home/home-3.phtml
Uutislistaus ja pystymallinen kuvakaruselli
templates/search/home/home-4.phtml
Suosituimmat hakusanat.
templates/search/home/home-5.phtml

...

templates/search/home/home-10.phtml
Näytetään jos tiedoston on olemassa.
templates/footer.phtml
Sivun alareunan linkit.

...

Additions-sivupohjat (custom-teeman hakemistossa templates/content/Additions) ovat yksinkertainen tapa sijoittaa omaa sisältöä käyttöliittymään tiettyihin paikkoihin. Sivupohjat voi tehdä kaikille kielille yhteisesti (esim. header-navibar.phtml) tai kielikohtaisesti lisäämällä tiedoston nimeen _kielikoodi (esim. header-navibar_fi.phtml). Yleisesti käytetyt kielikoodit ovat fi, sv ja en-gb. Allaolevassa listassa on tiedostojen nimet ilman kielikoodia.

Sivupohja 
general-post-body.phtml
HTML:n body-elementin lopussa.
general-post-head.phtml
HTML:n head-elementin lopussa. Tänne voi lisätä esimerkiksi hyödyllisiksi katsomiaan meta-elementtejä
header-navibar.phtml
Yläreunan navigointipalkin oikeassa reunassa. Tähän voi sijoittaa esimerkiksi logon tai linkin ulkoiselle sivustolle.
search-post-facets.phtml
Hakutulossivulla, fasettien jälkeen.
record-post-metadata.phtml
Tietuesivulla, tietuekenttien jälkeen.
record-post-toolbar.phtml
Tietuesivulla, tietuekuvan toimintojen alapuolella.
record-post-recommendations.phtml
Tietuesivulla, samankaltaisten teosten jälkeen.
login-pre.phtml
Kirjautumissivun alussa.
login-post.phtml
Kirjautumissivun lopussa.
helpBegin.phtml
Hakuohje-sivun alussa.
helpEnd.phtml
Hakuohje-sivun lopussa.
online-payment.phtml
Verkkomaksulomakkeella.
checkedout-pre-list.phtml
Asiakkaan lainalistan yläpuolella (myös silloin, kun lainoja ei ole).
checkedout-post-list.phtml
Asiakkaan lainalistan alapuolella.
holds-pre-list.phtml
Asiakkaan varauslistan yläpuolella (myös silloin, kun varauksia ei ole).
holds-post-list.phtml
Asiakkaan varauslistan alapuolella.
storageretrievalrequests-pre-list.phtml
Asiakkaan varastonoutopyyntölistan yläpuolella (myös silloin, kun pyyntöjä ei ole).
storageretrievalrequests-post-list.phtml
Asiakkaan varastonoutopyyntölistan alapuolella.
illrequests-pre-list.phtml
Asiakkaan kaukolainalistan yläpuolella (myös silloin, kun kaukolainoja ei ole).
illrequests-post-list.phtml
Asiakkaan kaukolainalistan alapuolella.
fines-pre-list.phtml
Asiakkaan maksulistan yläpuolella (myös silloin, kun maksuja ei ole).
fines-post-list.phtml
Asiakkaan maksulistan alapuolella.
online-payment.phtml
Maksut-välilehdellä, kun verkkomaksaminen on päällä.
solr-advanced-post.phtml
Tarkennetun haun lomake.
organisation-page-start.phtml
Organisaatiosivun alussa.
organisation-page-end.phtml
Organisaatiosivun lopussa.
header-navibar.phtml
Ylävalikossa, varsinaisten valikkojen jälkeen.

...

Oman näkymän toiminnallisten ja ulkonäöllisten ongelmien selvittäminen kannattaa aloittaa koodin tarkastuksella! Vaikka ongelma ei vielä mahdollisten virheiden korjauksella selviäisikään, on se kuitenkin askel oikeaan suuntaan ja auttaa karsimaan kyseisen ongelman syitä.

 

Kohdekenttärajaimet / hakutyypit

Hakukentässä olevilla rajaimilla voi tehdä monia asioita, mm. kohdistaa haun tiettyyn kenttään. Näillä rajaimilla voi käyttää kaikkia searchspecs.yaml-asetuksissa saatavilla olevia parametreja. Käytössä olevat rajaimet konfiguroidaan asetutiedoston searchbox.ini osiossa [CombinedHandlers].

Esimerkki: SoMe-ikonit

Lähdetään tilanteesta, jossa omaan näkymään halutaan lisätä vastaavanlaisia sosiaalisen median ikoneita linkkeineen samoille some-alustoille kuin on nähtävillä Finna.fi:n etusivun navigaatiopalkissa.

Ensin kannattaa selvittää missä tiedostossa em. ikonien koodi sijaitsee. Klikkaamalla hiiren kakkosnapilla jotain näistä ikoneista aukeaa valikko, jossa lukee hieman selaimesta ja käytetystä kielestä riippuen kohta Tarkista tai Inspect tms.

Sen valitsemalla selainikkunan alaosaan aukevassa koodi-ikkunassa näkyy klikatun sivuelementin - tässä tapauksessa linkin - koodi maalattuna

Image Added

ja muutama rivi yläpuolella on vihreällä teksti:

Code Block
languagexml
<!-- START of: finna - layout/Additions/header-navibar.phtml -->

Teksti kertoo missä tiedostossa maalatun ikonin koodi sijaitsee (koodi-ikkunasta todennaköisesti löytyy muitakin vihreitä tekstejä, mutta olennainen teksti on maalattua kohtaa lähin START of -alkuinen teksti): layout/Additions/header-navibar.phtml eli kyse on aiemmin mainituista Additions-sivupohjista.


Hallintaliittymän tiedostonhallinnassa avattuna oman näkymän header-navibar.phtml-tiedosto sisältää komenttirivit:

Code Block
languagexml
<!-- START of: finna - layout/Additions/header-navibar.phtml -->
<!-- add li elements with class custom to match style if you need links after language options -->
<!--
<li class="custom">
  <a href="" target="_blank">≤?=$this->transEsc('menu_translate');?></a>
</li>....
-->
<!-- END of: finna - layout/Additions/header-navibar.phtml -->

Kommentit antavat mallin kuinka navigaatiopalkkiin tehdään omia linkkejä eli käytännössä custom-luokan listaelementtejä lisätään haluttu määrä - tai vaihtoehtoisesti yhden custom-luokan sisään voidaan sijoittaa linkkielementtejä haluttu määrä - jotka on hyvä sijoittaa ennen END of -kommenttiriviä. HUOM! yo. koodissa on pieni virhe, mikä?


Virheen eliminoinnin ja olennaisen koodin kommentoinnin poiston jälkeen tiedoston tulisi olla muodossa:

Code Block
languagexml
<!-- START of: finna - layout/Additions/header-navibar.phtml -->
<!-- add li elements with class custom to match style if you need links after language options -->
<li class="custom">
  <a href="" target="_blank"><?=$this->transEsc('menu_translate');?></a>
</li>
<!-- END of: finna - layout/Additions/header-navibar.phtml -->

Tehdään listaelementistä Facebook-linkki lisäämällä URL ja ikoni (ikonin yhteydessä on myös mobiililaitteet ja ruudunlukijat huomioitu linkkiteksteillä):

Code Block
languagexml
<li class="custom">
  <a href="https://facebook.com/omasivu" target="_blank">
    <i class="fa fa-facebook-button"></i>
    <span class="sr-only visible-md visible-lg"><?=$this->transEsc('Facebook');?></span>
    <span class="hidden-sm hidden-md hidden-lg"> <?=$this->transEsc('Facebook'); ?></span>
  </a>
</li>

Lisätään samaan tapaan Twitter:

Code Block
languagexml
<li class="custom">
  <a href="https://facebook.com/omasivu" target="_blank">
    <i class="fa fa-facebook-button"></i>
    <span class="sr-only visible-md visible-lg"><?=$this->transEsc('Facebook');?></span>
    <span class="hidden-sm hidden-md hidden-lg"> <?=$this->transEsc('Facebook'); ?></span>
  </a>
</li>
<li class="custom">
  <a href="https://twitter.com/omasivu" target="_blank">
    <i class="fa fa-twitter-button"></i>
    <span class="sr-only visible-md visible-lg"><?=$this->transEsc('Twitter');?></span>
    <span class="hidden-sm hidden-md hidden-lg"> <?=$this->transEsc('Twitter'); ?></span>
  </a>
</li>

Huom! Toimiva ratkaisu saadaan myös aavistuksen toisenlaisella rakenteella:

Code Block
languagexml
<li class="custom">
  <a href="https://facebook.com/omasivu" target="_blank">
    <i class="fa fa-facebook-button"></i>
    <span class="sr-only visible-md visible-lg"><?=$this->transEsc('Facebook');?></span>
    <span class="hidden-sm hidden-md hidden-lg"> <?=$this->transEsc('Facebook'); ?></span>
  </a>
  <a href="https://twitter.com/omasivu" target="_blank">
    <i class="fa fa-twitter-button"></i>
    <span class="sr-only visible-md visible-lg"><?=$this->transEsc('Twitter');?></span>
    <span class="hidden-sm hidden-md hidden-lg"> <?=$this->transEsc('Twitter'); ?></span>
  </a>
</li>

Span-elementeissä olevien linkkitekstien ('Facebook' & 'Twitter') tilalle voi vaihtaa omat kielikäännöskoodit ja hallintaliittymässä lisäämällä koodeille kielikäännökset tekstit saa mukautumaan omassa kulloinkin sivuston käyttäjällä valittuna olevaan kieleen.

Esitellyillä koodilisäyksillä navigaatiopalkkissa pitäisi näkyä Facebook- ja Twitter-ikonit. Samalla tavoin voi i-elementin tyyliluokkaa muokkaamalla lisätä Instagram- (fa-instagram) ja Youtube-ikonit (fa-youtube-play).

Jos ikoneita haluaa vielä korostaa pyöreällä taustalla kuten finna.fi:ssä, custom.less-tiedostoon on määritettävä lisätyylejä:

Code Block
languagecss
.finna-navbar .fa-facebook-button, .finna-navbar .fa-instagram, .finna-navbar .fa-twitter, .finna-navbar .fa-youtube-play {
  background: tint(@link-color,88%);
  width: 2em;
  height: 2em;
  border-radius: 50%;
  text-align: center;
  color: @link-color;
  &:before
  { line-height: 2em; }
}

Huom! Tyylit mukautuvat omalla sivulla käytössä oleviin väreihin. Jos jostain syystä haluaa käyttää nimenomaan finna.fi:ssä käytössä olevia ikonivärejä, niin em. määrityksistä voi vaihtaa arvoiksi:

Code Block
languagecss
  background: #e8ebf2;
  color: #435b93;


Kohdekenttärajaimet / hakutyypit

Hakukentässä olevilla rajaimilla voi tehdä monia asioita, mm. kohdistaa haun tiettyyn kenttään. Näillä rajaimilla voi käyttää kaikkia searchspecs.yaml-asetuksissa saatavilla olevia parametreja. Käytössä olevat rajaimet konfiguroidaan asetutiedoston searchbox.ini osiossa [CombinedHandlers].

Tyylitiedostot

Selaimen näytettäväksi annettava HTML-sisältö tuotetaan sivupohjilla. HTML-sisältö voidaan kuitenkin näyttää käyttäjälle eri tavoin: tekstien fontteja, värejä, marginaaleja ja muita ulkoasullisia asioita voidaan muuttaa CSS-tyylitiedostojen avulla.

...

Muuttujan nimiSelite
@brand-primary
@brand-secondary
@brand-third
@brand-fourth
Neljä brändiväriä, jotka määrittelevät väriteeman useimmat elementit. Yhteensopivien värien selvittämiseen on saatavilla apuvälineitä, esimerkiksi coolors.co tai color.adobe.com. Oletuksena esimerkisi

@action-link-color on määritelty @brand-primary:ksi.

@link-color
Linkkien väri
@action-link-color
Toimintolinkkien väri (vaikuttaa mm. hakupainikkeen väriin)
@header-text-color
Navigointivalikon tekstinväri
@header-background-color
Navigointivalikon tausta
@footer-background
Sivun alareunan linkkien tausta
@finna-search-background
Hakupalkin taustaväri
@home-1-background
@home-2-background
jne

Etusivun sivupohjan vaakarivien taustavärit

@infobox-background
@infobox-text-color

Info-laatikoiden taustaväri

Info-laatikoiden tekstinväri

@filters-background-color
@filters-text-color

Hakutulossivun hakurajaimen taustaväri

Hakutulossivun hakurajaimen tekstinväri

@finna-feedback-background
@finna-feedback-color

Palautepainikkeen taustaväri

Palautepainikkeen tekstinväri

...


Esimerkkejä värimuutoksista

...

@brand-primary (väri: #5e81ac), @link-color (väri: #d08770):

 


custom.less

Omat ulkoasumäärittelyt sijoitetaan tiedostoon /themes/custom/less/custom.less. Less-tiedostot tukevat myös CSS-määrittelyjä, eli tiedostoihin voi kirjoittaa myös tavallista CSS:ää.

...

Jälkimmäisen etuna ylä- ja alalaidan arvot voivat poiketa toisistaan ja hakulaatikon pystysuuntaista sijaintia on mahdollista näin ollen myös säätää. 


Esimerkki 2:

Muutetaan otsikkofontin kokoa ja toisen otsikon väriä etusivun sivupohjissa home-1 ja home-2

...

Code Block
body {
    background-position: left top;
    background-repeat: no-repeat;
    background-size: 265px 265px;
}

...


Lisäesimerkkejä päätelaitemäärityksistä:

...

Code Block
languagecss
/* mobile and tablet */
@media (max-width: @screen-sm-max) {
    ...
}
 
/* large desktop */
@media (min-width: @screen-lg-min) {
    ...
}

...


Lisäesimerkki LESS-määrityksistä:

...

LESS-tyylitiedostojen lisäksi omat CSS-määrittelyt voi sijoittaa teeman tiedostoon css/custom.css, kunhan ei käytä niiden joukossa sekaisin myös LESS-määrityksiä. 


JavaScript

Selaimen näytettäväksi annettava HTML-sisältö tuotetaan sivupohjilla. Osa Finnan toiminnallisuudesta on selainpohjaista ja toteutetaan selaimessa ajettavalla JavaScript (tiedostopääte .js) -koodilla, joka ladataan sivupohjista. JavaScript-muokkausten tekeminen ei siis välttämättä edellytä muutoksia sivupohjiin.

Omaa toiminnallisuutta voi lisätä teeman tiedostoon js/custom.js. Tiedoston metodia finnaCustomInit kutsutaan automaattisesti sivun latauksen yhteydessä. Voit luonnollisesti luoda myös uusia funktioita ja kutsua niitä finnaCustomInit()-funktiosta.