-
Notifications
You must be signed in to change notification settings - Fork 12
/
functions.php
129 lines (113 loc) · 5.84 KB
/
functions.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
/* This array is to add third level to phpList menu, adding orphan items to a menulink */
$GLOBALS['subcat'] = array(
'import' => array ('import1','import2','import3','import4','importsimple'),
'users' => array('user','userhistory'),
'list' => array('members','editlist'),
'usermgt' => array('massremove','usercheck','reconcileusers'),
'messages' => array('message'),
'templates' => array('template'),
'system' => array('converttoutf8'),
'bouncemgt' => array('bounce','bounces','processbounces','generatebouncerules'),
'bouncerules' => array('bouncerule'),
'spage' => array('spageedit'),
'attributes' => array('editattributes','defaults'),
);
/* replace topmenu() function */
function _topMenu()
{
if (empty($_SESSION['logindetails'])) {
return '';
}
if ( !isset($_GET['page'] ) ) { $_GET['page'] = ''; }
$current_page = htmlentities($_GET['page']);
$currentPageCategory = $_GET['pi'] == '' ? pageCategory($current_page) : '';
if ($_SESSION['logindetails']['superuser']) { // we don't have a system yet to distinguish access to plugins
if (count($GLOBALS['plugins'])) {
foreach ($GLOBALS['plugins'] as $pluginName => $plugin) {
$menulinks = $plugin->topMenuLinks;
foreach ($menulinks as $link => $linkDetails) {
if (isset($GLOBALS['pagecategories'][$linkDetails['category']])) {
array_push($GLOBALS['pagecategories'][$linkDetails['category']]['menulinks'],
$link . '&pi=' . $pluginName);
}
}
}
}
}
$topmenu = '';
$topmenu .= '<div id="menuTop">';
if (!DEVVERSION) {
unset($GLOBALS['pagecategories']['develop']);
}
foreach ($GLOBALS['pagecategories'] as $category => $categoryDetails) {
if ($category == 'hide') {
continue;
}
$thismenu = '';
$icon = 'glyphicon-plus';
$icontext = "";
$open = $category == $currentPageCategory ? ' class="active open"' : '';
$accmenu = '';
switch ($category) {
case "dashboard" : $icon = "glyphicon-home"; break;
case "subscribers" : $icon = "glyphicon-user"; break;
case "campaigns" : $icon = "glyphicon-envelope"; break;
case "statistics" : $icon = "glyphicon-stats"; break;
case "system" : $icon = "glyphicon-wrench"; break;
case "config" : $icon = "glyphicon-cog"; break;
case "info" : $icon = ""; $icontext = "<samp style='line-height:1.5;font-weight:bold;font-size:19px'>i</samp>"; break;
case "develop" : $icon = "glyphicon-console"; break;
}
foreach ($categoryDetails['menulinks'] as $page) {
$title = $GLOBALS['I18N']->pageTitle($page);
$active = '';
if ($_GET['pi'] !== '') {
if ($page == $current_page.'&pi='.$_GET['pi']) {
$active = ' class="active"';
}
} elseif ($page == $current_page) {
$active = ' class="active"';
} elseif (isset($GLOBALS['subcat'][$page]) && in_array($current_page, $GLOBALS['subcat'][$page])) {
$active = ' class="active"';
}
$link = PageLink2($page, $title, '', true);
/* build account menu ($accmenu) if Account section exist */
if ($link && $category == 'account') {
switch($page){
case "accinfo" : $icon = "glyphicon-briefcase"; $page_title ="My account"; break;
case "accsettings" : $icon = "glyphicon-wrench"; $page_title ="Account settings"; break;
case "help" : $icon = "";$page_title = "Help"; $icontext="<samp style='line-height:1.5;font-weight:bold;font-size:19px'>?</samp>"; break;
}
if ($active == ' class="active"') $active = ' class="open active"';
$accmenu .= '<ul><li '.$active.'.><a class="level0" href="' . PageUrl2($page, '', '', true). '" title="' . $title . '"><span class="glyphicon '.$icon.'">'.$icontext.'</span>' . ucfirst($page_title) . '</a></li></ul>';
}
/* add item to mainmenu ($thismenu) */
elseif ($link) {
$thismenu .= '<li' . $active . '>' . $link . '</li>';
}
} /* <- end foreach menulinks */
$twohomes = array('dashboard','home');
if ( in_array($current_page,$twohomes) && $categoryDetails['toplink'] == 'dashboard' ) { // page 'home' redirect from dashboard
$open = ' class=" active open"';
}
if (!empty($thismenu)) {
$thismenu = '<ul>' . $thismenu . '</ul>';
}
if ($category != 'account' && !empty($categoryDetails['toplink'])) {
$categoryurl = PageUrl2($categoryDetails['toplink'], '', '', true);
if ($categoryurl) {
$categoryurl = ($thismenu == "") ? $categoryurl : "#";
$topmenu .= '<ul><li '.$open.' id="'.$category.'"><a class="level0" href="' . $categoryurl . '" title="' . $GLOBALS['I18N']->pageTitleHover($category) . '"><span class="glyphicon '.$icon.'">'.$icontext.'</span>' . ucfirst($GLOBALS['I18N']->get($category)) . '</a>' . $thismenu . '</li></ul>';
} else {
$topmenu .= '<ul><li><span>' . $GLOBALS['I18N']->get($category) . $categoryurl . '</span>' . $thismenu . '</li></ul>';
}
}
} /* <- end foreach category */
/* add an Account section if category exist */
if (!empty($accmenu)) {
$topmenu.='<h3 id="accmenu">'.$GLOBALS['I18N']->get('Profile and account').'</h3>'.$accmenu;
}
$topmenu .= '</div>';
return $topmenu;
}