コード例 #1
0
ファイル: update.php プロジェクト: nveid/concrete5
    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());
			}
		}
    }
コード例 #2
0
		<?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 
コード例 #3
0
ファイル: connect.php プロジェクト: rii-J/concrete5-de
<?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;
コード例 #4
0
 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;
 }
コード例 #5
0
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)) {
コード例 #6
0
 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;
 }
コード例 #7
0
ファイル: install.php プロジェクト: Zyqsempai/amanet
 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);
     }
 }