diff --git a/src/mibew/libs/operator.php b/src/mibew/libs/operator.php index df291d1e..a7bebbbd 100644 --- a/src/mibew/libs/operator.php +++ b/src/mibew/libs/operator.php @@ -673,16 +673,28 @@ function in_isolation($operator) return (!is_capable(CAN_ADMINISTRATE, $operator) && Settings::get('enablegroups') && Settings::get('enablegroupsisolation')); } -function prepare_menu($operator, $hasright = true) -{ - global $page; - $page['operator'] = topage(get_operator_name($operator)); +/** + * Prepare values to render page menu. + * + * @param array $operator An array with operators data. + * @param boolean $hasright Restricts access to menu items. If it equals to + * FALSE only "Home", "Visitors", and "Chat history" items will be displayed. + * Otherwise items set depends on operator's permissions and system settings. + * Default value is TRUE. + * @return array + */ +function prepare_menu($operator, $hasright = true) { + $result = array(); + + $result['operator'] = topage(get_operator_name($operator)); if ($hasright) { - $page['showban'] = Settings::get('enableban') == "1"; - $page['showstat'] = Settings::get('enablestatistics') == "1"; - $page['showadmin'] = is_capable(CAN_ADMINISTRATE, $operator); - $page['currentopid'] = $operator['operatorid']; + $result['showban'] = Settings::get('enableban') == "1"; + $result['showstat'] = Settings::get('enablestatistics') == "1"; + $result['showadmin'] = is_capable(CAN_ADMINISTRATE, $operator); + $result['currentopid'] = $operator['operatorid']; } + + return $result; } function get_all_groups() diff --git a/src/mibew/operator/avatar.php b/src/mibew/operator/avatar.php index 19d1238d..97fb7260 100644 --- a/src/mibew/operator/avatar.php +++ b/src/mibew/operator/avatar.php @@ -101,7 +101,10 @@ $page['canmodify'] = $canmodify ? "1" : ""; $page['title'] = getlocal("page_avatar.title"); $page['menuid'] = ($operator['operatorid'] == $opId) ? "profile" : "operators"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); $page['tabs'] = setup_operator_settings_tabs($opId, 1); $page_style = new PageStyle(PageStyle::currentStyle()); diff --git a/src/mibew/operator/ban.php b/src/mibew/operator/ban.php index 5519f576..5b967135 100644 --- a/src/mibew/operator/ban.php +++ b/src/mibew/operator/ban.php @@ -132,7 +132,10 @@ if (isset($_POST['address'])) { $page['title'] = getlocal("page_ban.title"); -prepare_menu($operator, false); +$page = array_merge( + $page, + prepare_menu($operator, false) +); $page_style = new PageStyle(PageStyle::currentStyle()); $page_style->render('ban'); diff --git a/src/mibew/operator/blocked.php b/src/mibew/operator/blocked.php index dfa07cda..2ec55cb7 100644 --- a/src/mibew/operator/blocked.php +++ b/src/mibew/operator/blocked.php @@ -62,7 +62,10 @@ $pagination = setup_pagination($blockedList); $page['pagination'] = $pagination['info']; $page['pagination.items'] = $pagination['items']; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); $page_style = new PageStyle(PageStyle::currentStyle()); $page_style->render('blocked_visitors'); diff --git a/src/mibew/operator/canned.php b/src/mibew/operator/canned.php index 56f5e5ad..87e74a01 100644 --- a/src/mibew/operator/canned.php +++ b/src/mibew/operator/canned.php @@ -102,7 +102,10 @@ $page['formgroup'] = $groupid; $page['title'] = getlocal("canned.title"); $page['menuid'] = "canned"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); $page_style = new PageStyle(PageStyle::currentStyle()); $page_style->render('canned'); diff --git a/src/mibew/operator/cannededit.php b/src/mibew/operator/cannededit.php index 9b745b8e..502207e1 100644 --- a/src/mibew/operator/cannededit.php +++ b/src/mibew/operator/cannededit.php @@ -69,7 +69,10 @@ if (isset($_POST['message']) && isset($_POST['title'])) { add_canned_message($page['locale'], $page['groupid'], $title, $message); } $page['saved'] = true; - prepare_menu($operator, false); + $page = array_merge( + $page, + prepare_menu($operator, false) + ); $page_style->render('cannededit'); exit; } @@ -81,7 +84,11 @@ $page['formtitle'] = topage($title); $page['formmessage'] = topage($message); $page['title'] = empty($stringid) ? getlocal("cannednew.title") : getlocal("cannededit.title"); -prepare_menu($operator, false); +$page = array_merge( + $page, + prepare_menu($operator, false) +); + $page_style->render('cannededit'); ?> \ No newline at end of file diff --git a/src/mibew/operator/features.php b/src/mibew/operator/features.php index eccf2bda..3c4aed06 100644 --- a/src/mibew/operator/features.php +++ b/src/mibew/operator/features.php @@ -70,7 +70,11 @@ foreach ($options as $opt) { $page['title'] = getlocal("settings.title"); $page['menuid'] = "settings"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); + $page['tabs'] = setup_settings_tabs(1); $page_style = new PageStyle(PageStyle::currentStyle()); diff --git a/src/mibew/operator/getcode.php b/src/mibew/operator/getcode.php index 5f1f3126..538ffe7d 100644 --- a/src/mibew/operator/getcode.php +++ b/src/mibew/operator/getcode.php @@ -103,7 +103,10 @@ $page['operator_code'] = $operator_code; $page['title'] = getlocal("page.gen_button.title"); $page['menuid'] = "getcode"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); $page_style = new PageStyle(PageStyle::currentStyle()); $page_style->render('gen_button'); diff --git a/src/mibew/operator/group.php b/src/mibew/operator/group.php index cc09c13d..8becebce 100644 --- a/src/mibew/operator/group.php +++ b/src/mibew/operator/group.php @@ -252,7 +252,11 @@ $page['availableParentGroups'] = get_available_parent_groups($groupid); $page['title'] = getlocal("page.group.title"); $page['menuid'] = "groups"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); + $page['tabs'] = setup_group_settings_tabs($groupid, 0); $page_style = new PageStyle(PageStyle::currentStyle()); diff --git a/src/mibew/operator/groupmembers.php b/src/mibew/operator/groupmembers.php index b4e1f885..d9fc0d79 100644 --- a/src/mibew/operator/groupmembers.php +++ b/src/mibew/operator/groupmembers.php @@ -95,7 +95,11 @@ $page['stored'] = isset($_GET['stored']); $page['title'] = getlocal("page.groupmembers.title"); $page['menuid'] = "groups"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); + $page['tabs'] = setup_group_settings_tabs($groupid, 1); $page_style = new PageStyle(PageStyle::currentStyle()); diff --git a/src/mibew/operator/groups.php b/src/mibew/operator/groups.php index 21e87f23..5847f01e 100644 --- a/src/mibew/operator/groups.php +++ b/src/mibew/operator/groups.php @@ -80,7 +80,10 @@ $page['availableDirections'] = array( $page['title'] = getlocal("page.groups.title"); $page['menuid'] = "groups"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); $page_style = new PageStyle(PageStyle::currentStyle()); $page_style->render('groups'); diff --git a/src/mibew/operator/history.php b/src/mibew/operator/history.php index 6dd1bbb4..b2e23a77 100644 --- a/src/mibew/operator/history.php +++ b/src/mibew/operator/history.php @@ -133,7 +133,10 @@ $page['forminsystemmessages'] = $searchInSystemMessages; $page['title'] = getlocal("page_analysis.search.title"); $page['menuid'] = "history"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); $page_style = new PageStyle(PageStyle::currentStyle()); $page_style->render('thread_search'); diff --git a/src/mibew/operator/index.php b/src/mibew/operator/index.php index 8d164656..233e0f83 100644 --- a/src/mibew/operator/index.php +++ b/src/mibew/operator/index.php @@ -42,7 +42,10 @@ $page = array( 'menuid' => "main", ); -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); $page_style = new PageStyle(PageStyle::currentStyle()); $page_style->render('menu'); diff --git a/src/mibew/operator/invitationthemes.php b/src/mibew/operator/invitationthemes.php index d331ccf3..6d946653 100644 --- a/src/mibew/operator/invitationthemes.php +++ b/src/mibew/operator/invitationthemes.php @@ -42,7 +42,11 @@ $page['operatorName'] = (empty($operator['vclocalname'])?$operator['vccommonname $page['title'] = getlocal("page.preview.title"); $page['menuid'] = "settings"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); + $page['tabs'] = setup_settings_tabs(5); $page_style = new PageStyle(PageStyle::currentStyle()); diff --git a/src/mibew/operator/operator.php b/src/mibew/operator/operator.php index c400a4f6..6a8f8e30 100644 --- a/src/mibew/operator/operator.php +++ b/src/mibew/operator/operator.php @@ -157,7 +157,11 @@ $page['needChangePassword'] = check_password_hash($operator['vclogin'], '', $ope $page['title'] = getlocal("page_agent.title"); $page['menuid'] = ($opId == $operator['operatorid']) ? "profile" : "operators"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); + $page['tabs'] = setup_operator_settings_tabs($opId, 0); $page_style = new PageStyle(PageStyle::currentStyle()); diff --git a/src/mibew/operator/operators.php b/src/mibew/operator/operators.php index 98fc6796..56abf9d1 100644 --- a/src/mibew/operator/operators.php +++ b/src/mibew/operator/operators.php @@ -118,7 +118,10 @@ $page['menuid'] = "operators"; setlocale(LC_TIME, getstring("time.locale")); -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); $page_style = new PageStyle(PageStyle::currentStyle()); $page_style->render('agents'); diff --git a/src/mibew/operator/opgroups.php b/src/mibew/operator/opgroups.php index 69b8cd03..0fea98a7 100644 --- a/src/mibew/operator/opgroups.php +++ b/src/mibew/operator/opgroups.php @@ -91,7 +91,11 @@ $page['stored'] = isset($_GET['stored']); $page['title'] = getlocal("operator.groups.title"); $page['menuid'] = ($page['operatorid'] == $opId) ? "profile" : "operators"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); + $page['tabs'] = setup_operator_settings_tabs($opId, 2); $page_style = new PageStyle(PageStyle::currentStyle()); diff --git a/src/mibew/operator/page_themes.php b/src/mibew/operator/page_themes.php index 72f719bb..87bda928 100644 --- a/src/mibew/operator/page_themes.php +++ b/src/mibew/operator/page_themes.php @@ -52,7 +52,11 @@ $page['screenshotsList'] = $screenshots; $page['title'] = getlocal("page.preview.title"); $page['menuid'] = "settings"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); + $page['tabs'] = setup_settings_tabs(3); $page_style = new PageStyle(PageStyle::currentStyle()); diff --git a/src/mibew/operator/performance.php b/src/mibew/operator/performance.php index f2a88a15..6934e116 100644 --- a/src/mibew/operator/performance.php +++ b/src/mibew/operator/performance.php @@ -128,7 +128,11 @@ $page['stored'] = isset($_GET['stored']); $page['title'] = getlocal("settings.title"); $page['menuid'] = "settings"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); + $page['tabs'] = setup_settings_tabs(2); $page_style = new PageStyle(PageStyle::currentStyle()); diff --git a/src/mibew/operator/permissions.php b/src/mibew/operator/permissions.php index aef3be05..0348d21b 100644 --- a/src/mibew/operator/permissions.php +++ b/src/mibew/operator/permissions.php @@ -79,7 +79,11 @@ $page['stored'] = isset($_GET['stored']); $page['title'] = getlocal("permissions.title"); $page['menuid'] = ($operator['operatorid'] == $opId) ? "profile" : "operators"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); + $page['tabs'] = setup_operator_settings_tabs($opId, 3); $page_style = new PageStyle(PageStyle::currentStyle()); diff --git a/src/mibew/operator/settings.php b/src/mibew/operator/settings.php index a24df570..3c590477 100644 --- a/src/mibew/operator/settings.php +++ b/src/mibew/operator/settings.php @@ -159,7 +159,11 @@ if (Settings::get('enabletracking')) { $page['availableInvitationStyles'] = $invitation_style_list; } -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); + $page['tabs'] = setup_settings_tabs(0); $page_style = new PageStyle(PageStyle::currentStyle()); diff --git a/src/mibew/operator/statistics.php b/src/mibew/operator/statistics.php index 30bfaefe..4196b673 100644 --- a/src/mibew/operator/statistics.php +++ b/src/mibew/operator/statistics.php @@ -180,7 +180,11 @@ $page['showresults'] = count($errors) == 0; $page['title'] = getlocal("statistics.title"); $page['menuid'] = "statistics"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); + $page['tabs'] = setup_statistics_tabs($activetab); $page_style = new PageStyle(PageStyle::currentStyle()); diff --git a/src/mibew/operator/themes.php b/src/mibew/operator/themes.php index 2197e456..e9133446 100644 --- a/src/mibew/operator/themes.php +++ b/src/mibew/operator/themes.php @@ -57,7 +57,11 @@ $page['screenshotsList'] = $screenshots; $page['title'] = getlocal("page.preview.title"); $page['menuid'] = "settings"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); + $page['tabs'] = setup_settings_tabs(4); $page_style = new PageStyle(PageStyle::currentStyle()); diff --git a/src/mibew/operator/threadprocessor.php b/src/mibew/operator/threadprocessor.php index dcdb5827..e09f7609 100644 --- a/src/mibew/operator/threadprocessor.php +++ b/src/mibew/operator/threadprocessor.php @@ -64,7 +64,10 @@ if (isset($_GET['threadid'])) { $page['title'] = getlocal("thread.chat_log"); -prepare_menu($operator, false); +$page = array_merge( + $page, + prepare_menu($operator, false) +); $page_style = new PageStyle(PageStyle::currentStyle()); $page_style->render('thread_log'); diff --git a/src/mibew/operator/translate.php b/src/mibew/operator/translate.php index e8441f70..7c148b37 100644 --- a/src/mibew/operator/translate.php +++ b/src/mibew/operator/translate.php @@ -161,7 +161,10 @@ if ($stringid) { $page['saved'] = true; $page['title'] = getlocal("page.translate.title"); - prepare_menu($operator, false); + $page = array_merge( + $page, + prepare_menu($operator, false) + ); $page_style->render('translate'); exit; } @@ -173,7 +176,10 @@ if ($stringid) { $page['formoriginal'] = isset($lang1[$stringid]) ? $lang1[$stringid] : ""; $page['formtranslation'] = $translation; $page['title'] = getlocal("page.translate.title"); - prepare_menu($operator, false); + $page = array_merge( + $page, + prepare_menu($operator, false) + ); $page_style->render('translate'); exit; } @@ -239,7 +245,11 @@ $page['formshow'] = $show; $page['title'] = getlocal("page.translate.title"); $page['menuid'] = "translate"; -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); + $page_style->render('translatelist'); ?> \ No newline at end of file diff --git a/src/mibew/operator/updates.php b/src/mibew/operator/updates.php index 4c72cbfe..bd273d6b 100644 --- a/src/mibew/operator/updates.php +++ b/src/mibew/operator/updates.php @@ -46,7 +46,10 @@ foreach ($default_extensions as $ext) { } } -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); $page_style = new PageStyle(PageStyle::currentStyle()); $page_style->render('updates'); diff --git a/src/mibew/operator/userhistory.php b/src/mibew/operator/userhistory.php index bbcf3614..8f39630e 100644 --- a/src/mibew/operator/userhistory.php +++ b/src/mibew/operator/userhistory.php @@ -64,7 +64,10 @@ function threads_by_userid($userid) $found = threads_by_userid($userid); -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); // Setup pagination $pagination = setup_pagination($found, 6); diff --git a/src/mibew/operator/users.php b/src/mibew/operator/users.php index 358591b4..e6cf6cba 100644 --- a/src/mibew/operator/users.php +++ b/src/mibew/operator/users.php @@ -66,7 +66,11 @@ $page['menuid'] = "users"; // Get additional plugins data $page = array_merge($page, get_plugins_data('users')); -prepare_menu($operator); +$page = array_merge( + $page, + prepare_menu($operator) +); + $page_style->render('pending_users'); ?> \ No newline at end of file