public function prepare_remote_upgrade($remoteMPID = 0){ $tp = new TaskPermission(); if ($tp->canInstallPackages()) { Loader::model('marketplace_remote_item'); $mri = MarketplaceRemoteItem::getByID($remoteMPID); if (!is_object($mri)) { $this->set('error', array(t('Invalid marketplace item ID.'))); return; } $local = Package::getbyHandle($mri->getHandle()); if (!is_object($local) || $local->isPackageInstalled() == false) { $this->set('error', array(Package::E_PACKAGE_NOT_FOUND)); return; } $r = $mri->downloadUpdate(); if ($r != false) { if (!is_array($r)) { $this->set('error', array($r)); } else { $errors = Package::mapError($r); $this->set('error', $errors); } } else { $this->redirect('/dashboard/extend/update', 'do_update', $mri->getHandle()); } } }
<?php if (count($pkgLocal) == 0 && count($pkgRemote) == 0) { ?> <p><?php echo t('No updates for your add-ons are available.'); ?> </p> <?php } else { ?> <table class="table update-addons-table"> <?php foreach ($pkgRemote as $pkg) { $rpkg = MarketplaceRemoteItem::getByHandle($pkg->getPackageHandle()); ?> <tr> <td class="ccm-marketplace-list-thumbnail" rowspan="2"><img src="<?php echo $ci->getPackageIconURL($pkg); ?> " /></td> <td class="ccm-addon-list-description"><h3><?php echo $pkg->getPackageName(); ?> </h3><p><?php echo $pkg->getPackageDescription(); ?> </p> <p><strong><?php
<?php defined('C5_EXECUTE') or die("Access Denied."); Loader::library('marketplace'); Loader::model('marketplace_remote_item'); $js = Loader::helper('json'); $mi = Marketplace::getInstance(); $obj = new stdClass; $obj->isConnected = $mi->isConnected(); $obj->connectionError = $mi->getConnectionError(); if ($mi->isConnected() && isset($_REQUEST['mpID'])) { // we also perform the "does the user need to buy it?" query here to save some requests $mr = MarketplaceRemoteItem::getByID($_REQUEST['mpID']); if (is_object($mr)) { $obj->purchaseRequired = $mr->purchaseRequired(); $obj->remoteURL = $mr->getRemoteURL(); // if purchase is NOT required then we also try and add a license // don't worry - this is also verified on the server if (!$mr->purchaseRequired()) { $mr->enableFreeLicense(); } } } print $js->encode($obj); exit;
public function getAvailableMarketplaceItems($filterInstalled = true) { Loader::model('marketplace_remote_item'); $fh = Loader::helper('file'); if (!$fh) { return array(); } // Retrieve the URL contents $csToken = Config::get('MARKETPLACE_SITE_TOKEN'); $csiURL = urlencode(BASE_URL . DIR_REL); $url = MARKETPLACE_PURCHASES_LIST_WS . "?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 MarketplaceRemoteItem(); $mi->setPropertiesFromJSONObject($addon); $remoteCID = $mi->getRemoteCollectionID(); if (!empty($remoteCID)) { $addons[$mi->getHandle()] = $mi; } } } catch (Exception $e) { } if ($filterInstalled && is_array($addons)) { Loader::model('package'); $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; }
if (!$tp->canInstallPackages()) { ?> <p><?php echo t('You do not have permission to download packages from the marketplace.'); ?> </p> <?php exit; } Loader::library('marketplace'); Loader::model('marketplace_remote_item'); $mpID = $_REQUEST['mpID']; $install = isset($_REQUEST['install']) ? $_REQUEST['install'] : false; $error = Loader::helper('validation/error'); if (!empty($mpID)) { $mri = MarketplaceRemoteItem::getByID($mpID); if (is_object($mri)) { $r = $mri->download(); if ($r != false) { if (is_array($r)) { $errors = Package::mapError($r); foreach ($errors as $e) { $error->add($e); } } else { $error->add($r); } } } } if (!is_object($mri)) {
public function get($itemsToGet = 0, $offset = 0) { $this->start = $offset; $items = $this->items; $marketplaceItems = array(); foreach ($items as $stdObj) { $mi = new MarketplaceRemoteItem(); $mi->setPropertiesFromJSONObject($stdObj); $marketplaceItems[] = $mi; } return $marketplaceItems; }
public function download($remoteMPID = null) { $tp = new TaskPermission(); if ($tp->canInstallPackages()) { Loader::model('marketplace_remote_item'); $mri = MarketplaceRemoteItem::getByID($remoteMPID); if (!is_object($mri)) { $this->set('error', array(t('Invalid marketplace item ID.'))); return; } $r = $mri->download(); if ($r != false) { if (!is_array($r)) { $this->set('error', array($r)); } else { $errors = Package::mapError($r); $this->set('error', $errors); } } else { $this->set('message', t('Marketplace item %s downloaded successfully.', $mri->getName())); } } else { $this->error->add(t('You do not have permission to download add-ons.')); $this->set('error', $this->error); } }