public function setPage() { $page_code = $this->default_page; $class = 'OSC\\Sites\\' . $this->code . '\\Pages\\' . $page_code . '\\' . $page_code; if (!empty($_GET)) { if (($route = Apps::getRouteDestination()) !== null) { $this->route = $route; list($vendor_app, $page) = explode('/', $route['destination'], 2); // get controller class name from namespace $page_namespace = explode('\\', $page); $page_code = $page_namespace[count($page_namespace) - 1]; if (class_exists('OSC\\Apps\\' . $vendor_app . '\\' . $page . '\\' . $page_code)) { $class = 'OSC\\Apps\\' . $vendor_app . '\\' . $page . '\\' . $page_code; } } else { $req = basename(array_keys($_GET)[0]); if (class_exists('OSC\\Sites\\' . $this->code . '\\Pages\\' . $req . '\\' . $req)) { $page_code = $req; $class = 'OSC\\Sites\\' . $this->code . '\\Pages\\' . $page_code . '\\' . $page_code; } } } if (is_subclass_of($class, 'OSC\\OM\\PagesInterface')) { $this->page = new $class($this); $this->page->runActions(); } else { trigger_error('OSC\\Sites\\Shop\\Shop::setPage() - ' . $page_code . ': Page does not implement OSC\\OM\\PagesInterface and cannot be loaded.'); } }
public function setPage() { $page_code = $this->default_page; $class = 'OSC\\Sites\\' . $this->code . '\\Pages\\' . $page_code . '\\' . $page_code; if (!empty($_GET)) { $req = basename(array_keys($_GET)[0]); if ($req == 'A' && count($_GET) > 1) { $app = array_keys($_GET)[1]; if (strpos($app, '\\') !== false) { list($vendor, $app) = explode('\\', $app); if (Apps::exists($vendor . '\\' . $app) && ($page = Apps::getRouteDestination(null, $vendor . '\\' . $app)) !== null) { // get controller class name from namespace $page_namespace = explode('\\', $page); $page_code = $page_namespace[count($page_namespace) - 1]; if (class_exists('OSC\\Apps\\' . $vendor . '\\' . $app . '\\' . $page . '\\' . $page_code)) { $this->app = $vendor . '\\' . $app; $this->route = $this->app . '\\' . $page; $this->actions_index = 2; $class = 'OSC\\Apps\\' . $this->app . '\\' . $page . '\\' . $page_code; } } } } else { if (class_exists('OSC\\Sites\\' . $this->code . '\\Pages\\' . $req . '\\' . $req)) { $page_code = $req; $class = 'OSC\\Sites\\' . $this->code . '\\Pages\\' . $page_code . '\\' . $page_code; } } } if (is_subclass_of($class, 'OSC\\OM\\PagesInterface')) { $this->page = new $class($this); $this->page->runActions(); } else { trigger_error('OSC\\Sites\\Admin\\Admin::setPage() - ' . $page_code . ': Page does not implement OSC\\OM\\PagesInterface and cannot be loaded.'); } }