Esempio n. 1
0
 /**
  * Short description for 'buildToolStatus'
  *
  * Long description (if any) ...
  *
  * @param      array $toolinfo Parameter description (if any) ...
  * @param      array $developers Parameter description (if any) ...
  * @param      array $authors Parameter description (if any) ...
  * @param      array $version Parameter description (if any) ...
  * @param      array &$status Parameter description (if any) ...
  * @param      unknown $option Parameter description (if any) ...
  * @return     array Return description (if any) ...
  */
 public function buildToolStatus($toolinfo, $developers = array(), $authors = array(), $version, &$status, $option)
 {
     // Create a Version object
     $objV = new Version($this->_db);
     // Get the component parameters
     $this->config = Component::params($option);
     $invokedir = $this->config->get('invokescript_dir', DS . 'apps');
     $dev_suffix = $this->config->get('dev_suffix', '_dev');
     $vnc = $this->config->get('default_vnc', '780x600');
     $mw = $this->config->get('default_mw', 'narwhal');
     $hostreq = $this->config->get('default_hostreq', 'sessions');
     // Load version params
     $params = new \Hubzero\Config\Registry($version[0]->params);
     // build status array
     $status = array('resourceid' => isset($toolinfo[0]->rid) ? $toolinfo[0]->rid : 0, 'resource_created' => isset($toolinfo[0]->rcreated) ? $toolinfo[0]->rcreated : '', 'resource_modified' => isset($toolinfo[0]) && isset($toolinfo[0]->rmodified) && $toolinfo[0]->rmodified != '0000-00-00 00:00:00' && isset($version[0]) && $version[0]->fulltxt != '' ? 1 : 0, 'fulltxt' => isset($version[0]->fulltxt) ? $version[0]->fulltxt : $toolinfo[0]->rfulltxt, 'toolname' => isset($toolinfo[0]->toolname) ? $toolinfo[0]->toolname : '', 'toolid' => isset($toolinfo[0]->id) ? $toolinfo[0]->id : 0, 'title' => isset($version[0]->title) ? $version[0]->title : '', 'version' => isset($version[0]->version) ? $version[0]->version : '1.0', 'revision' => isset($version[0]->revision) ? $version[0]->revision : 0, 'description' => isset($version[0]->description) ? $version[0]->description : '', 'exec' => isset($version[0]->toolaccess) ? $version[0]->toolaccess : '@OPEN', 'code' => isset($version[0]->codeaccess) ? $version[0]->codeaccess : '@OPEN', 'wiki' => isset($version[0]->wikiaccess) ? $version[0]->wikiaccess : '@OPEN', 'published' => isset($toolinfo[0]->published) ? $toolinfo[0]->published : 0, 'state' => isset($toolinfo[0]->state) ? $toolinfo[0]->state : 0, 'version_state' => isset($version[0]->state) ? $version[0]->state : 3, 'version_id' => isset($version[0]->id) ? $version[0]->id : 0, 'priority' => isset($toolinfo[0]->priority) ? $toolinfo[0]->priority : 3, 'doi' => isset($version[0]->doi) ? $version[0]->doi : 0, 'authors' => $authors, 'developers' => $developers, 'devgroup' => isset($toolinfo[0]->devgroup) ? $toolinfo[0]->devgroup : '', 'membergroups' => isset($version[0]->toolaccess) && $version[0]->toolaccess == '@GROUP' ? $this->getToolGroups($toolinfo[0]->id) : array(), 'ntools' => isset($toolinfo[0]->ntools) ? $toolinfo[0]->ntools : 0, 'ntoolsdev' => isset($toolinfo[0]->ntoolsdev) ? $toolinfo[0]->ntoolsdev : 0, 'ntools_published' => isset($toolinfo[0]->ntoolspublished) ? $toolinfo[0]->ntoolspublished : 0, 'newmessages' => isset($toolinfo[0]->comments) ? $toolinfo[0]->comments : 0, 'changed' => isset($toolinfo[0]->state_changed) && $toolinfo[0]->state_changed != '0000-00-00 00:00:00' ? $toolinfo[0]->state_changed : $toolinfo[0]->registered, 'registered_by' => isset($toolinfo[0]->registered_by) ? $toolinfo[0]->registered_by : '', 'registered' => isset($toolinfo[0]->registered) ? $toolinfo[0]->registered : '', 'ticketid' => isset($toolinfo[0]->ticketid) ? $toolinfo[0]->ticketid : '', 'mw' => isset($version[0]->mw) ? $version[0]->mw : $mw, 'vncCommand' => isset($version[0]->vnc_command) ? $version[0]->vnc_command : $invokedir . DS . $toolinfo[0]->toolname . DS . 'invoke', 'vncGeometry' => isset($version[0]->vnc_geometry) && $version[0]->vnc_geometry != '' ? $version[0]->vnc_geometry : $vnc, 'license' => isset($version[0]->license) ? $version[0]->license : '', 'hostreq' => isset($version[0]->hostreq) ? implode(', ', $version[0]->hostreq) : $hostreq, 'params' => isset($version[0]->params) ? $version[0]->params : '', 'github' => $params->get('github'), 'publishType' => $params->get('publishType') == 'weber=' ? 'jupyter' : 'standard');
     list($status['vncGeometryX'], $status['vncGeometryY']) = preg_split('#[x]#', $status['vncGeometry']);
     // get latest version information
     if ($status['published']) {
         $current = $objV->getVersionInfo('', 'current', $toolinfo[0]->toolname);
     }
     $status['currenttool'] = isset($current[0]->instance) ? $current[0]->instance : $status['toolname'] . $dev_suffix;
     $status['currentrevision'] = isset($current[0]->revision) ? $current[0]->revision : $status['revision'];
     $status['currentversion'] = isset($current[0]->version) ? $current[0]->version : $status['version'];
     return $status;
 }