ページ 11

記事をカテゴリーで分けてリストにしたい

投稿記事Posted: 2011年5月19日(木) 16:34
by kawa399
はじめて投稿します。データベースは始めてなので、手こずっています。
ニュース記事を「ニュース」「イベント」とカテゴリー付けして、最新記事表示ページには、全部のカテゴリー記事を最新順で並べてリストにし、ニュースだけを一覧リストにしたいページ、イベントだけをリストするページと、リストを複数つくりたいと考えています。

where で 検索してデータを選んで表示させればいいのかと思うのですが、記述方法がわかりません。
教えていただけませんか。

Re: 記事をカテゴリーで分けてリストにしたい

投稿記事Posted: 2011年5月20日(金) 01:27
by cmsfactory4
kawa399さん、
バージョンジャパン田賀です。

はじめての投稿ありがとうございます!

出来る限り早急に、ご説明資料を用意致しますので、
しばらくお時間を頂ける様どうぞ宜しくお願い致します。

Re: 記事をカテゴリーで分けてリストにしたい

投稿記事Posted: 2011年5月20日(金) 08:38
by kawa399
投稿に反応がなかったらどうしようと思っていました。
納期がせまっているので、よろしくお願い致します。

Re: 記事をカテゴリーで分けてリストにしたい

投稿記事Posted: 2011年5月20日(金) 11:50
by Gucchi
kawa399 さん

こんにちは。バージョンジャパンの川口です。

返信が遅れまして申し訳ございません。

早速ですが、ご質問に答えさせていただきます。

以下、whereを使った一般的なサンプルコードをご確認下さい。

コード: 全て選択
<?php header('Content-type: text/html; charset=utf-8'); ?>
<?php

  require_once "/×××/×××/×××/public_html/CMSF/lib/viewer_functions.php";

  list($news_testRecords, $news_testMetaData) = getRecords(array(
    'tableName'   => 'news_test',
  ));

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="robots" content="noindex,nofollow">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>テスト記事リスト[ミックス]</title>
</head>
<body>

<table style="width:900px;margin:0 auto;">
<tr>
<td>
<?php foreach ($news_testRecords as $record): ?>
      記事タイトル: <?php echo $record['title'] ?><br /><br />
      記事内容: <?php echo $record['content'] ?><br /><br />
      カテゴリー: <?php echo $record['test_cate'] ?><br /><br />
<hr/>
<?php endforeach ?>
</td>
</tr>
</table>

</body>
</html>
【カテゴリー:1(ニュース)】【カテゴリー:2(イベント)】とした場合、
上のコードは、両カテゴリーを通常通り記事の登録順で一覧表示したものです。
[表示イメージ]
http://www.cmsfactory.jp/forum/demo/mix.php


次に、
コード: 全て選択
<?php header('Content-type: text/html; charset=utf-8'); ?>
<?php

  require_once "/×××/×××/×××/cmsfactory.jp/public_html/CMSF/lib/viewer_functions.php";

  list($news_testRecords, $news_testMetaData) = getRecords(array(
    'tableName'   => 'news_test',
   'where' => "test_cate=  '1' ",
  ));

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="robots" content="noindex,nofollow">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>テスト記事リスト[ニュースのみ表示]</title>
</head>
<body>

<table style="width:900px;margin:0 auto;">
<tr>
<td>
<?php foreach ($news_testRecords as $record): ?>
      記事タイトル: <?php echo $record['title'] ?><br /><br />
      記事内容: <?php echo $record['content'] ?><br /><br />
      カテゴリー: <?php echo $record['test_cate'] ?><br /><br />
<hr/>
<?php endforeach ?>
</td>
</tr>
</table>

</body>
</html>
【カテゴリー:1(ニュース)】だけを一覧表示にしました。
[表示イメージ]
http://www.cmsfactory.jp/forum/demo/cateNewsList.php

次に、
コード: 全て選択
<?php header('Content-type: text/html; charset=utf-8'); ?>
<?php

  require_once "/×××/×××/×××/public_html/CMSF/lib/viewer_functions.php";

  list($news_testRecords, $news_testMetaData) = getRecords(array(
    'tableName'   => 'news_test',
   'where' => "test_cate=  '2' ",
  ));

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="robots" content="noindex,nofollow">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>テスト記事リスト[イベントのみ表示]</title>
</head>
<body>

<table style="width:900px;margin:0 auto;">
<tr>
<td>
<?php foreach ($news_testRecords as $record): ?>
      記事タイトル: <?php echo $record['title'] ?><br /><br />
      記事内容: <?php echo $record['content'] ?><br /><br />
      カテゴリー: <?php echo $record['test_cate'] ?><br /><br />
