public function menu() { $block_arr = array(); $regedit = regedit::getInstance(); $modules = $this->getSortedModulesList(); $result = array(); foreach ($modules as $moduleName => $moduleInfo) { $moduleConfig = $regedit->getVal("//modules/{$moduleName}/config"); $currentModule = cmsController::getInstance()->getCurrentModule(); $currentMethod = cmsController::getInstance()->getCurrentMethod(); $line_arr = array(); $line_arr['attribute:name'] = $moduleInfo['name']; $line_arr['attribute:label'] = $moduleInfo['label']; $line_arr['attribute:type'] = $moduleInfo['type']; if ($currentModule == $moduleName && !($currentMethod == 'mainpage')) { $line_arr['attribute:active'] = "active"; } if ($moduleConfig && system_is_allowed($currentModule, "config")) { $line_arr['attribute:config'] = "config"; } $result[] = $line_arr; } $block_arr['items'] = array("nodes:item" => $result); return $block_arr; }
protected function executeMacros($v264a818e305e0550c3ee63761dd3d911) { if ($v264a818e305e0550c3ee63761dd3d911['module'] == "core" || $v264a818e305e0550c3ee63761dd3d911['module'] == "system" || $v264a818e305e0550c3ee63761dd3d911['module'] == "custom") { $v22884db148f0ffb0d830ba431102b0b5 =& system_buildin_load($v264a818e305e0550c3ee63761dd3d911['module']); } else { $v22884db148f0ffb0d830ba431102b0b5 = cmsController::getInstance()->getModule($v264a818e305e0550c3ee63761dd3d911['module']); } $vea9f6aca279138c58f705c8d4cb4b8ce = isset($v264a818e305e0550c3ee63761dd3d911['method']) ? $v264a818e305e0550c3ee63761dd3d911['method'] : false; if ($v22884db148f0ffb0d830ba431102b0b5 && $vea9f6aca279138c58f705c8d4cb4b8ce) { if ($v264a818e305e0550c3ee63761dd3d911['module'] != "core" && $v264a818e305e0550c3ee63761dd3d911['module'] != "system" && $v264a818e305e0550c3ee63761dd3d911['module'] != "custom") { $vbab394571d9305ff0c667ed256c19a70 = (bool) system_is_allowed($v264a818e305e0550c3ee63761dd3d911['module'], $v264a818e305e0550c3ee63761dd3d911['method']); } else { $vbab394571d9305ff0c667ed256c19a70 = true; } if ($vbab394571d9305ff0c667ed256c19a70) { $v9b207167e5381c47682c6b4f58a623fb = call_user_func_array(array($v22884db148f0ffb0d830ba431102b0b5, $v264a818e305e0550c3ee63761dd3d911['method']), $v264a818e305e0550c3ee63761dd3d911['params']); return $v9b207167e5381c47682c6b4f58a623fb; } else { return false; } } else { return false; } }
/** * @deprecated * Больше не используется в системе */ function macros_content() { static $res; if (!is_null($res)) { return $res; } $cmsController = cmsController::getInstance(); $current_module = $cmsController->getCurrentModule(); $current_method = $cmsController->getCurrentMethod(); $previousValue = $cmsController->isContentMode; $cmsController->isContentMode = true; if ($module = $cmsController->getModule($current_module)) { $pid = $cmsController->getCurrentElementId(); $permissions = permissionsCollection::getInstance(); $templater = $cmsController->getCurrentTemplater(); $isAdmin = $permissions->isAdmin(); if ($pid) { list($r, $w) = $permissions->isAllowedObject($permissions->getUserId(), $pid); if ($r) { $is_element_allowed = true; } else { $is_element_allowed = false; } } else { $is_element_allowed = true; } if (system_is_allowed($current_module, $current_method) && $is_element_allowed) { if ($parsedContent = $cmsController->parsedContent) { return $parsedContent; } if ($cmsController->getCurrentMode() == "admin") { try { if (!$templater->getIsInited()) { $res = $module->cms_callMethod($current_method, NULL); } } catch (publicException $e) { $templater->setDataSet($e); return $res = false; } } else { try { $res = $module->cms_callMethod($current_method, NULL); } catch (publicException $e) { $res = $e->getMessage(); } $res = system_parse_short_calls($res); $res = str_replace("%content%", "%content ", $res); $res = templater::getInstance()->parseInput($res); $res = system_parse_short_calls($res); } if ($res !== false && is_array($res) == false) { if ($cmsController->getCurrentMode() != "admin" && stripos($res, "%cut%") !== false) { if (array_key_exists("cut", $_REQUEST)) { if ($_REQUEST['cut'] == "all") { $_REQUEST['cut_pages'] = 0; return str_ireplace("%cut%", "", $res); } $cut = (int) $_REQUEST['cut']; } else { $cut = 0; } $res_arr = spliti("%cut%", $res); if ($cut > sizeof($res_arr) - 1) { $cut = sizeof($res_arr) - 1; } if ($cut < 0) { $cut = 0; } $_REQUEST['cut_pages'] = sizeof($res_arr); $_REQUEST['cut_curr_page'] = $cut; $res = $res_arr[$cut]; } $cmsControllerInstance = $cmsController; $cmsControllerInstance->parsedContent = $res; $cmsController->isContentMode = $previousValue; return $res; } else { $cmsController->isContentMode = $previousValue; return $res = '<notice>%core_templater% %core_error_nullvalue%</notice>'; } } else { if ($cmsController->getCurrentMode() == "admin" && $isAdmin) { if ($current_module == "content" && $current_method == "sitetree") { $regedit = regedit::getInstance(); $modules = $regedit->getList("//modules"); foreach ($modules as $item) { list($module) = $item; if (system_is_allowed($module) && $module != 'content') { $module_inst = $cmsController->getModule($module); $url = $module_inst->pre_lang . "/admin/" . $module . "/"; $module_inst->redirect($url); } } } } if ($module = $cmsController->getModule("users")) { header("Status: 401 Unauthorized"); $cmsController->setCurrentModule("users"); $cmsController->setCurrentMethod("login"); $cmsController->isContentMode = $previousValue; if ($isAdmin) { $module = $cmsController->getModule($current_module); if ($module->isMethodExists($current_method) == false) { $url = $module_inst->pre_lang . "/admin/content/sitetree/"; $module->redirect($url); } if ($cmsController->getCurrentMode() == "admin") { $e = new requreMoreAdminPermissionsException(getLabel("error-require-more-permissions")); $templater->setDataSet($e); } return $res = "<p><warning>%core_error_nopermission%</warning></p>" . $module->login(); } else { if ($templater instanceof xslAdminTemplater && $templater->getParsed()) { throw new requireAdminPermissionsException("No permissions"); } return $res = $module->login(); } } return $res = '<warning>%core_templater% %core_error_nullvalue% %core_error_nopermission%</warning>'; } } $cmsController->isContentMode = $previousValue; return $res = '%core_templater% %core_error_unknown%'; }
protected function executeCompleteMacros($v22884db148f0ffb0d830ba431102b0b5, $vea9f6aca279138c58f705c8d4cb4b8ce = null, $args = array(), array $v87cd8b8808600624d8c590cfc2e6e94b) { $v594c103f2c6e04c3d8ab059f031e0c1a = cmsController::getInstance(); $v7d059d8ffac0a3914b296af280c6194e = $this->generateMSResultUID(); $v79e333907d62f2b72da57dda128668fd = "%" . $v22884db148f0ffb0d830ba431102b0b5 . " " . $vea9f6aca279138c58f705c8d4cb4b8ce . "(" . implode(",", $args) . ")%"; $vb439a0ec6d69c6153eb9fd03e39b7216 = count($args); for ($v865c0c0b4ab0e063e5caa3387c1a8741 = 0; $v865c0c0b4ab0e063e5caa3387c1a8741 < $vb439a0ec6d69c6153eb9fd03e39b7216; $v865c0c0b4ab0e063e5caa3387c1a8741++) { if (isset(self::$msResultStack[$args[$v865c0c0b4ab0e063e5caa3387c1a8741]])) { $args[$v865c0c0b4ab0e063e5caa3387c1a8741] = self::$msResultStack[$args[$v865c0c0b4ab0e063e5caa3387c1a8741]]; } elseif (strpos($args[$v865c0c0b4ab0e063e5caa3387c1a8741], '[ms_') !== false) { $args[$v865c0c0b4ab0e063e5caa3387c1a8741] = str_replace(array_keys(self::$msResultStack), array_values(self::$msResultStack), $args[$v865c0c0b4ab0e063e5caa3387c1a8741]); } } if (is_null($vea9f6aca279138c58f705c8d4cb4b8ce) && is_callable($v22884db148f0ffb0d830ba431102b0b5)) { $v79e333907d62f2b72da57dda128668fd = $v22884db148f0ffb0d830ba431102b0b5($args); } else { $vd8c56561cee88453daa5db9a9ab5354c = null; if ($v22884db148f0ffb0d830ba431102b0b5 == "core" || $v22884db148f0ffb0d830ba431102b0b5 == "system" || $v22884db148f0ffb0d830ba431102b0b5 == "custom") { $vd8c56561cee88453daa5db9a9ab5354c =& system_buildin_load($v22884db148f0ffb0d830ba431102b0b5); } elseif (system_is_allowed($v22884db148f0ffb0d830ba431102b0b5, $vea9f6aca279138c58f705c8d4cb4b8ce)) { $vd8c56561cee88453daa5db9a9ab5354c = $v594c103f2c6e04c3d8ab059f031e0c1a->getModule($v22884db148f0ffb0d830ba431102b0b5); } elseif (defined('DEBUG') && DEBUG) { $v79e333907d62f2b72da57dda128668fd = "You are not allowed to execute {$v22884db148f0ffb0d830ba431102b0b5}/{$vea9f6aca279138c58f705c8d4cb4b8ce}"; } else { $v79e333907d62f2b72da57dda128668fd = ""; } if ($vd8c56561cee88453daa5db9a9ab5354c) { try { $v79e333907d62f2b72da57dda128668fd = $vd8c56561cee88453daa5db9a9ab5354c->cms_callMethod($vea9f6aca279138c58f705c8d4cb4b8ce, $args); } catch (publicException $ve1671797c52e15f763380b45e841ec32) { $v79e333907d62f2b72da57dda128668fd = $ve1671797c52e15f763380b45e841ec32->getMessage(); } } } $this->parseLevel++; $v79e333907d62f2b72da57dda128668fd = $this->parse($v87cd8b8808600624d8c590cfc2e6e94b, $v79e333907d62f2b72da57dda128668fd); $this->parseLevel--; $this->setMSResult($v7d059d8ffac0a3914b296af280c6194e, $v79e333907d62f2b72da57dda128668fd); return $v7d059d8ffac0a3914b296af280c6194e; }
private function prepareAdminSideGlobalVariables() { $v41275a535677f79ff347e01bc530c176 = permissionsCollection::getInstance(); $ve4e46deb7f9cc58c7abfb32e5570b6f3 = domainsCollection::getInstance(); $vb1444fb0c07653567ad325aa25d4e37a = regedit::getInstance(); $result = array('@module' => $this->current_module, '@method' => $this->current_method, '@lang' => $this->current_lang->getPrefix(), '@lang-id' => $this->current_lang->getId(), '@pre-lang' => $this->pre_lang, '@domain' => $this->current_domain->getHost(), '@domain-id' => $this->current_domain->getId(), '@session-lifetime' => defined('SESSION_LIFETIME') ? SESSION_LIFETIME : 0, '@system-build' => $vb1444fb0c07653567ad325aa25d4e37a->getVal("//modules/autoupdate/system_build"), '@referer-uri' => $this->getCalculatedRefererUri(), '@user-id' => $v41275a535677f79ff347e01bc530c176->getUserId(), '@interface-lang' => ulangStream::getLangPrefix()); if (defined('CURRENT_VERSION_LINE') && CURRENT_VERSION_LINE == 'demo') { $result['@demo'] = 1; } if ($vb6ee27ee7fe19b0c0dd907d5f947aa12 = getServer('REQUEST_URI')) { $vafbad9dc43d3b9eb8533cd54a4df6a87 = parse_url($vb6ee27ee7fe19b0c0dd907d5f947aa12); $vb6ee27ee7fe19b0c0dd907d5f947aa12 = getArrayKey($vafbad9dc43d3b9eb8533cd54a4df6a87, 'path'); $vf7cc8e4882789cf3335d9ed97f208c6f = getArrayKey($vafbad9dc43d3b9eb8533cd54a4df6a87, 'query'); if ($vf7cc8e4882789cf3335d9ed97f208c6f) { parse_str($vf7cc8e4882789cf3335d9ed97f208c6f, $v5ebb3c9d5620968cde8459888eff1702); if (isset($v5ebb3c9d5620968cde8459888eff1702['p'])) { unset($v5ebb3c9d5620968cde8459888eff1702['p']); } if (isset($v5ebb3c9d5620968cde8459888eff1702['xmlMode'])) { unset($v5ebb3c9d5620968cde8459888eff1702['xmlMode']); } $vf7cc8e4882789cf3335d9ed97f208c6f = http_build_query($v5ebb3c9d5620968cde8459888eff1702, '', '&'); if ($vf7cc8e4882789cf3335d9ed97f208c6f) { $vb6ee27ee7fe19b0c0dd907d5f947aa12 .= '?' . $vf7cc8e4882789cf3335d9ed97f208c6f; } } $result['@request-uri'] = $vb6ee27ee7fe19b0c0dd907d5f947aa12; } $result['@edition'] = CURRENT_VERSION_LINE; $result['@disableTooManyChildsNotification'] = (int) mainConfiguration::getInstance()->get('system', 'disable-too-many-childs-notification'); $va74846e5bcde649f23218b2e062c90a8 = $v41275a535677f79ff347e01bc530c176->isAdmin(); if (system_is_allowed($this->current_module, $this->current_method)) { try { if ($v22884db148f0ffb0d830ba431102b0b5 = $this->getModule($this->current_module)) { $v22884db148f0ffb0d830ba431102b0b5->cms_callMethod($this->current_method, NULL); } $result['data'] = $this->adminDataSet; } catch (publicException $ve1671797c52e15f763380b45e841ec32) { $result['data'] = $ve1671797c52e15f763380b45e841ec32; } } elseif ($va74846e5bcde649f23218b2e062c90a8) { $result['data'] = new requreMoreAdminPermissionsException(getLabel("error-require-more-permissions")); } if (!is_null($ve1d832ee855bdce9643cc79275650e83 = getRequest('domain'))) { $result['@domain-floated'] = $ve1d832ee855bdce9643cc79275650e83; $result['@domain-floated-id'] = $ve4e46deb7f9cc58c7abfb32e5570b6f3->getDomainId($ve1d832ee855bdce9643cc79275650e83); } else { if ($this->currentEditElementId) { $v8e2dcfd7e7e24b1ca76c1193f645902b = umiHierarchy::getInstance()->getElement($this->currentEditElementId); if ($v8e2dcfd7e7e24b1ca76c1193f645902b instanceof umiHierarchyElement) { $v72ee76c5c29383b7c9f9225c1fa4d10b = $v8e2dcfd7e7e24b1ca76c1193f645902b->getDomainId(); $vad5f82e879a9c5d6b5b442eb37e50551 = $ve4e46deb7f9cc58c7abfb32e5570b6f3->getDomain($v72ee76c5c29383b7c9f9225c1fa4d10b); if ($vad5f82e879a9c5d6b5b442eb37e50551 instanceof iDomain) { $result['@domain-floated'] = $va6b64ba4d9e3e0b93a64bb6af8c320cc = $vad5f82e879a9c5d6b5b442eb37e50551->getHost(); } } } else { $result['@domain-floated'] = $result['@domain']; } } return $result; }
public function choose_perms($ownerId = false) { $regedit = regedit::getInstance(); $domainsCollection = domainsCollection::getInstance(); $permissions = permissionsCollection::getInstance(); $cmsController = cmsController::getInstance(); if($ownerId === false) { $ownerId = (int) $regedit->getVal("//modules/users/guest_id"); } $restrictedModules = array('autoupdate', 'backup'); $modules_arr = Array(); $modules_list = $regedit->getList("//modules"); foreach($modules_list as $md) { list($module_name) = $md; if(in_array($module_name, $restrictedModules)) { continue; } $func_list = array_keys($permissions->getStaticPermissions($module_name)); if(!system_is_allowed($module_name)) continue; $module_label = getLabel("module-" . $module_name); $is_allowed_module = $permissions->isAllowedModule($ownerId, $module_name); $options_arr = Array(); if(is_array($func_list)) { foreach($func_list as $method_name) { if(!system_is_allowed($module_name, $method_name)) continue; $is_allowed_method = $permissions->isAllowedMethod($ownerId, $module_name, $method_name); $option_arr = Array(); $option_arr['attribute:name'] = $method_name; $option_arr['attribute:label'] = getLabel("perms-" . $module_name . "-" . $method_name, $module_name); $option_arr['attribute:access'] = (int) $is_allowed_method; $options_arr[] = $option_arr; } } $module_arr = Array(); $module_arr['attribute:name'] = $module_name; $module_arr['attribute:label'] = $module_label; $module_arr['attribute:access'] = (int) $is_allowed_module; $module_arr['nodes:option'] = $options_arr; $modules_arr[] = $module_arr; } $domains_arr = Array(); $domains = $domainsCollection->getList(); foreach($domains as $domain) { $domain_arr = Array(); $domain_arr['attribute:id'] = $domain->getId(); $domain_arr['attribute:host'] = $domain->getHost(); $domain_arr['attribute:access'] = $permissions->isAllowedDomain($ownerId, $domain->getId()); $domains_arr[] = $domain_arr; } $result_arr = Array(); $result_arr['domains']['nodes:domain'] = $domains_arr; $result_arr['nodes:module'] = $modules_arr; return $result_arr; }
public function getTypeEditLinkXml($v5f694956811487225d15e973ca38fbab) { if (system_is_allowed("data", "type_edit")) { $v0e8133eb006c0f85ed9444ae07a60842 = umiObjectTypesCollection::getInstance(); if ($v599dcce2998a6b40b1e38e8c6006cb0a = $v0e8133eb006c0f85ed9444ae07a60842->getType($v5f694956811487225d15e973ca38fbab)) { return array('type' => array('node:name' => $v599dcce2998a6b40b1e38e8c6006cb0a->getName(), 'attribute:link' => $this->pre_lang . "/admin/data/type_edit/{$v5f694956811487225d15e973ca38fbab}/")); } } }