こんにちは。いつも助言頂きありがとうございます。
下記トピックスのように
http://cms.al-design.jp/phpbb/viewtopic.php?t=689
<<前へ| 1| 2| 3| 4| 5| 次へ>>
というページ切替ナビゲーションに、追加で「最初」と「最後」のページに遷移するリンクを追加したいのですが、
アドバイスを頂けないでしょうか。
<<最初へ <<前へ| 1| 2| 3| 4| 5| 次へ>> 最後へ>>
という事です。最初へは、単にphpページを読み込みなおしてしまう手もありますが、最後のページの取得方法が分かりません。
よろしくお願い致します。
ページ切替ナビ:最初と最後のページへのリンク
Re: ページ切替ナビ:最初と最後のページへのリンク
sakuraさん、いつもご質問ありがとうございます。
最後のページ番号の取得方法は、「last()」というxsltの命令を使います。これは、for-eachに含まれている要素が「最後の要素かどうか」を判断するときに使うもので、具体的には以下のように使います。
<xsl:for-each select="navi">
最後のページ番号:<xsl:value-of select="page[position()=last()]/@id" />
</xsl:for-each>
これで、
最後のページ番号:12
のように出力できます。
page[position()=last()] とは、page要素のフィルタ条件を指定する書き方で、[]の中に、「現在位置(position())が最終位置(last())と等しいもの」という条件を指定しています。
もちろん、この出力では意味がないと思いますので、リンクとして表現する為に、以下のように書きます。属性値の中にデータを埋め込む場合には、{}の中に式を書きます。
<xsl:for-each select="navi">
<a href="?pageno={page[position()=last()]/@id}">最後のページ</a>
</xsl:for-each>
この部分は page要素の @href 属性を使って、以下のように書くこともできます( @href には、その page へジャンプする為のURLパラメータが格納されています )。
<xsl:for-each select="navi">
<a href="{page[position()=last()]/@href}">最後のページ</a>
</xsl:for-each>
XPath表現に慣れていないと分かりにくいかと思いますが、お試し頂ければ幸いです。
うまく動かなかったり、わからない部分があったりなどありましたら、お気軽にご質問ください。
最後のページ番号の取得方法は、「last()」というxsltの命令を使います。これは、for-eachに含まれている要素が「最後の要素かどうか」を判断するときに使うもので、具体的には以下のように使います。
<xsl:for-each select="navi">
最後のページ番号:<xsl:value-of select="page[position()=last()]/@id" />
</xsl:for-each>
これで、
最後のページ番号:12
のように出力できます。
page[position()=last()] とは、page要素のフィルタ条件を指定する書き方で、[]の中に、「現在位置(position())が最終位置(last())と等しいもの」という条件を指定しています。
もちろん、この出力では意味がないと思いますので、リンクとして表現する為に、以下のように書きます。属性値の中にデータを埋め込む場合には、{}の中に式を書きます。
<xsl:for-each select="navi">
<a href="?pageno={page[position()=last()]/@id}">最後のページ</a>
</xsl:for-each>
この部分は page要素の @href 属性を使って、以下のように書くこともできます( @href には、その page へジャンプする為のURLパラメータが格納されています )。
<xsl:for-each select="navi">
<a href="{page[position()=last()]/@href}">最後のページ</a>
</xsl:for-each>
XPath表現に慣れていないと分かりにくいかと思いますが、お試し頂ければ幸いです。
うまく動かなかったり、わからない部分があったりなどありましたら、お気軽にご質問ください。