2011/05/08 投稿系など。
@@ -19,7 +19,6 @@ | ||
19 | 19 | var $unit = 0; |
20 | 20 | var $articleHtml = ''; |
21 | 21 | |
22 | - var $artlSet = array(); | |
23 | 22 | |
24 | 23 | |
25 | 24 | public function __construct() |
@@ -28,15 +27,12 @@ | ||
28 | 27 | |
29 | 28 | require_once( APPPATH . '/models/article_model.php' ); |
30 | 29 | |
31 | - //article_id取得 | |
32 | - $this->artId = $this->getRequest('a', 0); | |
33 | 30 | |
34 | - //page取得 | |
35 | - $this->page = $this->getRequest('p', 1); | |
31 | + $this->artId = $this->getRequest('a', 0); //article_id | |
32 | + $this->page = $this->getRequest('p', 1); //page | |
33 | + $this->trNum = $this->getRequest('t', 0); //tree_number | |
36 | 34 | |
37 | - //tree_number取得 | |
38 | - $this->trNum = $this->getRequest('t', 0); | |
39 | - | |
35 | +/* | |
40 | 36 | //チェック |
41 | 37 | if ( !empty($this->artId) ) { |
42 | 38 | if ( !is_numeric($this->artId) ) trigger_error ('Invalid article id!'); |
@@ -47,6 +43,7 @@ | ||
47 | 43 | if ( !empty($this->trNum) ) { |
48 | 44 | if ( !is_numeric($this->trNum) ) trigger_error ('Invalid tree number!'); |
49 | 45 | } |
46 | +*/ | |
50 | 47 | |
51 | 48 | $this->baseSet['a'] = $this->artId; |
52 | 49 | $this->baseSet['p'] = $this->page; |
@@ -56,7 +53,8 @@ | ||
56 | 53 | $this->artlSet['edit_mode'] = $GLOBALS['CNF']['edit_mode']; |
57 | 54 | $this->artlSet['img_view'] = $GLOBALS['CNF']['img_view']; |
58 | 55 | |
59 | - $this->set['pager'] = 1; | |
56 | + $this->artlSet['total'] = 0; | |
57 | + $this->artlSet['unit'] = 0; | |
60 | 58 | |
61 | 59 | } |
62 | 60 |
@@ -79,14 +77,32 @@ | ||
79 | 77 | //echo "disp opend, page=" . $this->page; |
80 | 78 | $artMdl = new Article_model(); |
81 | 79 | |
82 | - $article = $artMdl->getSingleArticle($this->artId); | |
80 | + $article = null; | |
81 | + if ( $this->artId ) { | |
82 | + $article = $artMdl->getSingleArticle($this->artId); | |
83 | + | |
84 | + } else if ( $this->page ) { | |
85 | + $trees = $artMdl->getTrees(1, 1, $this->page); | |
86 | + if ( empty($trees) ) trigger_error ('Invalid article!'); | |
87 | + $article = array_shift($trees); | |
88 | + | |
89 | + } else { | |
90 | + trigger_error ('Invalid article!'); | |
91 | + | |
92 | + } | |
93 | + | |
83 | 94 | if ( empty($article) ) trigger_error ('Invalid article id!'); |
84 | 95 | |
96 | + | |
97 | + //$article = $artMdl->getSingleArticle($this->artId); | |
98 | + //if ( empty($article) ) trigger_error ('Invalid article id!'); | |
99 | + | |
85 | 100 | $tree = $artMdl->getSingleTree($article['tree_number']); |
86 | 101 | |
87 | - $this->set['total'] = 0; | |
102 | + $result = $artMdl->getArticleTotal(1); | |
103 | + $this->artlSet['total'] = $result['total']; | |
104 | + $this->artlSet['unit'] = 1; | |
88 | 105 | |
89 | - | |
90 | 106 | //スキン |
91 | 107 | $this->readSkin('article'); |
92 | 108 | $this->readSkin('tree'); |
@@ -117,14 +133,16 @@ | ||
117 | 133 | |
118 | 134 | public function plain() |
119 | 135 | { |
120 | - $this->unit = $GLOBALS['CNF']['plain_max']; | |
121 | 136 | |
122 | 137 | $artMdl = new Article_model(); |
123 | 138 | $articles = $artMdl->getArticles(1, $GLOBALS['CNF']['plain_max'], $this->page); |
124 | 139 | |
125 | 140 | $result = $artMdl->getArticleTotal($GLOBALS['CNF']['plain_max']); |
126 | - $this->set['total'] = $result['total']; | |
141 | + $this->artlSet['total'] = $result['total']; | |
127 | 142 | |
143 | + $this->artlSet['unit'] = $GLOBALS['CNF']['plain_max']; | |
144 | + | |
145 | + | |
128 | 146 | //スキン |
129 | 147 | $this->readSkin('article'); |
130 | 148 |
@@ -149,17 +167,19 @@ | ||
149 | 167 | |
150 | 168 | public function tree() |
151 | 169 | { |
152 | - $this->unit = $GLOBALS['CNF']['tree_max']; | |
153 | 170 | |
154 | 171 | $artMdl = new Article_model(); |
155 | - echo "page=" .$this->page; | |
172 | + //echo "page=" .$this->page; | |
156 | 173 | |
157 | - $trees = $artMdl->getTrees(1, $GLOBALS['CNF']['tree_max'], $this->page); | |
174 | + $trees = $artMdl->getTrees(2, $GLOBALS['CNF']['tree_max'], $this->page); | |
158 | 175 | $branches = $artMdl->getBranches($trees); |
159 | 176 | |
160 | 177 | $result = $artMdl->getParentTotal($GLOBALS['CNF']['tree_max']); |
161 | - $this->set['total'] = $result['total']; | |
178 | + $this->artlSet['total'] = $result['total']; | |
162 | 179 | |
180 | + $this->artlSet['unit'] = $GLOBALS['CNF']['tree_max']; | |
181 | + | |
182 | + | |
163 | 183 | //スキン |
164 | 184 | $this->readSkin('tree'); |
165 | 185 |
@@ -190,9 +210,30 @@ | ||
190 | 210 | //echo "disp tree, page=" . $this->page; |
191 | 211 | |
192 | 212 | $artMdl = new Article_model(); |
193 | - $tree = $artMdl->getSingleTree($this->trNum); | |
194 | - //var_dump($tree); | |
213 | + $tree = null; | |
214 | + if ( $this->trNum ) { | |
215 | + $tree = $artMdl->getSingleTree($this->trNum); | |
195 | 216 | |
217 | + } else if ( $this->page ) { | |
218 | + $trees = $artMdl->getTrees(1, 1, $this->page); | |
219 | + if ( empty($trees) ) return; | |
220 | + $tr = array_shift($trees); | |
221 | + $tree = $artMdl->getSingleTree($tr['tree_number']); | |
222 | + | |
223 | + } else { | |
224 | + return; | |
225 | + | |
226 | + } | |
227 | + | |
228 | + | |
229 | + $result = $artMdl->getParentTotal(1); | |
230 | + $this->artlSet['total'] = $result['total']; | |
231 | + $this->artlSet['unit'] = 1; | |
232 | + | |
233 | + | |
234 | + $this->unit = 1; | |
235 | + | |
236 | + | |
196 | 237 | //スキン |
197 | 238 | $this->readSkin('article'); |
198 | 239 | $this->readSkin('tree'); |
@@ -233,7 +274,6 @@ | ||
233 | 274 | |
234 | 275 | public function thread() |
235 | 276 | { |
236 | - $this->unit = floor($GLOBALS['CNF']['tree_max']/2); | |
237 | 277 | |
238 | 278 | $artMdl = new Article_model(); |
239 | 279 | $threads = $artMdl->getTrees(1, $this->unit, $this->page); |
@@ -241,12 +281,16 @@ | ||
241 | 281 | $articles = $artMdl->getChildren($threads, $GLOBALS['CNF']['threadhas_max'], 2); |
242 | 282 | |
243 | 283 | $result = $artMdl->getParentTotal($this->unit); |
244 | - $this->set['total'] = $result['total']; | |
284 | + $this->artlSet['total'] = $result['total']; | |
245 | 285 | |
286 | + $this->artlSet['unit'] = floor($GLOBALS['CNF']['tree_max']/2); | |
287 | + | |
288 | + | |
246 | 289 | //スキン |
247 | 290 | $this->readSkin('article'); //先行必須 |
248 | 291 | $this->readSkin('thread'); |
249 | 292 | |
293 | + | |
250 | 294 | //コンテント |
251 | 295 | $myContent = ''; |
252 | 296 | foreach($threads as $key => $th) { |
@@ -259,7 +303,7 @@ | ||
259 | 303 | } |
260 | 304 | |
261 | 305 | } |
262 | - $myContent .= getThreadFootHtml(); | |
306 | + $myContent .= getThreadFootHtml( $th['tree_number'], $this->baseSet); | |
263 | 307 | |
264 | 308 | } |
265 | 309 |
@@ -283,14 +327,79 @@ | ||
283 | 327 | |
284 | 328 | |
285 | 329 | $artMdl = new Article_model(); |
286 | - $trees = $artMdl->getTrees(1, 2, $this->page); | |
287 | - $branches = $artMdl->getBranches($trees); | |
330 | + $trees = null; | |
331 | + if ( $this->trNum ) { | |
332 | + $trees = $artMdl->getSingleTree($this->trNum); | |
288 | 333 | |
334 | + } else if ( $this->page ) { | |
335 | + $trees = $artMdl->getTrees(1, 1, $this->page); | |
336 | + if ( empty($trees) ) return; | |
337 | + $tr = array_shift($trees); | |
338 | + $trees = $artMdl->getSingleTree($tr['tree_number']); | |
289 | 339 | |
290 | - $this->set['trees'] = $trees; | |
291 | - $this->set['branches'] = $branches; | |
340 | + } else { | |
341 | + return; | |
292 | 342 | |
343 | + } | |
293 | 344 | |
345 | + | |
346 | + //var_dump($tree); | |
347 | + //exit; | |
348 | + | |
349 | + $result = $artMdl->getParentTotal(1); | |
350 | + $this->artlSet['total'] = $result['total']; | |
351 | + | |
352 | + $this->artlSet['unit'] = 1; | |
353 | + | |
354 | + | |
355 | + //スキン | |
356 | + $this->readSkin('article'); | |
357 | + $this->readSkin('thread'); | |
358 | + | |
359 | + //コンテント | |
360 | + $myContent = ""; | |
361 | + foreach($trees as $key => $th) { | |
362 | + | |
363 | + if ( $th['parent_id'] != 0 ) continue; | |
364 | + | |
365 | + $myContent .= getThreadHeadHtml(); | |
366 | + $myContent .= getThreadTopHtml($th, $this->baseSet, $this->artlSet); | |
367 | + foreach($trees as $art) { | |
368 | + if ( $art['parent_id'] != 0 ) { | |
369 | + $myContent .= getThreadArticleHtml($art, $this->baseSet, $this->artlSet); | |
370 | + } | |
371 | + | |
372 | + } | |
373 | + $myContent .= getThreadFootHtml( $th['tree_number'], $this->baseSet, 2); | |
374 | + | |
375 | + } | |
376 | + | |
377 | + /* | |
378 | + foreach( $tree as $tr ) { | |
379 | + | |
380 | + if ( $tr['parent_id'] == 0 ) { | |
381 | + $myContent .= getArticleHtml($tr, $this->baseSet, $this->artlSet); | |
382 | + $myContent .= makeBranchArticle($tree, $tr['id']); | |
383 | + break; | |
384 | + } | |
385 | + } | |
386 | + */ | |
387 | +/* | |
388 | + foreach( $tree as $tr ) { | |
389 | + | |
390 | + if ( $tr['parent_id'] == 0 ) { | |
391 | + $myContent .= getTreeHtml($tr); | |
392 | + $branchMap = branchExtender($tree, $tr['id'], $tr['tree_number']); | |
393 | + $depthBranch=array(); | |
394 | + $myContent .= makeBranch($tree, $tr['id'], $branchMap, $depthBranch ); | |
395 | + break; | |
396 | + } | |
397 | + | |
398 | + } | |
399 | +*/ | |
400 | + $this->content = $myContent; | |
401 | + | |
402 | + | |
294 | 403 | $this->set['view'] = __FUNCTION__; |
295 | 404 | $this->setLayout('base'); |
296 | 405 |
@@ -306,8 +415,6 @@ | ||
306 | 415 | public function topic() |
307 | 416 | { |
308 | 417 | |
309 | - $this->unit = $GLOBALS['CNF']['tree_max']; | |
310 | - | |
311 | 418 | $artMdl = new Article_model(); |
312 | 419 | $topics = $artMdl->getTopics(1, $GLOBALS['CNF']['tree_max'], $this->page); |
313 | 420 |
@@ -314,8 +421,9 @@ | ||
314 | 421 | $branches = $artMdl->getBranches($topics); |
315 | 422 | |
316 | 423 | $result = $artMdl->getParentTotal($GLOBALS['CNF']['tree_max']); |
317 | - $this->set['total'] = $result['total']; | |
424 | + $this->artlSet['total'] = $result['total']; | |
318 | 425 | |
426 | + $this->artlSet['unit'] = $GLOBALS['CNF']['tree_max']; | |
319 | 427 | |
320 | 428 | //スキン |
321 | 429 | $this->readSkin('topic'); |
@@ -352,14 +460,15 @@ | ||
352 | 460 | |
353 | 461 | public function listing() |
354 | 462 | { |
355 | - $this->unit = $GLOBALS['CNF']['tree_max'] * 3; | |
356 | 463 | |
357 | 464 | $artMdl = new Article_model(); |
358 | 465 | $articles = $artMdl->getArticles(2, $GLOBALS['CNF']['tree_max'] * 3, $this->page); |
359 | 466 | |
360 | 467 | $result = $artMdl->getParentTotal($GLOBALS['CNF']['tree_max']*3); |
361 | - $this->set['total'] = $result['total']; | |
468 | + $this->artlSet['total'] = $result['total']; | |
362 | 469 | |
470 | + $this->artlSet['unit'] = $GLOBALS['CNF']['tree_max'] * 3; | |
471 | + | |
363 | 472 | //スキン |
364 | 473 | $this->readSkin('list'); |
365 | 474 |
@@ -383,6 +492,22 @@ | ||
383 | 492 | } |
384 | 493 | |
385 | 494 | |
495 | + | |
496 | + private function getTreePrevAndNext($page) | |
497 | + { | |
498 | + | |
499 | + | |
500 | + $this->artlSet['pageNow'] = 0; | |
501 | + $this->artlSet['pagePrev'] = ; | |
502 | + $this->artlSet['pageNext'] = ; | |
503 | + | |
504 | + | |
505 | + | |
506 | + return true; | |
507 | + | |
508 | + | |
509 | + } | |
510 | + | |
386 | 511 | } |
387 | 512 | |
388 | 513 | ?> |
\ No newline at end of file |
@@ -13,9 +13,6 @@ | ||
13 | 13 | class Post_Action extends Base_Action { |
14 | 14 | |
15 | 15 | |
16 | - var $postSet = array(); | |
17 | - | |
18 | - | |
19 | 16 | public function __construct() |
20 | 17 | { |
21 | 18 | parent::__construct(); |
@@ -30,6 +27,11 @@ | ||
30 | 27 | if ( !is_numeric($this->artId) ) trigger_error ('Invalid article id!'); |
31 | 28 | } |
32 | 29 | |
30 | + | |
31 | + $this->artlSet['delete_mode'] = $GLOBALS['CNF']['delete_mode']; | |
32 | + $this->artlSet['edit_mode'] = $GLOBALS['CNF']['edit_mode']; | |
33 | + $this->artlSet['img_view'] = $GLOBALS['CNF']['img_view']; | |
34 | + | |
33 | 35 | $this->set['pager'] = 0; |
34 | 36 | |
35 | 37 | } |
@@ -64,10 +66,9 @@ | ||
64 | 66 | $this->postSet['captcha_key'] = ""; |
65 | 67 | |
66 | 68 | $this->postSet['preview'] = ''; |
67 | - | |
68 | - //$this->postSet = array(); | |
69 | + $this->postSet['resto'] = ''; | |
69 | 70 | $this->postSet['article_id'] = 0; |
70 | - $this->postSet['parent_id'] = ''; | |
71 | + $this->postSet['parent_id'] = 0; | |
71 | 72 | |
72 | 73 | if ( $mode == 1 ) { |
73 | 74 | $this->postSet['errMessage'] = ''; |
@@ -80,6 +81,7 @@ | ||
80 | 81 | $this->readSkin('article_input'); |
81 | 82 | $this->readSkin('article'); |
82 | 83 | |
84 | + | |
83 | 85 | //返信モード切り替え |
84 | 86 | if ( $this->getPost('parent_id') ){ |
85 | 87 | $this->postSet['parent_id'] = $this->getPost('parent_id'); |
@@ -93,6 +95,12 @@ | ||
93 | 95 | } else if ( $mode == 2 ) { |
94 | 96 | $arc = $this->stripslashes_deep($_POST); |
95 | 97 | |
98 | + | |
99 | + } else if ( $mode == 11 ) { | |
100 | + $arc = getArticle($id); | |
101 | + $arc['article_id'] = $arc['id']; | |
102 | + | |
103 | + | |
96 | 104 | } else { |
97 | 105 | $arc = $this->stripslashes_deep($_POST); |
98 | 106 | //var_dump($arc); |
@@ -103,11 +111,29 @@ | ||
103 | 111 | $myContent = ''; |
104 | 112 | |
105 | 113 | if ( $mode==3 ) { |
114 | + //プレビュー | |
106 | 115 | $arc['created_at'] = date( "Y/m/d H:i:s", time() ); |
107 | 116 | $arc['clipfile1'] = ''; $arc['clipfile2'] = ''; $arc['clipfile3'] = ''; |
108 | - $this->postSet['preview'] = getArticleHtml($arc); | |
117 | + $this->postSet['preview'] = getArticleHtml($arc, $this->baseSet, $this->artlSet); | |
118 | + | |
109 | 119 | } |
110 | 120 | |
121 | + | |
122 | + //echo "parent=" . $this->postSet['parent_id']; | |
123 | + | |
124 | + if ( $this->postSet['parent_id'] ) { | |
125 | + //返信モード | |
126 | + $artMdl = new Article_Model(); | |
127 | + $prnt = $artMdl->getSingleArticle($this->postSet['parent_id']); | |
128 | + $prnt['article_id'] = $prnt['id']; | |
129 | + | |
130 | + $this->postSet['resto'] = getArticleHtml($prnt, $this->baseSet, $this->artlSet); | |
131 | + | |
132 | + $arc['tree_number'] = $prnt['tree_number']; | |
133 | + $arc['parent_id'] = $prnt['id']; | |
134 | + | |
135 | + } | |
136 | + | |
111 | 137 | $myContent .= geArticleInputHtml($this->baseSet, $arc, $this->postSet, 1); |
112 | 138 | |
113 | 139 | $this->content = $myContent; |
@@ -130,17 +156,31 @@ | ||
130 | 156 | } |
131 | 157 | |
132 | 158 | |
133 | -/* | |
134 | - public function createConfirm() | |
159 | + | |
160 | + | |
161 | + | |
162 | + public function modifySelect() | |
135 | 163 | { |
136 | - if ( isset($_POST['confirm']) and $_POST['confirm']==1) { | |
137 | - $this->createInput(2); | |
138 | - } else { | |
139 | - $this->create(); | |
140 | - } | |
164 | + | |
165 | + | |
166 | + // | |
167 | + $modMode = $this->getPost('modMode', 0); | |
168 | + if ( empty($modMode) ) trigger_error ('Invalid Mofify mode!'); | |
169 | + | |
170 | + | |
171 | + //削除のみ | |
172 | + //deleteInput($id); | |
173 | + | |
174 | + | |
175 | + //編集可能 | |
176 | + | |
177 | + | |
178 | + | |
179 | + //$this->createInput(1, $modMode); | |
141 | 180 | return; |
181 | + | |
142 | 182 | } |
143 | -*/ | |
183 | + | |
144 | 184 | |
145 | 185 | |
146 | 186 |
@@ -148,7 +188,6 @@ | ||
148 | 188 | { |
149 | 189 | |
150 | 190 | //var_dump($_POST); |
151 | - //ob_start(); | |
152 | 191 | |
153 | 192 | //バリデート |
154 | 193 | $vld = $this->lordLib('Validation'); |
@@ -156,7 +195,7 @@ | ||
156 | 195 | $this->postSet['errMsgAry'] = array(); |
157 | 196 | |
158 | 197 | $vld->run( $this->getPost('author'), $GLOBALS['LNG']['author'], "required|max_len&20" ); |
159 | - $vld->run( $this->getPost('password'), $GLOBALS['LNG']['password'], "min_len&3|max_len&10" ); | |
198 | + $vld->run( $this->getPost('password'), $GLOBALS['LNG']['password'], "min_len&3|max_len&10|alpha_plus" ); | |
160 | 199 | $vld->run( $this->getPost('subject'), $GLOBALS['LNG']['subject'], "required|max_len&50" ); |
161 | 200 | $vld->run( $this->getPost('article'), $GLOBALS['LNG']['articleText'], "required|min_len&3|max_len&5000" ); |
162 | 201 | $vld->run( $this->getPost('email'), $GLOBALS['LNG']['email'], "max_len&80" ); |
@@ -166,7 +205,6 @@ | ||
166 | 205 | $this->postSet['errMessage'] = $GLOBALS['LNG']['postInvalid']; |
167 | 206 | $this->postSet['errMsgAry'] = $vld->errMsgs; |
168 | 207 | $this->createInput(2); |
169 | - //var_dump($vld->errMsgs); | |
170 | 208 | return; |
171 | 209 | } |
172 | 210 |
@@ -179,16 +217,29 @@ | ||
179 | 217 | $data = $this->getPostArticleForSQL(); |
180 | 218 | |
181 | 219 | |
220 | + //データ加工 | |
221 | + $dh = $this->lordLib('dataHelper'); | |
222 | + $data['pwHash'] = $dh->makePasswordHash($this->getPost('password')); | |
223 | + $data['personKey'] = | |
224 | + $dh->makePersonKey($this->getPost('author'), $this->getPost('password'), $GLOBALS['USR']['access']['host']); | |
225 | + | |
226 | + /* | |
227 | + var_dump( $GLOBALS['USR']['access'] ); | |
228 | + echo "<br>"; | |
229 | + echo $this->getPost('password') ." - ". $data['pwHash'] . "<br>"; | |
230 | + echo $data['personKey'] . "<br>"; | |
231 | + exit; | |
232 | + */ | |
233 | + | |
182 | 234 | //var_dump($data); |
183 | 235 | //exit(); |
184 | 236 | |
185 | - | |
186 | 237 | $artMdl = new Article_model(); |
187 | - if ( empty($data['article_id']) or $data['article_id']==0 ) { | |
238 | + if ( empty($data['article_id']) ) { | |
188 | 239 | //Create |
189 | 240 | //echo "INSERT!"; |
190 | 241 | $newId = $artMdl->insertArticle($data); |
191 | - | |
242 | + //exit; | |
192 | 243 | //リダイレクト |
193 | 244 | $this->redirect('act=sngl&a=' . $newId); |
194 | 245 |
@@ -208,6 +259,8 @@ | ||
208 | 259 | |
209 | 260 | |
210 | 261 | |
262 | + | |
263 | + | |
211 | 264 | } |
212 | 265 | |
213 | 266 | ?> |
\ No newline at end of file |
@@ -15,6 +15,8 @@ | ||
15 | 15 | var $platform = ''; //pc |
16 | 16 | var $skin = ''; //default |
17 | 17 | var $baseSet = array(); |
18 | + var $postSet = array(); | |
19 | + var $artlSet = array(); | |
18 | 20 | |
19 | 21 | var $content = ""; |
20 | 22 | var $set = array(); |
@@ -125,16 +127,6 @@ | ||
125 | 127 | } |
126 | 128 | |
127 | 129 | |
128 | - protected function getRequest($name, $def) | |
129 | - { | |
130 | - $req = $def; | |
131 | - if ( isset($_POST[$name]) ) { | |
132 | - $req = $_POST[$name]; | |
133 | - } else if ( isset($_GET[$name]) ) { | |
134 | - $req = $_GET[$name]; | |
135 | - } | |
136 | - return $req; | |
137 | - } | |
138 | 130 | |
139 | 131 | |
140 | 132 |
@@ -147,7 +139,10 @@ | ||
147 | 139 | } |
148 | 140 | |
149 | 141 | |
150 | - | |
142 | + /** | |
143 | + * POSTの画面戻し用。 | |
144 | + * 配列時の自動再帰。 | |
145 | + */ | |
151 | 146 | protected function stripslashes_deep($value) |
152 | 147 | { |
153 | 148 | $value = is_array($value) ? |
@@ -159,7 +154,7 @@ | ||
159 | 154 | |
160 | 155 | |
161 | 156 | |
162 | - protected function getPost($name, $def='') | |
157 | + protected function getRequest($name, $def) | |
163 | 158 | { |
164 | 159 | $req = $def; |
165 | 160 | if ( isset($_POST[$name]) ) { |
@@ -167,10 +162,29 @@ | ||
167 | 162 | } else if ( isset($_GET[$name]) ) { |
168 | 163 | $req = $_GET[$name]; |
169 | 164 | } |
165 | + | |
166 | + if ( is_numeric($def) ) { | |
167 | + if ( ! is_numeric($req) ) { | |
168 | + $req = $def; | |
169 | + } | |
170 | + | |
171 | + } | |
172 | + | |
173 | + | |
170 | 174 | return $req; |
171 | 175 | } |
172 | 176 | |
173 | 177 | |
178 | + protected function getPost($name, $def='') | |
179 | + { | |
180 | + $req = $def; | |
181 | + if ( isset($_POST[$name]) ) { | |
182 | + $req = $_POST[$name]; | |
183 | + } | |
184 | + return htmlspecialchars($req); | |
185 | + } | |
186 | + | |
187 | + | |
174 | 188 | protected function getPostArticleForSQL() |
175 | 189 | { |
176 | 190 |
@@ -207,10 +221,6 @@ | ||
207 | 221 | |
208 | 222 | protected function redirect($target) { |
209 | 223 | |
210 | - | |
211 | -//header("Location: http://127.0.0.1/epitta/7b"); | |
212 | -//exit; | |
213 | - | |
214 | 224 | $url = $this->baseSet['linkBaseUrl']; |
215 | 225 | |
216 | 226 | $url = DIRURL . '/' . SELFNAME . $url . $target; |
@@ -122,6 +122,9 @@ | ||
122 | 122 | |
123 | 123 | |
124 | 124 | //データ取得 |
125 | + $fields = '*'; | |
126 | + if ( $mode==2 ) $fields = $this->mainFields; | |
127 | + | |
125 | 128 | $sql = |
126 | 129 | " SELECT * FROM epitta_articles" . |
127 | 130 | " WHERE id IN (" . $ids . ")" . |
@@ -187,7 +190,7 @@ | ||
187 | 190 | |
188 | 191 | $sql = "SELECT * FROM epitta_articles" . |
189 | 192 | " WHERE status_code<9 AND parent_id!=0 AND tree_number IN (" . $numbers . ")" . |
190 | - " ORDER BY created_at" .$asc. ",id" . $asc . " LIMIT " . $max; | |
193 | + " ORDER BY id" . $asc . " LIMIT " . $max; | |
191 | 194 | |
192 | 195 | //echo $sql; |
193 | 196 |
@@ -313,8 +316,31 @@ | ||
313 | 316 | |
314 | 317 | |
315 | 318 | |
319 | + /** | |
320 | + * | |
321 | + */ | |
322 | + function getPageOfParents($treeNum) { | |
316 | 323 | |
324 | + $this->openConn(); | |
317 | 325 | |
326 | + | |
327 | + $sql = | |
328 | + "SELECT * FROM epitta_articles" . | |
329 | + " WHERE status_code<9 AND tree_number=" . $treeNum; | |
330 | + | |
331 | + //echo "$sql"; | |
332 | + | |
333 | + $rows = $this->getRecord($sql); | |
334 | + | |
335 | + | |
336 | + $this->closeConn(); | |
337 | + | |
338 | + return $rows; | |
339 | + | |
340 | + } | |
341 | + | |
342 | + | |
343 | + | |
318 | 344 | //-------------------------- |
319 | 345 | |
320 | 346 |
@@ -325,20 +351,24 @@ | ||
325 | 351 | $this->openConn(2); |
326 | 352 | |
327 | 353 | |
328 | - //tree_numberを取得 | |
329 | - $sql = | |
330 | - "SELECT tree_number FROM epitta_articles" . | |
331 | - " WHERE status_code<9 AND parent_id=0 ORDER BY id DESC LIMIT 1"; | |
354 | + if ( empty($data['tree_number']) ) { | |
355 | + //tree_numberを取得 | |
356 | + $sql = | |
357 | + "SELECT tree_number FROM epitta_articles" . | |
358 | + " WHERE status_code<9 AND parent_id=0 ORDER BY id DESC LIMIT 1"; | |
332 | 359 | |
333 | - //echo "$sql"; | |
334 | - $data['tree_number'] = 1; | |
335 | - $tree = $this->getRecord($sql, 1); | |
336 | - if ( ! empty($tree) ) { | |
337 | - //var_dump($tree); | |
338 | - $data['tree_number'] = $tree['tree_number'] + 1; | |
360 | + //echo "$sql"; | |
361 | + $data['tree_number'] = 1; | |
362 | + $tree = $this->getRecord($sql, 1); | |
363 | + if ( ! empty($tree) ) { | |
364 | + //var_dump($tree); | |
365 | + $data['tree_number'] = $tree['tree_number'] + 1; | |
366 | + } | |
367 | + | |
339 | 368 | } |
340 | 369 | |
341 | 370 | |
371 | + | |
342 | 372 | //記事のInsert |
343 | 373 | $now = $this->qt( date( "Y-m-d H:i:s", time() ) ); |
344 | 374 |
@@ -15,6 +15,10 @@ | ||
15 | 15 | public function __construct() |
16 | 16 | { |
17 | 17 | |
18 | + //アクセス情報取得 | |
19 | + $this->setAccessInfo(); | |
20 | + | |
21 | + | |
18 | 22 | } |
19 | 23 | |
20 | 24 |
@@ -37,8 +41,9 @@ | ||
37 | 41 | $acs['time'] = date("Y/m/d g:i:s"); |
38 | 42 | $acs['agent'] = $_SERVER['HTTP_USER_AGENT']; |
39 | 43 | $acs['address'] = $_SERVER['REMOTE_ADDR']; |
40 | - $acs['host'] = $_SERVER['REMOTE_HOST']; | |
41 | - $acs['referer'] = $_SERVER['HTTP_REFERER']; | |
44 | + $acs['host'] = $_SERVER['HTTP_HOST']; | |
45 | + $acs['referer'] = ''; | |
46 | + if ( isset($_SERVER['HTTP_REFERER']) ) $acs['referer'] = $_SERVER['HTTP_REFERER']; | |
42 | 47 | |
43 | 48 | if ( ($acs['host'] == "") or ($acs['host'] == $acs['address'])) { |
44 | 49 | $acs['host'] = @gethostbyaddr($acs['address']); |
@@ -88,33 +93,33 @@ | ||
88 | 93 | //OSの取得 |
89 | 94 | //strposなのでIF文の順番に注意 |
90 | 95 | $os = ""; |
91 | - if ( strpos("/Windows NT 6.1/",$acs['agent']) ) { | |
96 | + if ( strpos("Windows NT 6.1",$acs['agent']) >= 0 ) { | |
92 | 97 | $os = "Windows NT 6.1"; |
93 | - } else if ( strpos("/Windows NT 6.0/",$acs['agent']) ) { | |
98 | + } else if ( strpos("Windows NT 6.0",$acs['agent']) >= 0 ) { | |
94 | 99 | $os = "Windows NT 6.0"; |
95 | - } else if ( strpos("/Windows NT 5.2/",$acs['agent']) ) { | |
100 | + } else if ( strpos("Windows NT 5.2",$acs['agent']) >= 0 ) { | |
96 | 101 | $os = "Windows NT 5.2"; |
97 | - } else if ( strpos("/Windows NT 5.1/",$acs['agent']) ) { | |
102 | + } else if ( strpos("Windows NT 5.1",$acs['agent']) >= 0 ) { | |
98 | 103 | $os = "Windows NT 5.1"; |
99 | - } else if ( strpos("/Windows NT 5.0/",$acs['agent']) ) { | |
104 | + } else if ( strpos("Windows NT 5.0",$acs['agent']) >= 0 ) { | |
100 | 105 | $os = "Windows NT 5.0"; |
101 | - } else if ( strpos("/Windows CE/",$acs['agent']) ) { | |
106 | + } else if ( strpos("Windows CE",$acs['agent']) >= 0 ) { | |
102 | 107 | $os = "Windows NT CE"; |
103 | - } else if ( strpos("/Windows 9x/",$acs['agent']) ) { | |
108 | + } else if ( strpos("Windows 9x",$acs['agent']) >= 0 ) { | |
104 | 109 | $os = "Windows NT 9x"; |
105 | 110 | |
106 | 111 | // |
107 | - } else if ( strpos("/Mac OS X/",$acs['agent']) ) { | |
112 | + } else if ( strpos("Mac OS X",$acs['agent']) >= 0 ) { | |
108 | 113 | $os = "Mac OS X"; |
109 | - } else if ( strpos("/Mac/",$acs['agent']) ) { | |
114 | + } else if ( strpos("Mac",$acs['agent']) >= 0 ) { | |
110 | 115 | $os = "Mac"; |
111 | - } else if ( strpos("/iPhone OS/",$acs['agent']) ) { | |
116 | + } else if ( strpos("iPhone OS",$acs['agent']) >= 0 ) { | |
112 | 117 | $os = "iPhone OS"; |
113 | - } else if ( strpos("/Android/",$acs['agent']) ) { | |
118 | + } else if ( strpos("Android",$acs['agent']) >= 0 ) { | |
114 | 119 | $os = "Android"; |
115 | - } else if ( strpos("/CrOS/",$acs['agent']) ) { | |
120 | + } else if ( strpos("CrOS",$acs['agent']) >= 0 ) { | |
116 | 121 | $os = "CrOS"; |
117 | - } else if ( strpos("/Linux/",$acs['agent']) ) { | |
122 | + } else if ( strpos("Linux",$acs['agent']) >= 0 ) { | |
118 | 123 | $os = "Linux"; |
119 | 124 | } |
120 | 125 |
@@ -153,7 +158,11 @@ | ||
153 | 158 | } else { //PCっぽいもの |
154 | 159 | $acs['plfm'] = "pc"; |
155 | 160 | $acs['platform'] = $os; |
156 | - $acs['os'] = $os; | |
161 | + if ( $os ) { | |
162 | + $acs['os'] = $os; | |
163 | + } else { | |
164 | + $acs['os'] = "Unknown"; | |
165 | + } | |
157 | 166 | |
158 | 167 | } |
159 | 168 |
@@ -33,8 +33,6 @@ | ||
33 | 33 | 'modipt' =>array( 'act'=>'Post', 'func'=>'modifyInput' ), |
34 | 34 | 'modcfm' =>array( 'act'=>'Post', 'func'=>'modifyConfirm' ), |
35 | 35 | 'modify' =>array( 'act'=>'Post', 'func'=>'modify' ), |
36 | - 'delcfm' =>array( 'act'=>'Post', 'func'=>'deleteConfrim' ), | |
37 | - 'delete' =>array( 'act'=>'Post', 'func'=>'delete' ), | |
38 | 36 | |
39 | 37 | ); |
40 | 38 |
@@ -1,4 +1,4 @@ | ||
1 | -<?php if ( ! defined('BASEPATH')) exit('Denied Access'); | |
1 | +<?php if ( ! defined('BASEPATH')) exit('Denied Access'); | |
2 | 2 | /** |
3 | 3 | * Epitta BB |
4 | 4 | * |
@@ -1,4 +1,4 @@ | ||
1 | -<?php if ( ! defined('BASEPATH')) exit('Denied Access'); | |
1 | +<?php if ( ! defined('BASEPATH')) exit('Denied Access'); | |
2 | 2 | /** |
3 | 3 | * Epitta BB |
4 | 4 | * |
@@ -1,4 +1,4 @@ | ||
1 | -<?php if ( ! defined('BASEPATH')) exit('Denied Access'); | |
1 | +<?php if ( ! defined('BASEPATH')) exit('Denied Access'); | |
2 | 2 | /** |
3 | 3 | * Epitta BB |
4 | 4 | * |
@@ -109,7 +109,7 @@ | ||
109 | 109 | $errFlag = true; |
110 | 110 | } |
111 | 111 | |
112 | - } else if ( $odr == "alpha_dash" ) { | |
112 | + } else if ( $odr == "alpha_plus" ) { | |
113 | 113 | //英数字・アンダーバー・ハイフン |
114 | 114 | if ( ! $this->alpha_plus($value) ) { |
115 | 115 | array_push( $this->errMsgs, $name . $this->getMessage("006") ); |
@@ -328,7 +328,7 @@ | ||
328 | 328 | function alpha_plus($str) |
329 | 329 | { |
330 | 330 | if ( empty($str) ) return true; |
331 | - return ( ! preg_match("/^([-a-z0-9_-])+$/i", $str)) ? false : true; | |
331 | + return ( ! preg_match("/^([a-zA-Z0-9_-])+$/i", $str)) ? false : true; | |
332 | 332 | } |
333 | 333 | |
334 | 334 | /** |
@@ -1,4 +1,4 @@ | ||
1 | -<?php if ( ! defined('BASEPATH')) exit('Denied Access'); | |
1 | +<?php if ( ! defined('BASEPATH')) exit('Denied Access'); | |
2 | 2 | /** |
3 | 3 | * Epitta BB |
4 | 4 | * |
@@ -1,4 +1,4 @@ | ||
1 | -<?php if ( ! defined('BASEPATH')) exit('Denied Access'); | |
1 | +<?php if ( ! defined('BASEPATH')) exit('Denied Access'); | |
2 | 2 | /** |
3 | 3 | * Epitta BB |
4 | 4 | * |
@@ -60,7 +60,11 @@ | ||
60 | 60 | session_cache_expire(0); |
61 | 61 | */ |
62 | 62 | |
63 | +// | |
64 | +session_cache_limiter('private_no_expire'); | |
63 | 65 | |
66 | + | |
67 | + | |
64 | 68 | // |
65 | 69 | //mb_regex_encoding('UTF-8'); |
66 | 70 |
@@ -42,8 +42,6 @@ | ||
42 | 42 | $this->init(); |
43 | 43 | |
44 | 44 | |
45 | - | |
46 | - | |
47 | 45 | //前フィルター |
48 | 46 | require_once( APPPATH . '/filters/first_filter.php'); |
49 | 47 | $fstflt = new First_Filter(); |
@@ -56,7 +54,7 @@ | ||
56 | 54 | |
57 | 55 | //後フィルター |
58 | 56 | require_once( APPPATH . '/filters/late_filter.php'); |
59 | - $fstflt = new First_Filter(); | |
57 | + $ltflt = new Late_Filter(); | |
60 | 58 | |
61 | 59 | |
62 | 60 | //アクション |
@@ -53,16 +53,29 @@ | ||
53 | 53 | 'submitKey' => '投稿キーワード', |
54 | 54 | 'submitButton' => ' 投 稿 ', |
55 | 55 | |
56 | +'responseTo' => '返信対象', | |
56 | 57 | |
57 | -'previous' => '前へ', | |
58 | -'next' => '次へ', | |
59 | -'setup' => 'セットアップ', | |
58 | +'articleUnitName' => 'Page', | |
59 | +'treeUnitName' => 'Tree', | |
60 | +'threadUnitName' => 'Thread', | |
61 | +'topicUnitName' => 'Topic', | |
62 | +'previous' => 'Prev', | |
63 | +'next' => 'Next', | |
64 | +'setup' => 'セットアップ', | |
60 | 65 | |
61 | 66 | |
62 | -'preview' => 'プレビュー', | |
63 | -'postInvalid' => '入力に不備があります', | |
67 | +'articleSetButton' => '記事', | |
68 | +'pageSetButton' => 'ページ', | |
64 | 69 | |
70 | +'preview' => 'プレビュー', | |
65 | 71 | |
72 | + | |
73 | +'displayThreadsAll' => 'スレッドの全記事を表示', | |
74 | + | |
75 | + | |
76 | +'postInvalid' => '入力に不備があります', | |
77 | + | |
78 | + | |
66 | 79 | ); |
67 | 80 | |
68 | 81 |
@@ -80,7 +80,7 @@ | ||
80 | 80 | |
81 | 81 | div.menubar { |
82 | 82 | background-color:#ccddff; |
83 | - margin: 10px 1px; | |
83 | + margin: 1px 1px; | |
84 | 84 | padding: 1px 4px; |
85 | 85 | clear:both; |
86 | 86 | } |
@@ -158,6 +158,12 @@ | ||
158 | 158 | |
159 | 159 | } |
160 | 160 | |
161 | + | |
162 | +div.topicFrame table { | |
163 | + width: 100%; | |
164 | + | |
165 | +} | |
166 | + | |
161 | 167 | /* articleInput */ |
162 | 168 | div.inputForm { |
163 | 169 |
@@ -7,7 +7,7 @@ | ||
7 | 7 | <div class="topicFrame"> |
8 | 8 | <table border="1" cellspacing=0> |
9 | 9 | <tr> |
10 | -<th> </th><th>トピック</th><th>投稿者</th><th>返信</th><th>最新記事</th> | |
10 | +<th>No</th><th>トピック</th><th>投稿者</th><th>返信</th><th>最新記事</th> | |
11 | 11 | </tr> |
12 | 12 | HTML; |
13 | 13 |
@@ -23,8 +23,8 @@ | ||
23 | 23 | $myContent = ''; |
24 | 24 | $myContent .=<<< HTML |
25 | 25 | <tr> |
26 | -<td> | |
27 | -[TR:{$art['tree_number']}:{$art['id']}] | |
26 | +<td width="40px"> | |
27 | +<div class="ctr">{$art['tree_number']}<!--<br />No.{$art['id']}--></div> | |
28 | 28 | </td> |
29 | 29 | <td> |
30 | 30 | <div style="border:1px solid #678;"> |
@@ -32,7 +32,7 @@ | ||
32 | 32 | </div> |
33 | 33 | </td> |
34 | 34 | <td>{$art['author']}</td> |
35 | -<td>{$art['res']}</td> | |
35 | +<td width="50px" class="ctr">{$art['res']}</td> | |
36 | 36 | <td> |
37 | 37 | HTML; |
38 | 38 |
@@ -7,7 +7,7 @@ | ||
7 | 7 | $myContent .=<<< HTML |
8 | 8 | <div class="tree"> |
9 | 9 | <div style="border:1px solid #678;"> |
10 | - <a href="?act=trsgl&t={$art['tree_number']}">[TR:{$art['tree_number']}:{$art['id']}]</>:<a href="?act=sngl&a={$art['id']}">{$art['subject']}</a> {$art['author']} {$art['created_at']} | |
10 | + <a href="?act=trsgl&t={$art['tree_number']}">[TR:{$art['tree_number']}]</a>:<a href="?act=sngl&a={$art['id']}">[{$art['id']}]:{$art['subject']}</a> {$art['author']} {$art['created_at']} | |
11 | 11 | </div> |
12 | 12 | </div> |
13 | 13 |
@@ -22,7 +22,7 @@ | ||
22 | 22 | $myContent = ''; |
23 | 23 | $myContent .=<<< HTML |
24 | 24 | <div style="border:1px solid #678;"> |
25 | - {$twig}[TR:{$art['tree_number']}:【{$art['id']}】][pid:{$art['parent_id']}]:{$art['subject']} {$art['author']} {$art['created_at']} | |
25 | + {$twig}<!--{$art['tree_number']}--><a href="?act=sngl&a={$art['id']}">【{$art['id']}】][pid:{$art['parent_id']}]:{$art['subject']}</a> {$art['author']} {$art['created_at']} | |
26 | 26 | </div> |
27 | 27 | HTML; |
28 | 28 |
@@ -11,6 +11,7 @@ | ||
11 | 11 | $kword = makeKeyword($postSet['keyword_on'], $postSet['keyword_q'], $postSet['keyword_a']); |
12 | 12 | $prev = makePreview($postSet['preview']); |
13 | 13 | $err = makeError($postSet['errMessage'], $postSet['errMsgAry']); |
14 | + $prnt = makeResponseTo($postSet['resto']); | |
14 | 15 | |
15 | 16 | |
16 | 17 | $myContent = ''; |
@@ -108,6 +109,9 @@ | ||
108 | 109 | </table> |
109 | 110 | |
110 | 111 | </div> |
112 | + | |
113 | +{$prnt} | |
114 | + | |
111 | 115 | </div> |
112 | 116 | HTML; |
113 | 117 |
@@ -133,6 +137,21 @@ | ||
133 | 137 | } |
134 | 138 | |
135 | 139 | |
140 | +function makeResponseTo($resTo) { | |
141 | + if (! $resTo) return ''; | |
142 | + | |
143 | + $myContent = ''; | |
144 | +$myContent .=<<< HTML | |
145 | + <div class="responseTo"> | |
146 | + <div class="responseToTitle">【{$GLOBALS['LNG']['responseTo']}】</div> | |
147 | + {$resTo} | |
148 | + </div> | |
149 | +HTML; | |
150 | + | |
151 | + return $myContent; | |
152 | +} | |
153 | + | |
154 | + | |
136 | 155 | function makeError($msg, $msgAry) { |
137 | 156 | if (! $msg) return ''; |
138 | 157 |
@@ -19,8 +19,12 @@ | ||
19 | 19 | {$clipfiles} |
20 | 20 | |
21 | 21 | <br /> |
22 | -<form class="button res"> | |
23 | -<input type="submit" value="返信" class="resBtn" /> | |
22 | +<form method="post" action="{$baseSet['script']}?act=crtipt" class="button res"> | |
23 | + <input name="id" type="hidden" value="{$baseSet['id']}" /> | |
24 | + <input name="plfm" type="hidden" value="{$baseSet['plfm']}" /> | |
25 | + <input name="tree_number" type="hidden" value="{$art['tree_number']}" /> | |
26 | + <input name="parent_id" type="hidden" value="{$art['id']}" /> | |
27 | + <input type="submit" value="返信" class="resBtn" /> | |
24 | 28 | </form> |
25 | 29 | |
26 | 30 | {$editBtn} |
@@ -158,10 +162,10 @@ | ||
158 | 162 | |
159 | 163 | $myContent .=<<< HTML |
160 | 164 | <form class="button edit"> |
161 | -<input type="hidden" name="id" value="" /> | |
162 | -<input type="hidden" name="plfm" value="" /> | |
163 | -<input type="hidden" name="article_id" value="" /> | |
164 | -<input type="hidden" name="act" value="" /> | |
165 | +<input type="hidden" name="id" value="$id" /> | |
166 | +<input type="hidden" name="plfm" value="$plfm" /> | |
167 | +<input type="hidden" name="article_id" value="$articleId" /> | |
168 | +<input type="hidden" name="act" value="modipt" /> | |
165 | 169 | <input type="submit" value="編集" class="button" /> |
166 | 170 | </form> |
167 | 171 | HTML; |
@@ -170,10 +174,10 @@ | ||
170 | 174 | |
171 | 175 | $myContent .=<<< HTML |
172 | 176 | <form class="button edit"> |
173 | -<input type="hidden" name="id" value="" /> | |
174 | -<input type="hidden" name="plfm" value="" /> | |
175 | -<input type="hidden" name="article_id" value="" /> | |
176 | -<input type="hidden" name="act" value="" /> | |
177 | +<input type="hidden" name="id" value="$id" /> | |
178 | +<input type="hidden" name="plfm" value="$plfm" /> | |
179 | +<input type="hidden" name="article_id" value="$articleId" /> | |
180 | +<input type="hidden" name="act" value="modipt" /> | |
177 | 181 | <input type="submit" value="追記" class="button" /> |
178 | 182 | </form> |
179 | 183 | HTML; |
@@ -28,9 +28,7 @@ | ||
28 | 28 | |
29 | 29 | <div> |
30 | 30 | <?php |
31 | -if ($this->set['pager']==1) { | |
32 | - echo makePageGuide($this->page, $this->unit, $this->set['total'], $this->baseSet); | |
33 | -} | |
31 | +echo makePageGuide($this->page, $this->artlSet, $this->baseSet); | |
34 | 32 | ?> |
35 | 33 | </div> |
36 | 34 |
@@ -46,9 +44,7 @@ | ||
46 | 44 | |
47 | 45 | <div> |
48 | 46 | <?php |
49 | -if ($this->set['pager']==1) { | |
50 | - echo makePagenation($this->page, $this->unit, $this->set['total'], $this->baseSet); | |
51 | -} | |
47 | +echo makePagenation($this->page, $this->artlSet, $this->baseSet); | |
52 | 48 | ?> |
53 | 49 | </div> |
54 | 50 |
@@ -104,12 +104,22 @@ | ||
104 | 104 | } |
105 | 105 | |
106 | 106 | |
107 | -function getThreadFootHtml() { | |
107 | +function getThreadFootHtml($treeNum, $baseSet, $mode=1) { | |
108 | 108 | |
109 | 109 | $content =<<< HTML |
110 | 110 | </div> |
111 | 111 | HTML; |
112 | 112 | |
113 | +if ( $mode == 1 ) { | |
114 | +$content .=<<< HTML | |
115 | +<div><a href="{$baseSet['linkBaseUrl']}&act=thsgl&t=$treeNum">{$GLOBALS['LNG']['displayThreadsAll']}</a></div> | |
116 | +HTML; | |
117 | +} | |
118 | + | |
119 | +$content .=<<< HTML | |
120 | +<br /> | |
121 | +HTML; | |
122 | + | |
113 | 123 | return $content; |
114 | 124 | |
115 | 125 | } |