Passed
Push — master ( b5dddf...91d417 )
by Richard
09:12
created

XoopsGuiZetadigme::header()   F

Complexity

Conditions 35
Paths > 20000

Size

Total Lines 309

Duplication

Lines 75
Ratio 24.27 %

Importance

Changes 0
Metric Value
cc 35
nc 34020
nop 0
dl 75
loc 309
rs 0
c 0
b 0
f 0

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
/*
3
 You may not change or alter any portion of this comment or credits
4
 of supporting developers from this source code or any supporting source code
5
 which is considered copyrighted (c) material of the original comment or credit authors.
6
 This program is distributed in the hope that it will be useful,
7
 but WITHOUT ANY WARRANTY; without even the implied warranty of
8
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
*/
10
xoops_load('gui', 'system');
11
12
/**
13
 * Xoops Cpanel Paradigme GUI class
14
 *
15
 * @copyright       (c) 2000-2016 XOOPS Project (www.xoops.org)
16
 * @license             GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
17
 * @package             system
18
 * @usbpackage          GUI
19
 * @since               2.4.1
20
 * @author              Kris <[email protected]>
21
 */
22
class XoopsGuiZetadigme extends XoopsSystemGui
23
{
24
    /**
25
     *
26
     */
27
    public function __construct()
28
    {
29
    }
30
31
    /**
32
     * @return bool
33
     */
34
    public static function validate()
35
    {
36
        return true;
37
    }
38
39
    /**
40
     * @return bool
41
     */
42
    public function generateMenu()
43
    {
44
        return true;
45
    }
46
47
    public function header()
48
    {
49
        parent::header();
50
        global $xoopsConfig, $xoopsUser, $xoopsModule, $xoTheme, $xoopsDB;
51
        $tpl =& $this->template;
52
        $xoTheme->addScript('browse.php?Frameworks/jquery/jquery.js');
53
        $xoTheme->addScript('', '', '
54
        startList = function() {
55
/* currentStyle restricts the Javascript to IE only */
56
    if (document.all &&
57
 document.getElementById(nav).currentStyle) {
58
        var navroot = document.getElementById(nav);
59
        /* Get all the list items within the menu */
60
        var lis=navroot.getElementsByTagName("li");
61
        for (i=0; i<lis.length; i++) {
62
           /* If the li has another menu level */
63
            if (lis[i].lastChild.tagName=="ul") {
64
                /* assign the function to the li */
65
                 lis[i].onmouseover=function() {
66
                   /* display the inner menu */
67
                   this.lastChild.style.display="block";
68
                }
69
                lis[i].onmouseout=function() {
70
                   this.lastChild.style.display="none";
71
                }
72
            }
73
        }
74
    }
75
}
76
window.onload= function(){
77
    /* pass the function the id of the top level il */
78
    /* remove one, when only using one menu */
79
    activateMenu("nav");
80
    /*activateMenu("vertnav"); */
81
}
82
    xoopsOnloadEvent(startList);');
83
        $tpl->assign('lang_cp', _CPHOME);
84
        $tpl->assign('system_options', _AD_SYSOPTIONS);
85
        $tpl->assign('lang_banners', _AM_SYSTEM_BANS);
86
        $tpl->assign('lang_blocks', _AM_SYSTEM_BLOCKS);
87
        $tpl->assign('lang_groups', _AM_SYSTEM_ADGS);
88
        $tpl->assign('lang_images', _AM_SYSTEM_IMAGES);
89
        $tpl->assign('lang_modules', _AM_SYSTEM_MODULES);
90
        $tpl->assign('lang_preferences', _AM_SYSTEM_PREF);
91
        $tpl->assign('lang_smilies', _AM_SYSTEM_SMLS);
92
        $tpl->assign('lang_ranks', _AM_SYSTEM_RANK);
93
        $tpl->assign('lang_edituser', _AM_SYSTEM_USER);
94
        $tpl->assign('lang_mailuser', _AM_SYSTEM_MLUS);
95
        $tpl->assign('lang_avatars', _AM_SYSTEM_AVATARS);
96
        $tpl->assign('lang_tpls', _AM_SYSTEM_TPLSETS);
97
        $tpl->assign('lang_comments', _AM_SYSTEM_COMMENTS);
98
        $tpl->assign('lang_insmodules', _AD_INSTALLEDMODULES);
99
        $tpl->assign('xoops_sitename', $xoopsConfig['sitename']);
100
        //for system overview
101
        $tpl->assign('lang_overview', _MD_CPANEL_OVERVIEW);
102
        $tpl->assign('lang_phpextensions', _MD_CPANEL_PHPEXTENSIONS);
103
        $tpl->assign('lang_about_xoops', _MD_ABOUT);
104
        $tpl->assign('lang_about_xoops_text', _MD_ABOUT_TEXT);
105
        $tpl->assign('lang_version', _MD_VERSION);
106
        $tpl->assign('lang_version_xoops', _MD_VERSION_XOOPS);
107
        $tpl->assign('lang_version_php', _MD_VERSION_PHP);
108
        $tpl->assign('lang_version_mysql', _MD_VERSION_MYSQL);
109
        $tpl->assign('lang_server_api_name', _MD_Server_API);
110
        $tpl->assign('lang_os', _MD_OS);
111
        $tpl->assign('lang_xoops_links', _MD_XOOPS_LINKS);
112
        //start system overview
113
        $tpl->assign('lang_xoops_version', XOOPS_VERSION);
114
        $tpl->assign('lang_php_vesion', PHP_VERSION);
115
        $tpl->assign('lang_mysql_version', mysqli_get_server_info($xoopsDB->conn));
116
        $tpl->assign('lang_server_api', PHP_SAPI);
117
        $tpl->assign('lang_os_name', PHP_OS);
118
//        $tpl->assign('safe_mode', ini_get('safe_mode') ? 'On' : 'Off');
119
//        $tpl->assign('register_globals', ini_get('register_globals') ? 'On' : 'Off');
120
//        $tpl->assign('magic_quotes_gpc', ini_get('magic_quotes_gpc') ? 'On' : 'Off');
121
        $tpl->assign('allow_url_fopen', ini_get('allow_url_fopen') ? 'On' : 'Off');
122
        $tpl->assign('fsockopen', function_exists('fsockopen') ? 'On' : 'Off');
123
//        $tpl->assign('allow_call_time_pass_reference', ini_get('allow_call_time_pass_reference') ? 'On' : 'Off');
124
        $tpl->assign('post_max_size', ini_get('post_max_size'));
125
        $tpl->assign('max_input_time', ini_get('max_input_time'));
126
        $tpl->assign('output_buffering', ini_get('output_buffering'));
127
        $tpl->assign('max_execution_time', ini_get('max_execution_time'));
128
        $tpl->assign('memory_limit', ini_get('memory_limit'));
129
        $tpl->assign('file_uploads', ini_get('file_uploads') ? 'On' : 'Off');
130
        $tpl->assign('upload_max_filesize', ini_get('upload_max_filesize'));
131
        $tpl->assign('xoops_sitename', $xoopsConfig['sitename']);
132
        //for xoops links
133
        $tpl->assign('lang_xoops_xoopsproject', _MD_XOOPSPROJECT);
134
        $tpl->assign('lang_xoops_localsupport', _MD_LOCALSUPPORT);
135
        $tpl->assign('lang_xoops_xoopscore', _MD_XOOPSCORE);
136
        $tpl->assign('lang_xoops_xoopsthems', _MD_XOOPSTHEME);
137
        $tpl->assign('lang_xoops_xoopswiki', _MD_XOOPSWIKI);
138
        $tpl->assign('lang_xoops_codesvn', _MD_CODESVN);
139
        $tpl->assign('lang_xoops_reportbug', _MD_REPORTBUG);
140
        $tpl->assign('lang_xoops_movetoblue', _MD_MOVETOBLUE);
141
        $tpl->assign('lang_xoops_movetobluelink', _MD_MOVETOBLUE_LINK);
142
        // ADD MENU *****************************************
143
        //Add  CONTROL PANEL  Menu  items
144
        $menu                = array();
145
        $menu[0]['link']     = XOOPS_URL;
146
        $menu[0]['title']    = _YOURHOME;
147
        $menu[0]['absolute'] = 1;
148
        $menu[1]['link']     = XOOPS_URL . '/admin.php?xoopsorgnews=1';
149
        $menu[1]['title']    = 'XOOPS News';
150
        $menu[1]['absolute'] = 1;
151
        $menu[1]['icon']     = XOOPS_ADMINTHEME_URL . '/zetadigme/img/xoops.png';
152
        $menu[2]['link']     = XOOPS_URL . '/user.php?op=logout';
153
        $menu[2]['title']    = _LOGOUT;
154
        $menu[2]['absolute'] = 1;
155
        $menu[2]['icon']     = XOOPS_ADMINTHEME_URL . '/zetadigme/img/logout.png';
156
        $tpl->append('navitems', array('link' => XOOPS_URL . '/admin.php', 'text' => _CPHOME, 'menu' => $menu));
157
        //add SYSTEM  Menu items
158
        include __DIR__ . '/menu.php';
159
        $system_options = $adminmenu;
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $adminmenu seems to be never defined.
Loading history...
160
        foreach (array_keys($adminmenu) as $item) {
161
            $system_options[$item]['link'] = empty($adminmenu[$item]['absolute']) ? XOOPS_URL . '/modules/system/' . $adminmenu[$item]['link'] : $adminmenu[$item]['link'];
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $adminmenu seems to never exist and therefore empty should always be true.
Loading history...
162
            $system_options[$item]['icon'] = empty($adminmenu[$item]['icon_small']) ? '' : XOOPS_ADMINTHEME_URL . '/zetadigme/' . $adminmenu[$item]['icon_small'];
163
            unset($system_options[$item]['icon_small']);
164
        }
165
        $tpl->append('navitems', array('link' => XOOPS_URL . '/modules/system/admin.php', 'text' => _AD_SYSOPTIONS, 'menu' => $system_options));
166
        if (empty($xoopsModule) || 'system' === $xoopsModule->getVar('dirname', 'n')) {
167
            $modpath     = XOOPS_URL . '/admin.php';
168
            $modname     = _AD_SYSOPTIONS;
169
            $modid       = 1;
170
            $moddir      = 'system';
171
            $mod_options = $adminmenu;
172
            foreach (array_keys($mod_options) as $item) {
173
                $mod_options[$item]['link'] = empty($mod_options[$item]['absolute']) ? XOOPS_URL . '/modules/' . $moddir . '/' . $mod_options[$item]['link'] : $mod_options[$item]['link'];
174
                $mod_options[$item]['icon'] = empty($mod_options[$item]['icon']) ? '' : XOOPS_ADMINTHEME_URL . '/zetadigme/' . $mod_options[$item]['icon'];
175
                unset($mod_options[$item]['icon_small']);
176
            }
177
        } else {
178
            $moddir      = $xoopsModule->getVar('dirname', 'n');
179
            $modpath     = XOOPS_URL . '/modules/' . $moddir;
180
            $modname     = $xoopsModule->getVar('name');
181
            $modid       = $xoopsModule->getVar('mid');
182
            $mod_options = $xoopsModule->getAdminMenu();
183
            foreach (array_keys($mod_options) as $item) {
184
                $mod_options[$item]['link'] = empty($mod_options[$item]['absolute']) ? XOOPS_URL . "/modules/{$moddir}/" . $mod_options[$item]['link'] : $mod_options[$item]['link'];
185
                //$mod_options[$item]['icon'] = empty($mod_options[$item]['icon']) ? '' : XOOPS_URL . "/modules/{$moddir}/" . $mod_options[$item]['icon'];
186
                //mb for direct URL access to icons in modules Admin
187
                $mod_options[$item]['icon'] = empty($mod_options[$item]['icon']) ? '' : (filter_var($mod_options[$item]['icon'], FILTER_VALIDATE_URL) ? $mod_options[$item]['icon'] : (XOOPS_URL . "/modules/{$moddir}/" . $mod_options[$item]['icon']));
188
            }
189
        }
190
        $tpl->assign('mod_options', $mod_options);
191
        $tpl->assign('modpath', $modpath);
192
        $tpl->assign('modname', $modname);
193
        $tpl->assign('modid', $modid);
194
        $tpl->assign('moddir', $moddir);
195
        // add MODULES  Menu items
196
        /* @var $module_handler XoopsModuleHandler */
197
        $module_handler = xoops_getHandler('module');
198
        $criteria       = new CriteriaCompo();
199
        $criteria->add(new Criteria('hasadmin', 1));
200
        $criteria->add(new Criteria('isactive', 1));
201
        $criteria->setSort('mid');
202
        $mods               = $module_handler->getObjects($criteria);
203
        $menu               = array();
204
        /* @var $moduleperm_handler XoopsGroupPermHandler  */
205
        $moduleperm_handler = xoops_getHandler('groupperm');
206
        foreach ($mods as $mod) {
207
            $rtn        = array();
208
            $modOptions = array();                                                         //add for sub menus
209
            $sadmin     = $moduleperm_handler->checkRight('module_admin', $mod->getVar('mid'), $xoopsUser->getGroups());
210
            if ($sadmin) {
211
                $info = $mod->getInfo();
212
                if (!empty($info['adminindex'])) {
213
                    $rtn['link'] = XOOPS_URL . '/modules/' . $mod->getVar('dirname', 'n') . '/' . $info['adminindex'];
214
                } else {
215
                    $rtn['link'] = XOOPS_URL . '/modules/system/admin.php?fct=preferences&amp;op=showmod&amp;mod=' . $mod->getVar('mid');
216
                }
217
                $rtn['title']    = $mod->name();
218
                $rtn['absolute'] = 1;
219
                $rtn['url']      = XOOPS_URL . '/modules/' . $mod->getVar('dirname', 'n') . '/'; //add for sub menus
220
                $modOptions      = $mod->getAdminMenu();                                        //add for sub menus
221
                $rtn['options']  = $modOptions;                                             //add for sub menus
222
223
                if (isset($info['icon']) && $info['icon'] !== '') {
224
                    $rtn['icon'] = XOOPS_URL . '/modules/' . $mod->getVar('dirname', 'n') . '/' . $info['icon'];
225
                }
226
                $menu[] = $rtn;
227
            }
228
        }
229
        $tpl->append('navitems', array(
230
            'link' => XOOPS_URL . '/modules/system/admin.php?fct=modulesadmin',
231
            'text' => _AM_SYSTEM_MODULES,
232
            'dir'  => $mod->getVar('dirname', 'n'),
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $mod seems to be defined by a foreach iteration on line 206. Are you sure the iterator is never empty, otherwise this variable is not defined?
Loading history...
233
            'menu' => $menu));
234
235
        // add preferences menu
236
        $menu   = array();
237
        $OPT    = array();
238
        $OPT[]  = array(
239
            'link'     => 'admin.php?fct=preferences&amp;op=show&amp;confcat_id=1',
240
            'title'    => _THEME_GENERAL,
241
            'absolute' => 1,
242
            'icon'     => XOOPS_ADMINTHEME_URL . '/zetadigme/icons/prefs_small.png');
243
        $OPT[]  = array(
244
            'link'     => 'admin.php?fct=preferences&amp;op=show&amp;confcat_id=2',
245
            'title'    => _THEME_USERSETTINGS,
246
            'absolute' => 1,
247
            'icon'     => XOOPS_ADMINTHEME_URL . '/zetadigme/icons/prefs_small.png');
248
        $OPT[]  = array(
249
            'link'     => 'admin.php?fct=preferences&amp;op=show&amp;confcat_id=3',
250
            'title'    => _THEME_METAFOOTER,
251
            'absolute' => 1,
252
            'icon'     => XOOPS_ADMINTHEME_URL . '/zetadigme/icons/prefs_small.png');
253
        $OPT[]  = array(
254
            'link'     => 'admin.php?fct=preferences&amp;op=show&amp;confcat_id=4',
255
            'title'    => _THEME_CENSOR,
256
            'absolute' => 1,
257
            'icon'     => XOOPS_ADMINTHEME_URL . '/zetadigme/icons/prefs_small.png');
258
        $OPT[]  = array(
259
            'link'     => 'admin.php?fct=preferences&amp;op=show&amp;confcat_id=5',
260
            'title'    => _THEME_SEARCH,
261
            'absolute' => 1,
262
            'icon'     => XOOPS_ADMINTHEME_URL . '/zetadigme/icons/prefs_small.png');
263
        $OPT[]  = array(
264
            'link'     => 'admin.php?fct=preferences&amp;op=show&amp;confcat_id=6',
265
            'title'    => _THEME_MAILER,
266
            'absolute' => 1,
267
            'icon'     => XOOPS_ADMINTHEME_URL . '/zetadigme/icons/prefs_small.png');
268
        $OPT[]  = array(
269
            'link'     => 'admin.php?fct=preferences&amp;op=show&amp;confcat_id=7',
270
            'title'    => _THEME_AUTHENTICATION,
271
            'absolute' => 1,
272
            'icon'     => XOOPS_ADMINTHEME_URL . '/zetadigme/icons/prefs_small.png');
273
        $OPT[]  = array(
274
            'link'     => 'admin.php?fct=preferences&amp;op=showmod&amp;mod=1',
275
            'title'    => _THEME_MODULESETTINGS,
276
            'absolute' => 1,
277
            'icon'     => XOOPS_ADMINTHEME_URL . '/zetadigme/icons/prefs_small.png');
278
        $menu[] = array(
279
            'link'     => XOOPS_URL . '/modules/system/admin.php?fct=preferences',
280
            'title'    => _AD_SYSOPTIONS,
281
            'absolute' => 1,
282
            'url'      => XOOPS_URL . '/modules/system/',
283
            'options'  => $OPT);
284
285
        foreach ($mods as $mod) {
286
            $rtn    = array();
287
            $sadmin = $moduleperm_handler->checkRight('module_admin', $mod->getVar('mid'), $xoopsUser->getGroups());
288
            if ($sadmin && ($mod->getVar('hasnotification') || is_array($mod->getInfo('config')) || is_array($mod->getInfo('comments')))) {
289
                $rtn['link']     = XOOPS_URL . '/modules/system/admin.php?fct=preferences&amp;op=showmod&amp;mod=' . $mod->getVar('mid');
290
                $rtn['title']    = $mod->name();
291
                $rtn['absolute'] = 1;
292
                $menu[]          = $rtn;
293
            }
294
            //$menu[] = $rtn;
295
        }
296
        $tpl->append('navitems', array(
297
            'link' => XOOPS_URL . '/modules/system/admin.php?fct=modulesadmin',
298
            'text' => _THEME_SITEPREF,
299
            'dir'  => $mod->getVar('dirname', 'n'),
300
            'menu' => $menu));
301
        //add OPTIONS/Links Menu Items
302
        $menu   = array();
303
        $menu[] = array(
304
            'link'     => 'http://www.xoops.org',
305
            'title'    => 'XOOPS',
306
            'absolute' => 1,
307
            'icon'     => XOOPS_ADMINTHEME_URL . '/zetadigme/icons/xoops.png');
308
        $menu[] = array(
309
            'link'     => 'http://www.xoops.org/modules/library/',
310
            'title'    => _AD_XOOPSTHEMES,
311
            'absolute' => 1,
312
            'icon'     => XOOPS_ADMINTHEME_URL . '/zetadigme/icons/tweb.png');
313
        $menu[] = array(
314
            'link'     => 'http://www.xoops.org/modules/repository/',
315
            'title'    => _AD_XOOPSMODULES,
316
            'absolute' => 1,
317
            'icon'     => XOOPS_ADMINTHEME_URL . '/zetadigme/icons/xoops.png');
318
        $menu[] = array(
319
            'link'     => 'http://xoops.org',
320
            'title'    => 'XOOPS',
321
            'absolute' => 1);
322
        $tpl->append('navitems', array('link' => XOOPS_URL . '/admin.php', 'text' => _AD_INTERESTSITES, 'menu' => $menu));
323
        //add OPTIONS/links for local support
324
        if (file_exists($file = XOOPS_ADMINTHEME_PATH . '/zetadigme/language/' . $xoopsConfig['language'] . '/localsupport.php')) {
325
            $links = include XOOPS_ADMINTHEME_PATH . '/zetadigme/language/' . $xoopsConfig['language'] . '/localsupport.php';
326
            if (count($links) > 0) {
327
                $tpl->append('navitems', array('link' => XOOPS_URL . '/admin.php', 'text' => _AD_LOCALSUPPORT, 'menu' => $links));
328
            }
329
        }
330
        if (is_object($xoopsModule) || !empty($_GET['xoopsorgnews'])) {
331
            return null;
332
        }
333
        foreach ($mods as $mod) {
334
            $rtn                = array();
335
            $moduleperm_handler = xoops_getHandler('groupperm');
336
            $sadmin             = $moduleperm_handler->checkRight('module_admin', $mod->getVar('mid'), $xoopsUser->getGroups());
0 ignored issues
show
Bug introduced by
The method checkRight() does not exist on XoopsObjectHandler. It seems like you code against a sub-type of XoopsObjectHandler such as XoopsGroupPermHandler or XoopsPersistableObjectHandler. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

336
            /** @scrutinizer ignore-call */ 
337
            $sadmin             = $moduleperm_handler->checkRight('module_admin', $mod->getVar('mid'), $xoopsUser->getGroups());
Loading history...
337
            if ($sadmin) {
338
                $info = $mod->getInfo();
339
                if (!empty($info['adminindex'])) {
340
                    $rtn['link'] = XOOPS_URL . '/modules/' . $mod->getVar('dirname', 'n') . '/' . $info['adminindex'];
341
                } else {
342
                    $rtn['link'] = XOOPS_URL . '/modules/system/admin.php?fct=preferences&amp;op=showmod&amp;mod=' . $mod->getVar('mid');
343
                }
344
                $rtn['title']        = $mod->getVar('name');
345
                $rtn ['description'] = $mod->getInfo('description');
346
                $rtn['absolute']     = 1;
347
                if (isset($info['icon_big'])) {
348
                    $rtn['icon'] = XOOPS_URL . '/modules/' . $mod->getVar('dirname', 'n') . '/' . $info['icon_big'];
349
                } elseif (isset($info['image'])) {
350
                    $rtn['icon'] = XOOPS_URL . '/modules/' . $mod->getVar('dirname', 'n') . '/' . $info['image'];
351
                }
352
            }
353
            $tpl->append('modules', $rtn);
354
        }
355
    }
356
}
357