Basic GUI class for assessment questions. More...
Inheritance diagram for ASS_QuestionGUI:Public Member Functions | |
| ASS_QuestionGUI () | |
| ASS_QuestionGUI 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. | |
| outWorkingForm ($test_id="", $is_postponed=false) | |
| Creates the question output form for the learner. | |
| 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 ($q_type) | |
| get question template | |
| outQuestionPage ($a_temp_var, $a_postponed=false, $test_id="") | |
| output question page | |
| cancel () | |
| cancel action | |
| originalSyncForm () | |
| sync () | |
| cancelSync () | |
| saveEdit () | |
| save question | |
| save () | |
| save question | |
| apply () | |
| apply changes | |
| cancelExplorer () | |
| addSuggestedSolution () | |
| removeSuggestedSolution () | |
| addPG () | |
| addST () | |
| addGIT () | |
| linkChilds () | |
| replaceInputElements ($gap_idx, $solution, $output, $before="", $after="") | |
| replaceSelectElements ($gap_idx, $repl_str, $output) | |
| removeFormElements ($output) | |
| setSequenceNumber ($nr) | |
| getSequenceNumber () | |
Data Fields | |
| $object | |
| $tpl | |
| $lng | |
| $error | |
| $sequence_no | |
| sequence number in test | |
Basic GUI class for assessment questions.
The ASS_QuestionGUI class encapsulates basic GUI functions for assessment questions.
class.assQuestionGUI.php Assessment
Definition at line 37 of file class.assQuestionGUI.php.
| ASS_QuestionGUI::_getClassNameForQType | ( | $ | q_type | ) |
Definition at line 297 of file class.assQuestionGUI.php.
Referenced by _getGUIClassNameForId().
{
switch ($q_type)
{
case "qt_multiple_choice_sr":
return "ASS_MultipleChoiceGUI";
break;
case "qt_multiple_choice_mr":
return "ASS_MultipleChoiceGUI";
break;
case "qt_cloze":
return "ASS_ClozeTestGUI";
break;
case "qt_matching":
return "ASS_MatchingQuestionGUI";
break;
case "qt_ordering":
return "ASS_OrderingQuestionGUI";
break;
case "qt_imagemap":
return "ASS_ImagemapQuestionGUI";
break;
case "qt_javaapplet":
return "ASS_JavaAppletGUI";
break;
case "qt_text":
return "ASS_TextQuestionGUI";
break;
}
}
Here is the caller graph for this function:| ASS_QuestionGUI::_getGUIClassNameForId | ( | $ | a_q_id | ) |
Definition at line 290 of file class.assQuestionGUI.php.
References $class_name, _getClassNameForQType(), and ASS_Question::getQuestionTypeFromDb().
Referenced by ilObjQuestionPoolGUI::questionsObject().
{
$q_type = ASS_Question::getQuestionTypeFromDb($a_q_id);
$class_name = ASS_QuestionGUI::_getClassNameForQType($q_type);
return $class_name;
}
Here is the call graph for this function:
Here is the caller graph for this function:| & ASS_QuestionGUI::_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
| 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 ASS_QuestionGUI |
Definition at line 240 of file class.assQuestionGUI.php.
References ASS_Question::getQuestionTypeFromDb().
Referenced by ilObjQuestionPoolGUI::createQuestionForTestObject(), createQuestionGUI(), ilObjQuestionPoolGUI::createQuestionObject(), ilPCQuestionGUI::edit(), ilObjQuestionPoolGUI::editQuestionForTestObject(), and ilObjQuestionPoolGUI::executeCommand().
{
if ((!$question_type) and ($question_id > 0))
{
$question_type = ASS_Question::getQuestionTypeFromDb($question_id);
// echo ":".$question_type;
}
switch ($question_type)
{
case "qt_multiple_choice_sr":
$question =& new ASS_MultipleChoiceGUI();
$question->object->set_response(RESPONSE_SINGLE);
break;
case "qt_multiple_choice_mr":
$question =& new ASS_MultipleChoiceGUI();
$question->object->set_response(RESPONSE_MULTIPLE);
break;
case "qt_cloze":
$question =& new ASS_ClozeTestGUI();
break;
case "qt_matching":
$question =& new ASS_MatchingQuestionGUI();
break;
case "qt_ordering":
$question =& new ASS_OrderingQuestionGUI();
break;
case "qt_imagemap":
$question =& new ASS_ImagemapQuestionGUI();
break;
case "qt_javaapplet":
$question =& new ASS_JavaAppletGUI();
break;
case "qt_text":
$question =& new ASS_TextQuestionGUI();
break;
}
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:| ASS_QuestionGUI::addGIT | ( | ) |
Definition at line 678 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:| ASS_QuestionGUI::addPG | ( | ) |
Definition at line 648 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:| ASS_QuestionGUI::addST | ( | ) |
Definition at line 663 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:| ASS_QuestionGUI::addSuggestedSolution | ( | ) |
Reimplemented in ASS_ClozeTestGUI, ASS_ImagemapQuestionGUI, ASS_JavaAppletGUI, ASS_MatchingQuestionGUI, ASS_MultipleChoiceGUI, ASS_OrderingQuestionGUI, and ASS_TextQuestionGUI.
Definition at line 589 of file class.assQuestionGUI.php.
References $_GET, $_POST, $_SESSION, $exp, $tree, and sendInfo().
{
global $tree;
require_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:| ASS_QuestionGUI::apply | ( | ) |
apply changes
Definition at line 574 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:| ASS_QuestionGUI::ASS_QuestionGUI | ( | ) |
ASS_QuestionGUI constructor.
ASS_QuestionGUI constructor
public
Definition at line 64 of file class.assQuestionGUI.php.
References $ilCtrl, $lng, and $tpl.
Referenced by ASS_ClozeTestGUI::ASS_ClozeTestGUI(), ASS_ImagemapQuestionGUI::ASS_ImagemapQuestionGUI(), ASS_JavaAppletGUI::ASS_JavaAppletGUI(), ASS_MatchingQuestionGUI::ASS_MatchingQuestionGUI(), ASS_MultipleChoiceGUI::ASS_MultipleChoiceGUI(), ASS_OrderingQuestionGUI::ASS_OrderingQuestionGUI(), ASS_TextQuestionGUI::ASS_TextQuestionGUI(), and ilExerciseGUI::previewQuestion().
{
global $lng, $tpl, $ilCtrl;
$this->lng =& $lng;
$this->tpl =& $tpl;
$this->ctrl =& $ilCtrl;
$this->ctrl->saveParameter($this, "q_id");
$this->object = new ASS_Question();
}
Here is the caller graph for this function:| ASS_QuestionGUI::assessment | ( | ) |
output assessment
Definition at line 160 of file class.assQuestionGUI.php.
References $_GET, $counter, 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();
//$this->setLocator();
$title = $this->lng->txt("qpl_assessment_of_questions");
if (!empty($title))
{
$this->tpl->setVariable("HEADER", $title);
}
//$question =& $this->object->createQuestion("", $_GET["edit"]);
$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();
}
$this->tpl->setCurrentBlock("adm_content");
$this->tpl->setVariable("TXT_QUESTION_TITLE", $this->object->getTitle());
$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:| ASS_QuestionGUI::cancel | ( | ) |
cancel action
Definition at line 405 of file class.assQuestionGUI.php.
References $_GET, and ilUtil::redirect().
{
if ($_GET["calling_test"])
{
$_GET["ref_id"] = $_GET["calling_test"];
ilUtil::redirect("test.php?cmd=questions&ref_id=".$_GET["calling_test"]);
}
elseif ($_GET["test_ref_id"])
{
$_GET["ref_id"] = $_GET["test_ref_id"];
ilUtil::redirect("test.php?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:| ASS_QuestionGUI::cancelExplorer | ( | ) |
Definition at line 582 of file class.assQuestionGUI.php.
References $_SESSION.
| ASS_QuestionGUI::cancelSync | ( | ) |
Definition at line 453 of file class.assQuestionGUI.php.
References $_GET, and ilUtil::redirect().
{
$_GET["ref_id"] = $_GET["calling_test"];
ilUtil::redirect("test.php?cmd=questions&ref_id=".$_GET["calling_test"]);
}
Here is the call graph for this function:| & ASS_QuestionGUI::createQuestionGUI | ( | $ | question_type, | |
| $ | question_id = -1 | |||
| ) |
Creates a question gui representation.
Creates a question gui representation and returns the alias to the question gui
| 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 ASS_QuestionGUI |
Definition at line 346 of file class.assQuestionGUI.php.
References _getQuestionGUI().
{
$this->question =& ASS_QuestionGUI::_getQuestionGUI($question_type, $question_id);
}
Here is the call graph for this function:| & ASS_QuestionGUI::executeCommand | ( | ) |
execute command
Definition at line 80 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:| ASS_QuestionGUI::getCommand | ( | $ | cmd | ) |
Reimplemented in ASS_ClozeTestGUI, ASS_ImagemapQuestionGUI, ASS_JavaAppletGUI, ASS_MatchingQuestionGUI, ASS_MultipleChoiceGUI, and ASS_OrderingQuestionGUI.
Definition at line 96 of file class.assQuestionGUI.php.
References $cmd.
Referenced by executeCommand().
{
return $cmd;
}
Here is the caller graph for this function:| ASS_QuestionGUI::getQuestionTemplate | ( | $ | q_type | ) |
get question template
Definition at line 354 of file class.assQuestionGUI.php.
Referenced by ASS_TextQuestionGUI::addSuggestedSolution(), ASS_OrderingQuestionGUI::addSuggestedSolution(), ASS_MultipleChoiceGUI::addSuggestedSolution(), ASS_MatchingQuestionGUI::addSuggestedSolution(), ASS_JavaAppletGUI::addSuggestedSolution(), ASS_ImagemapQuestionGUI::addSuggestedSolution(), ASS_ClozeTestGUI::addSuggestedSolution(), ASS_TextQuestionGUI::editQuestion(), ASS_OrderingQuestionGUI::editQuestion(), ASS_MultipleChoiceGUI::editQuestion(), ASS_MatchingQuestionGUI::editQuestion(), ASS_JavaAppletGUI::editQuestion(), ASS_ImagemapQuestionGUI::editQuestion(), ASS_ClozeTestGUI::editQuestion(), and linkChilds().
{
$this->tpl->addBlockFile("CONTENT", "content", "tpl.il_as_qpl_content.html", true);
$this->tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
// set screen title (Edit/Create Question)
if ($this->object->id > 0)
{
$title = $this->lng->txt("edit") . " " . $this->lng->txt($q_type);
}
else
{
$title = $this->lng->txt("create_new") . " " . $this->lng->txt($q_type);
$this->tpl->setVariable("HEADER", $title);
}
$this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_as_question.html", true);
}
Here is the caller graph for this function:| ASS_QuestionGUI::getQuestionType | ( | ) |
Returns the question type string.
Returns the question type string
Reimplemented in ASS_ClozeTestGUI, ASS_ImagemapQuestionGUI, ASS_JavaAppletGUI, ASS_MatchingQuestionGUI, ASS_MultipleChoiceGUI, ASS_OrderingQuestionGUI, and ASS_TextQuestionGUI.
Definition at line 110 of file class.assQuestionGUI.php.
Referenced by getType().
{
return "";
}
Here is the caller graph for this function:| ASS_QuestionGUI::getSequenceNumber | ( | ) |
Definition at line 815 of file class.assQuestionGUI.php.
{
return $this->sequence_no;
}
| ASS_QuestionGUI::getType | ( | ) |
needed for page editor compliance
Definition at line 118 of file class.assQuestionGUI.php.
References getQuestionType().
{
return $this->getQuestionType();
}
Here is the call graph for this function:| ASS_QuestionGUI::linkChilds | ( | ) |
Definition at line 693 of file class.assQuestionGUI.php.
References $_GET, $_SESSION, $counter, getQuestionTemplate(), and sendInfo().
{
switch ($_SESSION["search_link_type"])
{
case "pg":
case "st":
$_GET["q_id"] = $this->object->getId();
$this->tpl->setVariable("HEADER", $this->object->getTitle());
$this->getQuestionTemplate($_GET["sel_question_types"]);
$color_class = array("tblrow1", "tblrow2");
$counter = 0;
require_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($_GET["sel_question_types"]);
$color_class = array("tblrow1", "tblrow2");
$counter = 0;
$this->tpl->addBlockFile("LINK_SELECTION", "link_selection", "tpl.il_as_qpl_internallink_selection.html", true);
require_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:| ASS_QuestionGUI::originalSyncForm | ( | ) |
Definition at line 431 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:| ASS_QuestionGUI::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
Reimplemented in ASS_ClozeTestGUI, ASS_ImagemapQuestionGUI, ASS_JavaAppletGUI, ASS_MatchingQuestionGUI, ASS_MultipleChoiceGUI, ASS_OrderingQuestionGUI, and ASS_TextQuestionGUI.
Definition at line 130 of file class.assQuestionGUI.php.
{
}
| ASS_QuestionGUI::outQuestionPage | ( | $ | a_temp_var, | |
| $ | a_postponed = false, |
|||
| $ | test_id = "" | |||
| ) |
output question page
Definition at line 374 of file class.assQuestionGUI.php.
References $_GET.
Referenced by ASS_TextQuestionGUI::outWorkingForm(), ASS_OrderingQuestionGUI::outWorkingForm(), ASS_MultipleChoiceGUI::outWorkingForm(), ASS_MatchingQuestionGUI::outWorkingForm(), ASS_JavaAppletGUI::outWorkingForm(), ASS_ImagemapQuestionGUI::outWorkingForm(), and ASS_ClozeTestGUI::outWorkingForm().
{
$postponed = "";
if ($a_postponed)
{
$postponed = " (" . $this->lng->txt("postponed") . ")";
}
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->setQuestionXML($this->object->to_xml(false, false, true, $test_id));
$page_gui->setTemplateTargetVar($a_temp_var);
$page_gui->setFileDownloadLink("test.php?cmd=downloadFile".
"&ref_id=".$_GET["ref_id"]);
$page_gui->setFullscreenLink("test.php?cmd=fullscreen".
"&ref_id=".$_GET["ref_id"]);
$page_gui->setSourcecodeDownloadScript("test.php?ref_id=".$_GET["ref_id"]);
$page_gui->setOutputMode("presentation");
//$page_gui->setHeader($this->object->getTitle());
if (!$a_postponed && is_numeric($this->sequence_no))
$page_gui->setPresentationTitle($this->lng->txt("question")." ".$this->sequence_no." - ".$this->object->getTitle().$postponed." (".$this->object->getMaximumPoints()." ".$this->lng->txt("points").")");
else
$page_gui->setPresentationTitle($this->object->getTitle().$postponed." (".$this->object->getMaximumPoints()." ".$this->lng->txt("points").")");
return $page_gui->presentation();
}
Here is the caller graph for this function:| ASS_QuestionGUI::outWorkingForm | ( | $ | test_id = "", |
|
| $ | is_postponed = false | |||
| ) |
Creates the question output form for the learner.
Creates the question output form for the learner
public
Definition at line 153 of file class.assQuestionGUI.php.
{
}
| ASS_QuestionGUI::removeFormElements | ( | $ | output | ) |
Definition at line 805 of file class.assQuestionGUI.php.
References $output.
Referenced by ASS_OrderingQuestionGUI::outWorkingForm(), ASS_MatchingQuestionGUI::outWorkingForm(), and ASS_ClozeTestGUI::outWorkingForm().
{
$output = preg_replace ("/(<input[^>]*>)/" ,"[]", $output);
$output = preg_replace ("/<select[^>]*>.*?<\/select>/s" ,"[]", $output);
return $output;
}
Here is the caller graph for this function:| ASS_QuestionGUI::removeSuggestedSolution | ( | ) |
Reimplemented in ASS_ClozeTestGUI.
Definition at line 641 of file class.assQuestionGUI.php.
{
$this->object->suggested_solutions = array();
$this->object->saveToDb();
$this->editQuestion();
}
| ASS_QuestionGUI::replaceInputElements | ( | $ | gap_idx, | |
| $ | solution, | |||
| $ | output, | |||
| $ | before = "", |
|||
| $ | after = "" | |||
| ) |
Definition at line 772 of file class.assQuestionGUI.php.
References $output.
Referenced by ASS_OrderingQuestionGUI::outWorkingForm(), ASS_MultipleChoiceGUI::outWorkingForm(), and ASS_ClozeTestGUI::outWorkingForm().
{
#echo htmlentities ($output)."<br>";
#echo htmlentities ($gap_idx)."<br>";
$before="<span class=\"textanswer\">[";
$after="]</span>";
$output = preg_replace ("/(<input[^>]*".$gap_idx."[^>]*>)/" , $before.$solution.$after, $output);
#echo htmlentities ($output)."<br>";
return $output;
}
Here is the caller graph for this function:| ASS_QuestionGUI::replaceSelectElements | ( | $ | gap_idx, | |
| $ | repl_str, | |||
| $ | output | |||
| ) |
Definition at line 782 of file class.assQuestionGUI.php.
References $output.
Referenced by ASS_MatchingQuestionGUI::outWorkingForm(), and ASS_ClozeTestGUI::outWorkingForm().
{
{
#echo htmlentities ($output)."<br>";
#echo htmlentities ($gap_idx)."<br>";
#echo htmlentities ($repl_str)."<br>";
$before="<span class=\"textanswer\">[";
$after="]</span>";
$select_pattern = "/<select[^>]*name=\"$gap_idx\".*?[^>]*>.*?<\/select>/";
#echo htmlentities ($select_pattern)."<br>";
// to extract the display value we need the according select statement
if (preg_match($select_pattern, $output, $matches)) {
// got it, now we are trying to get the value
#echo "<br><br>".htmlentities ($matches[0]);
$value_pattern = "/<option[^>]*".$repl_str."[^>]*>(.*?)<\/option>/";
if (preg_match($value_pattern, $matches[0], $matches))
$output = preg_replace ($select_pattern, $before.$matches[1].$after, $output);
/* else
$output = preg_replace ($select_pattern, $before.$after, $output);*/
}
return $output;
}
Here is the caller graph for this function:| ASS_QuestionGUI::save | ( | ) |
save question
Definition at line 514 of file class.assQuestionGUI.php.
References $_GET, $_SESSION, $ilUser, $result, ASS_Question::_isWriteable(), originalSyncForm(), ilUtil::redirect(), sendInfo(), and writePostData().
Referenced by ASS_ImagemapQuestionGUI::saveShape().
{
global $ilUser;
$old_id = $_GET["q_id"];
$result = $this->writePostData();
if ($result == 0)
{
$this->object->saveToDb();
$originalexists = $this->object->_questionExists($this->object->original_id);
if ($_GET["calling_test"] && $originalexists && ASS_Question::_isWriteable($this->object->original_id, $ilUser->getId()))
{
$this->originalSyncForm();
}
elseif ($_GET["calling_test"])
{
$_GET["ref_id"] = $_GET["calling_test"];
ilUtil::redirect("test.php?cmd=questions&ref_id=".$_GET["calling_test"]);
return;
}
elseif ($_GET["test_ref_id"])
{
require_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("test.php?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"]);
$this->ctrl->redirectByClass($_GET["cmdClass"], "editQuestion");
}
$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:
Here is the caller graph for this function:| ASS_QuestionGUI::saveEdit | ( | ) |
save question
Definition at line 462 of file class.assQuestionGUI.php.
References $_GET, $_SESSION, $ilUser, $result, ASS_Question::_isWriteable(), originalSyncForm(), ilUtil::redirect(), sendInfo(), and writePostData().
{
global $ilUser;
$result = $this->writePostData();
if ($result == 0)
{
$this->object->saveToDb();
$originalexists = $this->object->_questionExists($this->object->original_id);
if ($_GET["calling_test"] && $originalexists && ASS_Question::_isWriteable($this->object->original_id, $ilUser->getId()))
{
$this->originalSyncForm();
}
elseif ($_GET["calling_test"])
{
$_GET["ref_id"] = $_GET["calling_test"];
ilUtil::redirect("test.php?cmd=questions&ref_id=".$_GET["calling_test"]);
return;
}
elseif ($_GET["test_ref_id"])
{
require_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("test.php?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:| ASS_QuestionGUI::setSequenceNumber | ( | $ | nr | ) |
Definition at line 811 of file class.assQuestionGUI.php.
{
$this->sequence_no = $nr;
}
| ASS_QuestionGUI::sync | ( | ) |
Definition at line 442 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("test.php?cmd=questions&ref_id=".$_GET["calling_test"]);
}
Here is the call graph for this function:| ASS_QuestionGUI::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
Definition at line 217 of file class.assQuestionGUI.php.
References $_POST, and ilUtil::stripSlashes().
Referenced by ASS_TextQuestionGUI::writePostData(), ASS_OrderingQuestionGUI::writePostData(), ASS_MultipleChoiceGUI::writePostData(), ASS_MatchingQuestionGUI::writePostData(), ASS_JavaAppletGUI::writePostData(), ASS_ImagemapQuestionGUI::writePostData(), and ASS_ClozeTestGUI::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:| ASS_QuestionGUI::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
Reimplemented in ASS_ClozeTestGUI, ASS_ImagemapQuestionGUI, ASS_JavaAppletGUI, ASS_MatchingQuestionGUI, ASS_MultipleChoiceGUI, ASS_OrderingQuestionGUI, and ASS_TextQuestionGUI.
Definition at line 142 of file class.assQuestionGUI.php.
Referenced by apply(), save(), and saveEdit().
{
}
Here is the caller graph for this function:| ASS_QuestionGUI::$error |
Definition at line 50 of file class.assQuestionGUI.php.
| ASS_QuestionGUI::$lng |
Definition at line 49 of file class.assQuestionGUI.php.
Referenced by ASS_QuestionGUI().
| ASS_QuestionGUI::$object |
Definition at line 46 of file class.assQuestionGUI.php.
| ASS_QuestionGUI::$sequence_no |
sequence number in test
Definition at line 56 of file class.assQuestionGUI.php.
| ASS_QuestionGUI::$tpl |
Definition at line 48 of file class.assQuestionGUI.php.
Referenced by ASS_QuestionGUI().
1.7.1