예제 #1
0
 public function view()
 {
     $error = \Core::make('helper/validation/error');
     $r = $this->item->download();
     if ($r != false) {
         if (is_array($r)) {
             $errors = Package::mapError($r);
             foreach ($errors as $e) {
                 $error->add($e);
             }
         } else {
             $error->add($r);
         }
     }
     if (!$error->has()) {
         $tests = Package::testForInstall($this->item->getHandle());
         if (is_array($tests)) {
             $results = Package::mapError($tests);
             foreach ($results as $te) {
                 $error->add($te);
             }
         } else {
             $p = Package::getClass($this->item->getHandle());
             try {
                 $p->install();
             } catch (\Exception $e) {
                 $error->add($e->getMessage());
             }
         }
     }
     $this->set('error', $error);
     $this->set('mri', $this->item);
 }
 public function import(\SimpleXMLElement $sx)
 {
     if (isset($sx->packages)) {
         foreach ($sx->packages->package as $p) {
             $pkg = Package::getClass((string) $p['handle']);
             if (!$pkg->isPackageInstalled()) {
                 $pkg->install();
             }
         }
     }
 }