Public Member Functions | Data Fields

ASS_Question Class Reference

Basic class for all assessment question types. More...

Inheritance diagram for ASS_Question:

Public Member Functions

 ASS_Question ($title="", $comment="", $author="", $owner=-1)
 ASS_Question constructor.
 _ASS_Question ()
 to_xml ()
 Returns a QTI xml representation of the question.
 isComplete ()
 Returns true, if a question is complete for use.
 questionTitleExists ($title)
 Returns TRUE if the question title exists in the database.
 setTitle ($title="")
 Sets the title string.
 setId ($id=-1)
 Sets the id.
 setTestId ($id=-1)
 Sets the test id.
 setComment ($comment="")
 Sets the comment.
 setOutputType ($outputType=OUTPUT_HTML)
 Sets the output type.
 setShuffle ($shuffle=true)
 Sets the shuffle flag.
 setEstimatedWorkingTime ($hour=0, $min=0, $sec=0)
 Sets the estimated working time of a question.
 keyInArray ($searchkey, $array)
 returns TRUE if the key occurs in an array
 setAuthor ($author="")
 Sets the authors name.
 setOwner ($owner="")
 Sets the creator/owner.
 getTitle ()
 Gets the title string.
 getId ()
 Gets the id.
 getShuffle ()
 Gets the shuffle flag.
 getTestId ()
 Gets the test id.
 getComment ()
 Gets the comment.
 getOutputType ()
 Gets the output type.
 getEstimatedWorkingTime ()
 Gets the estimated working time of a question.
 getAuthor ()
 Gets the authors name.
 getOwner ()
 Gets the creator/owner.
 getObjId ()
 Get the object id of the container object.
 setObjId ($obj_id=0)
 Set the object id of the container object.
 createPageObject ()
 create page object of question
 insertIntoTest ($test_id)
 Insert the question into a test.
 _getReachedPoints ($user_id, $test_id)
 Returns the points, a learner has reached answering the question.
 getReachedPoints ($user_id, $test_id)
 Returns the points, a learner has reached answering the question.
 getMaximumPoints ()
 Returns the maximum points, a learner can reach answering the question.
 saveWorkingData ($limit_to=LIMIT_NO_LIMIT)
 Saves the learners input of the question to the database.
 getJavaPath ()
 Returns the image path for web accessable images of a question.
 getImagePath ()
 Returns the image path for web accessable images of a question.
 getJavaPathWeb ()
 Returns the web image path for web accessable java applets of a question.
 getImagePathWeb ()
 Returns the web image path for web accessable images of a question.
getSolutionValues ($test_id)
 Loads solutions of the active user from the database an returns it.
 isInUse ($question_id="")
 Checks whether the question is in use or not.
 isClone ($question_id="")
 Checks whether the question is a clone of another question or not.
 pcArrayShuffle ($array)
 Shuffles the values of a given array.
 getQuestionTypeFromDb ($question_id)
 get question type for question id
 delete ($question_id)
 Deletes a question from the database.
 getTotalAnswers ()
 get total number of answers
 _getTotalAnswers ($a_q_id)
 get number of answers for question id (static) note: do not use $this inside this method
 _getTotalRightAnswers ($a_q_id)
 get number of answers for question id (static) note: do not use $this inside this method
 copyPageOfQuestion ($a_q_id)
 getPageOfQuestion ()
 _getQuestionType ($question_id)
 Returns the question type of a question with a given id.
 _getQuestionTitle ($question_id)
 Returns the question title of a question with a given id.
 loadFromDb ($question_id)
 Loads the question from the database.
 saveToDb ($original_id="")
 Saves the question to the database.
 deleteSuggestedSolutions ()
 Deletes all suggestes solutions in the database.
 getSuggestedSolution ($subquestion_index=0)
 Returns a suggested solution for a given subquestion index.
 getSuggestedSolutionTitle ($subquestion_index=0)
 Returns the title of a suggested solution at a given subquestion_index.
 setSuggestedSolution ($solution_id="", $subquestion_index=0, $is_import=false)
 Sets a suggested solution for the question.
 _resolveInternalLink ($internal_link)
 _resolveIntLinks ($question_id)
 _getInternalLinkHref ($target="")
 _getOriginalId ($question_id)
 Returns the original id of a question.
 syncWithOriginal ()
 createRandomSolution ($test_id, $user_id)
 _questionExists ($question_id)
 Returns true if the question already exists in the database.
_instanciateQuestion ($question_id)
 Creates an instance of a question with a given question id.

Data Fields

 $id
 $title
 $comment
 $owner
 $author
 $est_working_time
 $shuffle
 $test_id
 $obj_id
 $ilias
 $tpl
 $lng
 $domxml
 $outputType
 $suggested_solutions

Detailed Description

Basic class for all assessment question types.

The ASS_Question class defines and encapsulates basic methods and attributes for assessment question types to be used for all parent classes.

Author:
Helmut Schottmüller <hschottm@tzi.de>
Version:
Id:
class.assQuestion.php 8279 2005-08-04 22:06:48Z hschottm

class.assQuestion.php Assessment

Definition at line 50 of file class.assQuestion.php.


Member Function Documentation

ASS_Question::_ASS_Question (  ) 

Definition at line 228 of file class.assQuestion.php.

        {
                if (!empty($this->domxml))
                {
                        $this->domxml->free();
                }
        }

ASS_Question::_getInternalLinkHref ( target = ""  ) 

Definition at line 1373 of file class.assQuestion.php.

References $target_id, $type, and ilUtil::removeTrailingPathSeparators().