<hr/>
<?php endforeach ?>
</td>
</tr>
</table>

</body>
</html>
【カテゴリー:2(イベント)】だけを一覧表示にしました。
[表示イメージ]
http://www.cmsfactory.jp/forum/demo/cateEventList.php

where で 検索してデータを選んで表示させればいいのかと思うのですが、記述方法がわかりません。
教えていただけませんか。
kawa399さんのご想像通り、コードの冒頭の部分で'where'でデータを選んで表示させています。

この方法を元に、以下の様に同ページの異なったコンテンツ部分に表示させることも可能です。(゜∀゜)
コード: 全て選択
<?php header('Content-type: text/html; charset=utf-8'); ?>
<?php

  require_once "/×××/×××/×××/public_html/CMSF/lib/viewer_functions.php";

  list($news_testRecords, $news_testMetaData) = getRecords(array(
    'tableName'   => 'news_test',
   'where' => "test_cate=  '1' ",
  ));

  list($news_test2Records, $news_testMetaData) = getRecords(array(
    'tableName'   => 'news_test',
   'where' => "test_cate=  '2' ",
  ));

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="robots" content="noindex,nofollow">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>テスト記事リスト[同ページ別カラムに表示]</title>
</head>
<body>

<table style="width:900px;margin:0 auto;">
<tr>
<td width="40%">
<?php foreach ($news_testRecords as $record): ?>
      記事タイトル: <?php echo $record['title'] ?><br /><br />
      記事内容: <?php echo $record['content'] ?><br /><br />
      カテゴリー: <?php echo $record['test_cate'] ?><br /><br />
<hr/>
<?php endforeach ?>
</td>
<td width="20%">&nbsp;</td>
<td width="40%">
<?php foreach ($news_test2Records as $record): ?>
      記事タイトル: <?php echo $record['title'] ?><br /><br />
      記事内容: <?php echo $record['content'] ?><br /><br />
      カテゴリー: <?php echo $record['test_cate'] ?><br /><br />
<hr/>
<?php endforeach ?>
</td>
</tr>
</table>

</body>
</html>
左カラムにニュースカテゴリーリスト、右カラムにイベントカテゴリーリストを表示させてみました。
[表示イメージ]
http://www.cmsfactory.jp/forum/demo/cateMixList.php


納期が迫ってらっしゃるとの事ですので、kawa399さんの会員登録IDまたは登録の際のユーザー名をお伝えいただければ、お電話でのサポートも承らせていただきます。

当フォーラムでのサポートは随時お受け致しますので、お気軽にお問い合せ下さい。

kawa399さんのご検討をお祈りします。( *-ω)m

Re: 記事をカテゴリーで分けてリストにしたい

投稿記事Posted: 2011年5月20日(金) 22:37
by kawa399
返信ありがとうございます。
カテゴリー別にリストになったページができました。ちょっと感動です。
ニュース一覧、イベント一覧、それぞれのリストが並び、トップページには「最新情報」として、更新日時順で記事がリストされています。

カテゴリーを入力するには、フィールドタイプを「list」にし、リストオプションを

ニュース|news
イベント|event
編集会議から|report

設定しています。
リストの表示と保存データを分ける記述の案内によったものです。これでいくと、
'where' => "newscategory= 'ニュース' ",
上記のように記述していますが、間違いないでしょうか。(分岐してリストができ、成功してます)

できればエディタで入力するとき、「ニュース」「イベント」という名称でリスト入力ができて、後の処理に問題が出ないような方法がいいと思うのですが、
いかがでしょうか。

Re: 記事をカテゴリーで分けてリストにしたい

投稿記事Posted: 2011年5月23日(月) 10:02
by Gucchi
kawa399さん

こんにちは、バージョンジャパンの川口です。
リストの表示と保存データを分ける記述の案内によったものです。これでいくと、
'where' => "newscategory= 'ニュース' ",
上記のように記述していますが、間違いないでしょうか。(分岐してリストができ、成功してます)

サーバや開発環境によっては、文字コード等を気を付けないといけない場合がありますが、

現段階で、分岐リスト表示されているのでしたら問題ないとおもいます。

カテゴリー別にリストになったページができました。ちょっと感動です。


CMSF4は直感的な操作で、奥の深い表現ができるCMSです。

使う毎にkawa399さんも、もっともっと感動を得られるとおもいます。

その為には、私たちスタッフも精一杯サポートさせていただきますので、

お気軽にお問い合せくださいませ(*´∀`)ノシ