Public Member Functions | Data Fields

assQuestionGUI Class Reference

Basic GUI class for assessment questions. More...

Inheritance diagram for assQuestionGUI:

Public Member Functions

 assQuestionGUI ()
 assQuestionGUI constructor
executeCommand ()
 execute command
 getCommand ($cmd)
 getQuestionType ()
 Returns the question type string.
 getType ()
 needed for page editor compliance
 outOtherQuestionData ()
 Sets the extra fields i.e.
 writePostData ()
 Evaluates a posted edit form and writes the form data in the question object.
 assessment ()
 output assessment
 writeOtherPostData ($result=0)
 Sets the other data i.e.
_getQuestionGUI ($question_type, $question_id=-1)
 Creates a question gui representation.
 _getGUIClassNameForId ($a_q_id)
 _getClassNameForQType ($q_type)
createQuestionGUI ($question_type, $question_id=-1)
 Creates a question gui representation.
 getQuestionTemplate ()
 get question template
 getILIASPage ()
 Returns the ILIAS Page around a question.
 outQuestionPage ($a_temp_var, $a_postponed=false, $active_id="")
 output question page
 cancel ()
 cancel action
 originalSyncForm ()
 sync ()
 cancelSync ()
 saveEdit ()
 save question
 save ()
 save question
 apply ()
 apply changes
 cancelExplorer ()
 addSuggestedSolution ()
 Handler for cmd[addSuggestedSolution] to add a suggested solution for the question.
 removeSuggestedSolution ()
 addPG ()
 addST ()
 addGIT ()
 linkChilds ()
 setSequenceNumber ($nr)
 getSequenceNumber ()
 setQuestionCount ($a_question_count)
 getQuestionCount ()
 getErrorMessage ()
 setErrorMessage ($errormessage)
 outAdditionalOutput ()

Data Fields

 $object
 $tpl
 $lng
 $error
 $errormessage
 $sequence_no
 sequence number in test
 $question_count
 question count in test

Detailed Description

Basic GUI class for assessment questions.

The assQuestionGUI class encapsulates basic GUI functions for assessment questions.

Author:
Helmut Schottmüller <helmut.schottmueller@mac.com>
Version:
Id:
class.assQuestionGUI.php 13663 2007-04-18 11:38:02Z hschottm

class.assQuestionGUI.php Assessment

Definition at line 37 of file class.assQuestionGUI.php.


Member Function Documentation

assQuestionGUI::_getClassNameForQType ( q_type  ) 

Definition at line 290 of file class.assQuestionGUI.php.

Referenced by _getGUIClassNameForId().

        {
                return $q_type . "GUI";
        }

Here is the caller graph for this function:

assQuestionGUI::_getGUIClassNameForId ( a_q_id  ) 

Definition at line 281 of file class.assQuestionGUI.php.

References _getClassNameForQType(), and assQuestion::getQuestionTypeFromDb().