Referenced by ASS_TextQuestionGUI::editQuestion(), ASS_OrderingQuestionGUI::editQuestion(), ASS_MultipleChoiceGUI::editQuestion(), ASS_MatchingQuestionGUI::editQuestion(), ASS_JavaAppletGUI::editQuestion(), ASS_ImagemapQuestionGUI::editQuestion(), ASS_ClozeTestGUI::editQuestion(), and ilObjTest::getTestResult().

        {
                global $ilDB;
                $linktypes = array(
                        "lm" => "LearningModule",
                        "pg" => "PageObject",
                        "st" => "StructureObject",
                        "git" => "GlossaryItem",
                        "mob" => "MediaObject"
                );
                $href = "";
                if (preg_match("/il__(\w+)_(\d+)/", $target, $matches))
                {
                        $type = $matches[1];
                        $target_id = $matches[2];
                        switch($linktypes[$matches[1]])
                        {
                                case "LearningModule":
                                        $href = ilUtil::removeTrailingPathSeparators(ILIAS_HTTP_PATH) ."/goto.php?target=" . $type . "_" . $target_id;
                                        break;
                                case "PageObject":
                                case "StructureObject":
                                        $href = ilUtil::removeTrailingPathSeparators(ILIAS_HTTP_PATH) ."/goto.php?target=" . $type . "_" . $target_id;
                                        break;
                                case "GlossaryItem":
                                        $href = ilUtil::removeTrailingPathSeparators(ILIAS_HTTP_PATH) ."/goto.php?target=" . $type . "_" . $target_id;
                                        break;
                                case "MediaObject":
                                        $href = ilUtil::removeTrailingPathSeparators(ILIAS_HTTP_PATH) . "/content/lm_presentation.php?obj_type=" . $linktypes[$type] . "&cmd=media&ref_id=".$_GET["ref_id"]."&mob_id=".$target_id;
                                        break;
                        }
                }
                return $href;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ASS_Question::_getOriginalId ( question_id  ) 

Returns the original id of a question.

Returns the original id of a question

Parameters:
integer $question_id The database id of the question
Returns:
integer The database id of the original question public

Definition at line 1417 of file class.assQuestion.php.

References $query, $result, and $row.

Referenced by ilObjTest::_clone(), ASS_TextQuestion::duplicate(), ASS_OrderingQuestion::duplicate(), ASS_MultipleChoice::duplicate(), ASS_MatchingQuestion::duplicate(), ASS_JavaApplet::duplicate(), ASS_ImagemapQuestion::duplicate(), ASS_ClozeTest::duplicate(), and ilObjTest::logAction().

        {
                global $ilDB;
                $query = sprintf("SELECT * FROM qpl_questions WHERE question_id = %s",
                        $ilDB->quote($question_id . "")
                );
                $result = $ilDB->query($query);
                if ($result->numRows() > 0)
                {
                        $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
                        if ($row["original_id"] > 0)
                        {
                                return $row["original_id"];
                        }
                        else
                        {
                                return $row["question_id"];
                        }
                }
                else
                {
                        return "";
                }
        }

Here is the caller graph for this function:

ASS_Question::_getQuestionTitle ( question_id  ) 

Returns the question title of a question with a given id.

Returns the question title of a question with a given id

Parameters:
integer $question_id The database id of the question
Returns:
string The question title private

Definition at line 1116 of file class.assQuestion.php.

References $data, $query, and $result.

Referenced by ilObjAssessmentFolderGUI::logsObject().

                                           {
                global $ilDB;

    if ($question_id < 1)
      return "";

    $query = sprintf("SELECT title FROM qpl_questions WHERE qpl_questions.question_id = %s",
      $ilDB->quote($question_id)
    );
    $result = $ilDB->query($query);
    if ($result->numRows() == 1) {
      $data = $result->fetchRow(DB_FETCHMODE_ASSOC);
      return $data["title"];
    } else {
      return "";
    }
  }

Here is the caller graph for this function:

ASS_Question::_getQuestionType ( question_id  ) 

Returns the question type of a question with a given id.

Returns the question type of a question with a given id

Parameters:
integer $question_id The database id of the question
Returns:
string The question type string private

Definition at line 1089 of file class.assQuestion.php.

References $data, $query, and $result.

Referenced by ilObjTest::_instanciateQuestion(), and _instanciateQuestion().

                                          {
                global $ilDB;

    if ($question_id < 1)
      return "";

    $query = sprintf("SELECT type_tag FROM qpl_questions, qpl_question_type WHERE qpl_questions.question_id = %s AND qpl_questions.question_type_fi = qpl_question_type.question_type_id",
      $ilDB->quote($question_id)
    );
    $result = $ilDB->query($query);
    if ($result->numRows() == 1) {
      $data = $result->fetchRow(DB_FETCHMODE_OBJECT);
      return $data->type_tag;
    } else {
      return "";
    }
  }

Here is the caller graph for this function:

ASS_Question::_getReachedPoints ( user_id,
test_id 
)

Returns the points, a learner has reached answering the question.

Returns the points, a learner has reached answering the question

Parameters:
integer $user_id The database ID of the learner
integer $test_id The database Id of the test containing the question public static

Reimplemented in ASS_ImagemapQuestion, ASS_MultipleChoice, and ASS_TextQuestion.

Definition at line 669 of file class.assQuestion.php.

        {
                return 0;
        }

ASS_Question::_getTotalAnswers ( a_q_id  ) 

get number of answers for question id (static) note: do not use $this inside this method

Parameters:
int $a_q_id question id

Definition at line 979 of file class.assQuestion.php.

References $query, $result, and $row.

Referenced by getTotalAnswers().

        {
                global $ilDB;

                $query = sprintf("SELECT question_id FROM qpl_questions WHERE original_id = %s OR question_id = %s",
                        $ilDB->quote($a_q_id),
                        $ilDB->quote($a_q_id)
                );
                $result = $ilDB->query($query);

                if ($result->numRows() == 0)
                {
                        return 0;
                }
                $found_id = array();
                while ($row = $result->fetchRow(DB_FETCHMODE_OBJECT))
                {
                        array_push($found_id, $row->question_id);
                }

                $query = sprintf("SELECT * FROM tst_solutions WHERE question_fi IN (%s) GROUP BY CONCAT(user_fi,test_fi)",
                        join($found_id, ","));

                $result = $ilDB->query($query);

                return $result->numRows();
        }

Here is the caller graph for this function:

ASS_Question::_getTotalRightAnswers ( a_q_id  ) 

get number of answers for question id (static) note: do not use $this inside this method

Parameters:
int $a_q_id question id

Definition at line 1014 of file class.assQuestion.php.

References $query, $result, $row, and _instanciateQuestion().

Referenced by ilObjQuestionPoolGUI::assessmentObject().

        {
                global $ilDB;
                $query = sprintf("SELECT question_id FROM qpl_questions WHERE original_id = %s OR question_id = %s",
                        $ilDB->quote($a_q_id),
                        $ilDB->quote($a_q_id)
                );
                $result = $ilDB->query($query);
                if ($result->numRows() == 0)
                {
                        return 0;
                }
                $found_id = array();
                while ($row = $result->fetchRow(DB_FETCHMODE_OBJECT))
                {
                        array_push($found_id, $row->question_id);
                }
                $query = sprintf("SELECT * FROM tst_solutions WHERE question_fi IN (%s) GROUP BY CONCAT(user_fi,test_fi)",
                        join($found_id, ",")
                );
                $result = $ilDB->query($query);
                $answers = array();
                while ($row = $result->fetchRow(DB_FETCHMODE_OBJECT))
                {
                        $question =& ASS_Question::_instanciateQuestion($row->question_fi);
                        $reached = $question->getReachedPoints($row->user_fi, $row->test_fi);
                        $max = $question->getMaximumPoints();
                        array_push($answers, array("reached" => $reached, "max" => $max));
                }
                $max = 0.0;
                $reached = 0.0;
                foreach ($answers as $key => $value)
                {
                        $max += $value["max"];
                        $reached += $value["reached"];
                }
                if ($max > 0)
                {
                        return $reached / $max;
                }
                else
                {
                        return 0;
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

& ASS_Question::_instanciateQuestion ( question_id  ) 

Creates an instance of a question with a given question id.

Creates an instance of a question with a given question id

Parameters:
integer $question_id The question id
Returns:
object The question instance public

Definition at line 1511 of file class.assQuestion.php.

References _getQuestionType().

Referenced by _getTotalRightAnswers().

        {
                if (strcmp($question_id, "") != 0)
                {
                        $question_type = ASS_Question::_getQuestionType($question_id);
                        switch ($question_type) {
                                case "qt_cloze":
                                        $question = new ASS_ClozeTest();
                                        break;
                                case "qt_matching":
                                        $question = new ASS_MatchingQuestion();
                                        break;
                                case "qt_ordering":
                                        $question = new ASS_OrderingQuestion();
                                        break;
                                case "qt_imagemap":
                                        $question = new ASS_ImagemapQuestion();
                                        break;
                                case "qt_multiple_choice_sr":
                                case "qt_multiple_choice_mr":
                                        $question = new ASS_MultipleChoice();
                                        break;
                                case "qt_javaapplet":
                                        $question = new ASS_JavaApplet();
                                        break;
                                case "qt_text":
                                        $question = new ASS_TextQuestion();
                                        break;
                        }
                        $question->loadFromDb($question_id);
                        return $question;
                }
  }

Here is the call graph for this function:

Here is the caller graph for this function:

ASS_Question::_questionExists ( question_id  ) 

Returns true if the question already exists in the database.

Returns true if the question already exists in the database

Parameters:
integer $question_id The database id of the question
Returns:
boolean True, if the question exists, otherwise False public

Definition at line 1479 of file class.assQuestion.php.

References $query, and $result.

        {
                global $ilDB;

                if ($question_id < 1)
                {
                        return false;
                }
                
                $query = sprintf("SELECT question_id FROM qpl_questions WHERE question_id = %s",
                        $ilDB->quote($question_id)
                );
    $result = $ilDB->query($query);
                if ($result->numRows() == 1)
                {
                        return true;
                }
                else
                {
                        return false;
                }
        }

ASS_Question::_resolveInternalLink ( internal_link  ) 

Definition at line 1285 of file class.assQuestion.php.

References ilInternalLink::_getIdForImportId(), and ilLMObject::_getIdForImportId().

Referenced by _resolveIntLinks(), and setSuggestedSolution().

        {
                if (preg_match("/il_(\d+)_(\w+)_(\d+)/", $internal_link, $matches))
                {
                        require_once "./content/classes/Pages/class.ilInternalLink.php";
                        require_once "./content/classes/class.ilLMObject.php";
                        require_once "./content/classes/class.ilGlossaryTerm.php";
                        switch ($matches[2])
                        {
                                case "lm":
                                        $resolved_link = ilLMObject::_getIdForImportId($internal_link);
                                        break;
                                case "pg":
                                        $resolved_link = ilInternalLink::_getIdForImportId("PageObject", $internal_link);
                                        break;
                                case "st":
                                        $resolved_link = ilInternalLink::_getIdForImportId("StructureObject", $internal_link);
                                        break;
                                case "git":
                                        $resolved_link = ilInternalLink::_getIdForImportId("GlossaryItem", $internal_link);
                                        break;
                                case "mob":
                                        $resolved_link = ilInternalLink::_getIdForImportId("MediaObject", $internal_link);
                                        break;
                        }
                        if (strcmp($resolved_link, "") == 0)
                        {
                                $resolved_link = $internal_link;
                        }
                }
                else
                {
                        $resolved_link = $internal_link;
                }
                return $resolved_link;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ASS_Question::_resolveIntLinks ( question_id  ) 

Definition at line 1322 of file class.assQuestion.php.

References $query, $result, $row, ilInternalLink::_deleteAllLinksOfSource(), _resolveInternalLink(), and ilInternalLink::_saveLink().

Referenced by ilContObjParser::processPagesToParse().

        {
                global $ilDB;
                $resolvedlinks = 0;
                $query = sprintf("SELECT * FROM qpl_suggested_solutions WHERE question_fi = %s",
                        $ilDB->quote($question_id . "")
                );
                $result = $ilDB->query($query);
                if ($result->numRows())
                {
                        while ($row = $result->fetchRow(DB_FETCHMODE_ASSOC))
                        {
                                $internal_link = $row["internal_link"];
                                $resolved_link = ASS_Question::_resolveInternalLink($internal_link);
                                if (strcmp($internal_link, $resolved_link) != 0)
                                {
                                        // internal link was resolved successfully
                                        $queryupdate = sprintf("UPDATE qpl_suggested_solutions SET internal_link = %s WHERE suggested_solution_id = %s",
                                                $ilDB->quote($resolved_link),
                                                $ilDB->quote($row["suggested_solution_id"] . "")
                                        );
                                        $updateresult = $ilDB->query($queryupdate);
                                        $resolvedlinks++;
                                }
                        }
                }
                if ($resolvedlinks)
                {
                        // there are resolved links -> reenter theses links to the database

                        // delete all internal links from the database
                        require_once "./content/classes/Pages/class.ilInternalLink.php";
                        ilInternalLink::_deleteAllLinksOfSource("qst", $question_id);

                        $query = sprintf("SELECT * FROM qpl_suggested_solutions WHERE question_fi = %s",
                                $ilDB->quote($question_id . "")
                        );
                        $result = $ilDB->query($query);
                        if ($result->numRows())
                        {
                                while ($row = $result->fetchRow(DB_FETCHMODE_ASSOC))
                                {
                                        if (preg_match("/il_(\d*?)_(\w+)_(\d+)/", $row["internal_link"], $matches))
                                        {
                                                ilInternalLink::_saveLink("qst", $question_id, $matches[2], $matches[3], $matches[1]);
                                        }
                                }
                        }
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ASS_Question::ASS_Question ( title = "",
comment = "",
author = "",
owner = -1 
)

ASS_Question constructor.

The constructor takes possible arguments an creates an instance of the ASS_Question object.

Parameters:
string $title A title string to describe the question
string $comment A comment string to describe the question
string $author A string containing the name of the questions author
integer $owner A numerical ID to identify the owner/creator public

Definition at line 192 of file class.assQuestion.php.

References $author, $comment, $ilias, $lng, $owner, $title, $tpl, and setEstimatedWorkingTime().

Referenced by ASS_ClozeTest::ASS_ClozeTest(), ASS_ImagemapQuestion::ASS_ImagemapQuestion(), ASS_JavaApplet::ASS_JavaApplet(), ASS_MatchingQuestion::ASS_MatchingQuestion(), ASS_MultipleChoice::ASS_MultipleChoice(), ASS_OrderingQuestion::ASS_OrderingQuestion(), and ASS_TextQuestion::ASS_TextQuestion().

        {
                global $ilias;
                global $lng;
                global $tpl;

                $this->ilias =& $ilias;
                $this->lng =& $lng;
                $this->tpl =& $tpl;

                $this->title = $title;
                $this->comment = $comment;
                $this->author = $author;
                if (!$this->author)
                {
                        $this->author = $this->ilias->account->fullname;
                }
                $this->owner = $owner;
                if ($this->owner == -1)
                {
                        $this->owner = $this->ilias->account->id;
                }
                $this->id = -1;
                $this->test_id = -1;
                $this->suggested_solutions = array();
                $this->shuffle = 1;
                $this->setEstimatedWorkingTime(0,1,0);
                $this->outputType = OUTPUT_HTML;
                register_shutdown_function(array(&$this, '_ASS_Question'));
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ASS_Question::copyPageOfQuestion ( a_q_id  ) 

Definition at line 1060 of file class.assQuestion.php.

References $xml.

        {
                if ($a_q_id > 0)
                {
                        $page = new ilPageObject("qpl", $a_q_id);

                        $xml = str_replace("il__qst_".$a_q_id, "il__qst_".$this->id,
                                $page->getXMLContent());
                        $this->page->setXMLContent($xml);
                        $this->page->saveMobUsage($xml);
                        $this->page->updateFromXML();
                }
        }

ASS_Question::createPageObject (  ) 

create page object of question

Definition at line 613 of file class.assQuestion.php.

References getId(), and getObjId().

Referenced by ASS_TextQuestion::saveToDb(), ASS_OrderingQuestion::saveToDb(), ASS_MultipleChoice::saveToDb(), ASS_MatchingQuestion::saveToDb(), ASS_JavaApplet::saveToDb(), ASS_ImagemapQuestion::saveToDb(), and ASS_ClozeTest::saveToDb().

        {
//              $qpl_id = ilObject::_lookupObjectId($this->getRefId());
                $qpl_id = $this->getObjId();

                $this->page = new ilPageObject("qpl", 0);
                $this->page->setId($this->getId());
                $this->page->setParentId($qpl_id);
                $this->page->setXMLContent("<PageObject><PageContent>".
                        "<Question QRef=\"il__qst_".$this->getId()."\"/>".
                        "</PageContent></PageObject>");
                $this->page->create();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ASS_Question::createRandomSolution ( test_id,
user_id 
)
ASS_Question::delete ( question_id  ) 

Deletes a question from the database.

Deletes a question and all materials from the database

Parameters:
integer $question_id The database id of the question private

Definition at line 914 of file class.assQuestion.php.

References $obj_id, $query, $result, and $row.

        {
                if ($question_id < 1)
                return;

                $query = sprintf("SELECT obj_fi FROM qpl_questions WHERE question_id = %s",
                        $this->ilias->db->quote($question_id)
                        );
        $result = $this->ilias->db->query($query);
                if ($result->numRows() == 1)
                {
                        $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
                        $obj_id = $row["obj_fi"];
                }
                else
                {
                        return;
                }

                //if ((!$this->isInUse($question_id)) && (!$this->isClone($question_id)))
                //{
                        // delete page object only when where is no other question using this object (this happens as long as page objects are not copied completely when a question is duplicated)
                        $page = new ilPageObject("qpl", $question_id);
                        $page->delete();
                //}
                
                $query = sprintf("DELETE FROM qpl_questions WHERE question_id = %s",
                        $this->ilias->db->quote($question_id)
                        );
                $result = $this->ilias->db->query($query);
                $query = sprintf("DELETE FROM qpl_answers WHERE question_fi = %s",
                        $this->ilias->db->quote($question_id)
                        );
                $result = $this->ilias->db->query($query);

                // delete the question in the tst_test_question table (list of test questions)
                $querydelete = sprintf("DELETE FROM tst_test_question WHERE question_fi = %s", $this->ilias->db->quote($question_id));
                $deleteresult = $this->ilias->db->query($querydelete);

                // delete suggested solutions contained in the question
                $querydelete = sprintf("DELETE FROM qpl_suggested_solutions WHERE question_fi = %s", $this->ilias->db->quote($question_id));
                $deleteresult = $this->ilias->db->query($querydelete);
                                
                $directory = CLIENT_WEB_DIR . "/assessment/" . $obj_id . "/$question_id";
                if (preg_match("/\d+/", $obj_id) and preg_match("/\d+/", $question_id) and is_dir($directory))
                {
                        $directory = escapeshellarg($directory);
                        exec("rm -rf $directory");
                }
        }

ASS_Question::deleteSuggestedSolutions (  ) 

Deletes all suggestes solutions in the database.

Deletes all suggestes solutions in the database

public

Definition at line 1200 of file class.assQuestion.php.

References $query, $result, ilInternalLink::_deleteAllLinksOfSource(), and getId().

        {
                // delete the links in the qpl_suggested_solutions table
                $query = sprintf("DELETE FROM qpl_suggested_solutions WHERE question_fi = %s",
                        $this->ilias->db->quote($this->getId() . "")
                );
                $result = $this->ilias->db->query($query);
                // delete the links in the int_link table
                require_once "./content/classes/Pages/class.ilInternalLink.php";
                ilInternalLink::_deleteAllLinksOfSource("qst", $this->getId());
        }

Here is the call graph for this function:

ASS_Question::getAuthor (  ) 

Gets the authors name.

Gets the authors name of the ASS_Question object

Returns:
string The string containing the name of the questions author public
See also:
$author

Definition at line 563 of file class.assQuestion.php.

Referenced by ASS_TextQuestion::to_xml(), ASS_OrderingQuestion::to_xml(), ASS_MultipleChoice::to_xml(), ASS_MatchingQuestion::to_xml(), ASS_JavaApplet::to_xml(), ASS_ImagemapQuestion::to_xml(), and ASS_ClozeTest::to_xml().

        {
                return $this->author;
        }

Here is the caller graph for this function:

ASS_Question::getComment (  ) 

Gets the comment.

Gets the comment string of the ASS_Question object

Returns:
string The comment string to describe the question public
See also:
$comment

Definition at line 517 of file class.assQuestion.php.

Referenced by ASS_TextQuestion::to_xml(), ASS_OrderingQuestion::to_xml(), ASS_MultipleChoice::to_xml(), ASS_MatchingQuestion::to_xml(), ASS_JavaApplet::to_xml(), ASS_ImagemapQuestion::to_xml(), and ASS_ClozeTest::to_xml().

        {
                return $this->comment;
        }

Here is the caller graph for this function:

ASS_Question::getEstimatedWorkingTime (  ) 
ASS_Question::getId (  ) 

Gets the id.

Gets the id of the ASS_Question object

Returns:
integer The id of the ASS_Question object public
See also:
$id

Definition at line 475 of file class.assQuestion.php.

Referenced by createPageObject(), ASS_OrderingQuestion::createRandomSolution(), ASS_MultipleChoice::createRandomSolution(), ASS_MatchingQuestion::createRandomSolution(), deleteSuggestedSolutions(), ASS_TextQuestion::from_xml(), ASS_OrderingQuestion::from_xml(), ASS_MultipleChoice::from_xml(), ASS_MatchingQuestion::from_xml(), ASS_JavaApplet::from_xml(), ASS_ImagemapQuestion::from_xml(), ASS_ClozeTest::from_xml(), ASS_TextQuestion::getReachedInformation(), ASS_OrderingQuestion::getReachedInformation(), ASS_MultipleChoice::getReachedInformation(), ASS_MatchingQuestion::getReachedInformation(), ASS_JavaApplet::getReachedInformation(), ASS_ImagemapQuestion::getReachedInformation(), ASS_ClozeTest::getReachedInformation(), ASS_TextQuestion::getReachedPoints(), ASS_OrderingQuestion::getReachedPoints(), ASS_MultipleChoice::getReachedPoints(), ASS_MatchingQuestion::getReachedPoints(), ASS_JavaApplet::getReachedPoints(), ASS_ImagemapQuestion::getReachedPoints(), ASS_ClozeTest::getReachedPoints(), getSolutionValues(), insertIntoTest(), saveToDb(), ASS_TextQuestion::saveWorkingData(), ASS_OrderingQuestion::saveWorkingData(), ASS_MultipleChoice::saveWorkingData(), ASS_MatchingQuestion::saveWorkingData(), ASS_ImagemapQuestion::saveWorkingData(), ASS_ClozeTest::saveWorkingData(), ASS_TextQuestion::setReachedPoints(), and ASS_JavaApplet::to_xml().

        {
                return $this->id;
        }

Here is the caller graph for this function:

ASS_Question::getImagePath (  ) 

Returns the image path for web accessable images of a question.

Returns the image path for web accessable images of a question. The image path is under the CLIENT_WEB_DIR in assessment/REFERENCE_ID_OF_QUESTION_POOL/ID_OF_QUESTION/images

public

Definition at line 750 of file class.assQuestion.php.

Referenced by ASS_ImagemapQuestion::duplicateImage(), ASS_OrderingQuestion::duplicateImages(), ASS_MatchingQuestion::duplicateImages(), ASS_OrderingQuestion::from_xml(), ASS_MatchingQuestion::from_xml(), ASS_ImagemapQuestion::from_xml(), ASS_OrderingQuestion::set_image_file(), ASS_MatchingQuestion::set_image_file(), ASS_ImagemapQuestion::set_image_filename(), ASS_OrderingQuestion::to_xml(), ASS_MatchingQuestion::to_xml(), and ASS_ImagemapQuestion::to_xml().

        {
                return CLIENT_WEB_DIR . "/assessment/$this->obj_id/$this->id/images/";
        }

Here is the caller graph for this function:

ASS_Question::getImagePathWeb (  ) 

Returns the web image path for web accessable images of a question.

Returns the web image path for web accessable images of a question. The image path is under the web accessable data dir in assessment/REFERENCE_ID_OF_QUESTION_POOL/ID_OF_QUESTION/images

public

Definition at line 777 of file class.assQuestion.php.

References ilUtil::removeTrailingPathSeparators().

        {
                $webdir = ilUtil::removeTrailingPathSeparators(CLIENT_WEB_DIR) . "/assessment/$this->obj_id/$this->id/images/";
                return str_replace(ilUtil::removeTrailingPathSeparators(ILIAS_ABSOLUTE_PATH), ilUtil::removeTrailingPathSeparators(ILIAS_HTTP_PATH), $webdir);
        }

Here is the call graph for this function:

ASS_Question::getJavaPath (  ) 

Returns the image path for web accessable images of a question.

Returns the image path for web accessable images of a question. The image path is under the CLIENT_WEB_DIR in assessment/REFERENCE_ID_OF_QUESTION_POOL/ID_OF_QUESTION/images

public

Definition at line 738 of file class.assQuestion.php.

Referenced by ASS_JavaApplet::duplicateApplet(), ASS_JavaApplet::from_xml(), ASS_JavaApplet::setJavaAppletFilename(), and ASS_JavaApplet::to_xml().

                               {
                return CLIENT_WEB_DIR . "/assessment/$this->obj_id/$this->id/java/";
        }

Here is the caller graph for this function:

ASS_Question::getJavaPathWeb (  ) 

Returns the web image path for web accessable java applets of a question.

Returns the web image path for web accessable java applets of a question. The image path is under the web accessable data dir in assessment/REFERENCE_ID_OF_QUESTION_POOL/ID_OF_QUESTION/java

public

Definition at line 763 of file class.assQuestion.php.

References ilUtil::removeTrailingPathSeparators().

        {
                $webdir = ilUtil::removeTrailingPathSeparators(CLIENT_WEB_DIR) . "/assessment/$this->obj_id/$this->id/java/";
                return str_replace(ilUtil::removeTrailingPathSeparators(ILIAS_ABSOLUTE_PATH), ilUtil::removeTrailingPathSeparators(ILIAS_HTTP_PATH), $webdir);
        }

Here is the call graph for this function:

ASS_Question::getMaximumPoints (  ) 

Returns the maximum points, a learner can reach answering the question.

Returns the maximum points, a learner can reach answering the question

public

See also:
$points

Reimplemented in ASS_ClozeTest, ASS_ImagemapQuestion, ASS_JavaApplet, ASS_MatchingQuestion, ASS_MultipleChoice, ASS_OrderingQuestion, and ASS_TextQuestion.

Definition at line 696 of file class.assQuestion.php.

        {
                return 0;
        }

ASS_Question::getObjId (  ) 

Get the object id of the container object.

Get the object id of the container object

Returns:
integer The object id of the container object public
See also:
$obj_id

Definition at line 591 of file class.assQuestion.php.

Referenced by createPageObject().

        {
                return $this->obj_id;
        }

Here is the caller graph for this function:

ASS_Question::getOutputType (  ) 

Gets the output type.

Gets the output type

Returns:
integer The output type of the question public
See also:
$outputType

Definition at line 531 of file class.assQuestion.php.

Referenced by ASS_OrderingQuestion::to_xml(), and ASS_MatchingQuestion::to_xml().

        {
                return $this->outputType;
        }

Here is the caller graph for this function:

ASS_Question::getOwner (  ) 

Gets the creator/owner.

Gets the creator/owner ID of the ASS_Question object

Returns:
integer The numerical ID to identify the owner/creator public
See also:
$owner

Definition at line 577 of file class.assQuestion.php.

        {
                return $this->owner;
        }

ASS_Question::getPageOfQuestion (  ) 

Definition at line 1074 of file class.assQuestion.php.

        {
                $page = new ilPageObject("qpl", $this->id);
                return $page->getXMLContent();
        }

ASS_Question::getQuestionTypeFromDb ( question_id  ) 

get question type for question id

note: please don't use $this in this class to allow static calls

Definition at line 893 of file class.assQuestion.php.

References $data, $query, and $result.

Referenced by ASS_QuestionGUI::_getGUIClassNameForId(), ASS_QuestionGUI::_getQuestionGUI(), and ilObjQuestionPoolGUI::setQuestionTabs().

        {
                global $ilDB;

                $query = sprintf("SELECT qpl_question_type.type_tag FROM qpl_question_type, qpl_questions WHERE qpl_questions.question_id = %s AND qpl_questions.question_type_fi = qpl_question_type.question_type_id",
                        $ilDB->quote($question_id));

                $result = $ilDB->query($query);
                $data = $result->fetchRow(DB_FETCHMODE_OBJECT);

                return $data->type_tag;
        }

Here is the caller graph for this function:

ASS_Question::getReachedPoints ( user_id,
test_id 
)

Returns the points, a learner has reached answering the question.

Returns the points, a learner has reached answering the question

Parameters:
integer $user_id The database ID of the learner
integer $test_id The database Id of the test containing the question public

Reimplemented in ASS_ClozeTest, ASS_ImagemapQuestion, ASS_JavaApplet, ASS_MatchingQuestion, ASS_MultipleChoice, ASS_OrderingQuestion, and ASS_TextQuestion.

Definition at line 683 of file class.assQuestion.php.

        {
                return 0;
        }

ASS_Question::getShuffle (  ) 

Gets the shuffle flag.

Gets the shuffle flag

Returns:
boolean The shuffle flag public
See also:
$shuffle

Definition at line 489 of file class.assQuestion.php.

Referenced by ASS_OrderingQuestion::to_xml(), ASS_MultipleChoice::to_xml(), and ASS_MatchingQuestion::to_xml().

        {
                return $this->shuffle;
        }

Here is the caller graph for this function:

& ASS_Question::getSolutionValues ( test_id  ) 

Loads solutions of the active user from the database an returns it.

Loads solutions of the active user from the database an returns it

Parameters:
integer $test_id The database id of the test containing this question public
See also:
$answers

Definition at line 792 of file class.assQuestion.php.

References $ilUser, $query, $result, $row, $test_id, and getId().

        {
                global $ilDB;
                global $ilUser;

                $db =& $ilDB->db;

                $query = sprintf("SELECT * FROM tst_solutions WHERE user_fi = %s AND test_fi = %s AND question_fi = %s",
                        $db->quote($ilUser->id),
                        $db->quote($test_id),
                        $db->quote($this->getId())
                        );
                $result = $db->query($query);
                $values = array();
                while   ($row = $result->fetchRow(DB_FETCHMODE_OBJECT))
                {
                        array_push($values, $row);
                }

                return $values;
        }

Here is the call graph for this function:

ASS_Question::getSuggestedSolution ( subquestion_index = 0  ) 

Returns a suggested solution for a given subquestion index.

Returns a suggested solution for a given subquestion index

Parameters:
integer $subquestion_index The index of a subquestion (i.e. a close test gap). Usually 0
Returns:
array A suggested solution array containing the internal link public

Definition at line 1221 of file class.assQuestion.php.

Referenced by ASS_TextQuestion::to_xml(), ASS_OrderingQuestion::to_xml(), ASS_MultipleChoice::to_xml(), ASS_MatchingQuestion::to_xml(), ASS_JavaApplet::to_xml(), ASS_ImagemapQuestion::to_xml(), and ASS_ClozeTest::to_xml().

        {
                if (array_key_exists($subquestion_index, $this->suggested_solutions))
                {
                        return $this->suggested_solutions[$subquestion_index];
                }
                else
                {
                        return array();
                }
        }

Here is the caller graph for this function:

ASS_Question::getSuggestedSolutionTitle ( subquestion_index = 0  ) 

Returns the title of a suggested solution at a given subquestion_index.

Returns the title of a suggested solution at a given subquestion_index. This can be usable for displaying suggested solutions

Parameters:
integer $subquestion_index The index of a subquestion (i.e. a close test gap). Usually 0
Returns:
string A string containing the type and title of the internal link public

Definition at line 1243 of file class.assQuestion.php.

References $title.

        {
                if (array_key_exists($subquestion_index, $this->suggested_solutions))
                {
                        $title = $this->suggested_solutions[$subquestion_index]["internal_link"];
                        // TO DO: resolve internal link an get link type and title
                }
                else
                {
                        $title = "";
                }
                return $title;
        }

ASS_Question::getTestId (  ) 

Gets the test id.

Gets the test id of the ASS_Question object

Returns:
integer The test id of the ASS_Question object public
See also:
$test_id

Definition at line 503 of file class.assQuestion.php.

Referenced by ASS_TextQuestion::saveToDb(), ASS_OrderingQuestion::saveToDb(), ASS_MultipleChoice::saveToDb(), ASS_MatchingQuestion::saveToDb(), ASS_JavaApplet::saveToDb(), ASS_ImagemapQuestion::saveToDb(), and ASS_ClozeTest::saveToDb().

        {
                return $this->test_id;
        }

Here is the caller graph for this function:

ASS_Question::getTitle (  ) 

Gets the title string.

Gets the title string of the ASS_Question object

Returns:
string The title string to describe the question public
See also:
$title

Definition at line 461 of file class.assQuestion.php.

Referenced by ASS_TextQuestion::to_xml(), ASS_OrderingQuestion::to_xml(), ASS_MultipleChoice::to_xml(), ASS_MatchingQuestion::to_xml(), ASS_JavaApplet::to_xml(), ASS_ImagemapQuestion::to_xml(), and ASS_ClozeTest::to_xml().

        {
                return $this->title;
        }

Here is the caller graph for this function:

ASS_Question::getTotalAnswers (  ) 

get total number of answers

Definition at line 968 of file class.assQuestion.php.

References _getTotalAnswers().

        {
                return $this->_getTotalAnswers($this->id);
        }

Here is the call graph for this function:

ASS_Question::insertIntoTest ( test_id  ) 

Insert the question into a test.

Insert the question into a test

Parameters:
integer $test_id The database id of the test private

Definition at line 635 of file class.assQuestion.php.

References $data, $query, $result, $test_id, and getId().

Referenced by ASS_TextQuestion::saveToDb(), ASS_OrderingQuestion::saveToDb(), ASS_MultipleChoice::saveToDb(), ASS_MatchingQuestion::saveToDb(), ASS_JavaApplet::saveToDb(), ASS_ImagemapQuestion::saveToDb(), and ASS_ClozeTest::saveToDb().

        {
                // get maximum sequence index in test
                $query = sprintf("SELECT MAX(sequence) AS seq FROM dum_test_question WHERE test_fi=%s",
                        $this->ilias->db->quote($test_id)
                        );
                $result = $this->ilias->db->query($query);
                $sequence = 1;
                if ($result->numRows() == 1)
                {
                        $data = $result->fetchRow(DB_FETCHMODE_OBJECT);
                        $sequence = $data->seq + 1;
                }
                $query = sprintf("INSERT INTO dum_test_question (test_question_id, test_fi, question_fi, sequence, TIMESTAMP) VALUES (NULL, %s, %s, %s, NULL)",
                        $this->ilias->db->quote($test_id),
                        $this->ilias->db->quote($this->getId()),
                        $this->ilias->db->quote($sequence)
                        );
                $result = $this->ilias->db->query($query);
                if ($result != DB_OK)
                {
                // Fehlermeldung
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ASS_Question::isClone ( question_id = ""  ) 

Checks whether the question is a clone of another question or not.

Checks whether the question is a clone of another question or not

Returns:
boolean TRUE if the question is a clone, otherwise FALSE public

Definition at line 841 of file class.assQuestion.php.

References $query, $result, and $row.

        {
                if ($question_id < 1) $question_id = $this->id;
                $query = sprintf("SELECT original_id FROM qpl_questions WHERE question_id = %s",
                        $this->ilias->db->quote($question_id . "")
                );
                $result = $this->ilias->db->query($query);
                $row = $result->fetchRow(DB_FETCHMODE_OBJECT);
                if ($row->original_id > 0)
                {
                        return TRUE;
                }
                else
                {
                        return FALSE;
                }
        }

ASS_Question::isComplete (  ) 

Returns true, if a question is complete for use.

Returns true, if a question is complete for use

Returns:
boolean True, if the question is complete for use, otherwise false public

Reimplemented in ASS_ClozeTest, ASS_ImagemapQuestion, ASS_JavaApplet, ASS_MatchingQuestion, ASS_MultipleChoice, ASS_OrderingQuestion, and ASS_TextQuestion.

Definition at line 258 of file class.assQuestion.php.

        {
                return false;
        }

ASS_Question::isInUse ( question_id = ""  ) 

Checks whether the question is in use or not.

Checks whether the question is in use or not

Returns:
boolean The number of datasets which are affected by the use of the query. public

Definition at line 822 of file class.assQuestion.php.

References $query, $result, and $row.

        {
                if ($question_id < 1) $question_id = $this->id;
                $query = sprintf("SELECT COUNT(question_id) AS question_count FROM qpl_questions WHERE original_id = %s",
                        $this->ilias->db->quote($question_id . "")
                );
                $result = $this->ilias->db->query($query);
                $row = $result->fetchRow(DB_FETCHMODE_OBJECT);
                return $row->question_count;
        }

ASS_Question::keyInArray ( searchkey,
array 
)

returns TRUE if the key occurs in an array

returns TRUE if the key occurs in an array

Parameters:
string $arraykey A key to an element in array
array $array An array to be searched public

Definition at line 405 of file class.assQuestion.php.

        {
                if ($searchKey)
                {
                        foreach ($array as $key => $value)
                        {
                                if (strcmp($key, $searchkey)==0)
                                {
                                        return true;
                                }
                        }
                }
                return false;
        }

ASS_Question::loadFromDb ( question_id  ) 

Loads the question from the database.

Loads the question from the database

Parameters:
integer $question_id A unique key which defines the question in the database public

Reimplemented in ASS_ClozeTest, ASS_ImagemapQuestion, ASS_JavaApplet, ASS_MatchingQuestion, ASS_MultipleChoice, ASS_OrderingQuestion, and ASS_TextQuestion.

Definition at line 1142 of file class.assQuestion.php.

References $query, $result, and $row.

        {
                $query = sprintf("SELECT * FROM qpl_suggested_solutions WHERE question_fi = %s",
                        $this->ilias->db->quote($this->getId() . "")
                );
                $result = $this->ilias->db->query($query);
                $this->suggested_solutions = array();
                if ($result->numRows())
                {
                        while ($row = $result->fetchRow(DB_FETCHMODE_ASSOC))
                        {
                                $this->suggested_solutions[$row["subquestion_index"]] = array(
                                        "internal_link" => $row["internal_link"],
                                        "import_id" => $row["import_id"]
                                );
                        }
                }
        }

ASS_Question::pcArrayShuffle ( array  ) 

Shuffles the values of a given array.

Shuffles the values of a given array

Parameters:
array $array An array which should be shuffled public

Definition at line 867 of file class.assQuestion.php.

Referenced by ASS_OrderingQuestion::to_xml(), ASS_MultipleChoice::to_xml(), ASS_MatchingQuestion::to_xml(), and ASS_ClozeTest::to_xml().

        {
                mt_srand((double)microtime()*1000000);
                $i = count($array);
                if ($i > 0)
                {
                        while(--$i)
                        {
                                $j = mt_rand(0, $i);
                                if ($i != $j)
                                {
                                        // swap elements
                                        $tmp = $array[$j];
                                        $array[$j] = $array[$i];
                                        $array[$i] = $tmp;
                                }
                        }
                }
                return $array;
        }

Here is the caller graph for this function:

ASS_Question::questionTitleExists ( title  ) 

Returns TRUE if the question title exists in the database.

Returns TRUE if the question title exists in the database

Parameters:
string $title The title of the question
Returns:
boolean The result of the title check public

Definition at line 272 of file class.assQuestion.php.

References $query, $result, and $title.

        {
                $query = sprintf("SELECT * FROM qpl_questions WHERE title = %s",
                        $this->ilias->db->quote($title)
                        );
                $result = $this->ilias->db->query($query);
                if (strcmp(strtolower(get_class($result)), db_result) == 0)
                {
                        if ($result->numRows() == 1)
                        {
                                return TRUE;
                        }
                }
                return FALSE;
        }

ASS_Question::saveToDb ( original_id = ""  ) 

Saves the question to the database.

Saves the question to the database

Parameters:
integer $original_id public

Reimplemented in ASS_ClozeTest, ASS_ImagemapQuestion, ASS_JavaApplet, ASS_MatchingQuestion, ASS_MultipleChoice, ASS_OrderingQuestion, and ASS_TextQuestion.

Definition at line 1169 of file class.assQuestion.php.

References $query, $result, ilInternalLink::_deleteAllLinksOfSource(), ilInternalLink::_saveLink(), and getId().

        {
                require_once "./content/classes/Pages/class.ilInternalLink.php";
                $query = sprintf("DELETE FROM qpl_suggested_solutions WHERE question_fi = %s",
                        $this->ilias->db->quote($this->getId() . "")
                );
                $result = $this->ilias->db->query($query);
                ilInternalLink::_deleteAllLinksOfSource("qst", $this->getId());
                foreach ($this->suggested_solutions as $index => $solution)
                {
                        $query = sprintf("INSERT INTO qpl_suggested_solutions (suggested_solution_id, question_fi, internal_link, import_id, subquestion_index, TIMESTAMP) VALUES (NULL, %s, %s, %s, %s, NULL)",
                                $this->ilias->db->quote($this->getId() . ""),
                                $this->ilias->db->quote($solution["internal_link"] . ""),
                                $this->ilias->db->quote($solution["import_id"] . ""),
                                $this->ilias->db->quote($index . "")
                        );
                        $this->ilias->db->query($query);
                        if (preg_match("/il_(\d*?)_(\w+)_(\d+)/", $solution["internal_link"], $matches))
                        {
                                ilInternalLink::_saveLink("qst", $this->getId(), $matches[2], $matches[3], $matches[1]);
                        }
                }
        }

Here is the call graph for this function:

ASS_Question::saveWorkingData ( limit_to = LIMIT_NO_LIMIT  ) 

Saves the learners input of the question to the database.

Saves the learners input of the question to the database

public

See also:
$answers

Definition at line 709 of file class.assQuestion.php.

        {
        /*    global $ilias;
                $db =& $ilias->db;

                // Increase the number of tries for that question
                $query = sprintf("SELECT * FROM dum_assessment_solution_order WHERE user_fi = %s AND test_fi = %s AND question_fi = %s",
                $db->quote($this->ilias->account->id),
                $db->quote($_GET["test"]),
                $db->quote($this->getId())
                );
                $result = $db->query($query);
                $data = $result->fetchRow(DB_FETCHMODE_OBJECT);
                $query = sprintf("UPDATE dum_assessment_solution_order SET tries = %s WHERE solution_order_id = %s",
                $db->quote($data->tries + 1),
                $db->quote($data->solution_order_id)
                );
                $result = $db->query($query);
        */
        }

ASS_Question::setAuthor ( author = ""  ) 

Sets the authors name.

Sets the authors name of the ASS_Question object

Parameters:
string $author A string containing the name of the questions author public
See also:
$author

Definition at line 429 of file class.assQuestion.php.

References $author.

Referenced by ASS_TextQuestion::from_xml(), ASS_OrderingQuestion::from_xml(), ASS_MultipleChoice::from_xml(), ASS_MatchingQuestion::from_xml(), ASS_JavaApplet::from_xml(), ASS_ImagemapQuestion::from_xml(), and ASS_ClozeTest::from_xml().

        {
                if (!$author)
                {
                        $author = $this->ilias->account->fullname;
                }
                $this->author = $author;
        }

Here is the caller graph for this function:

ASS_Question::setComment ( comment = ""  ) 

Sets the comment.

Sets the comment string of the ASS_Question object

Parameters:
string $comment A comment string to describe the question public
See also:
$comment

Definition at line 339 of file class.assQuestion.php.

References $comment.

Referenced by ASS_TextQuestion::from_xml(), ASS_OrderingQuestion::from_xml(), ASS_MultipleChoice::from_xml(), ASS_MatchingQuestion::from_xml(), ASS_JavaApplet::from_xml(), ASS_ImagemapQuestion::from_xml(), and ASS_ClozeTest::from_xml().

        {
                $this->comment = $comment;
        }

Here is the caller graph for this function:

ASS_Question::setEstimatedWorkingTime ( hour = 0,
min = 0,
sec = 0 
)

Sets the estimated working time of a question.

Sets the estimated working time of a question

Parameters:
integer $hour Hour
integer $min Minutes
integer $sec Seconds public
See also:
$comment

Definition at line 391 of file class.assQuestion.php.

Referenced by ASS_Question(), ASS_TextQuestion::from_xml(), ASS_OrderingQuestion::from_xml(), ASS_MultipleChoice::from_xml(), ASS_MatchingQuestion::from_xml(), ASS_JavaApplet::from_xml(), ASS_ImagemapQuestion::from_xml(), ASS_ClozeTest::from_xml(), ASS_TextQuestion::loadFromDb(), ASS_OrderingQuestion::loadFromDb(), ASS_MultipleChoice::loadFromDb(), ASS_MatchingQuestion::loadFromDb(), ASS_JavaApplet::loadFromDb(), ASS_ImagemapQuestion::loadFromDb(), and ASS_ClozeTest::loadFromDb().

        {
                $this->est_working_time = array("h" => (int)$hour, "m" => (int)$min, "s" => (int)$sec);
        }

Here is the caller graph for this function:

ASS_Question::setId ( id = -1  ) 

Sets the id.

Sets the id of the ASS_Question object

Parameters:
integer $id A unique integer value public
See also:
$id

Definition at line 311 of file class.assQuestion.php.

References $id.

        {
                $this->id = $id;
        }

ASS_Question::setObjId ( obj_id = 0  ) 

Set the object id of the container object.

Set the object id of the container object

Parameters:
integer $obj_id The object id of the container object public
See also:
$obj_id

Definition at line 605 of file class.assQuestion.php.

References $obj_id.

        {
                $this->obj_id = $obj_id;
        }

ASS_Question::setOutputType ( outputType = OUTPUT_HTML  ) 

Sets the output type.

Sets the output type

Parameters:
integer $outputType The output type of the question public
See also:
$outputType

Definition at line 353 of file class.assQuestion.php.

References $outputType.

        {
                $this->outputType = $outputType;
        }

ASS_Question::setOwner ( owner = ""  ) 

Sets the creator/owner.

Sets the creator/owner ID of the ASS_Question object

Parameters:
integer $owner A numerical ID to identify the owner/creator public
See also:
$owner

Definition at line 447 of file class.assQuestion.php.

References $owner.

        {
                $this->owner = $owner;
        }

ASS_Question::setShuffle ( shuffle = true  ) 

Sets the shuffle flag.

Sets the shuffle flag

Parameters:
boolean $shuffle A flag indicating whether the answers are shuffled or not public
See also:
$shuffle

Definition at line 368 of file class.assQuestion.php.

References $shuffle.

Referenced by ASS_OrderingQuestion::from_xml(), ASS_MultipleChoice::from_xml(), ASS_MatchingQuestion::from_xml(), ASS_MultipleChoice::loadFromDb(), and ASS_JavaApplet::loadFromDb().

        {
                if ($shuffle)
                {
                        $this->shuffle = 1;
                }
                        else
                {
                        $this->shuffle = 0;
                }
        }

Here is the caller graph for this function:

ASS_Question::setSuggestedSolution ( solution_id = "",
subquestion_index = 0,
is_import = false 
)

Sets a suggested solution for the question.

Sets a suggested solution for the question. If there is more than one subquestion (i.e. close questions) may enter a subquestion index.

Parameters:
string $solution_id An internal link pointing to the suggested solution
integer $subquestion_index The index of a subquestion (i.e. a close test gap). Usually 0
boolean $is_import A boolean indication that the internal link was imported from another ILIAS installation public

Definition at line 1268 of file class.assQuestion.php.

References _resolveInternalLink().

Referenced by ASS_TextQuestion::from_xml(), ASS_OrderingQuestion::from_xml(), ASS_MultipleChoice::from_xml(), ASS_MatchingQuestion::from_xml(), ASS_JavaApplet::from_xml(), ASS_ImagemapQuestion::from_xml(), and ASS_ClozeTest::from_xml().

        {
                if (strcmp($solution_id, "") != 0)
                {
                        $import_id = "";
                        if ($is_import)
                        {
                                $import_id = $solution_id;
                                $solution_id = $this->_resolveInternalLink($import_id);
                        }
                        $this->suggested_solutions[$subquestion_index] = array(
                                "internal_link" => $solution_id,
                                "import_id" => $import_id
                        );
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ASS_Question::setTestId ( id = -1  ) 

Sets the test id.

Sets the test id of the ASS_Question object

Parameters:
integer $id A unique integer value public
See also:
$test_id

Definition at line 325 of file class.assQuestion.php.

References $id.

        {
                $this->test_id = $id;
        }

ASS_Question::setTitle ( title = ""  ) 

Sets the title string.

Sets the title string of the ASS_Question object

Parameters:
string $title A title string to describe the question public
See also:
$title

Definition at line 297 of file class.assQuestion.php.

References $title.

Referenced by ASS_TextQuestion::from_xml(), ASS_OrderingQuestion::from_xml(), ASS_MultipleChoice::from_xml(), ASS_MatchingQuestion::from_xml(), ASS_JavaApplet::from_xml(), ASS_ImagemapQuestion::from_xml(), and ASS_ClozeTest::from_xml().

        {
                $this->title = $title;
        }

Here is the caller graph for this function:

ASS_Question::syncWithOriginal (  ) 

Reimplemented in ASS_ClozeTest, ASS_ImagemapQuestion, ASS_JavaApplet, ASS_MatchingQuestion, ASS_MultipleChoice, ASS_OrderingQuestion, and ASS_TextQuestion.

Definition at line 1442 of file class.assQuestion.php.

References $query, $result, ilInternalLink::_deleteAllLinksOfSource(), and ilInternalLink::_saveLink().

        {
                require_once "./content/classes/Pages/class.ilInternalLink.php";
                $query = sprintf("DELETE FROM qpl_suggested_solutions WHERE question_fi = %s",
                        $this->ilias->db->quote($this->original_id . "")
                );
                $result = $this->ilias->db->query($query);
                ilInternalLink::_deleteAllLinksOfSource("qst", $this->original_id);
                foreach ($this->suggested_solutions as $index => $solution)
                {
                        $query = sprintf("INSERT INTO qpl_suggested_solutions (suggested_solution_id, question_fi, internal_link, import_id, subquestion_index, TIMESTAMP) VALUES (NULL, %s, %s, %s, %s, NULL)",
                                $this->ilias->db->quote($this->original_id . ""),
                                $this->ilias->db->quote($solution["internal_link"] . ""),
                                $this->ilias->db->quote($solution["import_id"] . ""),
                                $this->ilias->db->quote($index . "")
                        );
                        $this->ilias->db->query($query);
                        if (preg_match("/il_(\d*?)_(\w+)_(\d+)/", $solution["internal_link"], $matches))
                        {
                                ilInternalLink::_saveLink("qst", $this->original_id, $matches[2], $matches[3], $matches[1]);
                        }
                }
        }

Here is the call graph for this function:

ASS_Question::to_xml (  ) 

Returns a QTI xml representation of the question.

Returns a QTI xml representation of the question and sets the internal domxml variable with the DOM XML representation of the QTI xml representation

Returns:
string The QTI xml representation of the question public

Definition at line 245 of file class.assQuestion.php.

        {
                // to be implemented in the successor classes of ASS_Question
        }


Field Documentation

ASS_Question::$author
ASS_Question::$comment
ASS_Question::$domxml

Definition at line 169 of file class.assQuestion.php.

ASS_Question::$est_working_time

Definition at line 106 of file class.assQuestion.php.

ASS_Question::$id

Definition at line 59 of file class.assQuestion.php.

Referenced by setId(), and setTestId().

ASS_Question::$ilias
ASS_Question::$lng

Definition at line 160 of file class.assQuestion.php.

Referenced by ASS_Question(), and ASS_ClozeTest::update_all_gap_params().

ASS_Question::$obj_id

Definition at line 133 of file class.assQuestion.php.

Referenced by delete(), and setObjId().

ASS_Question::$outputType

Definition at line 178 of file class.assQuestion.php.

Referenced by setOutputType().

ASS_Question::$owner
ASS_Question::$shuffle
ASS_Question::$suggested_solutions

Definition at line 180 of file class.assQuestion.php.

ASS_Question::$test_id
ASS_Question::$title
ASS_Question::$tpl

Definition at line 151 of file class.assQuestion.php.

Referenced by ASS_Question().


The documentation for this class was generated from the following file: