Ejemplo n.º 1
0
     } 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;
Ejemplo n.º 2
0
 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.');
     }
 }