分類が複数にわたる場合

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
kaoi
アクティブユーザー
記事: 11
登録日時: 2006年4月07日(金) 01:08

分類が複数にわたる場合

投稿記事 by kaoi » 2006年4月07日(金) 01:40

(CMSDをさわりはじめてまだ数時間です。過去の書き込みにマニュアルを熟読していなくても質問可、という記載を見、恐れながら質問させていただきます。商用運用を目指しており、一日も速く稼動確認をする必要があるのです。なにとぞよろしくお願いします。)

項目の分類が複数にわたる場合についての、xmlの書き方のヒントをください。

めちゃめちゃ瑣末な例を挙げます。
エントリーの内容が「カレーうどん」だとして、チュートリアルの例でいくと、

<menuitem id="1">中華</menuitem>
<menuitem id="2">ラーメン</menuitem>
<menuitem id="3">和食</menuitem>
<menuitem id="4">洋食</menuitem>
<menuitem id="5">スイーツ</menuitem>

このうちの、id=3とid=4に、同時分類したいと考えているわけです。
(これがもしチェックボックスとして表出されるのであれば、複数チェックしたい)

そして、
id=3としては「そばやの定番」
id=4としては「カレーだから洋食」
という感じで、それぞれにコメントを表出させたいのです。
(もしidがひとつだけな場合は、ひとつに対して、複数の場合はそれぞれに書き込む欄を作りたい)

グループソートも考えており、エントリ欄でいっきに書き込みたいと考えているのですが、どのようにすれば良いでしょうか。

チェックボックス機能が将来予定に記載されている件は把握しておりますので、現状、できる方策のヒントをご回答いただければと考えております。
なにとぞよろしくお願いいたします。

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

Re: 分類が複数にわたる場合

投稿記事 by webmaster » 2006年4月07日(金) 09:27

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

 ひょっとして私の方で理解しきれていないのかもしれないのですが、
メニュー項目に対して複数の値を選択したいというご主旨だと理解しました。

 先に結論を言いますと、メニュー項目単体では実現できません。

 仰るとおり、チェックボックスを導入する際には対応できるようになると
思われますが、絞込み条件を指定する際に「○と△と□と…」のように同じ項目に
対して複数の条件を指定するよい方法が思いつかず、保留の状態です。
 (加えて、その複数項目が OR 条件なのか AND 条件なのか…など等)

 単純に、エントリデータとして

> id=3としては「そばやの定番」
> id=4としては「カレーだから洋食」

 のようなデータを含めたい場合は、リスト項目を使い、リスト項目の中に
メニュー項目とテキスト項目を含めれば、データ上は複数の分類に属している
ようなデータを作ることはできます。

 しかし、絞込み条件やソート等は、リスト項目中のデータに対しては指定
できない為、今回の要件には合わないと思います。

 そこで、メニュー項目をチェックボックスのように使う方法をご紹介します。

コード: 全て選択

<data name="chuka" type="menu" caption="中華" group="True">
  <menuitem id="1">はい</menuitem>
  <menuitem id="2">いいえ</menuitem>
</data>
<data name="ramen" type="menu" caption="ラーメン" group="True">
  <menuitem id="1">はい</menuitem>
  <menuitem id="2">いいえ</menuitem>
</data>
<data name="washoku" type="menu" caption="和食" group="True">
  <menuitem id="1">はい</menuitem>
  <menuitem id="2">いいえ</menuitem>
</data>
<data name="youshoku" type="menu" caption="洋食" group="True">
  <menuitem id="1">はい</menuitem>
  <menuitem id="2">いいえ</menuitem>
</data>
<data name="sweets" type="menu" caption="スイーツ" group="True">
  <menuitem id="1">はい</menuitem>
  <menuitem id="2">いいえ</menuitem>
</data>
 このように、メニュー項目の選択肢を「はい/いいえ」とし、チェックボックスの
ように用います。

 コメント欄を設けたい場合には、

コード: 全て選択

<data name="chuka" type="menu" caption="中華" group="True">
  <menuitem id="1">はい</menuitem>
  <menuitem id="2">いいえ</menuitem>
</data>
<data name="chukacomment" type="text" />
 のように、「はい/いいえ」のメニュー項目の下にテキスト欄をつけるなどで
対応できそうです。

 デザイン定義側では、chuka項目が"1"なら chukacomment項目を表示、
というような条件式を書く事で対応します。

コード: 全て選択

<xsl:if test="chuka='1'"><xsl:value-of select="chukacomment" /></xsl:if>
<xsl:if test="ramen='1'"><xsl:value-of select="ramencomment" /></xsl:if>
 :
 欠点は、見てお分かりの通り、エントリ編集画面がかなり縦長になってしまう
という点です。
 また、このURLの例のように、絞込み条件をFORMで指定したい場合など、
 http://cms.al-design.jp/phpbb/viewtopic.php?t=207
 分類がメニュー項目1つではなく複数の「はい/いいえ」で表現されている為、
FORMを作りづらいという点もあります。
 チェックボックスを使って条件指定FORMを作るのが一番現実的ですが、
複数の項目にチェックをつけた場合、CMSD側としてはORではなくANDとして
検索しますので、おそらく検索者の意図(OR)とは結果がずれることになると
思います。

 絞込み条件指定では、見栄えが悪くとも、リンクにて直接

コード: 全て選択

 <a href="resultlist.php?chuka=1">中華を表示</a>
 <a href="resultlist.php?ramen=1">ラーメンを表示</a>
  :
 のように指定するようにして下さい。

 以上、お役に立つかどうか分かりませんが、現状ではこれが限界となります。
 ご了承いただければ幸いです。m(__)m

kaoi
アクティブユーザー
記事: 11
登録日時: 2006年4月07日(金) 01:08

いずれもっと具体的にお尋ねします(恥

投稿記事 by kaoi » 2006年4月07日(金) 23:15

ご回答ありがとうございます!
朝からレスを拝見し、一日いろいろ実験していたのですが、単純なリスト項目を見た目無視で表示させるので精一杯でした・・・。
一度に難しいことをやろうとしすぎているようです。デザイン先行でバシバシデザイン定義していったら、なにかいろいろ不具合があるようで(xsl、一筋縄ではいかないですね・・・)
ひとつずつ案件処理していきます。
またすぐ質問させていただくかと思いますが、もう少し整理いたします。
ありがとうございました!

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

Re: いずれもっと具体的にお尋ねします(恥

投稿記事 by webmaster » 2006年4月08日(土) 20:29

 webmasterです。
 すいません、一度にいろいろ書きすぎてしまったかもしれません。m(__;)m

 またご不明な点は一つずつでもご連絡頂ければ幸いです。

返信