~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to www/php/phpBB3/adm/index.php

  • Committer: William Grant
  • Date: 2010-02-25 03:18:21 UTC
  • Revision ID: grantw@unimelb.edu.au-20100225031821-mi9a2tm5679fht4d
Shuffle things around so that req.user and req.store only construct when actually retrieved, and ensure they're not retrieved for media files. Saves 50ms of DB connection time per request.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?php
2
 
/**
3
 
*
4
 
* @package acp
5
 
* @version $Id: index.php,v 1.74 2007/12/12 16:45:58 acydburn Exp $
6
 
* @copyright (c) 2005 phpBB Group
7
 
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
8
 
*
9
 
*/
10
 
 
11
 
/**
12
 
*/
13
 
define('IN_PHPBB', true);
14
 
define('ADMIN_START', true);
15
 
define('NEED_SID', true);
16
 
 
17
 
// Include files
18
 
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
19
 
$phpEx = substr(strrchr(__FILE__, '.'), 1);
20
 
require($phpbb_root_path . 'common.' . $phpEx);
21
 
require($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
22
 
require($phpbb_root_path . 'includes/functions_module.' . $phpEx);
23
 
 
24
 
// Start session management
25
 
$user->session_begin();
26
 
$auth->acl($user->data);
27
 
$user->setup('acp/common');
28
 
// End session management
29
 
 
30
 
// Have they authenticated (again) as an admin for this session?
31
 
if (!isset($user->data['session_admin']) || !$user->data['session_admin'])
32
 
{
33
 
        login_box('', $user->lang['LOGIN_ADMIN_CONFIRM'], $user->lang['LOGIN_ADMIN_SUCCESS'], true, false);
34
 
}
35
 
 
36
 
// Is user any type of admin? No, then stop here, each script needs to
37
 
// check specific permissions but this is a catchall
38
 
if (!$auth->acl_get('a_'))
39
 
{
40
 
        trigger_error('NO_ADMIN');
41
 
}
42
 
 
43
 
// We define the admin variables now, because the user is now able to use the admin related features...
44
 
define('IN_ADMIN', true);
45
 
$phpbb_admin_path = (defined('PHPBB_ADMIN_PATH')) ? PHPBB_ADMIN_PATH : './';
46
 
 
47
 
// Some oft used variables
48
 
$safe_mode              = (@ini_get('safe_mode') || @strtolower(ini_get('safe_mode')) == 'on') ? true : false;
49
 
$file_uploads   = (@ini_get('file_uploads') || strtolower(@ini_get('file_uploads')) == 'on') ? true : false;
50
 
$module_id              = request_var('i', '');
51
 
$mode                   = request_var('mode', '');
52
 
 
53
 
// Set custom template for admin area
54
 
$template->set_custom_template($phpbb_admin_path . 'style', 'admin');
55
 
$template->assign_var('T_TEMPLATE_PATH', $phpbb_admin_path . 'style');
56
 
 
57
 
// the acp template is never stored in the database
58
 
$user->theme['template_storedb'] = false;
59
 
 
60
 
// Instantiate new module
61
 
$module = new p_master();
62
 
 
63
 
// Instantiate module system and generate list of available modules
64
 
$module->list_modules('acp');
65
 
 
66
 
// Select the active module
67
 
$module->set_active($module_id, $mode);
68
 
 
69
 
// Assign data to the template engine for the list of modules
70
 
// We do this before loading the active module for correct menu display in trigger_error
71
 
$module->assign_tpl_vars(append_sid("{$phpbb_admin_path}index.$phpEx"));
72
 
 
73
 
// Load and execute the relevant module
74
 
$module->load_active();
75
 
 
76
 
// Generate the page
77
 
adm_page_header($module->get_page_title());
78
 
 
79
 
$template->set_filenames(array(
80
 
        'body' => $module->get_tpl_name(),
81
 
));
82
 
 
83
 
adm_page_footer();
84
 
 
85
 
/**
86
 
* Header for acp pages
87
 
*/
88
 
function adm_page_header($page_title)
89
 
{
90
 
        global $config, $db, $user, $template;
91
 
        global $phpbb_root_path, $phpbb_admin_path, $phpEx, $SID, $_SID;
92
 
 
93
 
        if (defined('HEADER_INC'))
94
 
        {
95
 
                return;
96
 
        }
97
 
 
98
 
        define('HEADER_INC', true);
99
 
 
100
 
        // gzip_compression
101
 
        if ($config['gzip_compress'])
102
 
        {
103
 
                if (@extension_loaded('zlib') && !headers_sent())
104
 
                {
105
 
                        ob_start('ob_gzhandler');
106
 
                }
107
 
        }
108
 
 
109
 
        $template->assign_vars(array(
110
 
                'PAGE_TITLE'                    => $page_title,
111
 
                'USERNAME'                              => $user->data['username'],
112
 
 
113
 
                'SID'                                   => $SID,
114
 
                '_SID'                                  => $_SID,
115
 
                'SESSION_ID'                    => $user->session_id,
116
 
                'ROOT_PATH'                             => $phpbb_admin_path,
117
 
 
118
 
                'U_LOGOUT'                              => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=logout'),
119
 
                'U_ADM_INDEX'                   => append_sid("{$phpbb_admin_path}index.$phpEx"),
120
 
                'U_INDEX'                               => append_sid("{$phpbb_root_path}index.$phpEx"),
121
 
 
122
 
                'T_IMAGES_PATH'                 => "{$phpbb_root_path}images/",
123
 
                'T_SMILIES_PATH'                => "{$phpbb_root_path}{$config['smilies_path']}/",
124
 
                'T_AVATAR_PATH'                 => "{$phpbb_root_path}{$config['avatar_path']}/",
125
 
                'T_AVATAR_GALLERY_PATH' => "{$phpbb_root_path}{$config['avatar_gallery_path']}/",
126
 
                'T_ICONS_PATH'                  => "{$phpbb_root_path}{$config['icons_path']}/",
127
 
                'T_RANKS_PATH'                  => "{$phpbb_root_path}{$config['ranks_path']}/",
128
 
                'T_UPLOAD_PATH'                 => "{$phpbb_root_path}{$config['upload_path']}/",
129
 
 
130
 
                'ICON_MOVE_UP'                          => '<img src="' . $phpbb_admin_path . 'images/icon_up.gif" alt="' . $user->lang['MOVE_UP'] . '" title="' . $user->lang['MOVE_UP'] . '" />',
131
 
                'ICON_MOVE_UP_DISABLED'         => '<img src="' . $phpbb_admin_path . 'images/icon_up_disabled.gif" alt="' . $user->lang['MOVE_UP'] . '" title="' . $user->lang['MOVE_UP'] . '" />',
132
 
                'ICON_MOVE_DOWN'                        => '<img src="' . $phpbb_admin_path . 'images/icon_down.gif" alt="' . $user->lang['MOVE_DOWN'] . '" title="' . $user->lang['MOVE_DOWN'] . '" />',
133
 
                'ICON_MOVE_DOWN_DISABLED'       => '<img src="' . $phpbb_admin_path . 'images/icon_down_disabled.gif" alt="' . $user->lang['MOVE_DOWN'] . '" title="' . $user->lang['MOVE_DOWN'] . '" />',              
134
 
                'ICON_EDIT'                                     => '<img src="' . $phpbb_admin_path . 'images/icon_edit.gif" alt="' . $user->lang['EDIT'] . '" title="' . $user->lang['EDIT'] . '" />',
135
 
                'ICON_EDIT_DISABLED'            => '<img src="' . $phpbb_admin_path . 'images/icon_edit_disabled.gif" alt="' . $user->lang['EDIT'] . '" title="' . $user->lang['EDIT'] . '" />',
136
 
                'ICON_DELETE'                           => '<img src="' . $phpbb_admin_path . 'images/icon_delete.gif" alt="' . $user->lang['DELETE'] . '" title="' . $user->lang['DELETE'] . '" />',
137
 
                'ICON_DELETE_DISABLED'          => '<img src="' . $phpbb_admin_path . 'images/icon_delete_disabled.gif" alt="' . $user->lang['DELETE'] . '" title="' . $user->lang['DELETE'] . '" />',
138
 
                'ICON_SYNC'                                     => '<img src="' . $phpbb_admin_path . 'images/icon_sync.gif" alt="' . $user->lang['RESYNC'] . '" title="' . $user->lang['RESYNC'] . '" />',
139
 
                'ICON_SYNC_DISABLED'            => '<img src="' . $phpbb_admin_path . 'images/icon_sync_disabled.gif" alt="' . $user->lang['RESYNC'] . '" title="' . $user->lang['RESYNC'] . '" />',
140
 
 
141
 
                'S_USER_LANG'                   => $user->lang['USER_LANG'],
142
 
                'S_CONTENT_DIRECTION'   => $user->lang['DIRECTION'],
143
 
                'S_CONTENT_ENCODING'    => 'UTF-8',
144
 
                'S_CONTENT_FLOW_BEGIN'  => ($user->lang['DIRECTION'] == 'ltr') ? 'left' : 'right',
145
 
                'S_CONTENT_FLOW_END'    => ($user->lang['DIRECTION'] == 'ltr') ? 'right' : 'left',
146
 
        ));
147
 
 
148
 
        // application/xhtml+xml not used because of IE
149
 
        header('Content-type: text/html; charset=UTF-8');
150
 
 
151
 
        header('Cache-Control: private, no-cache="set-cookie"');
152
 
        header('Expires: 0');
153
 
        header('Pragma: no-cache');
154
 
 
155
 
        return;
156
 
}
157
 
 
158
 
/**
159
 
* Page footer for acp pages
160
 
*/
161
 
function adm_page_footer($copyright_html = true)
162
 
{
163
 
        global $db, $config, $template, $user, $auth, $cache;
164
 
        global $starttime, $phpbb_root_path, $phpbb_admin_path, $phpEx;
165
 
 
166
 
        // Output page creation time
167
 
        if (defined('DEBUG'))
168
 
        {
169
 
                $mtime = explode(' ', microtime());
170
 
                $totaltime = $mtime[0] + $mtime[1] - $starttime;
171
 
 
172
 
                if (!empty($_REQUEST['explain']) && $auth->acl_get('a_') && defined('DEBUG_EXTRA') && method_exists($db, 'sql_report'))
173
 
                {
174
 
                        $db->sql_report('display');
175
 
                }
176
 
 
177
 
                $debug_output = sprintf('Time : %.3fs | ' . $db->sql_num_queries() . ' Queries | GZIP : ' . (($config['gzip_compress']) ? 'On' : 'Off') . (($user->load) ? ' | Load : ' . $user->load : ''), $totaltime);
178
 
 
179
 
                if ($auth->acl_get('a_') && defined('DEBUG_EXTRA'))
180
 
                {
181
 
                        if (function_exists('memory_get_usage'))
182
 
                        {
183
 
                                if ($memory_usage = memory_get_usage())
184
 
                                {
185
 
                                        global $base_memory_usage;
186
 
                                        $memory_usage -= $base_memory_usage;
187
 
                                        $memory_usage = ($memory_usage >= 1048576) ? round((round($memory_usage / 1048576 * 100) / 100), 2) . ' ' . $user->lang['MB'] : (($memory_usage >= 1024) ? round((round($memory_usage / 1024 * 100) / 100), 2) . ' ' . $user->lang['KB'] : $memory_usage . ' ' . $user->lang['BYTES']);
188
 
 
189
 
                                        $debug_output .= ' | Memory Usage: ' . $memory_usage;
190
 
                                }
191
 
                        }
192
 
 
193
 
                        $debug_output .= ' | <a href="' . build_url() . '&amp;explain=1">Explain</a>';
194
 
                }
195
 
        }
196
 
 
197
 
        $template->assign_vars(array(
198
 
                'DEBUG_OUTPUT'          => (defined('DEBUG')) ? $debug_output : '',
199
 
                'TRANSLATION_INFO'      => (!empty($user->lang['TRANSLATION_INFO'])) ? $user->lang['TRANSLATION_INFO'] : '',
200
 
                'S_COPYRIGHT_HTML'      => $copyright_html,
201
 
                'VERSION'                       => $config['version'])
202
 
        );
203
 
 
204
 
        $template->display('body');
205
 
 
206
 
        garbage_collection();
207
 
        exit_handler();
208
 
}
209
 
 
210
 
/**
211
 
* Generate back link for acp pages
212
 
*/
213
 
function adm_back_link($u_action)
214
 
{
215
 
        global $user;
216
 
        return '<br /><br /><a href="' . $u_action . '">&laquo; ' . $user->lang['BACK_TO_PREV'] . '</a>';
217
 
}
218
 
 
219
 
/**
220
 
* Build select field options in acp pages
221
 
*/
222
 
function build_select($option_ary, $option_default = false)
223
 
{
224
 
        global $user;
225
 
 
226
 
        $html = '';
227
 
        foreach ($option_ary as $value => $title)
228
 
        {
229
 
                $selected = ($option_default !== false && $value == $option_default) ? ' selected="selected"' : '';
230
 
                $html .= '<option value="' . $value . '"' . $selected . '>' . $user->lang[$title] . '</option>';
231
 
        }
232
 
 
233
 
        return $html;
234
 
}
235
 
 
236
 
/**
237
 
* Build radio fields in acp pages
238
 
*/
239
 
function h_radio($name, &$input_ary, $input_default = false, $id = false, $key = false)
240
 
{
241
 
        global $user;
242
 
 
243
 
        $html = '';
244
 
        $id_assigned = false;
245
 
        foreach ($input_ary as $value => $title)
246
 
        {
247
 
                $selected = ($input_default !== false && $value == $input_default) ? ' checked="checked"' : '';
248
 
                $html .= '<label><input type="radio" name="' . $name . '"' . (($id && !$id_assigned) ? ' id="' . $id . '"' : '') . ' value="' . $value . '"' . $selected . (($key) ? ' accesskey="' . $key . '"' : '') . ' class="radio" /> ' . $user->lang[$title] . '</label>';
249
 
                $id_assigned = true;
250
 
        }
251
 
 
252
 
        return $html;
253
 
}
254
 
 
255
 
/**
256
 
* Build configuration template for acp configuration pages
257
 
*/
258
 
function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)
259
 
