新設のデザインパラメータ

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
erinton
記事: 9
登録日時: 2010年5月19日(水) 16:59
お住まい: 大阪

新設のデザインパラメータ

投稿記事 by erinton » 2011年11月08日(火) 22:43

いつもお世話になっています。

リファレンスマニュアル6.3.15の、デザインパラメータ (2) b、
リスト項目の各項目を個別ページ表示について
とてもありがたい機能で、自由度が高まり感謝致します。

( 通常のエントリーをリスト表示する位置からすると、
見た目は、いわば3階層分の表現が可能なんですよね )
http://yourdomain.jp/xxx.php?eid=12345&lid=00001

この再現はリファレンスどおりに出来、
すでに納品案件で使用しているのですが、
たとえば、eid 以下の 複数の lid ページ同士を、簡単に行き来できるような、
《 次のページへ 》《 前のページへ 》 のようなxsltは、
どのように書けば良いでしょうか。

ご教授お願い致します。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: 新設のデザインパラメータ

投稿記事 by webmaster » 2011年11月09日(水) 17:41

erintonさん、ご質問ありがとうございます。webmasterです。

デザインパラメータは扱いが難しい機能だと思うのですが、難なく使いこなされているようで感激です。

さて、リスト項目の個別表示時に、個別表示ページ同士を簡単に行き来できるような
ナビゲーションの実現方法についてなのですが、ご要望頂いている「次のページ」「前のページ」
のようなナビゲーションは、ちょっと複雑になってしまう為、ぱっと提示することができません。

考え方としては、URLパラメータから受け取ったlidを数値に変換した上で、-1したもの、+1したもの
の二つの数字を作り、それぞれ5桁のゼロ埋め処理を行って前後のlidを求め、対応するlidの項目が
実際に存在するかどうかを確認した上で「次のページ」「前のページ」のリンクを作る、という感じに
なるかと思います(こうして書いているだけで、複雑極まりないです・・・)。

もっとシンプルな方法として、リスト項目の個別表示ページ自体に、全リスト分のリンクを表示する
という方法があるかと思います。リファレンスマニュアル93ページの例を元にしますと、次のような
感じになります。

コード: 全て選択

<xsl:template match="entry">

<!-- lidパラメータを$lid変数に格納 -->
<xsl:variable name="lid" select="param[@key='lid']/@value" />

<!-- リスト項目の各項目への全リンク -->
<xsl:for-each select="photolist/listitem">
  <a href="xxx.php{../@href}&lid={@id}"><xsl:value-of select="caption1" /></a>
</xsl:for-each>

<!-- リスト項目のURLで指定された項目を1つだけ表示 -->
<xsl:for-each select="photolist/listitem[@id=$lid]">
リスト項目1件分の表示
</xsl:for-each>
リスト項目の各項目への全リンク部分を、divタグなどで囲んでCSSで画面左側に配置するなど
すれば、ユーザーが次々リンクをクリックして各項目を確認していくことが可能です。

もちろん、「次へ」のリンクの方が使いやすいのですが…。

現在表示されているリスト項目へのリンクのみ、リンクを消したり色を変えたりといったことを
したい場合には、$lidと@idを比較して同じなら、というやり方でいけると思います。

以上、わからないところがある場合にはまたご質問いただければと思います。
よろしくお願いします。

erinton
記事: 9
登録日時: 2010年5月19日(水) 16:59
お住まい: 大阪

Re: 新設のデザインパラメータ

投稿記事 by erinton » 2011年11月14日(月) 21:57

ありがとうございます。
そうですね。難しく考えていました。

リストの個別ページ自体に、
リストの一覧テキスト全体を、各リンク付きで一緒に表現してやれば、
使い勝手は同じでした。

逆に、順送りさせるより、
どの個別ページからも選択できるので、いいかもしれません。

Webデザイン的には、左右どちらかの袖に
上からずらっと並べる感じになると思いますが、
下階層のサブナビゲーションみたいに使ってみます。

ありがとうございました。

返信