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-2013 Magic3 Project.
12 * @license http://www.gnu.org/copyleft/gpl.html GPL License
13 * @version SVN: $Id: commentWidgetContainer.php 6000 2013-05-14 12:28:33Z fishbone $
14 * @link http://www.magic3.org
16 require_once($gEnvManager->getCurrentWidgetContainerPath() . '/commentBaseWidgetContainer.php');
18 class commentWidgetContainer extends commentBaseWidgetContainer
23 function __construct()
26 parent::__construct();
29 self::$_paramObj = $this->getWidgetParamObj();
32 * ディスパッチ処理(メインコンテナのみ実行)
34 * HTTPリクエストの内容を見て処理をコンテナに振り分ける
36 * @param RequestManager $request HTTPリクエスト処理クラス
37 * @param object $param 任意使用パラメータ。そのまま_assign()に渡る
38 * @return bool このクラスの_setTemplate(), _assign()へ処理を継続するかどうかを返す。
39 * true=処理を継続、false=処理を終了
41 function _dispatch($request, &$param)
44 $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
45 if (empty($task)) $task = self::DEFAULT_TASK;
46 $blogId = $request->trimValueOf(M3_REQUEST_PARAM_BLOG_ID); // 所属ブログ
47 $serialNo = $request->trimValueOf('serial'); // 選択項目のシリアル番号
50 // 管理ウィンドウのときはブログIDが必須
51 // 管理ウィンドウはマルチブログ時のみ使用
53 case self::TASK_ENTRY: // 記事編集画面(別ウィンドウ)
54 case self::TASK_ENTRY_DETAIL: // 記事編集画面詳細
55 case self::TASK_COMMENT: // ブログ記事コメント管理
56 case self::TASK_COMMENT_DETAIL: // ブログ記事コメント管理(詳細)
57 if (empty($blogId)){ // ブログIDが指定されていない場合
58 $this->SetMsg(self::MSG_APP_ERR, "アクセスできません");
63 self::$_canEditEntry = false; // 記事編集権限
66 if ($this->gEnv->isSystemManageUser()){ // システム運用可能ユーザのとき
67 self::$_canEditEntry = true; // 記事編集権限
68 } else if ($this->gEnv->getCurrentUserType() >= UserInfo::USER_TYPE_AUTHOR){ // ユーザ権限(投稿者以上)のチェック
69 // ブログライブラリオブジェクトからテンプレートを取得
71 $blogLibObj = $this->gInstance->getObject(self::BLOG_OBJ_ID);
72 if (isset($blogLibObj)) $blogId = $blogLibObj->getBlogId();
75 $ret = self::$_mainDb->getBlogInfoById($blogId, $row);
76 if ($ret && $this->gEnv->getCurrentUserId() == $row['bl_owner_id']){
77 // シリアル番号が指定されている場合は編集権限をチェック
78 if (empty($serialNo)){
79 self::$_canEditEntry = true; // 記事編集権限
82 case self::TASK_ENTRY: // 記事編集画面(別ウィンドウ)
83 case self::TASK_ENTRY_DETAIL: // 記事編集画面詳細
84 $ret = self::$_mainDb->isExistsEntryInBlogId($serialNo, $blogId);
85 if ($ret) self::$_canEditEntry = true; // 記事編集権限
87 case self::TASK_COMMENT: // ブログ記事コメント管理
88 case self::TASK_COMMENT_DETAIL: // ブログ記事コメント管理(詳細)
89 $ret = self::$_mainDb->isExistsCommentInBlogId($serialNo, $blogId);
90 if ($ret) self::$_canEditEntry = true; // 記事編集権限
97 // ##### コンテナを起動 #####
98 $goWidget = false; // サブウィジェットを実行するかどうか
100 case self::TASK_TOP: // トップ画面
101 $goWidget = true; // サブウィジェットを実行するかどうか
103 case self::TASK_ENTRY: // 記事編集画面(別ウィンドウ)
104 case self::TASK_ENTRY_DETAIL: // 記事編集画面詳細
105 if (self::$_canEditEntry){ // 記事が編集可能かどうか
106 $task = self::TASK_ENTRY;
107 $goWidget = true; // サブウィジェットを実行するかどうか
109 $this->SetMsg(self::MSG_APP_ERR, "アクセスできません");
113 case self::TASK_COMMENT: // ブログ記事コメント管理
114 case self::TASK_COMMENT_DETAIL: // ブログ記事コメント管理(詳細)
115 if (self::$_canEditEntry){ // 記事が編集可能かどうか
116 $task = self::TASK_COMMENT;
117 $goWidget = true; // サブウィジェットを実行するかどうか
119 $this->SetMsg(self::MSG_APP_ERR, "アクセスできません");
124 if ($goWidget){ // サブウィジェットを実行するかどうか
125 $this->gLaunch->goSubWidget($task); // 一般機能で呼び出し
128 $this->SetMsg(self::MSG_APP_ERR, "画面が見つかりません");
135 * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
136 * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
138 * @param RequestManager $request HTTPリクエスト処理クラス
139 * @param object $param 任意使用パラメータ。そのまま_assign()に渡る
140 * @return string テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
142 function _setTemplate($request, &$param)
144 $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
145 return 'message.tmpl.html';
150 * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
152 * @param RequestManager $request HTTPリクエスト処理クラス
153 * @param object $param 任意使用パラメータ。_setTemplate()と共有。
156 function _assign($request, &$param)
158 $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
162 case self::TASK_TOP: // トップ画面