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

CMSファクトリー4について

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

投稿記事by kawa399 » 2011年5月19日(木) 16:34

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

where で 検索してデータを選んで表示させればいいのかと思うのですが、記述方法がわかりません。
教えていただけませんか。
kawa399
 
記事: 11
登録日時: 2011年5月19日(木) 16:27

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

投稿記事by cmsfactory4 » 2011年5月20日(金) 01:27

kawa399さん、
バージョンジャパン田賀です。

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

出来る限り早急に、ご説明資料を用意致しますので、
しばらくお時間を頂ける様どうぞ宜しくお願い致します。
アバター
cmsfactory4
Site Admin
 
記事: 78
登録日時: 2010年4月13日(火) 20:53

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

投稿記事by kawa399 » 2011年5月20日(金) 08:38

投稿に反応がなかったらどうしようと思っていました。
納期がせまっているので、よろしくお願い致します。
kawa399
 
記事: 11
登録日時: 2011年5月19日(木) 16:27

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

投稿記事by Gucchi » 2011年5月20日(金) 11:50

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
アバター
Gucchi
 
記事: 10
登録日時: 2010年5月14日(金) 09:46
お住まい: 福井県越前市

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

投稿記事by kawa399 » 2011年5月20日(金) 22:37

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

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

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

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

できればエディタで入力するとき、「ニュース」「イベント」という名称でリスト入力ができて、後の処理に問題が出ないような方法がいいと思うのですが、
いかがでしょうか。
kawa399
 
記事: 11
登録日時: 2011年5月19日(木) 16:27

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

投稿記事by Gucchi » 2011年5月23日(月) 10:02

kawa399さん

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

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

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

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


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

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

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

お気軽にお問い合せくださいませ(*´∀`)ノシ
アバター
Gucchi
 
記事: 10
登録日時: 2010年5月14日(金) 09:46
お住まい: 福井県越前市


Return to CMSファクトリー4

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[3人]

cron