Example #1
0
 /**
  * 注册应用信息
  *
  * @param PwInstallApplication $install        	
  * @return PwError true
  */
 public function registeApplication($install)
 {
     $manifest = $install->getManifest();
     $application = new PwApplicationDm();
     $application->setAppId($install->getAppId());
     $application->setName($manifest->getApplication('name'));
     $application->setAlias($manifest->getApplication('alias'));
     $application->setVersion($manifest->getApplication('version'));
     $application->setPwVersion($manifest->getApplication('pw-version'));
     $application->setDescription($manifest->getApplication('description'));
     $application->setLogo($manifest->getApplication('logo'));
     $application->setWebsite($manifest->getApplication('website'));
     $application->setAuthorName($manifest->getApplication('author-name'));
     $application->setAuthorEmail($manifest->getApplication('author-email'));
     $application->setAuthorIcon($manifest->getApplication('author-icon'));
     $application->setCreatedTime(Pw::getTime());
     $application->setModifiedTime(Pw::getTime());
     // 1 - 前台入口 2 - 后台入口 4 - 非纯在线 8 - 站内应用
     $status = 0;
     if ($tmp = $install->getTmpPackage()) {
         if (is_file($tmp . '/' . self::CONTROLLER)) {
             $status |= 1;
         }
         if (is_file($tmp . '/' . self::ADMIN)) {
             $status |= 2;
         }
         $status |= 4;
     }
     if ($install->getManifest()->getApplication('station', '0')) {
         $status |= 8;
     }
     $application->setStatus($status);
     if (!$application->beforeAdd()) {
         return new PwError('APPCENTER:install.mainfest.fail');
     }
     $this->_load()->add($application);
     $install->setInstallLog('appId', $install->getAppId());
     file_put_contents(DATA_PATH . 'tmp/log', 'app!', FILE_APPEND);
     return true;
 }