Artikkeleiden tai kokonaisten sivujen sivutuksen luominen Textpattern-päivitystyökalulla on kohtalaisen helposti toteutettu. Textpatternista löytyvään sivupohjaan voidaan asettaa ehtolauseita erilaisia sivutuksia varten. Tuollaisten ehtolauseiden avulla voidaan antaa sivutus (eli siis sellaiset linkit, joita klikkaamalla pääsee siirtymään toiseen artikkeliin tai toiselle sivulle) esimerkiksi vain sivuston etusivulle, tai vaikkapa vain yksittäiselle julkaisulle.
Yksittäiselle artikkelille voidaan antaa linkit edelliselle ja/tai seuraavalle sivulle näin ikään:
<txp:if_individual_article>
<txp:link_to_prev>Edellinen artikkeli</txp:link_to_prev>
<txp:link_to_next>Seuraava artikkeli</txp:link_to_next>
</txp:if_individual_article>
Tuo ylle listattu koodilitania on kääritty ehtolauseeseen, tai mihinkä lie superkoodiin, joka tulostaaa koodin mikäli käyttäjä tarkastelee yksittäistä artikkelia. Jos yksittäinen sivu on silmäiltävänä, tulostetaan ruudulle yksi, tai jopa kaksi asiaa. Vau. Jos Textpattern-sivustolla on kyseisessä osiossa useita artikkeleita, tulee tämä koodi tulostamaan joko linkin edelliseen artikkeliin varustettuna linkkitekstillä Edellinen artikkeli ja/tai sitten linkin seuraavaan artikkeliin linkkitekstin ollessa Seuraava artikkeli. Tämä voi kuulostaa monimutkaiselta, mutta on oikeastaan yksi yksinkertaisimmista asioista mitä tämä maa päällään kantaa.
Artikkelilistalle voidaan tulostaa sivutus samalla periaatteella, mutta tällöin itse sivutuksen luova koodi on hieman erilainen kuin yksittäisen artikkelin kohdalla:
<txp:if_article_list>
<txp:older>Edellinen sivu</txp:older>
<txp:newer>Seuraava sivu</txp:newer>
</txp:if_article_list>
Tämä ylle langetettu koodi tarkistaa siis onko käyttäjä tarkastelemassa artikkelilistausta. Tai vaikka Textpattern-sivuston etusivua. Jos käyttäjä surffaa artikkelien listauksessa, niin tulostetaan tarvittaessa linkki edelliselle ja seuraavalle sivulle. Jos käyttäjä on vaikkapa artikkelilistauksen ensimmäisellä sivulla ja artikkeleita löytyisi vielä toiseltakin sivulta, niin silloinpa ilmestyy linkki edelliselle sivulle. Linkkiteksti on tällöin Edellinen sivu. Sitten kun käyttäjä klikkaa kyseistä linkkiä, hän siirtyy artikkelilistauksen toiselle sivulle. Tuolloin ilmestyy linkki artikkelilistauksen etusivulle ja linkkiteksti on Seuraava sivu.
Kehitellään. Meillähän on nyt valmiina sivutuksen toteuttaat koodit sekä yksittäistä artikkelia että artikkelilistausta varten. Tavalliset linkit. Pitäisi kai laittaa jotain pientä (X)HTML-huttua, sillä haluammehen luoda laadukasta merkkausta. :–)
Laitetaan nuo sivutuslinkit järjestämättömän listan sisään. Koen tämän järkevimmäksi ratkaisuksi, mutta toki linkit voi kääriä vaikkapa p-elementin sisälle. Tässäpä kuitenkin sivutuskoodit käärittynä ensin ul-listan sisälle ja sitten kumpikin sivutuslinkki lista-alkion sisälle:
<txp:if_individual_article>
<ul>
<li><txp:link_to_prev>Edellinen artikkeli</txp:link_to_prev></li>
<li><txp:link_to_next>Seuraava artikkeli</txp:link_to_next></li>
</ul>
</txp:if_individual_article>
<txp:if_article_list>
<ul>
<li><txp:older>Edellinen sivu</txp:older></li>
<li><txp:newer>Seuraava sivu</txp:newer></li>
</ul>
</txp:if_article_list>
Sehän näyttää jo melko hyvältä. Paitsi. Mitäs jos tuollaista edelliselle tai seuraavalle sivulle näyttävää linkkiä ei tulosteta? Että jos ei ole lainkaan toisia artikkeleita, joihin voisi siirtyä tai jos ei ole toisia sivuja… Tällöinhän ruudulle voi tulostua jotain tällaista:
<ul>
<li></li>
<li></li>
</ul>
Ei hätää. Textpatternissa on osattu ajatella. Tätäkin. Voimme nimittäin sulloa noihin sivutuksen toteuttaviin linkkeihin tällaisen pienen koodin: showalways="1". Se ei tulosta tuollaista sivutuslinkkiä, vaan linkille annetun linkkitekstin. Tällöin mahtava XHTML-merkkauksemme ei muutu ihan vallattomaksi.
Tässä vielä lopputuote sivutuksen toteuttamista varten:
<txp:if_individual_article>
<ul>
<li><txp:link_to_prev showalways="1">Edellinen artikkeli</txp:link_to_prev></li>
<li><txp:link_to_next showalways="1">Seuraava artikkeli</txp:link_to_next></li>
</ul>
</txp:if_individual_article>
<txp:if_article_list>
<ul>
<li><txp:older showalways="1">Edellinen sivu</txp:older></li>
<li><txp:newer showalways="1">Seuraava sivu</txp:newer></li>
</ul>
</txp:if_article_list>
Sivutukselle voi tietysti antaa myös CSS-selektorin jos halutaan vähän viritellä sivutuksen ulkonäköä. Sen voi laittaa vaikkapa aloittavan ul-tagin sisälle, jolloin päästään kopeloimaan kaikkia sen sisällä olevia tavaroita.
Tagit: txp
Tämän julkaisun kommentointi on suljettu.
Kun tämän julkaisun kommentointi oli vielä avoinna, tälle julkaisulle kirjoitettiin yhteensä 6 kommenttia. Tämä artikkeli on lokeroitu kategoriaan Textpattern. Tämän julkaisun kestolinkin osoite on http://www.kuopassa.com/weblog/2007/11/18/sivutuksen-luominen-textpatternissa.
Gocom kirjoitti 173 päivää sitten:
Toinen tapa on <txp:newer showalways=“1” label=“Seuraava sivu” /> tai sitten voimme vain käyttää puhdasta <txp:older /> joka vain tulostaa linkin, kuten:
http://www.kuopassa.com/weblog/?pg=2
Jolloin voi linkinkin merkkauksen muotoilla suoraa, eikä extra merkkausta ole tarpeellista käyttää. Ja todistetusti Google tykkää kun merkkausta on vähemmän kuin, itse sisältö ;)
<a href=”<txp:older />” id=“vanhemmat”>Vanhemmat artikkelit</a><a href=”<txp:newer />” id=“vanhemmat”>Uudemmat artikkelit</a>
Gocom kirjoitti 173 päivää sitten:
Hmph, meni vahingossa blockcode lipsahtamaan blockquoteksi… hmph.
Hyödyllinen opasartikkelikuitenkin :)
Petri kirjoitti 172 päivää sitten:
No niin. Nyt on tuo blockquoteksi muljahtanut systeemi laitettu koodiksi.
Kiitos hyvästä pointista! En itse asiassa tuota label-systeemin käyttämistä aiemmin tuntenutkaan. Ainakaan tässä yhteydessä. Se vaikuttaa ihan fantsulta. Täytyykin testailla. :-)
Petteri kirjoitti 169 päivää sitten:
a). Ensin nautitaan
b). Sitten kerrotaan, että Textpatternilla saa tehtyä kaikki mitä haluaa ja vähän enemmänkin.
Pitää välillä olla kylässä täälläkin.
Petri kirjoitti 168 päivää sitten:
Petteri hei, sinullahan oli tuossa päivemmällä sivustosi ulkoasun uusiminen kesken. Tähän aikaan (01:22) sivustollesi ei jostain syystä pääse lainkaan. Odottelin ihan kuola suupielissä hulmuten pääsyä saitillesi, mutta nyt sekin ilo vietiin. Kraah. Taidan käydä tekemässä vierailun vaikka Gocomin blogiin sen sijaan.
Petteri kirjoitti 168 päivää sitten:
Ai vi***, palvelimella on häiriöitä. Toivottavasti saan sivuston vielä kuntoon, ihan hirvee duuni oli saada se siihenkin kuntoon, mitä se oli eilen illalla.