Verzeichnisstruktur phpBB-3.1.0
- Veröffentlicht
- 27.10.2014
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
acp_main.php
001 <?php
002 /**
003 *
004 * This file is part of the phpBB Forum Software package.
005 *
006 * @copyright (c) phpBB Limited <https://www.phpbb.com>
007 * @license GNU General Public License, version 2 (GPL-2.0)
008 *
009 * For full copyright and license information, please see
010 * the docs/CREDITS.txt file.
011 *
012 */
013
014 /**
015 * @ignore
016 */
017 if (!defined('IN_PHPBB'))
018 {
019 exit;
020 }
021
022 class acp_main
023 {
024 var $u_action;
025
026 function main($id, $mode)
027 {
028 global $config, $db, $cache, $user, $auth, $template, $request;
029 global $phpbb_root_path, $phpbb_admin_path, $phpEx, $phpbb_container, $phpbb_dispatcher;
030
031 // Show restore permissions notice
032 if ($user->data['user_perm_from'] && $auth->acl_get('a_switchperm'))
033 {
034 $this->tpl_name = 'acp_main';
035 $this->page_title = 'ACP_MAIN';
036
037 $sql = 'SELECT user_id, username, user_colour
038 FROM ' . USERS_TABLE . '
039 WHERE user_id = ' . $user->data['user_perm_from'];
040 $result = $db->sql_query($sql);
041 $user_row = $db->sql_fetchrow($result);
042 $db->sql_freeresult($result);
043
044 $perm_from = get_username_string('full', $user_row['user_id'], $user_row['username'], $user_row['user_colour']);
045
046 $template->assign_vars(array(
047 'S_RESTORE_PERMISSIONS' => true,
048 'U_RESTORE_PERMISSIONS' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=restore_perm'),
049 'PERM_FROM' => $perm_from,
050 'L_PERMISSIONS_TRANSFERRED_EXPLAIN' => sprintf($user->lang['PERMISSIONS_TRANSFERRED_EXPLAIN'], $perm_from, append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=restore_perm')),
051 ));
052
053 return;
054 }
055
056 $action = request_var('action', '');
057
058 if ($action)
059 {
060 if ($action === 'admlogout')
061 {
062 $user->unset_admin();
063 redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
064 }
065
066 if (!confirm_box(true))
067 {
068 switch ($action)
069 {
070 case 'online':
071 $confirm = true;
072 $confirm_lang = 'RESET_ONLINE_CONFIRM';
073 break;
074 case 'stats':
075 $confirm = true;
076 $confirm_lang = 'RESYNC_STATS_CONFIRM';
077 break;
078 case 'user':
079 $confirm = true;
080 $confirm_lang = 'RESYNC_POSTCOUNTS_CONFIRM';
081 break;
082 case 'date':
083 $confirm = true;
084 $confirm_lang = 'RESET_DATE_CONFIRM';
085 break;
086 case 'db_track':
087 $confirm = true;
088 $confirm_lang = 'RESYNC_POST_MARKING_CONFIRM';
089 break;
090 case 'purge_cache':
091 $confirm = true;
092 $confirm_lang = 'PURGE_CACHE_CONFIRM';
093 break;
094 case 'purge_sessions':
095 $confirm = true;
096 $confirm_lang = 'PURGE_SESSIONS_CONFIRM';
097 break;
098
099 default:
100 $confirm = true;
101 $confirm_lang = 'CONFIRM_OPERATION';
102 }
103
104 if ($confirm)
105 {
106 confirm_box(false, $user->lang[$confirm_lang], build_hidden_fields(array(
107 'i' => $id,
108 'mode' => $mode,
109 'action' => $action,
110 )));
111 }
112 }
113 else
114 {
115 switch ($action)
116 {
117
118 case 'online':
119 if (!$auth->acl_get('a_board'))
120 {
121 trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);
122 }
123
124 set_config('record_online_users', 1, true);
125 set_config('record_online_date', time(), true);
126 add_log('admin', 'LOG_RESET_ONLINE');
127
128 if ($request->is_ajax())
129 {
130 trigger_error('RESET_ONLINE_SUCCESS');
131 }
132 break;
133
134 case 'stats':
135 if (!$auth->acl_get('a_board'))
136 {
137 trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);
138 }
139
140 $sql = 'SELECT COUNT(post_id) AS stat
141 FROM ' . POSTS_TABLE . '
142 WHERE post_visibility = ' . ITEM_APPROVED;
143 $result = $db->sql_query($sql);
144 set_config('num_posts', (int) $db->sql_fetchfield('stat'), true);
145 $db->sql_freeresult($result);
146
147 $sql = 'SELECT COUNT(topic_id) AS stat
148 FROM ' . TOPICS_TABLE . '
149 WHERE topic_visibility = ' . ITEM_APPROVED;
150 $result = $db->sql_query($sql);
151 set_config('num_topics', (int) $db->sql_fetchfield('stat'), true);
152 $db->sql_freeresult($result);
153
154 $sql = 'SELECT COUNT(user_id) AS stat
155 FROM ' . USERS_TABLE . '
156 WHERE user_type IN (' . USER_NORMAL . ',' . USER_FOUNDER . ')';
157 $result = $db->sql_query($sql);
158 set_config('num_users', (int) $db->sql_fetchfield('stat'), true);
159 $db->sql_freeresult($result);
160
161 $sql = 'SELECT COUNT(attach_id) as stat
162 FROM ' . ATTACHMENTS_TABLE . '
163 WHERE is_orphan = 0';
164 $result = $db->sql_query($sql);
165 set_config('num_files', (int) $db->sql_fetchfield('stat'), true);
166 $db->sql_freeresult($result);
167
168 $sql = 'SELECT SUM(filesize) as stat
169 FROM ' . ATTACHMENTS_TABLE . '
170 WHERE is_orphan = 0';
171 $result = $db->sql_query($sql);
172 set_config('upload_dir_size', (float) $db->sql_fetchfield('stat'), true);
173 $db->sql_freeresult($result);
174
175 if (!function_exists('update_last_username'))
176 {
177 include($phpbb_root_path . "includes/functions_user.$phpEx");
178 }
179 update_last_username();
180
181 add_log('admin', 'LOG_RESYNC_STATS');
182
183 if ($request->is_ajax())
184 {
185 trigger_error('RESYNC_STATS_SUCCESS');
186 }
187 break;
188
189 case 'user':
190 if (!$auth->acl_get('a_board'))
191 {
192 trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);
193 }
194
195 // Resync post counts
196 $start = $max_post_id = 0;
197
198 // Find the maximum post ID, we can only stop the cycle when we've reached it
199 $sql = 'SELECT MAX(forum_last_post_id) as max_post_id
200 FROM ' . FORUMS_TABLE;
201 $result = $db->sql_query($sql);
202 $max_post_id = (int) $db->sql_fetchfield('max_post_id');
203 $db->sql_freeresult($result);
204
205 // No maximum post id? :o
206 if (!$max_post_id)
207 {
208 $sql = 'SELECT MAX(post_id) as max_post_id
209 FROM ' . POSTS_TABLE;
210 $result = $db->sql_query($sql);
211 $max_post_id = (int) $db->sql_fetchfield('max_post_id');
212 $db->sql_freeresult($result);
213 }
214
215 // Still no maximum post id? Then we are finished
216 if (!$max_post_id)
217 {
218 add_log('admin', 'LOG_RESYNC_POSTCOUNTS');
219 break;
220 }
221
222 $step = ($config['num_posts']) ? (max((int) ($config['num_posts'] / 5), 20000)) : 20000;
223 $db->sql_query('UPDATE ' . USERS_TABLE . ' SET user_posts = 0');
224
225 while ($start < $max_post_id)
226 {
227 $sql = 'SELECT COUNT(post_id) AS num_posts, poster_id
228 FROM ' . POSTS_TABLE . '
229 WHERE post_id BETWEEN ' . ($start + 1) . ' AND ' . ($start + $step) . '
230 AND post_postcount = 1 AND post_visibility = ' . ITEM_APPROVED . '
231 GROUP BY poster_id';
232 $result = $db->sql_query($sql);
233
234 if ($row = $db->sql_fetchrow($result))
235 {
236 do
237 {
238 $sql = 'UPDATE ' . USERS_TABLE . " SET user_posts = user_posts + {$row['num_posts']} WHERE user_id = {$row['poster_id']}";
239 $db->sql_query($sql);
240 }
241 while ($row = $db->sql_fetchrow($result));
242 }
243 $db->sql_freeresult($result);
244
245 $start += $step;
246 }
247
248 add_log('admin', 'LOG_RESYNC_POSTCOUNTS');
249
250 if ($request->is_ajax())
251 {
252 trigger_error('RESYNC_POSTCOUNTS_SUCCESS');
253 }
254 break;
255
256 case 'date':
257 if (!$auth->acl_get('a_board'))
258 {
259 trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);
260 }
261
262 set_config('board_startdate', time() - 1);
263 add_log('admin', 'LOG_RESET_DATE');
264
265 if ($request->is_ajax())
266 {
267 trigger_error('RESET_DATE_SUCCESS');
268 }
269 break;
270
271 case 'db_track':
272 switch ($db->get_sql_layer())
273 {
274 case 'sqlite':
275 case 'sqlite3':
276 $db->sql_query('DELETE FROM ' . TOPICS_POSTED_TABLE);
277 break;
278
279 default:
280 $db->sql_query('TRUNCATE TABLE ' . TOPICS_POSTED_TABLE);
281 break;
282 }
283
284 // This can get really nasty... therefore we only do the last six months
285 $get_from_time = time() - (6 * 4 * 7 * 24 * 60 * 60);
286
287 // Select forum ids, do not include categories
288 $sql = 'SELECT forum_id
289 FROM ' . FORUMS_TABLE . '
290 WHERE forum_type <> ' . FORUM_CAT;
291 $result = $db->sql_query($sql);
292
293 $forum_ids = array();
294 while ($row = $db->sql_fetchrow($result))
295 {
296 $forum_ids[] = $row['forum_id'];
297 }
298 $db->sql_freeresult($result);
299
300 // Any global announcements? ;)
301 $forum_ids[] = 0;
302
303 // Now go through the forums and get us some topics...
304 foreach ($forum_ids as $forum_id)
305 {
306 $sql = 'SELECT p.poster_id, p.topic_id
307 FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t
308 WHERE t.forum_id = ' . $forum_id . '
309 AND t.topic_moved_id = 0
310 AND t.topic_last_post_time > ' . $get_from_time . '
311 AND t.topic_id = p.topic_id
312 AND p.poster_id <> ' . ANONYMOUS . '
313 GROUP BY p.poster_id, p.topic_id';
314 $result = $db->sql_query($sql);
315
316 $posted = array();
317 while ($row = $db->sql_fetchrow($result))
318 {
319 $posted[$row['poster_id']][] = $row['topic_id'];
320 }
321 $db->sql_freeresult($result);
322
323 $sql_ary = array();
324 foreach ($posted as $user_id => $topic_row)
325 {
326 foreach ($topic_row as $topic_id)
327 {
328 $sql_ary[] = array(
329 'user_id' => (int) $user_id,
330 'topic_id' => (int) $topic_id,
331 'topic_posted' => 1,
332 );
333 }
334 }
335 unset($posted);
336
337 if (sizeof($sql_ary))
338 {
339 $db->sql_multi_insert(TOPICS_POSTED_TABLE, $sql_ary);
340 }
341 }
342
343 add_log('admin', 'LOG_RESYNC_POST_MARKING');
344
345 if ($request->is_ajax())
346 {
347 trigger_error('RESYNC_POST_MARKING_SUCCESS');
348 }
349 break;
350
351 case 'purge_cache':
352 $config->increment('assets_version', 1);
353 $cache->purge();
354
355 // Clear permissions
356 $auth->acl_clear_prefetch();
357 phpbb_cache_moderators($db, $cache, $auth);
358
359 add_log('admin', 'LOG_PURGE_CACHE');
360
361 if ($request->is_ajax())
362 {
363 trigger_error('PURGE_CACHE_SUCCESS');
364 }
365 break;
366
367 case 'purge_sessions':
368 if ((int) $user->data['user_type'] !== USER_FOUNDER)
369 {
370 trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);
371 }
372
373 $tables = array(CONFIRM_TABLE, SESSIONS_TABLE);
374
375 foreach ($tables as $table)
376 {
377 switch ($db->get_sql_layer())
378 {
379 case 'sqlite':
380 case 'sqlite3':
381 $db->sql_query("DELETE FROM $table");
382 break;
383
384 default:
385 $db->sql_query("TRUNCATE TABLE $table");
386 break;
387 }
388 }
389
390 // let's restore the admin session
391 $reinsert_ary = array(
392 'session_id' => (string) $user->session_id,
393 'session_page' => (string) substr($user->page['page'], 0, 199),
394 'session_forum_id' => $user->page['forum'],
395 'session_user_id' => (int) $user->data['user_id'],
396 'session_start' => (int) $user->data['session_start'],
397 'session_last_visit' => (int) $user->data['session_last_visit'],
398 'session_time' => (int) $user->time_now,
399 'session_browser' => (string) trim(substr($user->browser, 0, 149)),
400 'session_forwarded_for' => (string) $user->forwarded_for,
401 'session_ip' => (string) $user->ip,
402 'session_autologin' => (int) $user->data['session_autologin'],
403 'session_admin' => 1,
404 'session_viewonline' => (int) $user->data['session_viewonline'],
405 );
406
407 $sql = 'INSERT INTO ' . SESSIONS_TABLE . ' ' . $db->sql_build_array('INSERT', $reinsert_ary);
408 $db->sql_query($sql);
409
410 add_log('admin', 'LOG_PURGE_SESSIONS');
411
412 if ($request->is_ajax())
413 {
414 trigger_error('PURGE_SESSIONS_SUCCESS');
415 }
416 break;
417 }
418 }
419 }
420
421 // Version check
422 $user->add_lang('install');
423
424 if ($auth->acl_get('a_server') && version_compare(PHP_VERSION, '5.3.3', '<'))
425 {
426 $template->assign_vars(array(
427 'S_PHP_VERSION_OLD' => true,
428 'L_PHP_VERSION_OLD' => sprintf($user->lang['PHP_VERSION_OLD'], '<a href="https://www.phpbb.com/community/viewtopic.php?f=14&t=2152375">', '</a>'),
429 ));
430 }
431
432 $version_helper = $phpbb_container->get('version_helper');
433 try
434 {
435 $recheck = $request->variable('versioncheck_force', false);
436 $updates_available = $version_helper->get_suggested_updates($recheck);
437
438 $template->assign_var('S_VERSION_UP_TO_DATE', empty($updates_available));
439 }
440 catch (\RuntimeException $e)
441 {
442 $template->assign_vars(array(
443 'S_VERSIONCHECK_FAIL' => true,
444 'VERSIONCHECK_FAIL_REASON' => ($e->getMessage() !== $user->lang('VERSIONCHECK_FAIL')) ? $e->getMessage() : '',
445 ));
446 }
447
448 /**
449 * Notice admin
450 *
451 * @event core.acp_main_notice
452 * @since 3.1.0-RC3
453 */
454 $phpbb_dispatcher->dispatch('core.acp_main_notice');
455
456 // Get forum statistics
457 $total_posts = $config['num_posts'];
458 $total_topics = $config['num_topics'];
459 $total_users = $config['num_users'];
460 $total_files = $config['num_files'];
461
462 $start_date = $user->format_date($config['board_startdate']);
463
464 $boarddays = (time() - $config['board_startdate']) / 86400;
465
466 $posts_per_day = sprintf('%.2f', $total_posts / $boarddays);
467 $topics_per_day = sprintf('%.2f', $total_topics / $boarddays);
468 $users_per_day = sprintf('%.2f', $total_users / $boarddays);
469 $files_per_day = sprintf('%.2f', $total_files / $boarddays);
470
471 $upload_dir_size = get_formatted_filesize($config['upload_dir_size']);
472
473 $avatar_dir_size = 0;
474
475 if ($avatar_dir = @opendir($phpbb_root_path . $config['avatar_path']))
476 {
477 while (($file = readdir($avatar_dir)) !== false)
478 {
479 if ($file[0] != '.' && $file != 'CVS' && strpos($file, 'index.') === false)
480 {
481 $avatar_dir_size += filesize($phpbb_root_path . $config['avatar_path'] . '/' . $file);
482 }
483 }
484 closedir($avatar_dir);
485
486 $avatar_dir_size = get_formatted_filesize($avatar_dir_size);
487 }
488 else
489 {
490 // Couldn't open Avatar dir.
491 $avatar_dir_size = $user->lang['NOT_AVAILABLE'];
492 }
493
494 if ($posts_per_day > $total_posts)
495 {
496 $posts_per_day = $total_posts;
497 }
498
499 if ($topics_per_day > $total_topics)
500 {
501 $topics_per_day = $total_topics;
502 }
503
504 if ($users_per_day > $total_users)
505 {
506 $users_per_day = $total_users;
507 }
508
509 if ($files_per_day > $total_files)
510 {
511 $files_per_day = $total_files;
512 }
513
514 if ($config['allow_attachments'] || $config['allow_pm_attach'])
515 {
516 $sql = 'SELECT COUNT(attach_id) AS total_orphan
517 FROM ' . ATTACHMENTS_TABLE . '
518 WHERE is_orphan = 1
519 AND filetime < ' . (time() - 3*60*60);
520 $result = $db->sql_query($sql);
521 $total_orphan = (int) $db->sql_fetchfield('total_orphan');
522 $db->sql_freeresult($result);
523 }
524 else
525 {
526 $total_orphan = false;
527 }
528
529 $dbsize = get_database_size();
530
531 $template->assign_vars(array(
532 'TOTAL_POSTS' => $total_posts,
533 'POSTS_PER_DAY' => $posts_per_day,
534 'TOTAL_TOPICS' => $total_topics,
535 'TOPICS_PER_DAY' => $topics_per_day,
536 'TOTAL_USERS' => $total_users,
537 'USERS_PER_DAY' => $users_per_day,
538 'TOTAL_FILES' => $total_files,
539 'FILES_PER_DAY' => $files_per_day,
540 'START_DATE' => $start_date,
541 'AVATAR_DIR_SIZE' => $avatar_dir_size,
542 'DBSIZE' => $dbsize,
543 'UPLOAD_DIR_SIZE' => $upload_dir_size,
544 'TOTAL_ORPHAN' => $total_orphan,
545 'S_TOTAL_ORPHAN' => ($total_orphan === false) ? false : true,
546 'GZIP_COMPRESSION' => ($config['gzip_compress'] && @extension_loaded('zlib')) ? $user->lang['ON'] : $user->lang['OFF'],
547 'DATABASE_INFO' => $db->sql_server_info(),
548 'BOARD_VERSION' => $config['version'],
549
550 'U_ACTION' => $this->u_action,
551 'U_ADMIN_LOG' => append_sid("{$phpbb_admin_path}index.$phpEx", 'i=logs&mode=admin'),
552 'U_INACTIVE_USERS' => append_sid("{$phpbb_admin_path}index.$phpEx", 'i=inactive&mode=list'),
553 'U_VERSIONCHECK' => append_sid("{$phpbb_admin_path}index.$phpEx", 'i=update&mode=version_check'),
554 'U_VERSIONCHECK_FORCE' => append_sid("{$phpbb_admin_path}index.$phpEx", 'versioncheck_force=1'),
555
556 'S_ACTION_OPTIONS' => ($auth->acl_get('a_board')) ? true : false,
557 'S_FOUNDER' => ($user->data['user_type'] == USER_FOUNDER) ? true : false,
558 )
559 );
560
561 $log_data = array();
562 $log_count = false;
563
564 if ($auth->acl_get('a_viewlogs'))
565 {
566 view_log('admin', $log_data, $log_count, 5);
567
568 foreach ($log_data as $row)
569 {
570 $template->assign_block_vars('log', array(
571 'USERNAME' => $row['username_full'],
572 'IP' => $row['ip'],
573 'DATE' => $user->format_date($row['time']),
574 'ACTION' => $row['action'])
575 );
576 }
577 }
578
579 if ($auth->acl_get('a_user'))
580 {
581 $user->add_lang('memberlist');
582
583 $inactive = array();
584 $inactive_count = 0;
585
586 view_inactive_users($inactive, $inactive_count, 10);
587
588 foreach ($inactive as $row)
589 {
590 $template->assign_block_vars('inactive', array(
591 'INACTIVE_DATE' => $user->format_date($row['user_inactive_time']),
592 'REMINDED_DATE' => $user->format_date($row['user_reminded_time']),
593 'JOINED' => $user->format_date($row['user_regdate']),
594 'LAST_VISIT' => (!$row['user_lastvisit']) ? ' - ' : $user->format_date($row['user_lastvisit']),
595
596 'REASON' => $row['inactive_reason'],
597 'USER_ID' => $row['user_id'],
598 'POSTS' => ($row['user_posts']) ? $row['user_posts'] : 0,
599 'REMINDED' => $row['user_reminded'],
600
601 'REMINDED_EXPLAIN' => $user->lang('USER_LAST_REMINDED', (int) $row['user_reminded'], $user->format_date($row['user_reminded_time'])),
602
603 'USERNAME_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], false, append_sid("{$phpbb_admin_path}index.$phpEx", 'i=users&mode=overview')),
604 'USERNAME' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']),
605 'USER_COLOR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']),
606
607 'U_USER_ADMIN' => append_sid("{$phpbb_admin_path}index.$phpEx", "i=users&mode=overview&u={$row['user_id']}"),
608 'U_SEARCH_USER' => ($auth->acl_get('u_search')) ? append_sid("{$phpbb_root_path}search.$phpEx", "author_id={$row['user_id']}&sr=posts") : '',
609 ));
610 }
611
612 $option_ary = array('activate' => 'ACTIVATE', 'delete' => 'DELETE');
613 if ($config['email_enable'])
614 {
615 $option_ary += array('remind' => 'REMIND');
616 }
617
618 $template->assign_vars(array(
619 'S_INACTIVE_USERS' => true,
620 'S_INACTIVE_OPTIONS' => build_select($option_ary))
621 );
622 }
623
624 // Warn if install is still present
625 if (file_exists($phpbb_root_path . 'install') && !is_file($phpbb_root_path . 'install'))
626 {
627 $template->assign_var('S_REMOVE_INSTALL', true);
628 }
629
630 // Warn if no search index is created
631 if ($config['num_posts'] && class_exists($config['search_type']))
632 {
633 $error = false;
634 $search_type = $config['search_type'];
635 $search = new $search_type($error, $phpbb_root_path, $phpEx, $auth, $config, $db, $user);
636
637 if (!$search->index_created())
638 {
639 $template->assign_vars(array(
640 'S_SEARCH_INDEX_MISSING' => true,
641 'L_NO_SEARCH_INDEX' => $user->lang('NO_SEARCH_INDEX', $search->get_name(), '<a href="' . append_sid("{$phpbb_admin_path}index.$phpEx", 'i=acp_search&mode=index') . '">', '</a>'),
642 ));
643 }
644 }
645
646 if (!defined('PHPBB_DISABLE_CONFIG_CHECK') && file_exists($phpbb_root_path . 'config.' . $phpEx) && phpbb_is_writable($phpbb_root_path . 'config.' . $phpEx))
647 {
648 // World-Writable? (000x)
649 $template->assign_var('S_WRITABLE_CONFIG', (bool) (@fileperms($phpbb_root_path . 'config.' . $phpEx) & 0x0002));
650 }
651
652 if (extension_loaded('mbstring'))
653 {
654 $template->assign_vars(array(
655 'S_MBSTRING_LOADED' => true,
656 'S_MBSTRING_FUNC_OVERLOAD_FAIL' => (intval(@ini_get('mbstring.func_overload')) & (MB_OVERLOAD_MAIL | MB_OVERLOAD_STRING)),
657 'S_MBSTRING_ENCODING_TRANSLATION_FAIL' => (@ini_get('mbstring.encoding_translation') != 0),
658 'S_MBSTRING_HTTP_INPUT_FAIL' => !in_array(@ini_get('mbstring.http_input'), array('pass', '')),
659 'S_MBSTRING_HTTP_OUTPUT_FAIL' => !in_array(@ini_get('mbstring.http_output'), array('pass', '')),
660 ));
661 }
662
663 // Fill dbms version if not yet filled
664 if (empty($config['dbms_version']))
665 {
666 set_config('dbms_version', $db->sql_server_info(true));
667 }
668
669 $this->tpl_name = 'acp_main';
670 $this->page_title = 'ACP_MAIN';
671 }
672 }
673