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

Start with new separate question db

File:
1 copied

Legend:

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

    r81 r82  
    1212    protected $surveyRDFWriter;
    1313    protected $surveyRDFReader;
    14 
     14    protected $questionRDFWriter;
     15    protected $questionRDFReader;
    1516
    1617    public function __construct($surveyID)
     
    2324        $this->surveyRDFWriter = new SurveyRDFWriter($surveyUID);
    2425        $this->surveyRDFReader = new SurveyRDFReader($surveyUID);
     26        $this->questionRDFWriter = new QuestionRDFWriter();
     27        $this->questionRDFReader = new QuestionRDFReader();
    2528    }
    2629
    27     public function setSurveyInfo($survey)
     30    public function setSurveyInfo($survey,$user)
    2831    {
    2932        $sTitle = $survey['surveyTitle'];
     
    3235        $this->surveyRDFWriter->createSurvey($sTitle,$sDescription);
    3336
    34         $sUserID = "Creator";
     37        $sUserID = $user['username'];
    3538
    3639        $this->surveyRDFWriter->setUserData($sUserID);
     
    5962            }
    6063
    61             $this->surveyRDFWriter->addQuestion($qTitle,$qDescription,$qType,$qID,$qAnswers);
     64            if(!$this->checkQuestionIDExists($qID))
     65            {
     66                $this->questionRDFWriter->createQuestion($qTitle,$qDescription,$qType,$qID,"null","null",$qAnswers);
     67            }           
     68            $this->surveyRDFWriter->addQuestion($qID);
    6269
    6370            $qNumber++;
     
    6572
    6673        $this->surveyRDFWriter->saveSurvey();
     74        $this->questionRDFWriter->saveQuestions();
    6775    }
    6876
     
    7179        $surveyInfo = array();
    7280
     81        $this->questionRDFReader->loadQuestions();
     82       
    7383        $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;
    7498
    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);
     99                $questionTitleObject = $this->questionRDFReader->readQuestionTitle($questionID);
     100                $surveyInfo['questionTitle'.$qNumber] = $questionTitleObject[0]['?questionTitle']->label;
    79101
    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);
     102                $questionDescriptionObject = $this->questionRDFReader->readQuestionDescription($questionID);
     103                $surveyInfo['questionDescription'.$qNumber] = $questionDescriptionObject[0]['?questionDescription']->label;
    86104
    87             $resultAnswers = $this->surveyRDFReader->readSurveyAnswers($surveyInfo['questionID'.$qNumber]);
     105                $questionTypeObject = $this->questionRDFReader->readQuestionType($questionID);
     106                $surveyInfo['questionType'.$qNumber] = $questionTypeObject[0]['?questionType']->label;
    88107
    89             if ($resultAnswers != null)
    90             {
    91                 for($aNumber = 1;$aNumber<=sizeof($resultAnswers);$aNumber++)
     108                $resultAnswers = $this->questionRDFReader->readQuestionAnswers($questionID);
     109
     110                if ($resultAnswers != null)
    92111                {
    93                     $surveyInfo['q'.$qNumber.'ans'.$aNumber] = substr($resultAnswers[$aNumber-1]['?answerDescription'],9,strlen($resultAnswers[$aNumber-1]['?answerDescription'])-11);
     112                    for($aNumber = 1;$aNumber<=sizeof($resultAnswers);$aNumber++)
     113                    {
     114                        $surveyInfo['q'.$qNumber.'ans'.$aNumber] = $resultAnswers[$aNumber-1]['?answerDescription']->label;
     115                    }
    94116                }
     117                $resultAnswers = null;
     118                $qNumber++;
    95119            }
    96120        }
    97 
     121       
    98122        return $surveyInfo;
    99123    }
     
    111135            }
    112136        }
    113 
     137       
    114138        foreach($surveyIDs as $surveyID)
    115139        {
    116140            $surveyTitle = $this->surveyRDFReader->getSurveyTitleByID($surveyID);
    117             $surveys[$surveyID] = substr($surveyTitle[0]['?title'],9,strlen($surveyTitle[0]['?title'])-11);
     141            $surveys[$surveyID] = $surveyTitle[0]['?title']->label;
    118142        }
    119143
     
    124148    {
    125149        $surveyTitleLiteral = $this->surveyRDFReader->getSurveyTitleByID($surveyID);
    126         $surveyTitle = substr($surveyTitle[0]['?title'],9,strlen($surveyTitle[0]['?title'])-11);
     150        $surveyTitle = $surveyTitle[0]['?title']->label;
    127151       
    128152        return $surveyTitle;
    129153    }
    130154
     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    }
    131178}
    132179?>
Note: See TracChangeset for help on using the changeset viewer.