} else { $showcase = []; $version_url = str_replace('.', '_', OSCOM::getVersion()); $response = HTTP::getResponse(['url' => 'https://apps.oscommerce.com/index.php?RPC&GetShowcase&' . $version_url]); if (!empty($response)) { $showcase = json_decode($response, true); } if (is_array($showcase) && !empty($showcase) && isset($showcase['rpcStatus']) && $showcase['rpcStatus'] === 1) { $AppsShowcaseCache->save($showcase); } } if (is_array($showcase) && !empty($showcase) && isset($showcase['rpcStatus']) && $showcase['rpcStatus'] === 1 && isset($showcase['showcase'])) { $result['result'] = 1; $result['showcase'] = []; foreach ($showcase['showcase'] as $app) { $result['showcase'][] = ['vendor' => $app['vendor'], 'app' => $app['app'], 'title' => $app['title'], 'description' => $app['description'], 'is_installed' => Apps::exists($app['vendor'] . '\\' . $app['app'])]; } } echo json_encode($result); exit; break; case 'getInstalledApps': $result = ['result' => -1]; $apps = Apps::getAll(); if (is_array($apps)) { $result['result'] = 1; $result['apps'] = $apps; } echo json_encode($result); exit; break;
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.'); } }