Beispiel #1
0
 public function prepare_remote_upgrade($remoteMPID = 0)
 {
     $tp = new TaskPermission();
     if ($tp->canInstallPackages()) {
         $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());
         }
     }
 }
 public function view_detail($mpID = null)
 {
     $this->setThemeViewTemplate('marketplace.php');
     $this->set('type', $this->getMarketplaceType());
     $this->set('heading', $this->getMarketplaceDefaultHeading());
     $tp = new TaskPermission();
     $mi = Marketplace::getInstance();
     if ($mi->isConnected() && $tp->canInstallPackages()) {
         $mpID = intval($mpID);
         $this->requireAsset('core/lightbox');
         $item = RemoteItem::getByID($mpID);
         if (is_object($item)) {
             if ($item->getMarketplaceItemType() == 'theme' && $this->getMarketplaceType() == 'themes' || $item->getMarketplaceItemType() == 'add_on' && $this->getMarketplaceType() == 'addons') {
                 $this->set('item', $item);
             } else {
                 $this->redirect('/dashboard/extend/connect');
             }
         } else {
             throw new \Exception(t('Invalid marketplace item object.'));
         }
     } else {
         $this->redirect('/dashboard/extend/connect');
     }
 }
Beispiel #3
0
 public function download($remoteMPID = null)
 {
     $tp = new TaskPermission();
     if ($tp->canInstallPackages()) {
         $mri = MarketplaceRemoteItem::getByID($remoteMPID);
         if (!is_object($mri)) {
             $this->error->add(t('Invalid marketplace item ID.'));
             return;
         }
         $r = $mri->download();
         if ($r != false) {
             if (!is_array($r)) {
                 $this->error->add($r);
             } else {
                 $errors = Package::mapError($r);
                 foreach ($errors as $error) {
                     $this->error->add($error);
                 }
             }
         } 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.'));
     }
 }
 public function on_start()
 {
     parent::on_start();
     $this->marketplace = Marketplace::getInstance();
     $this->item = RemoteItem::getByID($this->request->query->get('mpID'));
 }