/** * Installs a package. */ public function actionInstallPackage() { $this->requirePostRequest(); $this->requireAjaxRequest(); $package = craft()->request->getRequiredPost('package'); $success = Craft::installPackage($package); $this->returnJson(array('success' => $success)); }
/** * @param TryPackageModel $model * @return bool */ public function tryPackage(TryPackageModel $model) { $et = new Et(static::StartPackageTrial); $et->setData($model); $etResponse = $et->phoneHome(); if (!empty($etResponse->data['success'])) { // Install the package. if (!Craft::hasPackage($model->packageHandle)) { Craft::installPackage($model->packageHandle); } return true; } else { // Did they at least say why? if (!empty($etResponse->errors)) { switch ($etResponse->errors[0]) { // Validation errors case 'package_doesnt_exist': $error = Craft::t('The selected package doesn’t exist anymore.'); break; case 'cannot_trial_package': $error = Craft::t('Your license key is invalid.'); break; default: $error = $etResponse->errors[0]; } } else { // Something terrible must have happened! $error = Craft::t('Craft is unable to trial packages at this time.'); } $model->addError('response', $error); } return false; }