SilverStripen template-järjestelmästä

Posted by Tapio Nurminen on 9 Feb 2012 | 0 Comments | Tags: , ,

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.


Lähetä kommenttisi

Kommentit

Kukaan ei ole kommentoinut tätä sivua.

Tämän sivun kommenttejen RSS-lähde | Kaikkien kommenttien RSS-syöte

Ota yhteyttä




Mainintoja mediassa

Suomen tuhatvuotisen kirjallisen historian alkuvaiheet verkkoon

Kansalliskirjasto julkisti keskiviikkona 28.3.2012 Kirjava keskiaika -verkkoteoksen ja Fragmenta membranea -tietokannan Helsingin yliopiston Tiedekulmassa.

» Kansalliskirjasto 28.03.2012

Suomeen kunniamaininta Maailmanpankin sovelluskisassa

Helsinkiläinen Flo Apps nouti Washington DC:stä kunniamaininnan Maailmanpankin järjestämässä sovelluskilpailussa.

» IT-viikko 18.04.2011

Suomeksi | In English


Soita
0400 607 358
tai kirjoita
meille