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: admin_s_bbs_2chBaseWidgetContainer.php 4851 2012-04-15 00:43:29Z fishbone $
14 * @link http://www.magic3.org
16 require_once($gEnvManager->getContainerPath() . '/baseAdminWidgetContainer.php');
17 require_once($gEnvManager->getCurrentWidgetDbPath() . '/s_bbs_2chDb.php');
19 class admin_s_bbs_2chBaseWidgetContainer extends BaseAdminWidgetContainer
21 protected $_db; // DB接続オブジェクト
22 protected $_boardId; // 掲示板ID
23 const DEFAULT_BBS_ID = 'board1'; // デフォルトの掲示板ID
24 const DEFAULT_TOP_PAGE = 'message'; // デフォルトのトップページ
25 const DEFAULT_BOTTOM_MESSAGE = '<center><b>どのような形の削除依頼であれ公開させていただきます。</b></center>'; // デフォルトのトップ画面下部メッセージ
26 const DEFAULT_THREAD_END_MESSAGE = "このスレッドは[#RES_MAX_NO#]を超えました。\r\nもう書けないので、新しいスレッドを立ててくださいです。。。"; // デフォルトのレス上限メッセージ
27 const DEFAULT_ADMIN_NAME = 'サイト運営者'; // サイト運営者名
28 const WIDGET_TITLE_NAME = '2ちゃんねる風BBSメイン'; // ウィジェットタイトル名
29 const CF_BBS_TITLE = 'title'; // 掲示板タイトル
30 const CF_TITLE_COLOR = 'title_color'; // タイトルカラー
31 const CF_TOP_LINK = 'top_link'; // トップ画像のリンク先
32 const CF_TOP_IMAGE = 'top_image'; // トップ画像
33 const CF_BBS_GUIDE = 'bbs_guide'; // 掲示板規則
34 const CF_BOTTOM_MESSAGE = 'bottom_message'; // トップ画面下部メッセージ
35 const CF_THREAD_END_MESSAGE = 'thread_end_message'; // レス上限メッセージ
36 const CF_BG_IMAGE = 'bg_image'; // 背景画像
37 const CF_BG_COLOR = 'bg_color'; // 背景色
38 const CF_TEXT_COLOR = 'text_color'; // 文字色
39 const CF_MENU_COLOR = 'menu_color'; // メニュー背景色
40 const CF_MAKE_THREAD_COLOR = 'makethread_color'; // スレッド作成部背景色
41 const CF_THREAD_COLOR = 'thread_color'; // スレッド表示部背景色
42 const CF_LINK_COLOR = 'link_color'; // リンク色
43 const CF_ALINK_COLOR = 'alink_color'; // リンク色
44 const CF_VLINK_COLOR = 'vlink_color'; // リンク色
45 const CF_NAME_COLOR = 'name_color'; // 投稿者名文字色
46 const CF_FILE_UPLOAD = 'file_upload'; // ファイルアップロード許可
47 const CF_SUBJECT_LENGTH = 'subject_length'; // 件名最大長
48 const CF_NAME_LENGTH = 'name_length'; // 投稿者名最大長
49 const CF_EMAIL_LENGTH = 'email_length'; // emailアドレス最大長
50 const CF_MESSAGE_LENGTH = 'message_length'; // 最大メッセージ長
51 const CF_ERR_MESSAGE_COLOR = 'err_message_color'; // エラーメッセージ文字色
52 const CF_SUBJECT_COLOR = 'subject_color'; // 件名文字色
53 const CF_LINE_LENGTH = 'line_length'; // 投稿文行長
54 const CF_LINE_COUNT = 'line_count'; // 投稿文行数
55 const CF_RES_ANCHOR_LINK_COUNT = 'res_anchor_link_count'; // レスアンカーリンク数
56 const CF_THREAD_COUNT = 'thread_count'; // トップ画面に表示するスレッド最大数
57 const CF_RES_COUNT = 'res_count'; // トップ画面に表示するレス最大数
58 const CF_THREAD_RES = 'thread_res'; // 1スレッドに投稿できるレス数の上限
59 const CF_MENU_THREAD_COUNT = 'menu_thread_count'; // メニューに表示するスレッド最大数
60 const CF_SHOW_EMAIL = 'show_email'; // Eメールアドレスを表示
61 const CF_AUTOLINK = 'autolink'; // 自動的にリンクを作成
62 const CF_NONAME_NAME = 'noname_name'; // 名前未設定時の表示名
63 const CF_ADMIN_NAME = 'admin_name'; // サイト運営者名
68 function __construct()
71 parent::__construct();
74 $this->_db = new s_bbs_2chDb();
79 $this->_boardId = self::DEFAULT_BBS_ID;
84 * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
86 * @param RequestManager $request HTTPリクエスト処理クラス
87 * @param object $param 任意使用パラメータ。_setTemplate()と共有。
90 function _postAssign($request, &$param)
93 $openBy = $request->trimValueOf(M3_REQUEST_PARAM_OPEN_BY); // ウィンドウオープンタイプ
94 if (!empty($openBy)) $this->addOptionUrlParam(M3_REQUEST_PARAM_OPEN_BY, $openBy);
97 $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
98 if (empty($task)) $task = self::DEFAULT_TOP_PAGE;
102 case 'message': // メッセージ管理
103 case 'message_detail': // メッセージ管理(詳細)
104 $linkList = ' >> 投稿管理';// パンくずリスト
106 case 'other': // その他設定
107 $linkList = ' >> 基本設定';// パンくずリスト
110 // ####### 上段メニューの作成 #######
111 $menuText = '<div id="configmenu-upper">' . M3_NL;
112 $menuText .= '<ul>' . M3_NL;
113 $baseUrl = $this->getAdminUrlWithOptionParam(true);// 画面定義ID付き
117 $link = $baseUrl . '&task=message';
118 if ($task == 'message' ||
119 $task == 'message_detail'){
120 $current = 'id="current"';
122 $menuText .= '<li ' . $current . '><a href="'. $this->getUrl($link, true) .'"><span>投稿管理</span></a></li>' . M3_NL;
126 $link = $baseUrl . '&task=other';
127 if ($task == 'other'){
128 $current = 'id="current"';
130 $menuText .= '<li ' . $current . '><a href="'. $this->getUrl($link, true) .'"><span>基本設定</span></a></li>' . M3_NL;
133 $menuText .= '</ul>' . M3_NL;
134 $menuText .= '</div>' . M3_NL;
137 $linkList = '<div id="configmenu-top"><label>' . self::WIDGET_TITLE_NAME . $linkList . '</div>';
138 $outputText .= '<table width="90%"><tr><td>' . $linkList . $menuText . '</td></tr></table>' . M3_NL;
139 $this->tmpl->addVar("_widget", "menu_items", $outputText);
144 * @return bool true=取得成功、false=取得失敗
146 function _loadConfig()
148 $this->_configArray = array();
151 $ret = $this->_db->getAllConfig($rows);
154 $configCount = count($rows);
155 for ($i = 0; $i < $configCount; $i++){
156 $key = $rows[$i]['tg_id'];
157 $value = $rows[$i]['tg_value'];
158 $this->_configArray[$key] = $value;