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'); } }
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')); }