Changeset 62 for Dev/trunk/classes/SurveyDatabaseInterface.php
- Timestamp:
- 07/29/11 14:51:06 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/trunk/classes/SurveyDatabaseInterface.php
r45 r62 10 10 class SurveyDatabaseInterface 11 11 { 12 13 14 12 protected $surveyRDFWriter; 13 protected $surveyRDFReader; 14 15 15 16 16 public function __construct($surveyID) 17 17 { 18 19 20 21 22 23 24 18 if($surveyID == null) 19 $surveyUID = md5( uniqid(rand(), true) ); 20 else 21 $surveyUID = $surveyID; 22 23 $this->surveyRDFWriter = new SurveyRDFWriter($surveyUID); 24 $this->surveyRDFReader = new SurveyRDFReader($surveyUID); 25 25 } 26 27 public function setSurveyInfo($survey)28 {29 $sTitle = $survey['surveyTitle'];30 $sDescription = $survey['surveyDescription'];31 32 $this->surveyRDFWriter->createSurvey($sTitle,$sDescription);33 34 $qNumber = 1;35 while (isset($survey['questionTitle'.$qNumber]))36 {37 $qTitle = $survey['questionTitle'.$qNumber];38 $qDescription = $survey['questionDescription'.$qNumber];39 $qType = $survey['questionType'.$qNumber];40 if (isset($survey['questionID'.$qNumber]))41 $qID = $survey['questionID'.$qNumber];42 else43 $qID = md5( uniqid(rand(), true) );44 45 $qAnswers = array();46 $aNumber = 1;47 while (isset($survey['q'.$qNumber.'ans'.$aNumber]))48 {49 $aArray = array();50 $aArray['Title'] = $survey['q'.$qNumber.'ans'.$aNumber];51 $aArray['Description'] = 'answerDescription'.$aNumber;52 $qAnswers[] = $aArray;53 54 $aNumber++;55 }56 57 $this->surveyRDFWriter->addQuestion($qTitle,$qDescription,$qType,$qID,$qAnswers);58 59 $qNumber++;60 }61 26 62 $this->surveyRDFWriter->saveSurvey(); 63 } 64 65 public function getSurveyInfo() 66 { 67 $surveyInfo = array(); 68 69 $resultSurvey = $this->surveyRDFReader->getSurveyInfo(); 70 71 $surveyInfo['surveyID'] = substr($resultSurvey[0][0]['?uid'],9,strlen($resultSurvey[0][0]['?uid'])-11); 72 $surveyInfo['surveyTitle'] = substr($resultSurvey[0][0]['?title'],9,strlen($resultSurvey[0][0]['?title'])-11); 73 $surveyInfo['surveyDescription'] = substr($resultSurvey[0][0]['?description'],9,strlen($resultSurvey[0][0]['?description'])-11); 74 75 for($qNumber = 1;$qNumber<=sizeof($resultSurvey[1][0]);$qNumber++) 76 { 77 $surveyInfo['questionID'.$qNumber] = substr($resultSurvey[1][3][$qNumber-1]['?questionID'],9,strlen($resultSurvey[1][3][$qNumber-1]['?questionID'])-11); 78 $surveyInfo['questionTitle'.$qNumber] = substr($resultSurvey[1][0][$qNumber-1]['?questionTitle'],9,strlen($resultSurvey[1][0][$qNumber-1]['?questionTitle'])-11); 79 $surveyInfo['questionDescription'.$qNumber] = substr($resultSurvey[1][1][$qNumber-1]['?questionDescription'],9,strlen($resultSurvey[1][1][$qNumber-1]['?questionDescription'])-11); 80 $surveyInfo['questionType'.$qNumber] = substr($resultSurvey[1][2][$qNumber-1]['?questionType'],9,strlen($resultSurvey[1][2][$qNumber-1]['?questionType'])-11); 81 82 $resultAnswers = $this->surveyRDFReader->readSurveyAnswers($surveyInfo['questionID'.$qNumber]); 83 84 if ($resultAnswers != null) 85 { 86 for($aNumber = 1;$aNumber<=sizeof($resultAnswers);$aNumber++) 87 { 88 $surveyInfo['q'.$qNumber.'ans'.$aNumber] = substr($resultAnswers[$aNumber-1]['?answerTitle'],9,strlen($resultAnswers[$aNumber-1]['?answerTitle'])-11); 89 } 90 } 91 } 92 93 return $surveyInfo; 94 } 27 public function setSurveyInfo($survey) 28 { 29 $sTitle = $survey['surveyTitle']; 30 $sDescription = $survey['surveyDescription']; 95 31 96 public function getExistingSurveys() 97 { 98 $surveyIDs = array(); 99 $surveys = array(); 100 101 if($handle = opendir('data/surveys/')) 102 { 103 while (false !== ($file = readdir($handle))) { 104 if(strstr($file, 'survey_')) 105 $surveyIDs[] = substr($file,7,strlen($file)-11); 106 } 107 } 108 109 foreach($surveyIDs as $surveyID) 110 { 111 $surveyTitle = $this->surveyRDFReader->getSurveyTitleByID($surveyID); 112 $surveys[$surveyID] = substr($surveyTitle[0]['?title'],9,strlen($surveyTitle[0]['?title'])-11); 113 } 114 115 return $surveys; 116 } 117 32 $this->surveyRDFWriter->createSurvey($sTitle,$sDescription); 33 34 $sUserID = "Creator"; 35 36 $this->surveyRDFWriter->setUserData($sUserID); 37 38 $qNumber = 1; 39 while (isset($survey['questionTitle'.$qNumber])) 40 { 41 $qTitle = $survey['questionTitle'.$qNumber]; 42 $qDescription = $survey['questionDescription'.$qNumber]; 43 $qType = $survey['questionType'.$qNumber]; 44 if (isset($survey['questionID'.$qNumber])) 45 $qID = $survey['questionID'.$qNumber]; 46 else 47 $qID = md5( uniqid(rand(), true) ); 48 49 $qAnswers = array(); 50 $aNumber = 1; 51 while (isset($survey['q'.$qNumber.'ans'.$aNumber])) 52 { 53 $aArray = array(); 54 $aArray['Title'] = 'q'.$qNumber.'ans'.$aNumber; 55 $aArray['Description'] = $survey['q'.$qNumber.'ans'.$aNumber]; 56 $qAnswers[] = $aArray; 57 58 $aNumber++; 59 } 60 61 $this->surveyRDFWriter->addQuestion($qTitle,$qDescription,$qType,$qID,$qAnswers); 62 63 $qNumber++; 64 } 65 66 $this->surveyRDFWriter->saveSurvey(); 67 } 68 69 public function getSurveyInfo() 70 { 71 $surveyInfo = array(); 72 73 $resultSurvey = $this->surveyRDFReader->getSurveyInfo(); 74 75 $surveyInfo['surveyID'] = substr($resultSurvey[0][0]['?uid'],9,strlen($resultSurvey[0][0]['?uid'])-11); 76 $surveyInfo['surveyTitle'] = substr($resultSurvey[0][0]['?title'],9,strlen($resultSurvey[0][0]['?title'])-11); 77 $surveyInfo['surveyDescription'] = substr($resultSurvey[0][0]['?description'],9,strlen($resultSurvey[0][0]['?description'])-11); 78 $surveyInfo['surveyCreator'] = substr($resultSurvey[0][0]['?creator'],9,strlen($resultSurvey[0][0]['?creator'])-11); 79 80 for($qNumber = 1;$qNumber<=sizeof($resultSurvey[1][0]);$qNumber++) 81 { 82 $surveyInfo['questionID'.$qNumber] = substr($resultSurvey[1][3][$qNumber-1]['?questionID'],9,strlen($resultSurvey[1][3][$qNumber-1]['?questionID'])-11); 83 $surveyInfo['questionTitle'.$qNumber] = substr($resultSurvey[1][0][$qNumber-1]['?questionTitle'],9,strlen($resultSurvey[1][0][$qNumber-1]['?questionTitle'])-11); 84 $surveyInfo['questionDescription'.$qNumber] = substr($resultSurvey[1][1][$qNumber-1]['?questionDescription'],9,strlen($resultSurvey[1][1][$qNumber-1]['?questionDescription'])-11); 85 $surveyInfo['questionType'.$qNumber] = substr($resultSurvey[1][2][$qNumber-1]['?questionType'],9,strlen($resultSurvey[1][2][$qNumber-1]['?questionType'])-11); 86 87 $resultAnswers = $this->surveyRDFReader->readSurveyAnswers($surveyInfo['questionID'.$qNumber]); 88 89 if ($resultAnswers != null) 90 { 91 for($aNumber = 1;$aNumber<=sizeof($resultAnswers);$aNumber++) 92 { 93 $surveyInfo['q'.$qNumber.'ans'.$aNumber] = substr($resultAnswers[$aNumber-1]['?answerDescription'],9,strlen($resultAnswers[$aNumber-1]['?answerDescription'])-11); 94 } 95 } 96 } 97 98 return $surveyInfo; 99 } 100 101 public function getExistingSurveys() 102 { 103 $surveyIDs = array(); 104 $surveys = array(); 105 106 if($handle = opendir('data/surveys/')) 107 { 108 while (false !== ($file = readdir($handle))) { 109 if(strstr($file, 'survey_') && strstr($file, '.rdf')) 110 $surveyIDs[] = substr($file,7,strlen($file)-11); 111 } 112 } 113 114 foreach($surveyIDs as $surveyID) 115 { 116 $surveyTitle = $this->surveyRDFReader->getSurveyTitleByID($surveyID); 117 $surveys[$surveyID] = substr($surveyTitle[0]['?title'],9,strlen($surveyTitle[0]['?title'])-11); 118 } 119 120 return $surveys; 121 } 122 118 123 } 119 124 ?>
Note: See TracChangeset
for help on using the changeset viewer.