{
260
 
        global $user, $module;
261
 
 
262
 
        $tpl = '';
263
 
        $name = 'config[' . $config_key . ']';
264
 
 
265
 
        switch ($tpl_type[0])
266
 
        {
267
 
                case 'text':
268
 
                case 'password':
269
 
                        $size = (int) $tpl_type[1];
270
 
                        $maxlength = (int) $tpl_type[2];
271
 
 
272
 
                        $tpl = '<input id="' . $key . '" type="' . $tpl_type[0] . '"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="' . $name . '" value="' . $new[$config_key] . '" />';
273
 
                break;
274
 
 
275
 
                case 'dimension':
276
 
                        $size = (int) $tpl_type[1];
277
 
                        $maxlength = (int) $tpl_type[2];
278
 
 
279
 
                        $tpl = '<input id="' . $key . '" type="text"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="config[' . $config_key . '_width]" value="' . $new[$config_key . '_width'] . '" /> x <input type="text"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="config[' . $config_key . '_height]" value="' . $new[$config_key . '_height'] . '" />';
280
 
                break;
281
 
 
282
 
                case 'textarea':
283
 
                        $rows = (int) $tpl_type[1];
284
 
                        $cols = (int) $tpl_type[2];
285
 
 
286
 
                        $tpl = '<textarea id="' . $key . '" name="' . $name . '" rows="' . $rows . '" cols="' . $cols . '">' . $new[$config_key] . '</textarea>';
287
 
                break;
288
 
 
289
 
                case 'radio':
290
 
                        $key_yes        = ($new[$config_key]) ? ' checked="checked"' : '';
291
 
                        $key_no         = (!$new[$config_key]) ? ' checked="checked"' : '';
292
 
 
293
 
                        $tpl_type_cond = explode('_', $tpl_type[1]);
294
 
                        $type_no = ($tpl_type_cond[0] == 'disabled' || $tpl_type_cond[0] == 'enabled') ? false : true;
295
 
 
296
 
                        $tpl_no = '<label><input type="radio" name="' . $name . '" value="0"' . $key_no . ' class="radio" /> ' . (($type_no) ? $user->lang['NO'] : $user->lang['DISABLED']) . '</label>';
297
 
                        $tpl_yes = '<label><input type="radio" id="' . $key . '" name="' . $name . '" value="1"' . $key_yes . ' class="radio" /> ' . (($type_no) ? $user->lang['YES'] : $user->lang['ENABLED']) . '</label>';
298
 
 
299
 
                        $tpl = ($tpl_type_cond[0] == 'yes' || $tpl_type_cond[0] == 'enabled') ? $tpl_yes . $tpl_no : $tpl_no . $tpl_yes;
300
 
                break;
301
 
 
302
 
                case 'select':
303
 
                case 'custom':
304
 
                        
305
 
                        $return = '';
306
 
 
307
 
                        if (isset($vars['method']))
308
 
                        {
309
 
                                $call = array($module->module, $vars['method']);
310
 
                        }
311
 
                        else if (isset($vars['function']))
312
 
                        {
313
 
                                $call = $vars['function'];
314
 
                        }
315
 
                        else
316
 
                        {
317
 
                                break;
318
 
                        }
319
 
 
320
 
                        if (isset($vars['params']))
321
 
                        {
322
 
                                $args = array();
323
 
                                foreach ($vars['params'] as $value)
324
 
                                {
325
 
                                        switch ($value)
326
 
                                        {
327
 
                                                case '{CONFIG_VALUE}':
328
 
                                                        $value = $new[$config_key];
329
 
                                                break;
330
 
 
331
 
                                                case '{KEY}':
332
 
                                                        $value = $key;
333
 
                                                break;
334
 
                                        }
335
 
 
336
 
                                        $args[] = $value;
337
 
                                }
338
 
                        }
339
 
                        else
340
 
                        {
341
 
                                $args = array($new[$config_key], $key);
342
 
                        }
343
 
                        
344
 
                        $return = call_user_func_array($call, $args);
345
 
 
346
 
                        if ($tpl_type[0] == 'select')
347
 
                        {
348
 
                                $tpl = '<select id="' . $key . '" name="' . $name . '">' . $return . '</select>';
349
 
                        }
350
 
                        else
351
 
                        {
352
 
                                $tpl = $return;
353
 
                        }
354
 
 
355
 
                break;
356
 
 
357
 
                default:
358
 
                break;
359
 
        }
360
 
 
361
 
        if (isset($vars['append']))
362
 
        {
363
 
                $tpl .= $vars['append'];
364
 
        }
365
 
 
366
 
        return $tpl;
367
 
}
368
 
 
369
 
