エントリーの一覧をグループ毎にブロック分けしたい

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
kuma9th
記事: 4
登録日時: 2011年4月28日(木) 02:11

エントリーの一覧をグループ毎にブロック分けしたい

投稿記事 by kuma9th » 2011年4月29日(金) 16:59

はじめまして。CMS Designerは知人より紹介していただきました。
とても使いやすそうでしたので、早速あるバンドさんのホームページで
初めての導入をしてみようと試みているところです。

以下のような動画を掲載するページを考えております。

【 一覧ページ 】
     <h2>イベント名 A</h2>
     <ul>
          <li><a href="動画1の個別ページ">動画1の名前</a></li>
          <li><a href="動画2の個別ページ">動画2の名前</a></li>
          <li><a href="動画3の個別ページ">動画3の名前</a></li>
     </ul>
     <h2>イベント名 B</h2>
     <ul>
          <li><a href="動画4の個別ページ">動画4の名前</a></li>
          <li><a href="動画5の個別ページ">動画5名前</a></li>
          <li><a href="動画6の個別ページ">動画6の名前</a></li>
     </ul>

【 動画の個別ページ 】(※動画1のページへ遷移した場合の例)
     <h2>動画1の名前</h2>
     <p>イベント名 A</p>
     <div>動画埋め込み</div>
     <ul>
          <li><a href="動画2の個別ページ">動画2の名前</a></li>
          <li><a href="動画3の個別ページ">動画3の名前</a></li>
     </ul>

スキーマの定義は、
『 動画名 』 『 イベント名 (グループ設定)』 『 動画の埋め込みソース 』 が良いとは思っています。

やりたい事は、エントリーの一覧ページで、エントリーをグループ毎にブロック分けをしたいのです。
デザインファイルが書けず困っております。
フォーラム内も見て回ったのですが、どれが今回の内容に合致しているのか分からなかったので
質問をさせていただきました。

どうぞ宜しくお願い申し上げます

さとう
アクティブユーザー
記事: 24
登録日時: 2007年2月01日(木) 21:22

Re: エントリーの一覧をグループ毎にブロック分けしたい

投稿記事 by さとう » 2011年5月09日(月) 19:58

スキーマ定義
※リファレンスマニュアル3.5.13「 グループ(絞込み)指定」を参照
<?xml version="1.0" encoding="UTF-8"?>
<schema name="movie" caption="動画" >
<data name="moviename" type="text" caption="動画名" />
<data name="eventname" type="menu" caption="イベント名" group="True">
<menuitem id="00001">イベントA</menuitem>
<menuitem id="00002">イベントB</menuitem>
</data>
<data name="movieurl" type="text" caption="動画の埋め込みソース" />
</schema>
デザイン定義
※リファレンスマニュアル5.5.8「エントリ一覧から個別のエントリへリンクを張る」を参照
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="EUC-JP" omit-xml-declaration="yes" />
<xsl:template match="/entrylist">
<xsl:for-each select="entry">

<li><a href="movie.php?eid={@id}"><xsl:value-of select="moviename" /></a></li>

</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
PHPファイル
※リファレンスマニュアル6.3.5「 絞込みの指定(固定)」を参照
<h2>イベント名 A</h2>
<ul>
<cmsd:entrylist name="エントリフォルダ名" design="デザイン名">
<cmsd:group key="eventname" value="00001" />
</cmsd:entrylist>
</ul>

<h2>イベント名 B</h2>
<ul>
<cmsd:entrylist name="エントリフォルダ名" design="デザイン名">
<cmsd:group key="eventname" value="00002" />
</cmsd:entrylist>
</ul>
これでご希望のレイアウトで表示されると思います。
ただしこの作り方だと、新しいイベントが増えた時に、スキーマ定義とPHPファイルを修正する必要があります。
ユーザー(バンドメンバー等)が管理画面からイベント情報を入力したい場合には、別の方法を考える必要があるでしょう。

kuma9th
記事: 4
登録日時: 2011年4月28日(木) 02:11

Re: エントリーの一覧をグループ毎にブロック分けしたい

投稿記事 by kuma9th » 2011年5月11日(水) 14:10

さとう様

ご教示いただきましてありがとうございます。

その方法を試みてみます。
また、listitemでも試してみたのですが、各リスト項目を個別で出力させるのは
出来ない旨を過去ログで拝見しました。
javascriptで切り替える方法を試してみようと思います。

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

返信