Changeset 105 for Dev


Ignore:
Timestamp:
09/19/11 13:06:37 (14 years ago)
Author:
basvannuland
Message:

New question interfaces

Location:
Dev/trunk
Files:
1 added
1 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • Dev/trunk

    • Property svn:ignore
      •  

        old new  
         1data
        12nbproject
  • Dev/trunk/classes/DashboardCreationDatabaseInterface.php

    r100 r105  
    4646            while(isset($dashboard['g'.$gNumber.'type'.$tNumber]))
    4747            {
    48                
     48                $gTypes[] = $dashboard['g'.$gNumber.'type'.$tNumber];
     49                $tNumber++;
    4950            }
    50            
     51            $gData = array();
     52            $dNumber = 1;
     53            while(isset($dashboard['g'.$dNumber.'datatype'.$tNumber]) && isset($dashboard['g'.$gNumber.'dataid'.$dNumber]))
     54            {
     55                $dData = array();
     56                $dData['type'] = $dashboard['g'.$gNumber.'datatype'.$dNumber];
     57                $dData['id'] = $dashboard['g'.$gNumber.'dataid'.$dNumber];
     58                $gData[] = $dData;
     59                $dNumber++;
     60            }
    5161        }
    5262    }
  • Dev/trunk/classes/QuestionRDFReader.php

    r91 r105  
    3131    }
    3232   
    33     public function readQuestionByID($questionID)
     33    public function readQuestionByCode($questionCode)
    3434    {       
    3535        $result = array();
    36         $result['title'] = $this->readQuestionTitle($questionID);                               
    37         $result['description'] = $this->readQuestionDescription($questionID);
    38         $result['type'] = $this->readQuestionType($questionID);
    39         $result['code'] = $this->readQuestionCode($questionID);
    40         $result['category'] = $this->readQuestionCategory($questionID);
    41         $result['answers'] = $this->readQuestionAnswers($questionID);
     36        $result['title'] = $this->readQuestionTitle($questionCode);                             
     37        $result['description'] = $this->readQuestionDescription($questionCode);
     38        $result['type'] = $this->readQuestionType($questionCode);
     39        $result['code'] = $this->readQuestionCode($questionCode);
     40        $result['category'] = $this->readQuestionCategory($questionCode);
     41        $result['answers'] = $this->readQuestionAnswers($questionCode);
    4242
    4343        return $result;
    4444    }
    45    
    46     public function readQuestionIDs()
    47     {
    48         $result = null;
    49        
    50         if(file_exists($this->filePath.'questions.rdf'))
    51         {
    52             // Create empty MemModel
    53             $factory = new ModelFactory();
    54             $tempmodel= $factory->getDefaultModel();
    55             $tempmodel->load($this->filePath.'questions.rdf');
    56 
    57             $querystring = '
    58             PREFIX      predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '>
    59             PREFIX      resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '>
    60             SELECT      ?questionID
    61             WHERE
    62             {   
    63                     _question   predicates:resource_type        resources:question ;
    64                                 predicates:uid                  ?questionID                             
    65             }';
    66            
    67             $result = $tempmodel->sparqlQuery($querystring);
    68         }
    69         return $result;
    70     }
    71    
     45     
    7246    public function readQuestionCodes()
    7347    {
     
    9670    }
    9771
    98     public function readQuestionTitle($questionID)
     72    public function readQuestionTitle($questionCode)
    9973    {
    10074        $querystring = '
     
    10377            SELECT  ?questionTitle
    10478            WHERE
    105             {   
     79            {
    10680                    _question   predicates:resource_type        resources:question ;
    107                                 predicates:uid                  "' . $questionID . '"  ;
     81                                predicates:question_code    "' . $questionCode . '"  ;
    10882                                predicates:title                ?questionTitle         
    10983            }';
     
    11488    }
    11589
    116     public function readQuestionDescription($questionID)
     90    public function readQuestionDescription($questionCode)
    11791    {
    11892        $querystring = '
     
    12397            {   
    12498                    _question   predicates:resource_type        resources:question ;
    125                                 predicates:uid                  "' . $questionID . '"  ;
     99                                predicates:question_code        "' . $questionCode . '"  ;
    126100                                predicates:description          ?questionDescription           
    127101            }';
     
    132106    }
    133107
    134     public function readQuestionType($questionID)
     108    public function readQuestionType($questionCode)
    135109    {
    136110        $querystring = '
     
    141115            {   
    142116                    _question   predicates:resource_type        resources:question ;
    143                                 predicates:uid                  "' . $questionID . '"  ;
     117                                predicates:question_code        "' . $questionCode . '"  ;
    144118                                predicates:question_type        ?questionType                           
    145119            }';
     
    149123        return $result;
    150124    }
    151    
    152     public function readQuestionCode($questionID)
    153     {
    154         $querystring = '
    155             PREFIX  predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '>
    156             PREFIX  resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '>
    157             SELECT  ?questionCode
    158             WHERE
    159             {   
    160                     _question   predicates:resource_type        resources:question ;
    161                                 predicates:uid                  "' . $questionID . '"  ;
    162                                 predicates:question_code        ?questionCode                           
    163             }';
    164 
    165         $result = $this->model->sparqlQuery($querystring);
    166 
    167         return $result;
    168     }
    169    
    170     public function readQuestionCategory($questionID)
     125       
     126    public function readQuestionCategory($questionCode)
    171127    {
    172128        $querystring = '
     
    177133            {   
    178134                    _question   predicates:resource_type        resources:question ;
    179                                 predicates:uid                  "' . $questionID . '"  ;
     135                                predicates:question_code        "' . $questionCode . '"  ;
    180136                                predicates:question_category    ?questionCategory                               
    181137            }';
     
    186142    }
    187143
    188     public function readQuestionAnswers($questionID)
     144    public function readQuestionAnswers($questionCode)
    189145    {
    190146        $querystring = '
     
    195151            {
    196152                    _question   predicates:resource_type        resources:question ;
    197                                 predicates:uid                  "' . $questionID . '"  ;
     153                                predicates:question_code        "' . $questionCode . '"  ;
    198154                                predicates:has_answer           ?answerDescription
    199155            }';
  • Dev/trunk/classes/QuestionRDFWriter.php

    r85 r105  
    2424    }
    2525   
    26     public function createQuestion($qTitle,$qDescription,$qType,$qID,$qCode,$qCategory,$qAnswers)
     26    public function createQuestion($qTitle,$qDescription,$qType,$qCode,$qCategory,$qAnswers)
    2727    {
    28         $resourceQuestion = new Resource(QUESTION.'/'.$qID);
     28        $resourceQuestion = new Resource(QUESTION.'/'.$qCode);
    2929
    3030        $resourceQuestionType = new Resource(QUESTION);
     
    4343        $resourceQuestionType = new Literal($qType);
    4444        $this->model->add(new Statement($resourceQuestion,$predicateQType,$resourceQuestionType));
    45 
    46         $predicateUniqueID = new Resource(UID);
    47         $questionUID = new Literal($qID);
    48         $this->model->add(new Statement($resourceQuestion,$predicateUniqueID,$questionUID));
    4945       
    5046        $predicateQCode = new Resource(QCODE);
  • Dev/trunk/classes/SurveyCreationDatabaseInterface.php

    r91 r105  
    4040
    4141        $qNumber = 1;
    42         while (isset($survey['questionTitle'.$qNumber]))
     42        while (isset($survey['questionCode'.$qNumber]))
    4343        {
    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                 $qAnswers[] = $survey['q'.$qNumber.'ans'.$aNumber];
    57 
    58                 $aNumber++;
    59             }
    60 
    61             if(!$this->checkQuestionIDExists($qID))
    62             {
    63                 $this->questionRDFWriter->createQuestion($qTitle,$qDescription,$qType,$qID,"null","null",$qAnswers);
    64             }           
    65             $this->surveyRDFWriter->addQuestion($qID);
     44            $qCode = $survey['questionCode'.$qNumber];         
     45            $this->surveyRDFWriter->addQuestion($qCode);
    6646
    6747            $qNumber++;
     
    7454    public function saveQuestion($questionInfo)
    7555    {
    76         $qTitle = $survey['questionTitle'.$qNumber];
    77         $qDescription = $survey['questionDescription'.$qNumber];
    78         $qType = $survey['questionType'.$qNumber];
    79         if (isset($survey['questionID'.$qNumber]))
    80             $qID = $survey['questionID'.$qNumber];
    81         else
    82             $qID = md5( uniqid(rand(), true) );
     56        $qCode = $question['questionCode'.$qNumber];
     57        $qTitle = $question['questionTitle'.$qNumber];
     58        $qDescription = $question['questionDescription'.$qNumber];
     59        $qType = $question['questionType'.$qNumber];
    8360
    8461        $qAnswers = array();
    8562        $aNumber = 1;
    86         while (isset($survey['q'.$qNumber.'ans'.$aNumber]))
     63        while (isset($question['ans'.$aNumber]))
    8764        {
    88             $aArray = array();
    89             $aArray['Title'] = 'q'.$qNumber.'ans'.$aNumber;
    90             $aArray['Description'] = $survey['q'.$qNumber.'ans'.$aNumber];
    91             $qAnswers[] = $aArray;
     65            $qAnswers[] = $question['ans'.$aNumber];
    9266
    9367            $aNumber++;
     
    9872            return 'Question code (' . $qCode . ') already in use. Please try a new code.';
    9973        }
    100         else if($this->checkQuestionIDExists($qID))
     74        else
    10175        {
    102             return 'Question already exists';
    103         }
    104         else {
    105             $this->questionRDFWriter->createQuestion($qTitle,$qDescription,$qType,$qID,"null","null",$qAnswers);
     76            $this->questionRDFWriter->createQuestion($qTitle,$qDescription,$qType,$qCode,"null",$qAnswers);
    10677            return 'Question saved';
    10778        }
     
    178149    }
    179150   
     151    public function getExistingQuestions()
     152    {
     153        $questions = array();
     154
     155        $resultQuestions = $this->questionRDFReader->readQuestionCodes();
     156        foreach ($resultQuestions as $questionCodeObject)
     157        {
     158            $questionCode = $questionCodeObject[0]['?questionCode']->label;
     159            $questionTitle = $this->questionRDFReader->readQuestionTitle($questionCode);
     160            $questions[$questionCode] = $questionTitle[0]['?questionTitle']->label;
     161        }
     162
     163        return $questions;
     164    }
     165   
    180166    public function getSurveyTitleByID($surveyID)
    181167    {
     
    184170       
    185171        return $surveyTitle;
    186     }
    187 
    188    
    189    
    190     public function checkQuestionIDExists($qID)
    191     {
    192         $result = false;
    193 
    194         $questionIDs = $this->questionRDFReader->readQuestionIDs();
    195        
    196         if ($questionIDs != null)
    197         {
    198             foreach($questionIDs as $questionID)
    199             {
    200                 $id = $questionID['?questionID']->label;
    201                 if(!strcmp($id ,$qID))
    202                 {
    203                     $result = true;
    204                     break;
    205                 }
    206             }
    207         }
    208 
    209         return $result;
    210172    }
    211173   
Note: See TracChangeset for help on using the changeset viewer.