Test Failed
Push — master ( 398493...d4ef72 )
by Michael
11:04
created

XoopsGuiZetadigme::header()   F

Complexity

Conditions 35
Paths > 20000

Size

Total Lines 307
Code Lines 238

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 307
rs 2
c 0
b 0
f 0
cc 35
eloc 238
nc 34020
nop 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
0 ignored issues
show
Coding Style Compatibility introduced by
For compatibility and reusability of your code, PSR1 recommends that a file should introduce either new symbols (like classes, functions, etc.) or have side-effects (like outputting something, or including other files), but not both at the same time. The first symbol is defined on line 22 and the first side effect is on line 10.

The PSR-1: Basic Coding Standard recommends that a file should either introduce new symbols, that is classes, functions, constants or similar, or have side effects. Side effects are anything that executes logic, like for example printing output, changing ini settings or writing to a file.

The idea behind this recommendation is that merely auto-loading a class should not change the state of an application. It also promotes a cleaner style of programming and makes your code less prone to errors, because the logic is not spread out all over the place.

To learn more about the PSR-1, please see the PHP-FIG site on the PSR-1.

Loading history...
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;
0 ignored issues
show
Compatibility Best Practice introduced by
Use of global functionality is not recommended; it makes your code harder to test, and less reusable.

Instead of relying on global state, we recommend one of these alternatives:

1. Pass all data via parameters

function myFunction($a, $b) {
    // Do something
}

2. Create a class that maintains your state

class MyClass {
    private $a;
    private $b;

    public function __construct($a, $b) {
        $this->a = $a;
        $this->b = $b;
    }

    public function myFunction() {
        // Do something
    }
}
Loading history...
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