質問をさせて下さい。

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

質問をさせて下さい。

投稿記事 by rasukal » 2005年6月30日(木) 04:52

はじめまして。
CMS Designerの導入を検討している者です。質問をさせて下さい。

商品サムネイル写真・商品名・サイズ・価格・詳細を見るボタンが一つになった商品一覧(CMS導入部分)がページ右側にあるとします。

商品一覧内の、ある商品の詳細を見るボタンをクリックすると、ページ中央にその商品の詳細(CMS導入部分)を表示させたいのですが、そのような事はできますか?

ページ中央は、商品の詳細を見る時以外はCMSを導入していませんので、
考えとしましては、商品の詳細(CMS導入部分)を入れ込んだPHPファイルに
詳細を見たい商品のデータが表示されるように、詳細を見るボタンから、なんらかのデータを受け渡すといった感じなのでしょうか?


分かりにくい質問で申し訳ないです。
宜しくお願いします。

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

Re: 質問をさせて下さい。

投稿記事 by webmaster » 2005年6月30日(木) 09:28

 webmasterです。

 フレームを使わず、画面左に商品詳細、右に商品一覧という形式ですね。
 基本的なパターンだと思いますので、充分実現可能です。

 CMS Designerで、一つの画面上に複数のコンテンツ(同じエントリフォルダ
であっても、例えば詳細と一覧など、別の表示を行えばそれは別のものになる)を
配置する場合には、内容を切り替えていくコンテンツは常に「1つ」にする必要が
あります。他のコンテンツは表示を固定して下さい。

 例えば上記の例ですと、商品詳細を切り替えていきたいので、商品一覧は
cmsview::listtop命令等を使って固定します。listpageを使って一覧のページ切替を
行おうとすると、可変コンテンツが詳細と一覧、と同じページに2つ存在することになり、
表示が保証されなくなります。

 尚、一覧のデザイン定義では、自分自身のページに対して
<a href="{@href}"><xsl:value-of select="itemname" /></a>
のようにすれば良いと思います(itemnameは商品名のスキーマ項目名と仮定)。

 このような説明でよろしかったでしょうか?

rasukal
記事: 4
登録日時: 2005年6月30日(木) 04:38

お返事ありがとうございます。

投稿記事 by rasukal » 2005年6月30日(木) 11:30

webmaster 様

お返事ありがとうございます。
おっしゃるとおり、フレームを使わず、画面左に商品詳細、右に商品一覧という形式です。

説明して頂いた内容が分からなかったので、もう一度詳しく質問させて頂きます。

サイトのヘッダー、フッターおよび画面右側の商品一覧は全ページ共通です。
お店紹介のページ(about)や買い物方法のページ(howto)などの画面左部分は通常のHTMLタグにて表示させています。
どのページにも画面右側に商品一覧がありますので、一覧の詳細を見るボタンをクリックすると、画面左に商品詳細が表示されるといった感じです。

ページごとにPHPファイルがいるのですよね?
例:about.phpとかhowto.php

商品詳細が表示されるページのPHPファイルは一つでいいのでしょうか?
例:item.php

item.php内で画面左の商品詳細が切り替わると考えればいいですか?


>他のコンテンツは表示を固定して下さい。
>cmsview::listtop命令等を使って固定します。
>listpageを使って一覧のページ切替を 行おうとすると、
>可変コンテンツが詳細と一覧、と同じページに2つ存在することになり、
>表示が保証されなくなります。
>一覧のデザイン定義では、自分自身のページに対して
><a href="{@href}"><xsl:value-of select="itemname" /></a>
>のようにすれば良いと思います(itemnameは商品名のスキーマ項目名と仮定)。

すみません。。。これがちょっとよく分からないです。

お手数ですが、もう一度お返事いただけますでしょうか。
宜しくお願いします。

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

Re: お返事ありがとうございます。

投稿記事 by webmaster » 2005年6月30日(木) 13:17

 webmasterです。
 一つ一つ回答させて頂きます。m(_ _)m
rasukal さんが書きました: ページごとにPHPファイルがいるのですよね?
例:about.phpとかhowto.php
 はい、そうなります。これらのページには、「商品の一覧」のみが埋め込まれる
