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;
 }
 protected static function getRemotePackageObject($method, $identifier)
 {
     $fh = Loader::helper('file');
     // Retrieve the URL contents
     $csToken = Config::get('concrete.marketplace.token');
     $csiURL = urlencode(BASE_URL . DIR_REL);
     $url = Config::get('concrete.urls.concrete5') . Config::get('concrete.urls.paths.marketplace.item_information');
     $url .= "?" . $method . "=" . $identifier . "&csToken={$csToken}&csiURL=" . $csiURL . "&csiVersion=" . APP_VERSION;
     $json = $fh->getContents($url);
     try {
         // Parse the returned XML file
         $obj = @Loader::helper('json')->decode($json);
         if (is_object($obj)) {
             $mi = new RemoteItem();
             $mi->setPropertiesFromJSONObject($obj);
             if ($mi->getMarketplaceItemID() > 0) {
                 return $mi;
             }
         }
     } catch (Exception $e) {
         throw new Exception(t('Unable to connect to marketplace to retrieve item'));
     }
 }
 public function get($itemsToGet = 0, $offset = 0)
 {
     $this->start = $offset;
     $items = $this->items;
     $marketplaceItems = array();
     foreach ($items as $stdObj) {
         $mi = new RemoteItem();
         $mi->setPropertiesFromJSONObject($stdObj);
         $marketplaceItems[] = $mi;
     }
     return $marketplaceItems;
 }