コード例 #1
0
ファイル: Atom.php プロジェクト: 4ZP6Capstone2015/Capstone
 private function getView($viewId = null)
 {
     $view = Concept::getView($this->concept, $viewId);
     if (empty($view) || $this->id == '') {
         return null;
     } else {
         $viewStrs = array();
         foreach ($view['segments'] as $viewSegment) {
             // text segment
             if ($viewSegment['segmentType'] == 'Text') {
                 $viewStrs[$viewSegment['label']] = $viewSegment['Text'];
                 // expressie segment
             } elseif ($viewSegment['segmentType'] == 'Exp') {
                 $idEsc = $this->database->escape($this->id);
                 $query = "SELECT DISTINCT `tgt` FROM ({$viewSegment['expSQL']}) AS `results` WHERE `src` = '{$idEsc}' AND `tgt` IS NOT NULL";
                 $tgtAtoms = array_column($this->database->Exe($query), 'tgt');
                 $txt = count($tgtAtoms) ? $tgtAtoms[0] : null;
                 $viewStrs[$viewSegment['label']] = $txt;
                 // html segment
             } elseif ($viewSegment['segmentType'] == 'Html') {
                 $errorMessage = "Unsupported segmentType 'Html' in view '" . $view['label'] . "'";
                 throw new Exception($errorMessage, 501);
                 // 501: Not implemented
                 //$viewStrs[$viewSegment['label']] = $viewSegment['Html'];
                 // unknown segment
             } else {
                 $errorMessage = "Unknown segmentType '" . $viewSegment['segmentType'] . "' in view '" . $view['label'] . "'";
                 throw new Exception($errorMessage, 501);
                 // 501: Not implemented
             }
         }
         return $viewStrs;
     }
 }