grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026retrieveSettings('MySettings'); if (isset($administration->settings) && isset($administration->settings['MySettings_tab'])) { return true; } else { return false; } } public function get_system_tabs() { global $moduleList; static $system_tabs_result = null; // if the value is not already cached, then retrieve it. if (empty($system_tabs_result) || !self::$isCacheValid) { $administration = new Administration(); $administration->retrieveSettings('MySettings'); if (isset($administration->settings) && isset($administration->settings['MySettings_tab'])) { $tabs= $administration->settings['MySettings_tab']; $trimmed_tabs = trim($tabs); //make sure serialized string is not empty if (!empty($trimmed_tabs)) { $tabs = base64_decode($tabs); $tabs = unserialize($tabs); //Ensure modules saved in the prefences exist. foreach ($tabs as $id => $tab) { if (!in_array($tab, $moduleList)) { unset($tabs[$id]); } } ACLController :: filterModuleList($tabs); $tabs = $this->get_key_array($tabs); $system_tabs_result = $tabs; } else { $system_tabs_result = $this->get_key_array($moduleList); } } else { $system_tabs_result = $this->get_key_array($moduleList); } self::$isCacheValid = true; } return $system_tabs_result; } public function get_tabs_system() { global $moduleList; $tabs = $this->get_system_tabs(); $unsetTabs = $this->get_key_array($moduleList); foreach ($tabs as $tab) { unset($unsetTabs[$tab]); } $should_hide_iframes = !file_exists('modules/iFrames/iFrame.php'); if ($should_hide_iframes) { if (isset($unsetTabs['iFrames'])) { unset($unsetTabs['iFrames']); } else { if (isset($tabs['iFrames'])) { unset($tabs['iFrames']); } } } return array($tabs,$unsetTabs); } public function set_system_tabs($tabs) { $administration = new Administration(); $serialized = base64_encode(serialize($tabs)); $administration->saveSetting('MySettings', 'tab', $serialized); self::$isCacheValid = false; } public function get_users_can_edit() { $administration = new Administration(); $administration->retrieveSettings('MySettings'); if (isset($administration->settings) && isset($administration->settings['MySettings_disable_useredit'])) { if ($administration->settings['MySettings_disable_useredit'] == 'yes') { return false; } } return true; } public function set_users_can_edit($boolean) { global $current_user; if (is_admin($current_user)) { $administration = new Administration(); if ($boolean) { $administration->saveSetting('MySettings', 'disable_useredit', 'no'); } else { $administration->saveSetting('MySettings', 'disable_useredit', 'yes'); } } } public function get_key_array($arr) { $new = array(); if (!empty($arr)) { foreach ($arr as $val) { $new[$val] = $val; } } return $new; } public function set_user_tabs($tabs, &$user, $type='display') { if (empty($user)) { global $current_user; $current_user->setPreference($type .'_tabs', $tabs); } else { $user->setPreference($type .'_tabs', $tabs); } } public function get_user_tabs(&$user, $type='display') { $system_tabs = $this->get_system_tabs(); $tabs = $user->getPreference($type .'_tabs'); if (!empty($tabs)) { $tabs = $this->get_key_array($tabs); if ($type == 'display') { $tabs['Home'] = 'Home'; } return $tabs; } else { if ($type == 'display') { return $system_tabs; } else { return array(); } } } public function get_unset_tabs($user) { global $moduleList; $tabs = $this->get_user_tabs($user); $unsetTabs = $this->get_key_array($moduleList); foreach ($tabs as $tab) { unset($unsetTabs[$tab]); } return $unsetTabs; } public function get_old_user_tabs($user) { $system_tabs = $this->get_system_tabs(); $tabs = $user->getPreference('tabs'); if (!empty($tabs)) { $tabs = $this->get_key_array($tabs); $tabs['Home'] = 'Home'; foreach ($tabs as $tab) { if (!isset($system_tabs[$tab])) { unset($tabs[$tab]); } } return $tabs; } else { return $system_tabs; } } public function get_old_tabs($user) { global $moduleList; $tabs = $this->get_old_user_tabs($user); $system_tabs = $this->get_system_tabs(); foreach ($tabs as $tab) { unset($system_tabs[$tab]); } return array($tabs,$system_tabs); } public function get_tabs($user) { $display_tabs = $this->get_user_tabs($user, 'display'); $hide_tabs = $this->get_user_tabs($user, 'hide'); $remove_tabs = $this->get_user_tabs($user, 'remove'); $system_tabs = $this->get_system_tabs(); // remove access to tabs that roles do not give them permission to foreach ($system_tabs as $key=>$value) { if (!isset($display_tabs[$key])) { $display_tabs[$key] = $value; } } // removes tabs from display_tabs if not existant in roles // or exist in the hidden tabs foreach ($display_tabs as $key=>$value) { if (!isset($system_tabs[$key])) { unset($display_tabs[$key]); } if (isset($hide_tabs[$key])) { unset($display_tabs[$key]); } } // removes tabs from hide_tabs if not existant in roles foreach ($hide_tabs as $key=>$value) { if (!isset($system_tabs[$key])) { unset($hide_tabs[$key]); } } // remove tabs from user if admin has removed specific tabs foreach ($remove_tabs as $key=>$value) { if (isset($display_tabs[$key])) { unset($display_tabs[$key]); } if (isset($hide_tabs[$key])) { unset($hide_tabs[$key]); } } return array($display_tabs, $hide_tabs, $remove_tabs); } public function restore_tabs($user) { global $moduleList; $this->set_user_tabs($moduleList, $user); } public function restore_system_tabs() { global $moduleList; $this->set_system_tabs($moduleList); } }