Referenced by ilObjQuestionPoolGUI::questionsObject().

        {
                include_once "./assessment/classes/class.assQuestion.php";
                include_once "./assessment/classes/class.assQuestionGUI.php";
                $q_type =  assQuestion::getQuestionTypeFromDb($a_q_id);
                $class_name = assQuestionGUI::_getClassNameForQType($q_type);
                return $class_name;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

& assQuestionGUI::_getQuestionGUI ( question_type,
question_id = -1 
)

Creates a question gui representation.

Creates a question gui representation and returns the alias to the question gui note: please do not use $this inside this method to allow static calls

Parameters:
string $question_type The question type as it is used in the language database
integer $question_id The database ID of an existing question to load it into assQuestionGUI
Returns:
object The alias to the question object public

Definition at line 262 of file class.assQuestionGUI.php.

References assQuestion::getQuestionTypeFromDb().

Referenced by ilObjQuestionPoolGUI::addLocatorItems(), ilObjQuestionPoolGUI::createQuestionForTestObject(), createQuestionGUI(), ilObjQuestionPoolGUI::createQuestionObject(), ilPCQuestionGUI::edit(), ilObjQuestionPoolGUI::editQuestionForTestObject(), ilObjQuestionPoolGUI::executeCommand(), and ilObjQuestionPoolGUI::setTitleAndDescription().

        {
                include_once "./assessment/classes/class.assQuestion.php";
                if ((!$question_type) and ($question_id > 0))
                {
                        $question_type = assQuestion::getQuestionTypeFromDb($question_id);
// echo ":".$question_type;
                }
                if (strlen($question_type) == 0) return NULL;
                include_once "./assessment/classes/class.".$question_type."GUI.php";
                $question_type_gui = $question_type . "GUI";
                $question =& new $question_type_gui();
                if ($question_id > 0)
                {
                        $question->object->loadFromDb($question_id);
                }
                return $question;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

assQuestionGUI::addGIT (  ) 

Definition at line 682 of file class.assQuestionGUI.php.

References $_GET, $_SESSION, and sendInfo().

        {
                $subquestion_index = 0;
                if ($_SESSION["subquestion_index"] >= 0)
                {
                        $subquestion_index = $_SESSION["subquestion_index"];
                }
                $this->object->setSuggestedSolution("il__git_" . $_GET["git"], $subquestion_index);
                unset($_SESSION["subquestion_index"]);
                unset($_SESSION["link_new_type"]);
                unset($_SESSION["search_link_type"]);
                sendInfo($this->lng->txt("suggested_solution_added_successfully"));
                $this->editQuestion();
        }

Here is the call graph for this function:

assQuestionGUI::addPG (  ) 

Definition at line 652 of file class.assQuestionGUI.php.

References $_GET, $_SESSION, and sendInfo().

        {
                $subquestion_index = 0;
                if ($_SESSION["subquestion_index"] >= 0)
                {
                        $subquestion_index = $_SESSION["subquestion_index"];
                }
                $this->object->setSuggestedSolution("il__pg_" . $_GET["pg"], $subquestion_index);
                unset($_SESSION["subquestion_index"]);
                unset($_SESSION["link_new_type"]);
                unset($_SESSION["search_link_type"]);
                sendInfo($this->lng->txt("suggested_solution_added_successfully"));
                $this->editQuestion();
        }

Here is the call graph for this function:

assQuestionGUI::addST (  ) 

Definition at line 667 of file class.assQuestionGUI.php.

References $_GET, $_SESSION, and sendInfo().

        {
                $subquestion_index = 0;
                if ($_SESSION["subquestion_index"] >= 0)
                {
                        $subquestion_index = $_SESSION["subquestion_index"];
                }
                $this->object->setSuggestedSolution("il__st_" . $_GET["st"], $subquestion_index);
                unset($_SESSION["subquestion_index"]);
                unset($_SESSION["link_new_type"]);
                unset($_SESSION["search_link_type"]);
                sendInfo($this->lng->txt("suggested_solution_added_successfully"));
                $this->editQuestion();
        }

Here is the call graph for this function:

assQuestionGUI::addSuggestedSolution (  ) 

Handler for cmd[addSuggestedSolution] to add a suggested solution for the question.

Handler for cmd[addSuggestedSolution] to add a suggested solution for the question

public

Reimplemented in assClozeTestGUI, assImagemapQuestionGUI, assJavaAppletGUI, assMatchingQuestionGUI, assMultipleChoiceGUI, assNumericGUI, assOrderingQuestionGUI, assQuestionTypeTemplateGUI, assSingleChoiceGUI, assTextQuestionGUI, and assTextSubsetGUI.

Definition at line 593 of file class.assQuestionGUI.php.

References $_GET, $_POST, $_SESSION, $exp, $tree, and sendInfo().

        {
                global $tree;

                include_once("./assessment/classes/class.ilSolutionExplorer.php");
                switch ($_POST["internalLinkType"])
                {
                        case "lm":
                                $_SESSION["link_new_type"] = "lm";
                                $_SESSION["search_link_type"] = "lm";
                                break;
                        case "glo":
                                $_SESSION["link_new_type"] = "glo";
                                $_SESSION["search_link_type"] = "glo";
                                break;
                        case "st":
                                $_SESSION["link_new_type"] = "lm";
                                $_SESSION["search_link_type"] = "st";
                                break;
                        case "pg":
                                $_SESSION["link_new_type"] = "lm";
                                $_SESSION["search_link_type"] = "pg";
                                break;
                        default:
                                if (!$_SESSION["link_new_type"])
                                {
                                        $_SESSION["link_new_type"] = "lm";
                                }
                                break;
                }

                sendInfo($this->lng->txt("select_object_to_link"));
                
                $exp = new ilSolutionExplorer($this->ctrl->getLinkTarget($this,'addSuggestedSolution'), get_class($this));

                $exp->setExpand($_GET["expand"] ? $_GET["expand"] : $tree->readRootId());
                $exp->setExpandTarget($this->ctrl->getLinkTarget($this,'addSuggestedSolution'));
                $exp->setTargetGet("ref_id");
                $exp->setRefId($this->cur_ref_id);
                $exp->addFilter($_SESSION["link_new_type"]);
                $exp->setSelectableType($_SESSION["link_new_type"]);

                // build html-output
                $exp->setOutput(0);

                $this->tpl->addBlockFile("EXPLORER", "explorer", "tpl.il_as_qpl_explorer.html", true);
                $this->tpl->setVariable("EXPLORER_TREE",$exp->getOutput());
                $this->tpl->setVariable("BUTTON_CANCEL",$this->lng->txt("cancel"));
                $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

assQuestionGUI::apply (  ) 

apply changes

Definition at line 571 of file class.assQuestionGUI.php.

References $_GET, and writePostData().

        {
                $this->writePostData();
                $this->object->saveToDb();
                $_GET["q_id"] = $this->object->getId();
                $this->editQuestion();
        }

Here is the call graph for this function:

assQuestionGUI::assessment (  ) 

output assessment

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

References $_GET, $counter, $ref_id, and sendInfo().

        {
                $this->tpl->addBlockFile("CONTENT", "content", "tpl.il_as_qpl_content.html", true);
                $this->tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");

                // catch feedback message
                sendInfo();

                $total_of_answers = $this->object->getTotalAnswers();
                $counter = 0;
                $color_class = array("tblrow1", "tblrow2");
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_as_qpl_assessment_of_questions.html", true);

                if (!$total_of_answers)
                {
                        $this->tpl->setCurrentBlock("emptyrow");
                        $this->tpl->setVariable("TXT_NO_ASSESSMENT", $this->lng->txt("qpl_assessment_no_assessment_of_questions"));
                        $this->tpl->setVariable("COLOR_CLASS", $color_class[$counter % 2]);
                        $this->tpl->parseCurrentBlock();
                }
                else
                {
                        $this->tpl->setCurrentBlock("row");
                        $this->tpl->setVariable("TXT_RESULT", $this->lng->txt("qpl_assessment_total_of_answers"));
                        $this->tpl->setVariable("TXT_VALUE", $total_of_answers);
                        $this->tpl->setVariable("COLOR_CLASS", $color_class[$counter % 2]);
                        $counter++;
                        $this->tpl->parseCurrentBlock();
                        $this->tpl->setCurrentBlock("row");
                        $this->tpl->setVariable("TXT_RESULT", $this->lng->txt("qpl_assessment_total_of_right_answers"));
                        $this->tpl->setVariable("TXT_VALUE", sprintf("%2.2f", $this->object->_getTotalRightAnswers($_GET["q_id"]) * 100.0) . " %");
                        $this->tpl->setVariable("COLOR_CLASS", $color_class[$counter % 2]);
                        $this->tpl->parseCurrentBlock();
                }

                $instances =& $this->object->getInstances();
                $counter = 0;
                foreach ($instances as $instance)
                {
                        if (is_array($instance["refs"]))
                        {
                                foreach ($instance["refs"] as $ref_id)
                                {
                                        $this->tpl->setCurrentBlock("references");
                                        $this->tpl->setVariable("GOTO", "./goto.php?target=tst_" . $ref_id);
                                        $this->tpl->setVariable("TEXT_GOTO", $this->lng->txt("perma_link"));
                                        $this->tpl->parseCurrentBlock();
                                }
                        }
                        $this->tpl->setCurrentBlock("instance_row");
                        $this->tpl->setVariable("TEST_TITLE", $instance["title"]);
                        $this->tpl->setVariable("TEST_AUTHOR", $instance["author"]);
                        $this->tpl->setVariable("QUESTION_ID", $instance["question_id"]);
                        $this->tpl->setVariable("COLOR_CLASS", $color_class[$counter % 2]);
                        $counter++;
                        $this->tpl->parseCurrentBlock();
                }
                $this->tpl->setCurrentBlock("instances");
                $this->tpl->setVariable("TEXT_TEST_TITLE", $this->lng->txt("title"));
                $this->tpl->setVariable("TEXT_TEST_AUTHOR", $this->lng->txt("author"));
                $this->tpl->setVariable("TEXT_TEST_LOCATION", $this->lng->txt("location"));
                $this->tpl->setVariable("INSTANCES_TITLE", $this->lng->txt("question_instances_title"));
                $this->tpl->parseCurrentBlock();

                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("TXT_QUESTION_TITLE", $this->lng->txt("question_cumulated_statistics"));
                $this->tpl->setVariable("TXT_RESULT", $this->lng->txt("result"));
                $this->tpl->setVariable("TXT_VALUE", $this->lng->txt("value"));
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

assQuestionGUI::assQuestionGUI (  ) 

assQuestionGUI constructor

assQuestionGUI constructor

public

Definition at line 69 of file class.assQuestionGUI.php.

References $ilCtrl, $lng, and $tpl.

Referenced by assClozeTestGUI::assClozeTestGUI(), assImagemapQuestionGUI::assImagemapQuestionGUI(), assJavaAppletGUI::assJavaAppletGUI(), assMatchingQuestionGUI::assMatchingQuestionGUI(), assMultipleChoiceGUI::assMultipleChoiceGUI(), assNumericGUI::assNumericGUI(), assOrderingQuestionGUI::assOrderingQuestionGUI(), assQuestionTypeTemplateGUI::assQuestionTypeTemplateGUI(), assSingleChoiceGUI::assSingleChoiceGUI(), assTextQuestionGUI::assTextQuestionGUI(), assTextSubsetGUI::assTextSubsetGUI(), and ilExerciseGUI::previewQuestion().

        {
                global $lng, $tpl, $ilCtrl;


                $this->lng =& $lng;
                $this->tpl =& $tpl;
                $this->ctrl =& $ilCtrl;
                $this->ctrl->saveParameter($this, "q_id");

                include_once "./assessment/classes/class.assQuestion.php";
                $this->errormessage = $this->lng->txt("fill_out_all_required_fields");
                $this->object = new assQuestion();
        }

Here is the caller graph for this function:

assQuestionGUI::cancel (  ) 

cancel action

Definition at line 393 of file class.assQuestionGUI.php.

References $_GET, and ilUtil::redirect().

        {
                if ($_GET["calling_test"])
                {
                        $_GET["ref_id"] = $_GET["calling_test"];
                        ilUtil::redirect("ilias.php?baseClass=ilObjTestGUI&cmd=questions&ref_id=".$_GET["calling_test"]);
                }
                elseif ($_GET["test_ref_id"])
                {
                        $_GET["ref_id"] = $_GET["test_ref_id"];
                        ilUtil::redirect("ilias.php?baseClass=ilObjTestGUI&cmd=questions&ref_id=".$_GET["test_ref_id"]);
                }
                else
                {
                        if ($_GET["q_id"] > 0)
                        {
                                $this->ctrl->setParameterByClass("ilpageobjectgui", "q_id", $_GET["q_id"]);
                                $this->ctrl->redirectByClass("ilpageobjectgui", "view");
                        }
                        else
                        {
                                $this->ctrl->redirectByClass("ilobjquestionpoolgui", "questions");
                        }
                }
        }

Here is the call graph for this function:

assQuestionGUI::cancelExplorer (  ) 

Definition at line 579 of file class.assQuestionGUI.php.

References $_SESSION.

        {
                unset($_SESSION["subquestion_index"]);
                unset($_SESSION["link_new_type"]);
                $this->editQuestion();
        }

assQuestionGUI::cancelSync (  ) 

Definition at line 441 of file class.assQuestionGUI.php.

References $_GET, and ilUtil::redirect().

        {
                $_GET["ref_id"] = $_GET["calling_test"];
                ilUtil::redirect("ilias.php?baseClass=ilObjTestGUI&cmd=questions&ref_id=".$_GET["calling_test"]);
        }

Here is the call graph for this function:

& assQuestionGUI::createQuestionGUI ( question_type,
question_id = -1 
)

Creates a question gui representation.

Creates a question gui representation and returns the alias to the question gui

Parameters:
string $question_type The question type as it is used in the language database
integer $question_id The database ID of an existing question to load it into assQuestionGUI
Returns:
object The alias to the question object public

Definition at line 305 of file class.assQuestionGUI.php.

References _getQuestionGUI().

        {
                include_once "./assessment/classes/class.assQuestionGUI.php";
                $this->question =& assQuestionGUI::_getQuestionGUI($question_type, $question_id);
        }

Here is the call graph for this function:

& assQuestionGUI::executeCommand (  ) 

execute command

Definition at line 87 of file class.assQuestionGUI.php.

References $cmd, and getCommand().

        {
                $cmd = $this->ctrl->getCmd("editQuestion");
                $next_class = $this->ctrl->getNextClass($this);

                $cmd = $this->getCommand($cmd);

                switch($next_class)
                {
                        default:
                                $ret =& $this->$cmd();
                                break;
                }
                return $ret;
        }

Here is the call graph for this function:

assQuestionGUI::getCommand ( cmd  ) 
assQuestionGUI::getErrorMessage (  ) 
assQuestionGUI::getILIASPage (  ) 

Returns the ILIAS Page around a question.

Returns the ILIAS Page around a question

Returns:
string The ILIAS page content public

Definition at line 329 of file class.assQuestionGUI.php.

References $_GET.

Referenced by assTextSubsetGUI::getSolutionOutput(), assTextQuestionGUI::getSolutionOutput(), assSingleChoiceGUI::getSolutionOutput(), assOrderingQuestionGUI::getSolutionOutput(), assNumericGUI::getSolutionOutput(), assMultipleChoiceGUI::getSolutionOutput(), assMatchingQuestionGUI::getSolutionOutput(), assJavaAppletGUI::getSolutionOutput(), assImagemapQuestionGUI::getSolutionOutput(), and assClozeTestGUI::getSolutionOutput().

        {
                include_once("content/classes/Pages/class.ilPageObject.php");
                include_once("content/classes/Pages/class.ilPageObjectGUI.php");
                $page =& new ilPageObject("qpl", $this->object->getId());
                $page_gui =& new ilPageObjectGUI($page);
                $page_gui->setTemplateTargetVar($a_temp_var);
                $page_gui->setFileDownloadLink("ilias.php?baseClass=ilObjTestGUI&cmd=downloadFile".
                        "&amp;ref_id=".$_GET["ref_id"]);
                $page_gui->setFullscreenLink("ilias.php?baseClass=ilObjTestGUI&cmd=fullscreen".
                        "&amp;ref_id=".$_GET["ref_id"]);
                $page_gui->setSourcecodeDownloadScript("ilias.php?baseClass=ilObjTestGUI&ref_id=".$_GET["ref_id"]);
                $page_gui->setOutputMode("presentation");
                $page_gui->setPresentationTitle("");
                return $page_gui->presentation();
        }

Here is the caller graph for this function:

assQuestionGUI::getQuestionCount (  ) 

Definition at line 820 of file class.assQuestionGUI.php.

Referenced by outQuestionPage().

        {
                return $this->question_count;
        }

Here is the caller graph for this function:

assQuestionGUI::getQuestionTemplate (  ) 
assQuestionGUI::getQuestionType (  ) 

Returns the question type string.

Returns the question type string

Returns:
string The question type string public

Reimplemented in assClozeTestGUI, assImagemapQuestionGUI, assJavaAppletGUI, assMatchingQuestionGUI, assMultipleChoiceGUI, assNumericGUI, assOrderingQuestionGUI, assQuestionTypeTemplateGUI, assSingleChoiceGUI, assTextQuestionGUI, and assTextSubsetGUI.

Definition at line 117 of file class.assQuestionGUI.php.

Referenced by getType().

        {
                return "";
        }

Here is the caller graph for this function:

assQuestionGUI::getSequenceNumber (  ) 

Definition at line 810 of file class.assQuestionGUI.php.

Referenced by outQuestionPage().

        {
                return $this->sequence_no;
        }

Here is the caller graph for this function:

assQuestionGUI::getType (  ) 

needed for page editor compliance

Definition at line 125 of file class.assQuestionGUI.php.

References getQuestionType().

        {
                return $this->getQuestionType();
        }

Here is the call graph for this function:

assQuestionGUI::linkChilds (  ) 

Definition at line 697 of file class.assQuestionGUI.php.

References $_GET, $_SESSION, $counter, ilLMPageObject::getPageList(), getQuestionTemplate(), and sendInfo().

        {
                switch ($_SESSION["search_link_type"])
                {
                        case "pg":
                                include_once "./content/classes/class.ilLMPageObject.php";
                                include_once("./content/classes/class.ilObjContentObject.php");
                                $cont_obj =& new ilObjContentObject($_GET["source_id"], true);
                                $pages = ilLMPageObject::getPageList($cont_obj->getId());
                                $_GET["q_id"] = $this->object->getId();
                                $this->tpl->setVariable("HEADER", $this->object->getTitle());
                                $this->getQuestionTemplate();
                                $color_class = array("tblrow1", "tblrow2");
                                $counter = 0;
                                $this->tpl->addBlockFile("LINK_SELECTION", "link_selection", "tpl.il_as_qpl_internallink_selection.html", true);
                                foreach($pages as $page)
                                {
                                        if($page["type"] == $_SESSION["search_link_type"])
                                        {
                                                $this->tpl->setCurrentBlock("linktable_row");
                                                $this->tpl->setVariable("TEXT_LINK", $page["title"]);
                                                $this->tpl->setVariable("TEXT_ADD", $this->lng->txt("add"));
                                                $this->tpl->setVariable("LINK_HREF", $this->ctrl->getLinkTargetByClass(get_class($this), "add" . strtoupper($page["type"])) . "&" . $page["type"] . "=" . $page["obj_id"]);
                                                $this->tpl->setVariable("COLOR_CLASS", $color_class[$counter % 2]);
                                                $this->tpl->parseCurrentBlock();
                                                $counter++;
                                        }
                                }
                                $this->tpl->setCurrentBlock("link_selection");
                                $this->tpl->setVariable("BUTTON_CANCEL",$this->lng->txt("cancel"));
                                $this->tpl->setVariable("TEXT_LINK_TYPE", $this->lng->txt("obj_" . $_SESSION["search_link_type"]));
                                $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
                                $this->tpl->parseCurrentBlock();
                                break;
                        case "st":
                                $_GET["q_id"] = $this->object->getId();
                                $this->tpl->setVariable("HEADER", $this->object->getTitle());
                                $this->getQuestionTemplate();
                                $color_class = array("tblrow1", "tblrow2");
                                $counter = 0;
                                include_once("./content/classes/class.ilObjContentObject.php");
                                $cont_obj =& new ilObjContentObject($_GET["source_id"], true);
                                // get all chapters
                                $ctree =& $cont_obj->getLMTree();
                                $nodes = $ctree->getSubtree($ctree->getNodeData($ctree->getRootId()));
                                $this->tpl->addBlockFile("LINK_SELECTION", "link_selection", "tpl.il_as_qpl_internallink_selection.html", true);
                                foreach($nodes as $node)
                                {
                                        if($node["type"] == $_SESSION["search_link_type"])
                                        {
                                                $this->tpl->setCurrentBlock("linktable_row");
                                                $this->tpl->setVariable("TEXT_LINK", $node["title"]);
                                                $this->tpl->setVariable("TEXT_ADD", $this->lng->txt("add"));
                                                $this->tpl->setVariable("LINK_HREF", $this->ctrl->getLinkTargetByClass(get_class($this), "add" . strtoupper($node["type"])) . "&" . $node["type"] . "=" . $node["obj_id"]);
                                                $this->tpl->setVariable("COLOR_CLASS", $color_class[$counter % 2]);
                                                $this->tpl->parseCurrentBlock();
                                                $counter++;
                                        }
                                }
                                $this->tpl->setCurrentBlock("link_selection");
                                $this->tpl->setVariable("BUTTON_CANCEL",$this->lng->txt("cancel"));
                                $this->tpl->setVariable("TEXT_LINK_TYPE", $this->lng->txt("obj_" . $_SESSION["search_link_type"]));
                                $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
                                $this->tpl->parseCurrentBlock();
                                break;
                        case "glo":
                                $_GET["q_id"] = $this->object->getId();
                                $this->tpl->setVariable("HEADER", $this->object->getTitle());
                                $this->getQuestionTemplate();
                                $color_class = array("tblrow1", "tblrow2");
                                $counter = 0;
                                $this->tpl->addBlockFile("LINK_SELECTION", "link_selection", "tpl.il_as_qpl_internallink_selection.html", true);
                                include_once "./content/classes/class.ilObjGlossary.php";
                                $glossary =& new ilObjGlossary($_GET["source_id"], true);
                                // get all glossary items
                                $terms = $glossary->getTermList();
                                foreach($terms as $term)
                                {
                                        $this->tpl->setCurrentBlock("linktable_row");
                                        $this->tpl->setVariable("TEXT_LINK", $term["term"]);
                                        $this->tpl->setVariable("TEXT_ADD", $this->lng->txt("add"));
                                        $this->tpl->setVariable("LINK_HREF", $this->ctrl->getLinkTargetByClass(get_class($this), "addGIT") . "&git=" . $term["id"]);
                                        $this->tpl->setVariable("COLOR_CLASS", $color_class[$counter % 2]);
                                        $this->tpl->parseCurrentBlock();
                                        $counter++;
                                }
                                $this->tpl->setCurrentBlock("link_selection");
                                $this->tpl->setVariable("BUTTON_CANCEL",$this->lng->txt("cancel"));
                                $this->tpl->setVariable("TEXT_LINK_TYPE", $this->lng->txt("glossary_term"));
                                $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
                                $this->tpl->parseCurrentBlock();
                                break;
                        case "lm":
                                $subquestion_index = 0;
                                if ($_SESSION["subquestion_index"] >= 0)
                                {
                                        $subquestion_index = $_SESSION["subquestion_index"];
                                }
                                $this->object->setSuggestedSolution("il__lm_" . $_GET["source_id"], $subquestion_index);
                                unset($_SESSION["subquestion_index"]);
                                unset($_SESSION["link_new_type"]);
                                unset($_SESSION["search_link_type"]);
                                sendInfo($this->lng->txt("suggested_solution_added_successfully"));
                                $this->editQuestion();
                                break;
                }
        }

Here is the call graph for this function:

assQuestionGUI::originalSyncForm (  ) 

Definition at line 419 of file class.assQuestionGUI.php.

Referenced by save(), and saveEdit().

        {
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_tst_sync_original.html", true);
                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("BUTTON_YES", $this->lng->txt("yes"));
                $this->tpl->setVariable("BUTTON_NO", $this->lng->txt("no"));
                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
                $this->tpl->setVariable("TEXT_SYNC", $this->lng->txt("confirm_sync_questions"));
                $this->tpl->parseCurrentBlock();
        }

Here is the caller graph for this function:

assQuestionGUI::outAdditionalOutput (  ) 

Reimplemented in assTextQuestionGUI.

Definition at line 835 of file class.assQuestionGUI.php.

        {
        }

assQuestionGUI::outOtherQuestionData (  ) 

Sets the extra fields i.e.

estimated working time of a question from a posted create/edit form

Sets the extra fields i.e. estimated working time of a question from a posted create/edit form

private

Definition at line 137 of file class.assQuestionGUI.php.

References ilUtil::makeTimeSelect().

Referenced by assTextSubsetGUI::editQuestion(), assTextQuestionGUI::editQuestion(), assSingleChoiceGUI::editQuestion(), assOrderingQuestionGUI::editQuestion(), assNumericGUI::editQuestion(), assMultipleChoiceGUI::editQuestion(), assMatchingQuestionGUI::editQuestion(), assJavaAppletGUI::editQuestion(), assImagemapQuestionGUI::editQuestion(), and assClozeTestGUI::editQuestion().

        {
                $est_working_time = $this->object->getEstimatedWorkingTime();
                $this->tpl->setVariable("TEXT_WORKING_TIME", $this->lng->txt("working_time"));
                $this->tpl->setVariable("TIME_FORMAT", $this->lng->txt("time_format"));
                $this->tpl->setVariable("VALUE_WORKING_TIME", ilUtil::makeTimeSelect("Estimated", false, $est_working_time[h], $est_working_time[m], $est_working_time[s]));
        }

Here is the call graph for this function:

Here is the caller graph for this function:

assQuestionGUI::outQuestionPage ( a_temp_var,
a_postponed = false,
active_id = "" 
)

output question page

Definition at line 349 of file class.assQuestionGUI.php.

References $_GET, ilObjTest::_getHideTitlePoints(), getQuestionCount(), and getSequenceNumber().

Referenced by assTextSubsetGUI::getTestOutput(), assTextQuestionGUI::getTestOutput(), assSingleChoiceGUI::getTestOutput(), assOrderingQuestionGUI::getTestOutput(), assNumericGUI::getTestOutput(), assMultipleChoiceGUI::getTestOutput(), assMatchingQuestionGUI::getTestOutput(), assJavaAppletGUI::getTestOutput(), assImagemapQuestionGUI::getTestOutput(), and assClozeTestGUI::getTestOutput().

        {
                $postponed = "";
                if ($a_postponed)
                {
                        $postponed = " (" . $this->lng->txt("postponed") . ")";
                }

                include_once("content/classes/Pages/class.ilPageObject.php");
                include_once("content/classes/Pages/class.ilPageObjectGUI.php");
                $this->lng->loadLanguageModule("content");
                $page =& new ilPageObject("qpl", $this->object->getId());
                $page_gui =& new ilPageObjectGUI($page);
                $page_gui->setTemplateTargetVar($a_temp_var);
                $page_gui->setFileDownloadLink("ilias.php?baseClass=ilObjTestGUI&cmd=downloadFile".
                        "&amp;ref_id=".$_GET["ref_id"]);
                $page_gui->setFullscreenLink("ilias.php?baseClass=ilObjTestGUI&cmd=fullscreen".
                        "&amp;ref_id=".$_GET["ref_id"]);
                $page_gui->setSourcecodeDownloadScript("ilias.php?baseClass=ilObjTestGUI&ref_id=".$_GET["ref_id"]);
                $page_gui->setOutputMode("presentation");
                include_once "./assessment/classes/class.ilObjTest.php";

                $maxpoints = "";
                if (!ilObjTest::_getHideTitlePoints($active_id))
                {
                        $maxpoints = $this->object->getMaximumPoints();
                        if ($maxpoints == 1)
                        {
                                $maxpoints = " (".$maxpoints." ".$this->lng->txt("point").")";
                        }
                        else
                        {
                                $maxpoints = " (".$maxpoints." ".$this->lng->txt("points").")";
                        }
                }
                $page_gui->setPresentationTitle(sprintf($this->lng->txt("tst_position"), $this->getSequenceNumber(), $this->getQuestionCount())." - ".$this->object->getTitle().$postponed.$maxpoints);
                $presentation = $page_gui->presentation();
                if (strlen($maxpoints)) $presentation = str_replace($maxpoints, "<em>$maxpoints</em>", $presentation);
                return $presentation;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

assQuestionGUI::removeSuggestedSolution (  ) 

Reimplemented in assClozeTestGUI.

Definition at line 645 of file class.assQuestionGUI.php.

        {
                $this->object->suggested_solutions = array();
                $this->object->saveToDb();
                $this->editQuestion();
        }

assQuestionGUI::save (  ) 

save question

Reimplemented in assTextSubsetGUI.

Definition at line 506 of file class.assQuestionGUI.php.

References $_GET, $_SESSION, $result, assQuestion::_isWriteable(), getErrorMessage(), originalSyncForm(), ilUtil::redirect(), sendInfo(), and writePostData().

Referenced by assImagemapQuestionGUI::saveShape().

        {
                global $ilUser;
                
                $old_id = $_GET["q_id"];
                $result = $this->writePostData();
                if ($result == 0)
                {
                        $ilUser->setPref("tst_lastquestiontype", $this->object->getQuestionType());
                        $ilUser->writePref("tst_lastquestiontype", $this->object->getQuestionType());
                        $this->object->saveToDb();
                        $originalexists = $this->object->_questionExists($this->object->original_id);
                        include_once "./assessment/classes/class.assQuestion.php";
                        if ($_GET["calling_test"] && $originalexists && assQuestion::_isWriteable($this->object->original_id, $ilUser->getId()))
                        {
                                $this->originalSyncForm();
                        }
                        elseif ($_GET["calling_test"])
                        {
                                $_GET["ref_id"] = $_GET["calling_test"];
                                ilUtil::redirect("ilias.php?baseClass=ilObjTestGUI&cmd=questions&ref_id=".$_GET["calling_test"]);
                                return;
                        }
                        elseif ($_GET["test_ref_id"])
                        {
                                include_once ("./assessment/classes/class.ilObjTest.php");
                                $_GET["ref_id"] = $_GET["test_ref_id"];
                                $test =& new ilObjTest($_GET["test_ref_id"], true);
                                $test->insertQuestion($this->object->getId());
                                ilUtil::redirect("ilias.php?baseClass=ilObjTestGUI&cmd=questions&ref_id=".$_GET["test_ref_id"]);
                        }
                        else
                        {
                                $_GET["q_id"] = $this->object->getId();
                                if ($_GET["q_id"] !=  $old_id)
                                {
                                        // first save
                                        $this->ctrl->setParameterByClass($_GET["cmdClass"], "q_id", $this->object->getId());
                                        $this->ctrl->setParameterByClass($_GET["cmdClass"], "sel_question_types", $_GET["sel_question_types"]);
                                        sendInfo($this->lng->txt("msg_obj_modified"), true);
                                        $this->ctrl->redirectByClass($_GET["cmdClass"], "editQuestion");
                                }
                                if (strcmp($_SESSION["info"], "") != 0)
                                {
                                        sendInfo($_SESSION["info"] . "<br />" . $this->lng->txt("msg_obj_modified"), false);
                                }
                                else
                                {
                                        sendInfo($this->lng->txt("msg_obj_modified"), false);
                                }
                                $this->editQuestion();
        //                      $this->ctrl->setParameterByClass("ilpageobjectgui", "q_id", $this->object->getId());
        //                      $this->ctrl->redirectByClass("ilpageobjectgui", "view");
                        }
                }
                else
                {
      sendInfo($this->getErrorMessage());
                        $this->editQuestion();
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

assQuestionGUI::saveEdit (  ) 

save question

Reimplemented in assTextSubsetGUI.

Definition at line 450 of file class.assQuestionGUI.php.

References $_GET, $_SESSION, $result, assQuestion::_isWriteable(), originalSyncForm(), ilUtil::redirect(), sendInfo(), and writePostData().

        {
                global $ilUser;

                $result = $this->writePostData();
                if ($result == 0)
                {
                        $ilUser->setPref("tst_lastquestiontype", $this->object->getQuestionType());
                        $ilUser->writePref("tst_lastquestiontype", $this->object->getQuestionType());
                        $this->object->saveToDb();
                        $originalexists = $this->object->_questionExists($this->object->original_id);
                        include_once "./assessment/classes/class.assQuestion.php";
                        if ($_GET["calling_test"] && $originalexists && assQuestion::_isWriteable($this->object->original_id, $ilUser->getId()))
                        {
                                $this->originalSyncForm();
                        }
                        elseif ($_GET["calling_test"])
                        {
                                $_GET["ref_id"] = $_GET["calling_test"];
                                ilUtil::redirect("ilias.php?baseClass=ilObjTestGUI&cmd=questions&ref_id=".$_GET["calling_test"]);
                                return;
                        }
                        elseif ($_GET["test_ref_id"])
                        {
                                include_once ("./assessment/classes/class.ilObjTest.php");
                                $_GET["ref_id"] = $_GET["test_ref_id"];
                                $test =& new ilObjTest($_GET["test_ref_id"], true);
                                $test->insertQuestion($this->object->getId());
                                ilUtil::redirect("ilias.php?baseClass=ilObjTestGUI&cmd=questions&ref_id=".$_GET["test_ref_id"]);
                        }
                        else
                        {
                                $_GET["q_id"] = $this->object->getId();
                                $this->editQuestion();
                                if (strcmp($_SESSION["info"], "") != 0)
                                {
                                        sendInfo($_SESSION["info"] . "<br />" . $this->lng->txt("msg_obj_modified"), false);
                                }
                                else
                                {
                                        sendInfo($this->lng->txt("msg_obj_modified"), false);
                                }
                                $this->ctrl->setParameterByClass("ilpageobjectgui", "q_id", $this->object->getId());
                                $this->ctrl->redirectByClass("ilpageobjectgui", "view");
                        }
                }
                else
                {
      sendInfo($this->lng->txt("fill_out_all_required_fields"));
                        $this->editQuestion();
                }
        }

Here is the call graph for this function:

assQuestionGUI::setErrorMessage ( errormessage  ) 
assQuestionGUI::setQuestionCount ( a_question_count  ) 

Definition at line 815 of file class.assQuestionGUI.php.

        {
                $this->question_count = $a_question_count;
        }

assQuestionGUI::setSequenceNumber ( nr  ) 

Definition at line 805 of file class.assQuestionGUI.php.

        {
                $this->sequence_no = $nr;
        }

assQuestionGUI::sync (  ) 

Definition at line 430 of file class.assQuestionGUI.php.

References $_GET, and ilUtil::redirect().

        {
                $original_id = $this->object->original_id;
                if ($original_id)
                {
                        $this->object->syncWithOriginal();
                }
                $_GET["ref_id"] = $_GET["calling_test"];
                ilUtil::redirect("ilias.php?baseClass=ilObjTestGUI&cmd=questions&ref_id=".$_GET["calling_test"]);
        }

Here is the call graph for this function:

assQuestionGUI::writeOtherPostData ( result = 0  ) 

Sets the other data i.e.

estimated working time of a question from a posted create/edit form

Sets the other data i.e. estimated working time of a question from a posted create/edit form

Returns:
boolean Returns true, if the question had to be autosaved private

Definition at line 239 of file class.assQuestionGUI.php.

References $_POST, and ilUtil::stripSlashes().

Referenced by assTextSubsetGUI::writePostData(), assTextQuestionGUI::writePostData(), assSingleChoiceGUI::writePostData(), assOrderingQuestionGUI::writePostData(), assNumericGUI::writePostData(), assMultipleChoiceGUI::writePostData(), assMatchingQuestionGUI::writePostData(), assJavaAppletGUI::writePostData(), assImagemapQuestionGUI::writePostData(), and assClozeTestGUI::writePostData().

        {
                $this->object->setEstimatedWorkingTime(
                        ilUtil::stripSlashes($_POST["Estimated"][h]),
                        ilUtil::stripSlashes($_POST["Estimated"][m]),
                        ilUtil::stripSlashes($_POST["Estimated"][s])
                );

                $saved = false;
                return $saved;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

assQuestionGUI::writePostData (  ) 

Evaluates a posted edit form and writes the form data in the question object.

Evaluates a posted edit form and writes the form data in the question object

Returns:
integer A positive value, if one of the required fields wasn't set, else 0 private

Reimplemented in assClozeTestGUI, assImagemapQuestionGUI, assJavaAppletGUI, assMatchingQuestionGUI, assMultipleChoiceGUI, assNumericGUI, assOrderingQuestionGUI, assSingleChoiceGUI, assTextQuestionGUI, and assTextSubsetGUI.

Definition at line 153 of file class.assQuestionGUI.php.

Referenced by assQuestionTypeTemplateGUI::addSuggestedSolution(), apply(), save(), and saveEdit().

        {
        }

Here is the caller graph for this function:


Field Documentation

assQuestionGUI::$error

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

assQuestionGUI::$errormessage

Definition at line 51 of file class.assQuestionGUI.php.

Referenced by setErrorMessage().

assQuestionGUI::$lng

Definition at line 49 of file class.assQuestionGUI.php.

Referenced by assQuestionGUI().

assQuestionGUI::$object

Definition at line 46 of file class.assQuestionGUI.php.

assQuestionGUI::$question_count

question count in test

Definition at line 60 of file class.assQuestionGUI.php.

assQuestionGUI::$sequence_no

sequence number in test

Definition at line 56 of file class.assQuestionGUI.php.

assQuestionGUI::$tpl

Definition at line 48 of file class.assQuestionGUI.php.

Referenced by assQuestionGUI().


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