OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / widgets / s / bbs_2ch / include / container / admin_s_bbs_2chBaseWidgetContainer.php
1 <?php
2 /**
3  * index.php用コンテナクラス
4  *
5  * PHP versions 5
6  *
7  * LICENSE: This source file is licensed under the terms of the GNU General Public License.
8  *
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
15  */
16 require_once($gEnvManager->getContainerPath() . '/baseAdminWidgetContainer.php');
17 require_once($gEnvManager->getCurrentWidgetDbPath() . '/s_bbs_2chDb.php');
18
19 class admin_s_bbs_2chBaseWidgetContainer extends BaseAdminWidgetContainer
20 {
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';                             // サイト運営者名
64         
65         /**
66          * コンストラクタ
67          */
68         function __construct()
69         {
70                 // 親クラスを呼び出す
71                 parent::__construct();
72                 
73                 // DBオブジェクト作成
74                 $this->_db = new s_bbs_2chDb();
75                 
76                 // BBS定義を読み込む
77                 $this->_loadConfig();
78                 
79                 $this->_boardId = self::DEFAULT_BBS_ID;
80         }
81         /**
82          * テンプレートにデータ埋め込む
83          *
84          * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
85          *
86          * @param RequestManager $request               HTTPリクエスト処理クラス
87          * @param object         $param                 任意使用パラメータ。_setTemplate()と共有。
88          * @return                                                              なし
89          */
90         function _postAssign($request, &$param)
91         {
92                 // ウィンドウオープンタイプ取得
93                 $openBy = $request->trimValueOf(M3_REQUEST_PARAM_OPEN_BY);              // ウィンドウオープンタイプ
94                 if (!empty($openBy)) $this->addOptionUrlParam(M3_REQUEST_PARAM_OPEN_BY, $openBy);
95                 
96                 // 表示画面を決定
97                 $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
98                 if (empty($task)) $task = self::DEFAULT_TOP_PAGE;
99                 
100                 // パンくずリストを作成
101                 switch ($task){
102                         case 'message':         // メッセージ管理
103                         case 'message_detail':          // メッセージ管理(詳細)
104                                 $linkList = ' &gt;&gt; 投稿管理';// パンくずリスト
105                                 break;
106                         case 'other':           // その他設定
107                                 $linkList = ' &gt;&gt; 基本設定';// パンくずリスト
108                                 break;
109                 }
110                 // ####### 上段メニューの作成 #######
111                 $menuText = '<div id="configmenu-upper">' . M3_NL;
112                 $menuText .= '<ul>' . M3_NL;
113                 $baseUrl = $this->getAdminUrlWithOptionParam(true);// 画面定義ID付き
114                 
115                 // メッセージ管理
116                 $current = '';
117                 $link = $baseUrl . '&task=message';
118                 if ($task == 'message' ||
119                         $task == 'message_detail'){
120                         $current = 'id="current"';
121                 }
122                 $menuText .= '<li ' . $current . '><a href="'. $this->getUrl($link, true) .'"><span>投稿管理</span></a></li>' . M3_NL;
123
124                 // その他設定
125                 $current = '';
126                 $link = $baseUrl . '&task=other';
127                 if ($task == 'other'){          
128                         $current = 'id="current"';
129                 }
130                 $menuText .= '<li ' . $current . '><a href="'. $this->getUrl($link, true) .'"><span>基本設定</span></a></li>' . M3_NL;
131                 
132                 // 上段メニュー終了
133                 $menuText .= '</ul>' . M3_NL;
134                 $menuText .= '</div>' . M3_NL;
135                 
136                 // 作成データの埋め込み
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);
140         }
141         /**
142          * BBS定義値をDBから取得
143          *
144          * @return bool                 true=取得成功、false=取得失敗
145          */
146         function _loadConfig()
147         {
148                 $this->_configArray = array();
149
150                 // BBS定義を読み込み
151                 $ret = $this->_db->getAllConfig($rows);
152                 if ($ret){
153                         // 取得データを連想配列にする
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;
159                         }
160                 }
161                 return $ret;
162         }
163 }
164 ?>