Example #1
0
 public function getAvailableMarketplaceItems($filterInstalled = true)
 {
     $fh = Loader::helper('file');
     if (!$fh) {
         return array();
     }
     $dbConfig = \Core::make('config/database');
     // Retrieve the URL contents
     $csToken = $dbConfig->get('concrete.marketplace.token');
     $csiURL = urlencode(\Core::getApplicationURL());
     $url = Config::get('concrete.urls.concrete5') . Config::get('concrete.urls.paths.marketplace.purchases');
     $url .= "?csToken={$csToken}&csiURL=" . $csiURL . "&csiVersion=" . APP_VERSION;
     $json = $fh->getContents($url);
     $addons = array();
     $objects = @Loader::helper('json')->decode($json);
     if (is_array($objects)) {
         try {
             foreach ($objects as $addon) {
                 $mi = new RemoteItem();
                 $mi->setPropertiesFromJSONObject($addon);
                 $remoteCID = $mi->getRemoteCollectionID();
                 if (!empty($remoteCID)) {
                     $addons[$mi->getHandle()] = $mi;
                 }
             }
         } catch (Exception $e) {
         }
         if ($filterInstalled && is_array($addons)) {
             $handles = Package::getInstalledHandles();
             if (is_array($handles)) {
                 $adlist = array();
                 foreach ($addons as $key => $ad) {
                     if (!in_array($ad->getHandle(), $handles)) {
                         $adlist[$key] = $ad;
                     }
                 }
                 $addons = $adlist;
             }
         }
     }
     return $addons;
 }