コード例 #1
0
ファイル: BIMsie.php プロジェクト: alexandernesbitt/BCF-Forum
 public static function getRevision($uri, $poid, $roid, $userId = -1)
 {
     $server = BIMsie::getServerByUri($uri, $userId);
     if ($server === false) {
         return false;
     } else {
         $userId = $userId == -1 ? get_current_user_id() : $userId;
         $bimsieCache = BIMsie::getCacheByUri($uri, $userId);
         if ($bimsieCache === false || !isset($bimsieCache['projects'][$poid])) {
             $project = BIMsie::getProject($uri, $poid, $userId);
             if ($project) {
                 $bimsieCache = BIMsie::getCacheByUri($uri, $userId);
                 if (isset($server['token']) && isset($server['tokenValid']) && $server['tokenValid'] > time()) {
                     $revisions = BIMsie::request($server['uri'], $server['token'], 'Bimsie1ServiceInterface', 'getAllRevisionsOfProject', array('poid' => $poid));
                     $error = BIMsie::getErrorMessage($revisions);
                     if ($error === false && isset($revisions) && isset($revisions->response) && isset($revisions->response->result)) {
                         $revisions = $revisions->response->result;
                         $bimsieCache['projects'][$poid]->revisions = array();
                         foreach ($revisions as $revision) {
                             $revision->dateString = date('d-m-Y H:i', $revision->date * 0.001);
                             $revision->name = $revision->dateString . ' - ' . $revision->comment;
                             $bimsieCache['projects'][$poid]->revisions[$revision->oid] = $revision;
                         }
                         BIMsie::updateCache($bimsieCache, $userId);
                         if (isset($bimsieCache['projects'][$poid]->revisions[$roid])) {
                             return $bimsieCache['projects'][$poid]->revisions[$roid];
                         } else {
                             return false;
                         }
                     } else {
                         return false;
                     }
                 } else {
                     return false;
                 }
             } else {
                 return false;
             }
         } elseif (isset($bimsieCache['projects']) && isset($bimsieCache['projects'][$poid]) && isset($bimsieCache['projects'][$poid]->revisions) && isset($bimsieCache['projects'][$poid]->revisions[$roid])) {
             return $bimsieCache['projects'][$poid]->revisions[$roid];
         } else {
             if (!isset($bimsieCache['projects'][$poid]->revisions) || !isset($bimsieCache['projects'][$poid]->revisions[$roid])) {
                 if (isset($server['token']) && isset($server['tokenValid']) && $server['tokenValid'] > time()) {
                     $revisions = BIMsie::request($server['uri'], $server['token'], 'Bimsie1ServiceInterface', 'getAllRevisionsOfProject', array('poid' => $poid));
                     $error = BIMsie::getErrorMessage($revisions);
                     if ($error === false && isset($revisions) && isset($revisions->response) && isset($revisions->response->result)) {
                         $revisions = $revisions->response->result;
                         $bimsieCache['projects'][$poid]->revisions = array();
                         foreach ($revisions as $revision) {
                             $revision->dateString = date('d-m-Y H:i', $revision->date * 0.001);
                             $revision->name = $revision->dateString . ' - ' . $revision->comment;
                             $bimsieCache['projects'][$poid]->revisions[$revision->oid] = $revision;
                         }
                         BIMsie::updateCache($bimsieCache, $userId);
                         if (isset($bimsieCache['projects'][$poid]->revisions[$roid])) {
                             return $bimsieCache['projects'][$poid]->revisions[$roid];
                         } else {
                             return false;
                         }
                     } else {
                         return false;
                     }
                 } else {
                     return false;
                 }
             } else {
                 return false;
             }
         }
     }
 }
コード例 #2
0
                         }
                     }
                 } else {
                     if (isset($response['error'])) {
                         $response['error'] .= '<br />' . $error;
                     } else {
                         $response['error'] = $error;
                     }
                 }
             }
         }
         $response['projects'] = $projectsLackingRevision;
     } elseif ($_POST['method'] == 'getRevisions') {
         // set this project for this issue and retrieve a list of revisions for this project from the BIMsie server
         $poid = isset($_POST['poid']) ? intval($_POST['poid']) : -1;
         $BIMsieResponse = BIMsie::request($uri, $token, 'Bimsie1ServiceInterface', 'getAllRevisionsOfProject', array('poid' => $poid));
         $error = BIMsie::getErrorMessage($BIMsieResponse);
         if ($error === false && isset($BIMsieResponse->response) && isset($BIMsieResponse->response->result)) {
             $response['revisions'] = $BIMsieResponse->response->result;
             foreach ($response['revisions'] as $key => $revision) {
                 if (isset($revision->date) && is_numeric($revision->date)) {
                     $response['revisions'][$key]->dateString = date('d-m-Y H:i', $revision->date * 0.001);
                 } else {
                     $response['revisions'][$key]->dateString = __('unknown', 'bim-bcf-management');
                 }
             }
         } else {
             $response['error'] = $error;
         }
     }
 } else {