7 * LICENSE: This source file is licensed under the terms of the GNU General Public License.
9 * @package Magic3 Framework
10 * @author 平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
11 * @copyright Copyright 2006-2012 Magic3 Project.
12 * @license http://www.gnu.org/copyleft/gpl.html GPL License
13 * @version SVN: $Id: rss_blog_update_boxWidgetContainer.php 5267 2012-10-04 11:33:36Z fishbone $
14 * @link http://www.magic3.org
16 require_once($gEnvManager->getContainerPath() . '/baseRssContainer.php');
17 require_once($gEnvManager->getCurrentWidgetDbPath() . '/blog_update_boxDb.php');
19 class rss_blog_update_boxWidgetContainer extends BaseRssContainer
22 private $isExistsList; // リスト項目が存在するかどうか
23 private $rssChannel; // RSSチャンネル部出力データ
24 private $rssSeqUrl = array(); // 項目の並び
25 private $defaultUrl; // システムのデフォルトURL
26 const DEFAULT_ITEM_COUNT = 10; // デフォルトの表示項目数
27 const DEFAULT_TITLE = 'ブログ更新記事'; // デフォルトのウィジェットタイトル
28 const DEFAULT_DESC = '更新されたブログ記事が取得できます。';
33 function __construct()
36 parent::__construct();
39 $this->db = new blog_update_boxDb();
44 * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
45 * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
47 * @param RequestManager $request HTTPリクエスト処理クラス
48 * @param object $param 任意使用パラメータ。そのまま_assign()に渡る
49 * @return string テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
51 function _setTemplate($request, &$param)
53 return 'rss_index.tmpl.html';
58 * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
60 * @param RequestManager $request HTTPリクエスト処理クラス
61 * @param object $param 任意使用パラメータ。_setTemplate()と共有。
64 function _assign($request, &$param)
66 $langId = $this->gEnv->getCurrentLanguage();
69 $itemCount = self::DEFAULT_ITEM_COUNT; // 表示項目数
70 $useRss = 1; // RSS配信を行うかどうか
71 $paramObj = $this->getWidgetParamObj();
72 if (!empty($paramObj)){
73 $itemCount = $paramObj->itemCount;
74 $useRss = $paramObj->useRss;// RSS配信を行うかどうか
75 if (!isset($useRss)) $useRss = 1;
78 //if (empty($useRss)) $this->cancelParse(); // 出力しない
81 $this->gPage->abortPage();
84 $this->gPage->exitSystem();
88 $this->defaultUrl = $this->gEnv->getDefaultUrl();
89 $this->db->getEntryItems($itemCount, $langId, array($this, 'itemLoop'));
92 if ($this->isExistsList) $this->tmpl->setAttribute('itemlist', 'visibility', 'visible');
95 $linkUrl = $this->getUrl($this->gPage->createRssCmdUrl($this->gEnv->getCurrentWidgetId()));
96 $this->rssChannel = array( 'title' => self::DEFAULT_TITLE, // タイトル
97 'link' => $linkUrl, // RSS配信用URL
98 'description' => self::DEFAULT_DESC,// 説明
99 'seq' => $this->rssSeqUrl); // 項目の並び
104 * _assign()よりも後に実行される。
106 * @param RequestManager $request HTTPリクエスト処理クラス
107 * @param object $param 任意使用パラメータ
108 * @return array 設定データ
110 function _setRssChannel($request, &$param)
112 return $this->rssChannel;
115 * 取得したメニュー項目をテンプレートに設定する
117 * @param int $index 行番号
118 * @param array $fetchedRow 取得行
119 * @param object $param 任意使用パラメータ
120 * @return bool trueを返すとループ続行。falseを返すとその時点で終了。
122 function itemLoop($index, $fetchedRow)
124 $totalViewCount = $fetchedRow['total'];
125 $name = $fetchedRow['be_name'];
128 $linkUrl = $this->getUrl($this->defaultUrl . '?'. M3_REQUEST_PARAM_BLOG_ENTRY_ID . '=' . $fetchedRow['be_id'], true);
132 'total' => $totalViewCount, // 閲覧数
133 'link_url' => $this->convertUrlToHtmlEntity($linkUrl), // リンク
134 'name' => $this->convertToDispString($name), // タイトル
135 'date' => getW3CDate($fetchedRow['be_dt']) // 更新日時
137 $this->tmpl->addVars('itemlist', $row);
138 $this->tmpl->parseTemplate('itemlist', 'a');
141 $this->rssSeqUrl[] = $linkUrl; // 項目の並び
143 $this->isExistsList = true; // リスト項目が存在するかどうか