Changeset 83 for Dev/trunk/classes/SurveyAnswerDatabaseInterface.php
- Timestamp:
- 08/25/11 17:52:09 (14 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
Dev/trunk/classes/SurveyAnswerDatabaseInterface.php
r82 r83 8 8 9 9 10 class SurveyDatabaseInterface 11 { 12 protected $surveyRDFWriter; 13 protected $surveyRDFReader; 14 protected $questionRDFWriter; 15 protected $questionRDFReader; 16 17 public function __construct($surveyID) 10 class SurveyAnswerDatabaseInterface extends SurveyCreationDatabaseInterface 11 { 12 protected $surveyAnswerRDFReader; 13 protected $surveyAnswerRDFWriter; 14 15 public function __construct($surveyID,$sessionID,$respondentID) 18 16 { 19 if($surveyID == null) 20 $surveyUID = md5( uniqid(rand(), true) ); 17 parent::__construct($surveyID); 18 if($respondentID == null) 19 $respondentID = md5( uniqid(rand(), true) ); 21 20 else 22 $surveyUID = $surveyID; 23 24 $this->surveyRDFWriter = new SurveyRDFWriter($surveyUID); 25 $this->surveyRDFReader = new SurveyRDFReader($surveyUID); 26 $this->questionRDFWriter = new QuestionRDFWriter(); 27 $this->questionRDFReader = new QuestionRDFReader(); 28 } 29 30 public function setSurveyInfo($survey,$user) 31 { 32 $sTitle = $survey['surveyTitle']; 33 $sDescription = $survey['surveyDescription']; 34 35 $this->surveyRDFWriter->createSurvey($sTitle,$sDescription); 36 37 $sUserID = $user['username']; 38 39 $this->surveyRDFWriter->setUserData($sUserID); 40 41 $qNumber = 1; 42 while (isset($survey['questionTitle'.$qNumber])) 43 { 44 $qTitle = $survey['questionTitle'.$qNumber]; 45 $qDescription = $survey['questionDescription'.$qNumber]; 46 $qType = $survey['questionType'.$qNumber]; 47 if (isset($survey['questionID'.$qNumber])) 48 $qID = $survey['questionID'.$qNumber]; 49 else 50 $qID = md5( uniqid(rand(), true) ); 51 52 $qAnswers = array(); 53 $aNumber = 1; 54 while (isset($survey['q'.$qNumber.'ans'.$aNumber])) 55 { 56 $aArray = array(); 57 $aArray['Title'] = 'q'.$qNumber.'ans'.$aNumber; 58 $aArray['Description'] = $survey['q'.$qNumber.'ans'.$aNumber]; 59 $qAnswers[] = $aArray; 60 61 $aNumber++; 62 } 63 64 if(!$this->checkQuestionIDExists($qID)) 65 { 66 $this->questionRDFWriter->createQuestion($qTitle,$qDescription,$qType,$qID,"null","null",$qAnswers); 67 } 68 $this->surveyRDFWriter->addQuestion($qID); 69 70 $qNumber++; 71 } 72 73 $this->surveyRDFWriter->saveSurvey(); 74 $this->questionRDFWriter->saveQuestions(); 75 } 76 77 public function getSurveyInfo() 78 { 79 $surveyInfo = array(); 80 81 $this->questionRDFReader->loadQuestions(); 21 $respondentID = $respondentID; 82 22 83 $resultSurvey = $this->surveyRDFReader->getSurveyInfo(); 84 85 $surveyInfo['surveyID'] = $resultSurvey['info'][0]['?uid']->label; 86 $surveyInfo['surveyTitle'] = $resultSurvey['info'][0]['?title']->label; 87 $surveyInfo['surveyDescription'] = $resultSurvey['info'][0]['?description']->label; 88 $surveyInfo['surveyCreator'] = $resultSurvey['info'][0]['?creator']->label; 89 $surveyQuestionIDs = $resultSurvey['questionIDs']; 90 91 if($surveyQuestionIDs != false) 92 { 93 $qNumber = 1; 94 foreach($surveyQuestionIDs as $qID) 95 { 96 $questionID = $qID['?questionID']->label; 97 $surveyInfo['questionID'.$qNumber] = $questionID; 98 99 $questionTitleObject = $this->questionRDFReader->readQuestionTitle($questionID); 100 $surveyInfo['questionTitle'.$qNumber] = $questionTitleObject[0]['?questionTitle']->label; 101 102 $questionDescriptionObject = $this->questionRDFReader->readQuestionDescription($questionID); 103 $surveyInfo['questionDescription'.$qNumber] = $questionDescriptionObject[0]['?questionDescription']->label; 104 105 $questionTypeObject = $this->questionRDFReader->readQuestionType($questionID); 106 $surveyInfo['questionType'.$qNumber] = $questionTypeObject[0]['?questionType']->label; 107 108 $resultAnswers = $this->questionRDFReader->readQuestionAnswers($questionID); 109 110 if ($resultAnswers != null) 111 { 112 for($aNumber = 1;$aNumber<=sizeof($resultAnswers);$aNumber++) 113 { 114 $surveyInfo['q'.$qNumber.'ans'.$aNumber] = $resultAnswers[$aNumber-1]['?answerDescription']->label; 115 } 116 } 117 $resultAnswers = null; 118 $qNumber++; 119 } 120 } 121 122 return $surveyInfo; 123 } 124 125 public function getExistingSurveys() 126 { 127 $surveyIDs = array(); 128 $surveys = array(); 129 130 if($handle = opendir('data/surveys/')) 131 { 132 while (false !== ($file = readdir($handle))) { 133 if(strstr($file, 'survey_') && strstr($file, '.rdf')) 134 $surveyIDs[] = substr($file,7,strlen($file)-11); 135 } 136 } 137 138 foreach($surveyIDs as $surveyID) 139 { 140 $surveyTitle = $this->surveyRDFReader->getSurveyTitleByID($surveyID); 141 $surveys[$surveyID] = $surveyTitle[0]['?title']->label; 142 } 143 144 return $surveys; 23 $this->surveyAnswerRDFReader = new SurveyAnswerRDFReader($surveyID,$sessionID,$respondentID); 24 $this->surveyAnswerRDFWriter = new SurveyAnswerRDFWriter($surveyID,$sessionID,$respondentID); 145 25 } 146 26 147 public function getSurveyTitleByID($surveyID)27 public function setRespondentInfo($respondentInfo) 148 28 { 149 $surveyTitleLiteral = $this->surveyRDFReader->getSurveyTitleByID($surveyID); 150 $surveyTitle = $surveyTitle[0]['?title']->label; 29 $name = $respondentInfo['username']; 30 $this->surveyAnswerRDFWriter->setRespondentData($name); 31 } 32 33 public function setSurveyAnswers($answer) 34 { 151 35 152 return $surveyTitle;153 }154 155 156 157 public function checkQuestionIDExists($qID)158 {159 $result = false;160 161 $questionIDs = $this->questionRDFReader->readQuestionIDs();162 163 if ($questionIDs != null)164 {165 foreach($questionIDs as $questionID)166 {167 $id = $questionID['?questionID']->label;168 if(!strcmp($id ,$qID))169 {170 $result = true;171 break;172 }173 }174 }175 176 return $result;177 36 } 178 37 }
Note: See TracChangeset
for help on using the changeset viewer.