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;
 }
Esempio n. 2
0
 /**
  * Get a list of the authors on a tool
  *
  * @param      string  $version  Tool version
  * @param      integer $rid      Resource ID
  * @param      string  $toolname Tool name
  * @param      string  $revision Tool revision
  * @param      array   $authors  Author list
  * @return     array
  */
 public function getToolAuthors($version = '', $rid = 0, $toolname = '', $revision = '', $authors = array())
 {
     if ($version == 'dev' && $rid) {
         $query = "SELECT authorid as uidNumber FROM #__author_assoc WHERE subid= " . $this->_db->quote($rid) . " AND subtable='resources' ORDER BY ordering";
         $this->_db->setQuery($query);
         $authors = $this->_db->loadObjectList();
     } else {
         $query = "SELECT DISTINCT a.uid as uidNumber ";
         $query .= "FROM #__tool_authors as a  ";
         if ($version == 'current' && $toolname) {
             $objV = new Version($this->_db);
             $rev = $objV->getCurrentVersionProperty($toolname, 'revision');
             if ($rev) {
                 $query .= "JOIN #__tool_version as v ON a.toolname=v.toolname AND a.revision=v.revision WHERE a.toolname=" . $this->_db->quote($toolname) . " AND a.revision=" . $this->_db->quote($rev);
             } else {
                 $query .= "JOIN #__tool_version as v ON a.toolname=v.toolname AND a.revision=v.revision WHERE a.toolname=" . $this->_db->quote($toolname) . " AND v.state=1 ORDER BY v.revision DESC";
             }
         } else {
             if (is_numeric($version)) {
                 $query .= "WHERE a.version_id=" . $this->_db->quote($version) . " ORDER BY a.ordering";
             } else {
                 if ($toolname && $revision) {
                     $query .= "WHERE a.toolname=" . $this->_db->quote($toolname) . " AND a.revision=" . $this->_db->quote($revision) . " ORDER BY a.ordering";
                 } else {
                     if (is_object($version)) {
                         $query .= "WHERE a.version_id=" . $this->_db->quote($version->id) . " ORDER BY a.ordering";
                     } else {
                         if (isset($version[0]) && is_object($version[0])) {
                             $query .= "WHERE a.version_id=" . $this->_db->quote($version[0]->id) . " ORDER BY a.ordering";
                         } else {
                             return null;
                         }
                     }
                 }
             }
         }
         $this->_db->setQuery($query);
         $authors = $this->_db->loadObjectList();
     }
     return $authors;
 }