ことになるかと思います。
rasukal さんが書きました: 商品詳細が表示されるページのPHPファイルは一つでいいのでしょうか?
例:item.php
 はい、そうなります。item.phpには、「商品の一覧」と「商品詳細」が
埋め込まれることになるかと思います。
rasukal さんが書きました: item.php内で画面左の商品詳細が切り替わると考えればいいですか?
 はい。
rasukal さんが書きました: >他のコンテンツは表示を固定して下さい。
>cmsview::listtop命令等を使って固定します。
>listpageを使って一覧のページ切替を 行おうとすると、
>可変コンテンツが詳細と一覧、と同じページに2つ存在することになり、
>表示が保証されなくなります。
>一覧のデザイン定義では、自分自身のページに対して
><a href="{@href}"><xsl:value-of select="itemname" /></a>
>のようにすれば良いと思います(itemnameは商品名のスキーマ項目名と仮定)。

すみません。。。これがちょっとよく分からないです。

お手数ですが、もう一度お返事いただけますでしょうか。
宜しくお願いします。
 何度でもご説明しますので、こちらこそお付き合い頂ける限り、よろしくお願い
致します。
 最後の部分の「固定」うんぬんは、おそらく一度やってみないと言葉だけでは
説明が難しそうです。
 画面右側の「商品一覧」が、一画面に入りきる量なのであれば、特にこの話は
無視していただいて問題ないと思います。

 いちおうご説明させて頂くと、CMSDでエントリ(詳細情報)を切り替える
のに、仕組上、URLパラメータから「eid=00005」などのパラメータを渡すように
しています。
 このパラメータは、エントリ一覧のデザイン定義を使って渡せます。
 (リファレンスの5.5.8「エントリ一覧から個別のエントリへリンクを張る」をご覧
下さい。この例では一覧と詳細は別ページですが、同じページの場合でも使えます)

 ここでもし、一つの画面内に「商品のエントリ詳細」と「お知らせのエントリ詳細」
と「イベントのエントリ詳細」が埋め込まれていて、それぞれ全てURLパラメータ
と連動して対象エントリIDが切り替わるようになっていたとしても、渡せるパラメータ
eidは1つだけですから、「eid=00005」の指定が「商品」「お知らせ」「イベント」の
全てに適用されてしまいます。商品を切り替えたいだけなのに、お知らせやイベント
までもが切り替わってしまうわけです。

 そこで、「お知らせ」と「イベント」については、「最新のエントリを表示する("top")」
ように「固定」してしまいます。これで、URLパラメータにつられて内容が変わること
がなくなります。
 
 「一つの画面内に複数のコンテンツがある場合、他のコンテンツは表示を固定
して下さい」というのはそういうことです。

 これと同じことがエントリ一覧にも言えます。
 例えば、エントリ一覧にて、1000件ものエントリがあった場合、一画面に
収まらないのでページ切替をする必要があります。
 ここでページを切り替える為に、URLパラメータからpageno=5のようにページ
番号を渡しています。
 もし、一つの画面に複数の種類のエントリ一覧を埋め込んでいて、それぞれが
ページ切替ナビゲーションを持っていたとしても、あるエントリ一覧のページ変更が、
他のエントリ一覧にも反映されてしまいます(それでいい場合はいいのですが)。
 よって、もし一つの画面に複数のエントリ一覧を埋め込む場合は、全て全件表示
や先頭n件などで表示を固定して、ページ切替しないようにするか、もしくは一つの
エントリ一覧に絞ってページ切替させるようにして下さい。

 そして最後に今回の例です。
 エントリ一覧とエントリ詳細が一つの画面内に同居している場合、基本的にeidと
pagenoは干渉しませんから、一見エントリ一覧のページ切替とエントリ詳細の
内容切替は同時に利用できるように思えます。
 しかし、これはCMSDの落ち度なのですが、現在のところページ切替の際には
eidが引き継がれず、エントリ詳細の内容切替の際にはpagenoが引き継がれません。

 つまり、ページを切り替えたとたん、エントリ詳細は「最新のエントリ」の表示に