/**
370
 
* Going through a config array and validate values, writing errors to $error.
371
 
*/
372
 
function validate_config_vars($config_vars, &$cfg_array, &$error)
373
 
{
374
 
        global $phpbb_root_path, $user;
375
 
 
376
 
        foreach ($config_vars as $config_name => $config_definition)
377
 
        {
378
 
                if (!isset($cfg_array[$config_name]) || strpos($config_name, 'legend') !== false)
379
 
                {
380
 
                        continue;
381
 
                }
382
 
 
383
 
                if (!isset($config_definition['validate']))
384
 
                {
385
 
                        continue;
386
 
                }
387
 
 
388
 
                // Validate a bit. ;) String is already checked through request_var(), therefore we do not check this again
389
 
                switch ($config_definition['validate'])
390
 
                {
391
 
                        case 'bool':
392
 
                                $cfg_array[$config_name] = ($cfg_array[$config_name]) ? 1 : 0;
393
 
                        break;
394
 
 
395
 
                        case 'int':
396
 
                                $cfg_array[$config_name] = (int) $cfg_array[$config_name];
397
 
                        break;
398
 
 
399
 
                        // Absolute path
400
 
                        case 'script_path':
401
 
                                if (!$cfg_array[$config_name])
402
 
                                {
403
 
                                        break;
404
 
                                }
405
 
 
406
 
                                $destination = str_replace('\\', '/', $cfg_array[$config_name]);
407
 
 
408
 
                                if ($destination !== '/')
409
 
                                {
410
 
                                        // Adjust destination path (no trailing slash)
411
 
                                        if (substr($destination, -1, 1) == '/')
412
 
                                        {
413
 
                                                $destination = substr($destination, 0, -1);
414
 
                                        }
415
 
 
416
 
                                        $destination = str_replace(array('../', './'), '', $destination);
417
 
 
418
 
                                        if ($destination[0] != '/')
419
 
                                        {
420
 
                                                $destination = '/' . $destination;
421
 
                                        }
422
 
                                }
423
 
 
424
 
                                $cfg_array[$config_name] = trim($destination);
425
 
 
426
 
                        break;
427
 
 
428
 
                        // Absolute path
429
 
                        case 'lang':
430
 
                                if (!$cfg_array[$config_name])
431
 
                                {
432
 
                                        break;
433
 
                                }
434
 
 
435
 
                                $cfg_array[$config_name] = basename($cfg_array[$config_name]);
436
 
 
437
 
                                if (!file_exists($phpbb_root_path . 'language/' . $cfg_array[$config_name] . '/'))
438
 
                                {
439
 
                                        $error[] = $user->lang['WRONG_DATA_LANG'];
440
 
                                }
441
 
                        break;
442
 
 
443
 
                        // Relative path (appended $phpbb_root_path)
444
 
                        case 'rpath':
445
 
                        case 'rwpath':
446
 
                                if (!$cfg_array[$config_name])
447
 
                                {
448
 
                                        break;
449
 
                                }
450
 
 
451
 
                                $destination = $cfg_array[$config_name];
452
 
 
453
 
                                // Adjust destination path (no trailing slash)
454
 
                                if (substr($destination, -1, 1) == '/' || substr($destination, -1, 1) == '\\')
455
 
                                {
456
 
                                        $destination = substr($destination, 0, -1);
457
 
                                }
458
 
 
459
 
                                $destination = str_replace(array('../', '..\\', './', '.\\'), '', $destination);
460
 
                                if ($destination && ($destination[0] == '/' || $destination[0] == "\\"))
461
 
                                {
462
 
                                        $destination = '';
463
 
                                }
464
 
 
465
 
                                $cfg_array[$config_name] = trim($destination);
466
 
 
467
 
                        // Path being relative (still prefixed by phpbb_root_path), but with the ability to escape the root dir...
468
 
                        case 'path':
469
 
                        case 'wpath':
470
 
 
471
 
                                if (!$cfg_array[$config_name])
472
 
                                {
473
 
                                        break;
474
 
                                }
475
 
 
476
 
                                $cfg_array[$config_name] = trim($cfg_array[$config_name]);
477
 
 
478
 
                                // Make sure no NUL byte is present...
479
 
                                if (strpos($cfg_array[$config_name], "\0") !== false || strpos($cfg_array[$config_name], '%00') !== false)
480
 
                                {
481
 
                                        $cfg_array[$config_name] = '';
482
 
                                        break;
483
 
                                }
484
 
 
485
 
                                if (!file_exists($phpbb_root_path . $cfg_array[$config_name]))
486
 
                                {
487
 
                                        $error[] = sprintf($user->lang['DIRECTORY_DOES_NOT_EXIST'], $cfg_array[$config_name]);
488
 
                                }
489
 
 
490
 
                                if (file_exists($phpbb_root_path . $cfg_array[$config_name]) && !is_dir($phpbb_root_path . $cfg_array[$config_name]))
491
 
                                {
492
 
                                        $error[] = sprintf($user->lang['DIRECTORY_NOT_DIR'], $cfg_array[$config_name]);
493
 
                                }
494
 
 
495
 
                                // Check if the path is writable
496
 
                                if ($config_definition['validate'] == 'wpath' || $config_definition['validate'] == 'rwpath')
497
 
                                {
498
 
                                        if (file_exists($phpbb_root_path . $cfg_array[$config_name]) && !@is_writable($phpbb_root_path . $cfg_array[$config_name]))
499
 
                                        {
500
 
                                                $error[] = sprintf($user->lang['DIRECTORY_NOT_WRITABLE'], $cfg_array[$config_name]);
501
 
                                        }
502
 
                                }
503
 
 
504
 
                        break;
505
 
                }
506
 
        }
507
 
 
508
 
        return;
509
 
}
510
 
 
511
 
?>
 
 
b'\\ No newline at end of file'