* @copyright Copyright 2006-2010 Magic3 Project. * @license http://www.gnu.org/copyleft/gpl.html GPL License * @version SVN: $Id: m_blog_listWidgetContainer.php 3740 2010-10-27 01:22:39Z fishbone $ * @link http://www.magic3.org */ require_once($gEnvManager->getContainerPath() . '/baseWidgetContainer.php'); require_once($gEnvManager->getCurrentWidgetDbPath() . '/blog_listDb.php'); class m_blog_listWidgetContainer extends BaseWidgetContainer { private $db; // DB接続オブジェクト private $langId; // 言語 const TARGET_WIDGET = 'blog_main'; // 呼び出しウィジェットID const DEFAULT_TITLE = 'ブログリスト'; // デフォルトのウィジェットタイトル名 /** * コンストラクタ */ function __construct() { // 親クラスを呼び出す parent::__construct(); // DBオブジェクト作成 $this->db = new blog_listDb(); } /** * テンプレートファイルを設定 * * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。 * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。 * * @param RequestManager $request HTTPリクエスト処理クラス * @param object $param 任意使用パラメータ。そのまま_assign()に渡る * @return string テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。 */ function _setTemplate($request, &$param) { return 'main.tmpl.html'; } /** * テンプレートにデータ埋め込む * * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。 * * @param RequestManager $request HTTPリクエスト処理クラス * @param object $param 任意使用パラメータ。_setTemplate()と共有。 * @param なし */ function _assign($request, &$param) { $this->langId = $this->gEnv->getCurrentLanguage(); // 表示言語を取得 // ブログリストを作成 $this->db->getAllBlog(array($this, 'blogListLoop')); } /** * ウィジェットのタイトルを設定 * * @param RequestManager $request HTTPリクエスト処理クラス * @param object $param 任意使用パラメータ。そのまま_assign()に渡る * @return string ウィジェットのタイトル名 */ function _setTitle($request, &$param) { return self::DEFAULT_TITLE; } /** * 取得したデータをテンプレートに設定する * * @param int $index 行番号(0~) * @param array $fetchedRow フェッチ取得した行 * @param object $param 未使用 * @return bool true=処理続行の場合、false=処理終了の場合 */ function blogListLoop($index, $fetchedRow, $param) { // リンク先の作成 $name = $fetchedRow['bl_name']; $linkUrl = $this->gEnv->getDefaultUrl() . '?' . M3_REQUEST_PARAM_BLOG_ID . '=' . $fetchedRow['bl_id']; $row = array( 'link_url' => $this->convertUrlToHtmlEntity($this->getUrl($linkUrl, true/*リンク用*/)), // リンク 'name' => $this->convertToDispString($name) // タイトル ); $this->tmpl->addVars('itemlist', $row); $this->tmpl->parseTemplate('itemlist', 'a'); return true; } } ?>