戻ってしまい、逆にエントリ詳細を表示したとたん、エントリ一覧は「先頭ページ」に
戻ってしまうのです。

 よって、エントリ一覧とエントリ詳細を同居させる場合にも、エントリ詳細を切替
て表示させたいのならエントリ一覧を固定に、エントリ一覧をページ切替させたい
ならばエントリ詳細を固定にしなければなりません。

 エントリ一覧とエントリ詳細を同居した場合のeid,pagenoの引継ぎについては、
現在仕組みを検討中で、将来対応の予定です。お待ちいただければと思います。

 以上、結局長々と説明してしまいましたが、伝わっているでしょうか?
 またご質問頂ければと思います。m(_ _)m

rasukal
記事: 4
登録日時: 2005年6月30日(木) 04:38

Re: お返事ありがとうございます。

投稿記事 by rasukal » 2005年7月01日(金) 02:29

webmaster 様

丁寧にご返答して頂きありがとうございます。
だいぶ理解してきました。

もう一つお聞きしたいのですが、商品詳細内にある「拡大写真を見る」ボタンをクリックすると、ポップアップウィンドウが開き、その開いたウィンドウ内に拡大写真を表示させるようにしたいのですが、この場合はどうなのでしょうか?
ポップアップウィンドウ内の写真部分にもCMSを使いたいのです。

商品一覧は固定、商品詳細は切り替えができる、ポップアップウィンドウで開いたページ内の写真も切り替えができるといった場合は無理なのでしょうか。

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

Re: お返事ありがとうございます。

投稿記事 by webmaster » 2005年7月01日(金) 10:01

 webmasterです。

 ポップアップウィンドウはまた別の画面という扱いになりますので、その中で
独立してページ切替、又はエントリ切替ができます。
rasukal さんが書きました: 商品一覧は固定、商品詳細は切り替えができる、ポップアップウィンドウで開いたページ内の写真も切り替えができるといった場合は無理なのでしょうか。
 ですので、↑これも可能です。
 ただ、この場合の「ポップアップウィンドウで開いた写真も切替ができる」の目的
というかどういう場面でこういう用途が生まれるのか想像がつかないので、
ひょっとして私が何か勘違いしているかもしれませんが・・・。

 商品1の詳細画面から「拡大写真を見る」を押してポップアップウィンドウを開き、
そのポップアップウィンドウから「次の商品写真|前の商品写真」のようにする
という認識で合ってるのですよね。
 とりあえず、そういうナビゲーションはCMSDで実現可能です。 :)

rasukal
記事: 4
登録日時: 2005年6月30日(木) 04:38

Re: お返事ありがとうございます。

投稿記事 by rasukal » 2005年7月02日(土) 13:57

webmaster 様

度々のお返事ありがとうございます。

>ただ、この場合の「ポップアップウィンドウで開いた写真も切替ができる」の目的
>というかどういう場面でこういう用途が生まれるのか想像がつかないので、
>ひょっとして私が何か勘違いしているかもしれませんが・・・。

商品を一つ登録する際に、商品名や価格などといっしょに
サムネイル写真や通常写真、拡大写真も登録させるつもりです。
なので拡大写真が表示されるページもitem.phpと同じで
photo.phpという1ページの中でAという商品の拡大写真を見るとAの写真が、
Bという商品の拡大写真を見るとBの写真が表示されるように、1ページ内で
切り替わるようにしなければならないのかと思いまして。

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

Re: お返事ありがとうございます。

投稿記事 by webmaster » 2005年7月02日(土) 23:56

 webmasterです。
 なるほど、item.phpが商品詳細で、そこからtarget="_blank"でphoto.phpを
開くわけですね。
 基本はitem.phpと同じような感じでphoto.phpを作ればOKだと思います。
 もちろん、photo.phpには商品一覧は埋め込まないでしょうけども。
 photo.php用に、「写真しか表示しないデザイン定義」を作ることになります。

 但し、もしポップアップウィンドウが写真画像だけしかない(HTMLではなく、
画像を直接開く)のであれば、特にphoto.phpは要らないと思います。
 item.phpに、拡大画像を別ウィンドウで開くようにすれば良いかと・・・。

 またご不明な点がありましたらご質問くださいませ。m(_ _)m

返信