/** * Get the metadata for the object * @return void */ public function getMetadata() { /** @var xPDOTransport $transport */ $transport = $this->object->getTransport(); if ($transport) { $this->object->set('readme', $transport->getAttribute('readme')); $this->object->set('license', $transport->getAttribute('license')); $this->object->set('changelog', $transport->getAttribute('changelog')); } }
public function process() { $transport = $this->package->getTransport(); $this->modx->log(modX::LOG_LEVEL_INFO, $this->modx->lexicon('package_uninstall_info_prep')); /* uninstall package */ $options = array(xPDOTransport::PREEXISTING_MODE => $this->getProperty('preexisting_mode')); if ($this->package->uninstall($options) == false) { return $this->failure(sprintf($this->modx->lexicon('package_err_uninstall'), $this->package->getPrimaryKey())); } $this->modx->log(modX::LOG_LEVEL_WARN, $this->modx->lexicon('package_uninstall_info_success', array('signature' => $this->package->get('signature')))); sleep(2); $this->modx->log(modX::LOG_LEVEL_INFO, 'COMPLETED'); $this->clearCache(); $this->logManagerAction(); return $this->success(); }
public function initialize() { $signature = $this->getProperty('signature'); if (empty($signature)) { return $this->modx->lexicon('package_err_ns'); } $this->package = $this->modx->getObject('transport.modTransportPackage', $signature); if (empty($this->package)) { return $this->modx->lexicon('package_err_nf'); } $this->transport = $this->package->getTransport(); if (!$this->transport) { return $this->modx->lexicon('package_err_nf'); } return true; }
/** * Run the processor, downloading and transferring the package, and creating the metadata in the database * {@inheritDoc} * @return mixed */ public function process() { if (!$this->loadProvider()) { return $this->failure($this->modx->lexicon('provider_err_nf')); } if (!$this->provider->getClient()) { return $this->failure($this->modx->lexicon('provider_err_no_client')); } $this->getTransportPackage(); $metaLoaded = $this->getPackageMetadata(); if ($metaLoaded !== true) { return $this->failure($metaLoaded); } $this->setPackageVersionData(); $url = $this->getFileDownloadUrl(); if (!is_string($url)) { return $url; } if (!$this->downloadPackage($url)) { $msg = $this->modx->lexicon('package_download_err', array('location' => $url)); $this->modx->log(modX::LOG_LEVEL_ERROR, $msg); return $this->failure($msg); } if (!$this->package->save()) { $msg = $this->modx->lexicon('package_download_err_create', array('signature' => $this->signature)); $this->modx->log(modX::LOG_LEVEL_ERROR, $msg); return $this->failure($msg); } $this->package->getTransport(); return $this->success('', $this->package); }
/** * Setup description, using either metadata or readme * * @param modTransportPackage $package * @param array $packageArray * @return array */ public function getPackageMeta(modTransportPackage $package, array $packageArray) { $metadata = $packageArray['metadata']; if (!empty($metadata)) { foreach ($metadata as $row) { if (!empty($row['name']) && $row['name'] == 'description') { $packageArray['readme'] = nl2br($row['text']); break; } } } else { /** @var xPDOTransport $transport */ $transport = $package->getTransport(); if ($transport) { $packageArray['readme'] = $transport->getAttribute('readme'); $packageArray['readme'] = nl2br($packageArray['readme']); } } unset($packageArray['attributes']); unset($packageArray['metadata']); return $packageArray; }