Changeset 83 for Dev/trunk/classes


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

start with answer saving

Location:
Dev/trunk/classes
Files:
1 deleted
6 edited
1 copied

Legend:

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

    r78 r83  
    1515        $surveys = array();
    1616
    17         $surveyDBI = new SurveyDatabaseInterface(null);
     17        $surveyDBI = new SurveyCreationDatabaseInterface(null);
    1818        $surveyIDTitles = $surveyDBI->getExistingSurveys();
    1919
  • Dev/trunk/classes/SessionCreationTool.php

    r72 r83  
    1010    private $session;
    1111    private $surveys;
     12    private $applications;
    1213
    1314    public function __construct($session = null) {
     
    4041    private function init() {
    4142        $this->surveys = Loader::loadSurveys();
     43        $this->applications = Loader::loadApplications();
    4244    }
    4345
     
    227229        ?>
    228230        <select id="applicationsList" size="5" class="width100p">
     231            <?php
     232            foreach ($this->applications as $application) {
     233                ?>
     234                <option name="<?php echo $application->id; ?>" value="<?php echo $application->id; ?>">
     235                    <?php echo $application->title; ?>
     236                </option>
     237                <?php
     238            }
     239            ?>
    229240        </select>
    230241        <?php
  • 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}
  • Dev/trunk/classes/SurveyAnswerRDFReader.php

    r62 r83  
    44{       
    55    protected $model;
     6    protected $respondentID;
     7   
    68    protected $filePath;
    79
    8     public function __construct($surveyUID,$sessionID)
     10    public function __construct($surveyUID,$sessionID,$respondentID)
    911    {
    1012
     
    1214        $factory = new ModelFactory();
    1315        $this->model = $factory->getDefaultModel();
    14         $this->filePath = 'data/surveys/survey_'.$surveyUID . '.rdf';
    1516       
    16         $this->model->load($this->filePath);
     17        $this->respondentID = $respondentID;
     18       
     19        $this->filePath = 'data/sessions/' .  $sessionID . '/survey_'.$surveyUID . '/';
    1720    }
    1821
    19     public function loadAnsers($userID)
     22    public function loadAnsers()
    2023    {
    21         $this->model->load($this->filePath.'/answer_'.$this->userUID.'.rdf');
     24        if(file_exists($this->filePath.'questions.rdf'))
     25        {
     26            $this->model->load($this->filePath.'/answer_'.$this->respondentID.'.rdf');
     27            return true;
     28        }
     29        else
     30        {
     31            return false;
     32        }
    2233    }
    2334
     
    5667    }
    5768
    58     public function getAnswerByRespondent($respondentID)
     69    public function getAnswersByRespondent($respondentID)
    5970    {
    6071        $this->tempModel->loadModel($this->model);
  • Dev/trunk/classes/SurveyAnswerRDFWriter.php

    r62 r83  
    33class SurveyAnswerRDFWriter
    44{
    5     protected $userUID;
    6     protected $filePath;
     5    protected $surveyID;
     6    protected $respondentID;
     7    protected $path;
    78
    8     public function __construct($surveyUID,$sessionID,$userID)
     9    public function __construct($surveyID,$sessionID,$respondentID)
    910    {
    1011        // Create empty MemModel
     
    1213        $this->model = $factory->getDefaultModel();
    1314       
    14         $this->filePath = 'data/sessions/' .  $sessionID . '/survey_'.$surveyUID . '/';
    15         $this->userID = $userID;
     15        $basePath = 'data/sessions/';
     16        $sessionPath = $basePath . $sessionID . '/';
     17        $this->path  = $sessionPath .'survey_'.$surveyID . '/';
     18        $this->surveyID = $surveyID;
     19        $this->respondentID = $respondentID;
    1620       
    17         if (!is_dir($this->filePath))
    18             mkdir($this->filePath);             
     21        if (!is_dir($basePath))
     22            mkdir($basePath);
     23        if (!is_dir($sessionPath))
     24             mkdir($sessionPath);
     25        if (!is_dir($this->path))
     26              mkdir($this->path);
    1927    }
    2028
    21     public function saveSurvey()
     29    public function saveSurveyData()
    2230    {           
    23         $this->model->saveAs($this->filePath.'/answer_'.$this->userUID.'.rdf','rdf');
     31        $this->model->saveAs($this->path.'/answer_'.$this->respondentID.'.rdf','rdf');
    2432    }
    2533
    2634    public function setRespondentData($name)
    2735    {                           
    28         $resourceUser = new Resource(USER . '/' . $this->userID);               
     36        $resourceUser = new Resource(USER . '/' . $this->respondentID);         
    2937
    3038        $resourceUserType = new Resource(USER);
     
    3240        $this->model->add(new Statement($resourceUser,$predicateRType,$resourceUserType));
    3341
    34         $LiteralUserName = new Literal($name);
     42        $literalUserName = new Literal($name);
    3543        $predicateName = new Resource(NAME);
    36         $this->model->add(new Statement($resourceUser,$predicateUniqueID,$LiteralUserName));           
     44        $this->model->add(new Statement($resourceUser,$predicateName,$literalUserName));               
    3745
    38         $literalUserID = new Literal($this->userUID);
     46        $literalUserID = new Literal($this->respondentID);
    3947        $predicateUniqueID = new Resource(UID);
    4048        $this->model->add(new Statement($resourceUser,$predicateUniqueID,$literalUserID));
    4149
    42         $predicateRespondent = new Resource(REPONDENT);
    43         $this->model->add(new Statement($this->resourceSurvey,$predicateRespondent,$resourceUser));
     50        $resourceSurvey = new Resource(SURVEY.'/'.$this->surveyID);
     51        $predicateRespondent = new Resource(RESPONDENT);
     52        $this->model->add(new Statement($resourceSurvey,$predicateRespondent,$resourceUser));
     53       
     54        $this->saveSurveyData();
    4455    }
    4556
     
    4758    {
    4859        foreach($answers as $questionID => $answerValue)
    49         {                                       
     60        {
    5061            $resourceQuestion = new Resource(QUESTION.'/'.$questionID);
    5162
     63            $resourceQuestionType = new Resource(QUESTION);
     64            $predicateRType = new Resource(RTYPE);
     65            $this->model->add(new Statement($resourceQuestion,$predicateRType,$resourceQuestionType));
     66           
    5267            $predicateAnswered = new Resource(ANSWERED);       
    5368            $answer = new Literal($answerValue);
  • Dev/trunk/classes/SurveyCreationDatabaseInterface.php

    r82 r83  
    88
    99
    10 class SurveyDatabaseInterface
     10class SurveyCreationDatabaseInterface
    1111{               
    1212    protected $surveyRDFWriter;
  • Dev/trunk/classes/UserDatabaseInterface.php

    r82 r83  
    2525        $userPassword = $this->RIJNDAEL_encrypt($userInfo['password']);
    2626
    27         if($this->checkUserName($userName))
     27        if(!$this->checkUserName($userName))
    2828        {
    2929            $this->userRDFWriter->addNewUser($userName, $userPassword);
     
    4242            foreach($resultUser as $user)
    4343            {
    44             $name = $user['?name']->label;
     44                $name = $user['?name']->label;
    4545                if(!strcmp($name ,$userName))
    4646                {
Note: See TracChangeset for help on using the changeset viewer.