Background image

SilverStripen template-järjestelmästä

February 9th, 2012

Edellisessä blogitekstissäni kerroin lyhyesti SilverStripe-julkaisujärjestelmästä ja sen pian ilmestyvästä 3.0-versiosta. Tässä blogitekstissä kerron järjestelmän sivupohjista ja niiden suhteesta PHP-ohjelmointikoodiin.

SilverStripessä saitin ulkoasuun vaikuttavat templatet löytyvät hakemistosta

/themes/[teema]/templates/

Kyseisen kansion juuresta löytyy tiedosto Page.ss, joka toimii kyseisen teeman pohjana.

SilverStripen templaattikielessä voi käyttää sekä ohjelmointilogiikkaa että viittauksia PHP-ohjelmointikieleen. Prosenttimerkillä viitataan logiikkaan esimerkiksi seuraavasti:

<li <% if get_current_locale = fi_FI %>class="active"<% end_if %> >
<a href="<% if hasTranslation(fi_FI) %><% control getTranslation(fi_FI) %>$Link<% end_control %>
<% else %>?locale=fi_FI<% end_if %>">suomeksi</a></li>

HTML-koodissa lopputulos näyttää tältä:

<li class="active" ><a href="/">suomeksi</a></li>

Kannattaa huomioida, että templaattikielen sisällä tarjolla oleva logiikka on varsin rajallista. Monimutkaisempi logiikka kannattaa hoitaa PHP-kielellä, jotta sivupohjat pysyvät keveinä ja luettavina.

PHP-ohjelmointikoodi sijoitetaan hakemistoon

/mysite/code/

Viittaukset PHP-koodiin tehdään sivupohjissa $-merkin avulla. Esimerkiksi templaten muuttuja $SiteSubtitle voi viitata mysite-hakemiston PHP-koodissa määriteltyyn 1) funktioon tai 2) tietokantakenttään.

Useampitasoisten navigaatioiden rakentaminen SilverStripessä on vaivatonta. Esimerkiksi Menu(1) palauttaa saitin korkeimman tason sivut dataoliosettinä, ja kyseinen olio voidaan käydä läpi silmukassa.

Vinkkejä

Muutama vinkki vielä loppuun.

1) SilverStripe tallentaa sivuelementtejä välimuistiin, joten välimuistin tyhjentämiseksi URL:in loppuun pitää lisätä muuttuja ?flush=1, jotta template päivittyy.

2) Joskus ihmetystä aiheuttaa HTML-koodiin ilmestyvä viittaus tiedostoon typography.css -tyylitiedostoon. Mistä se oikein tulee ja miten sen saa pois päältä?

Syynä on SilverStripen legacy-koodi. Nykyään viittaukset tyylitiedostoihin tulee tehdä templateissa, mutta taaksepäin yhteensopivuuden takia myös /mysite/code/Page.php sisältää viittauksen Requirements::themedCSS(‘typography’). Jos typography-tyylin käytölle ei ole tarvetta, kyseinen viittaus kannattaa asettaa pois päältä.

3) Käännökset: jos jokin kielitiedosto ei kytkeydy päälle, kannattaa tarkastaa niiden sisältö. Esimerkiksi suomenkielisen kielitiedoston avaimien ($lang[‘fi_FI’]) joukossa ei saa esiintyä yhtäkään viittausta virheelliseen kielitiedostoon ($lang[‘en_GB’]). Tällöin suomalainen kielitiedosto lakkaa toimimasta.

Tags: , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Latest comments

Tapio Nurminen on Vuoden 2013 kuntakartta SVG-muodossa

Kartta on vapaasti hyödynnettävissä, mutta lisenssiehdot kannattaa varmistaa Kuntaliitolta.

Arvi Leino on Vuoden 2013 kuntakartta SVG-muodossa

Kartalle on latauslinkki. Onko kartta vapaasti hyödynnettävissä esim. CC By 4.0 käyttöluvalla? ht...