예제 #1
0
 /**
  * Installs a package.
  */
 public function actionInstallPackage()
 {
     $this->requirePostRequest();
     $this->requireAjaxRequest();
     $package = craft()->request->getRequiredPost('package');
     $success = Craft::installPackage($package);
     $this->returnJson(array('success' => $success));
 }
예제 #2
0
 /**
  * @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;
 }