Ignore:
Timestamp:
08/25/11 17:52:09 (14 years ago)
Author:
basvannuland
Message:

start with answer saving

File:
1 copied

Legend:

Unmodified
Added
Removed
  • Dev/trunk/classes/SurveyAnswerDatabaseInterface.php

    r82 r83  
    88
    99
    10 class SurveyDatabaseInterface
    11 {               
    12     protected $surveyRDFWriter;
    13     protected $surveyRDFReader;
    14     protected $questionRDFWriter;
    15     protected $questionRDFReader;
    16 
    17     public function __construct($surveyID)
     10class SurveyAnswerDatabaseInterface extends SurveyCreationDatabaseInterface
     11{
     12    protected $surveyAnswerRDFReader;
     13    protected $surveyAnswerRDFWriter;
     14   
     15    public function __construct($surveyID,$sessionID,$respondentID)
    1816    {
    19         if($surveyID == null)
    20             $surveyUID = md5( uniqid(rand(), true) );
     17        parent::__construct($surveyID);
     18        if($respondentID == null)
     19            $respondentID = md5( uniqid(rand(), true) );
    2120        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;
    8222       
    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);
    14525    }
    14626   
    147     public function getSurveyTitleByID($surveyID)
     27    public function setRespondentInfo($respondentInfo)
    14828    {
    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    {
    15135       
    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;
    17736    }
    17837}
Note: See TracChangeset for help on using the changeset viewer.