private $rssChannel; // RSSチャンネル部出力データ
private $rssSeqUrl = array(); // 項目の並び
const DEFAULT_ITEM_COUNT = 10; // デフォルトの表示項目数
- const CONTENT_TYPE = ''; // コンテンツタイプ
- const TARGET_WIDGET = 'default_content'; // 呼び出しウィジェットID
- const DEFAULT_TITLE = '更新コンテンツ'; // デフォルトのウィジェットタイトル
+ const DEFAULT_TITLE = '更新リスト'; // デフォルトのウィジェットタイトル
const DEFAULT_DESC = '最新の更新コンテンツが取得できます。';
/**
if (!empty($paramObj)){
$this->itemCount = $paramObj->itemCount;
}
-
- // ログインユーザでないときは、ユーザ制限のない項目だけ表示
- $all = false;
- if ($this->gEnv->isCurrentUserLogined()) $all = true;
// 一覧を作成
- $this->db->getContentList($langId, self::CONTENT_TYPE, $all, $now, array($this, 'itemsLoop'));
-
+ $this->db->getUpdatePages($this->itemCount, 1/*1ページ目*/, array($this, 'itemsLoop'));
+
// 画面にデータを埋め込む
if ($this->isExistsList) $this->tmpl->setAttribute('itemlist', 'visibility', 'visible');
*/
function itemsLoop($index, $fetchedRow)
{
- // 表示項目数に達したときは終了
- if ($index >= $this->itemCount) return false;
-
- $serial = $fetchedRow['vc_serial'];
- $totalViewCount = $fetchedRow['total'];
- $name = $fetchedRow['cn_name'];
+ $name = $fetchedRow['wc_id'];
// リンク先の作成
- $linkUrl = $this->getUrl($this->gEnv->getDefaultUrl() . '?' . M3_REQUEST_PARAM_CONTENT_ID . '=' . $fetchedRow['cn_id'], true);
+ $linkUrl = $this->getUrl($this->gEnv->getDefaultUrl() . '?' . $fetchedRow['wc_id'], true);
- if (!empty($name)){
- $row = array(
- 'total' => $totalViewCount, // 閲覧数
- 'link_url' => $this->convertUrlToHtmlEntity($linkUrl), // リンク
- 'name' => $this->convertToDispString($name), // タイトル
- 'date' => getW3CDate($fetchedRow['cn_create_dt']) // 更新日時
- );
- $this->tmpl->addVars('itemlist', $row);
- $this->tmpl->parseTemplate('itemlist', 'a');
+ $row = array(
+ 'link_url' => $this->convertUrlToHtmlEntity($linkUrl), // リンク
+ 'name' => $this->convertToDispString($name), // タイトル
+ 'date' => getW3CDate($fetchedRow['wc_content_dt']) // 更新日時
+ );
+ $this->tmpl->addVars('itemlist', $row);
+ $this->tmpl->parseTemplate('itemlist', 'a');
+
+ // RSS用
+ $this->rssSeqUrl[] = $linkUrl; // 項目の並び
- // RSS用
- $this->rssSeqUrl[] = $linkUrl; // 項目の並び
-
- $this->isExistsList = true; // リスト項目が存在するかどうか
- }
+ $this->isExistsList = true; // リスト項目が存在するかどうか
return true;
}
}
private $itemCount; // リスト項目数
private $isExistsList; // リスト項目が存在するかどうか
private $headRssFile; // RSS情報
+ private $currentDate; // 現在日付
const DEFAULT_ITEM_COUNT = 10; // デフォルトの表示項目数
const DEFAULT_TITLE = '更新リスト'; // デフォルトのウィジェットタイトル
const RSS_ICON_FILE = '/images/system/rss14.png'; // RSSリンク用アイコン
+ const DATE_FORMAT = 'Y年 n月 j日'; // 日付フォーマット
/**
* コンストラクタ
// 一覧を作成
$this->db->getUpdatePages($this->itemCount, 1/*1ページ目*/, array($this, 'itemsLoop'));
- // 画面にデータを埋め込む
- if ($this->isExistsList) $this->tmpl->setAttribute('itemlist', 'visibility', 'visible');
+ // 一覧データがない場合は非表示
+ if ($this->isExistsList){
+ // 前の日付を表示
+ $dateRow = array(
+ 'date' => $this->convertToDispString($this->currentDate) // 日付
+ );
+ $this->tmpl->addVars('date_list', $dateRow);
+ $this->tmpl->parseTemplate('date_list', 'a');
+ } else {
+ $this->tmpl->setAttribute('date_list', 'visibility', 'hidden');
+ }
// RSS用リンク作成
$iconTitle = self::DEFAULT_TITLE;
function itemsLoop($index, $fetchedRow)
{
$name = $fetchedRow['wc_id'];
-
+ $date = date(self::DATE_FORMAT, strtotime($fetchedRow['wc_content_dt']));
+
// リンク先の作成
- $linkUrl = $this->getUrl($this->gEnv->getDefaultUrl() . '?' . M3_REQUEST_PARAM_CONTENT_ID . '=' . $fetchedRow['wc_id'], true);
+ $linkUrl = $this->getUrl($this->gEnv->getDefaultUrl() . '?' . $fetchedRow['wc_id'], true);
+ if (!isset($this->currentDate)){
+ // 日付を更新
+ $this->currentDate = $date;
+
+ // バッファ更新
+ $this->tmpl->clearTemplate('item_list');
+ } else if ($date != $this->currentDate){
+ // 前の日付を表示
+ $dateRow = array(
+ 'date' => $this->convertToDispString($this->currentDate) // 日付
+ );
+ $this->tmpl->addVars('date_list', $dateRow);
+ $this->tmpl->parseTemplate('date_list', 'a');
+
+ // 日付を更新
+ $this->currentDate = $date;
+
+ // バッファ更新
+ $this->tmpl->clearTemplate('item_list');
+ }
$row = array(
'link_url' => $this->convertUrlToHtmlEntity($linkUrl), // リンク
'name' => $this->convertToDispString($name) // タイトル
);
- $this->tmpl->addVars('itemlist', $row);
- $this->tmpl->parseTemplate('itemlist', 'a');
-
+ $this->tmpl->addVars('item_list', $row);
+ $this->tmpl->parseTemplate('item_list', 'a');
+
$this->isExistsList = true; // リスト項目が存在するかどうか
return true;
}
* @link http://www.magic3.org
*/
<patTemplate:tmpl name="_widget">
+<patTemplate:tmpl name="date_list">
+<strong>{DATE}</strong>
<ul>
- <patTemplate:tmpl name="itemlist"><li><a href="{LINK_URL}"><span>{NAME}</span></a></li></patTemplate:tmpl>
+<patTemplate:tmpl name="item_list">
+<li><a href="{LINK_URL}">{NAME}</a></li>
+</patTemplate:tmpl>
</ul>
+</patTemplate:tmpl>
{RSS_LINK}
</patTemplate:tmpl>