- Timestamp:
- 03/03/12 19:09:19 (13 years ago)
- Location:
- Dev/branches/rest-dojo-ui
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/branches/rest-dojo-ui
- Property svn:mergeinfo changed
/Dev/branches/jos-branch merged: 298
- Property svn:mergeinfo changed
-
Dev/branches/rest-dojo-ui/server/classes/models/SurveyInstance.php
r289 r302 26 26 * @param type $answersets: A list of answersets. 27 27 */ 28 public function __construct($uid = null, $survey = null, $starttime = null, $endtime = null, $open = null, $presetanswers = null, $answersets = null)28 public function __construct($uid = null, $survey = null, $starttime = null, $endtime = null, $open = 0, $presetanswers = null, $answersets = null) 29 29 { 30 30 if(!isset($uid)) … … 37 37 $this->starttime = $starttime; 38 38 $this->endtime = $endtime; 39 39 $this->open = $open; 40 40 $this->presetanswers = $presetanswers; 41 41 $this->answersets = $answersets; … … 51 51 if(is_string($this->survey)) 52 52 { 53 $result = Survey::get(array("uid" => $this->survey)); 53 $surv = ResearchToolObject::stripUri($this->survey); 54 $result = Survey::get(array("uid" => $surv["uid"])); 54 55 if(!isset($result[0])) 55 56 { … … 65 66 foreach($this->presetanswers as $answer) 66 67 { 67 $result = Answer::get(array("uid" => $answer)); 68 $ans = ResearchToolObject::stripUri($answer); 69 $result = Answer::get(array("uid" => $ans["uid"])); 68 70 if(!isset($result[0])) 69 71 return false; … … 79 81 foreach($this->answersets as $answerSet) 80 82 { 81 $result = AnswerSet::get(array("uid" => $answerSet)); 83 $aset = ResearchToolObject::stripUri($answerSet); 84 $result = AnswerSet::get(array("uid" => $aset["uid"])); 82 85 if(!isset($result[0])) 83 86 { … … 132 135 $predicateEndTime = new Resource(ENDTIME); 133 136 $model->add(new Statement($resourceSI, $predicateEndTime, $SIEndTime)); 134 135 $SIOpen = new Literal($this->open); 137 $SIOpen = new Literal((bool) $this->open); 136 138 $predicateOpen = new Resource(OPEN); 137 139 $model->add(new Statement($resourceSI, $predicateOpen, $SIOpen)); … … 141 143 foreach($this->presetanswers as $answer) 142 144 { 143 $answerId = new Literal($answer->uid);145 $answerId = new Resource(ANSWER . '/' . $answer->uid); 144 146 $predicateAnswer = new Resource(PRESET_ANSWER); 145 147 $model->add(new Statement($resourceSI, $predicateAnswer, $answerId)); … … 151 153 foreach($this->answersets as $answer) 152 154 { 153 $answerSetId = new Literal($answer->uid);155 $answerSetId = new Resource(ANSWERSET . '/' . $answer->uid); 154 156 $predicateAnswerSet = new Resource(HAS_ANSWERSET); 155 157 $model->add(new Statement($resourceSI, $predicateAnswerSet, $answerSetId)); … … 163 165 * Gets the array of SurveyInstance objects belonging tothe arguments supplied. 164 166 * @param type $arguments: An array containing zero or more of the following keys: 165 * 'uid', 'of_survey', 'starttime', 'endtime', 'open', 'preset_answers', ' has_answerset'167 * 'uid', 'of_survey', 'starttime', 'endtime', 'open', 'preset_answers', 'answersets' 166 168 */ 167 169 public static function get($arguments) … … 195 197 $endTime = new DateTime(); 196 198 $endTime->setTimestamp(intval($result['?endtime']->label)); 197 $open = false; 198 if ($result['?open'] == 'true') 199 $open = true; 200 $presetAnswers = SurveyInstance::getPresetAnswers($model, $result['?uid']->label); 201 $answerSets = SurveyInstance::getAnswerSets($model, $result['?uid']->label); 202 $sInstances[] = new SurveyInstance($result['?uid']->label, $result['?of_survey']->uri, $startTime, $endTime, $open, $presetAnswers, $answerSets); 199 $open = (bool) $result['?open']; 200 $fields = SurveyInstance::getFields($model, $result['?uid']->label); 201 $sInstances[] = new SurveyInstance($result['?uid']->label, $result['?of_survey']->uri, $startTime, $endTime, $open, $fields[0], $fields[1]); 203 202 } 204 203 } … … 207 206 208 207 /** 209 * function get PresetAnswers()208 * function getFields() 210 209 * @param type $model : The RDF model to query against. 211 * @param type $uid : The UID of the SurveyInstance for which the preset answers should be retrieved. 210 * @param type $uid : The UID of the SurveyInstance for which the preset answers and answersets should be retrieved. 211 * returns : an array with [0] => all preset answers and [1] => all answersets. 212 212 */ 213 private static function get PresetAnswers($model, $uid)213 private static function getFields($model, $uid) 214 214 { 215 $result = $model->findRegex("[(".$uid.")]", "[(preset_answer) ]", null);215 $result = $model->findRegex("[(".$uid.")]", "[(preset_answer)|(has_answerset)]", null); 216 216 $iterator = $result->getStatementIterator(); 217 217 $answers = array(); 218 $sets = array(); 218 219 while($iterator->hasNext()) 219 220 { 220 221 $element = $iterator->next(); 221 $answers[] = $element->getLabelObject(); 222 if($element->getLabelPredicate() == PRESET_ANSWER) 223 $answers[] = $element->getLabelObject(); 224 else if($element->getLabelPredicate() == HAS_ANSWERSET) 225 $sets[] = $element->getLabelObject(); 222 226 } 223 return $answers; 224 } 225 226 /** 227 * function getAnswerSets() 228 * @param type $model : The RDF model to query against. 229 * @param type $uid : The UID of the SurveyInstance for which the preset answers should be retrieved. 230 */ 231 private static function getAnswerSets($model, $uid) 232 { 233 $result = $model->findRegex("[(".$uid.")]", "[(has_answerset)]", null); 234 $iterator = $result->getStatementIterator(); 235 $answersets = array(); 236 while($iterator->hasNext()) 237 { 238 $element = $iterator->next(); 239 $answersets[] = $element->getLabelObject(); 240 } 241 return $answersets; 227 return array($answers, $sets); 242 228 } 243 229
Note: See TracChangeset
for help on using the changeset viewer.