4require_once 
'./Modules/TestQuestionPool/classes/class.assQuestionGUI.php';
 
    5require_once 
'./Modules/TestQuestionPool/interfaces/interface.ilGuiQuestionScoringAdjustable.php';
 
    6include_once 
'./Modules/Test/classes/inc.AssessmentConstants.php';
 
   37                parent::__construct();
 
   38                include_once 
"./Modules/TestQuestionPool/classes/class.assFlashQuestion.php";
 
   40                $this->newUnitId = 
null;
 
   43                        $this->
object->loadFromDb($id);
 
   49                if (preg_match(
"/suggestrange_(.*?)/", 
$cmd, $matches))
 
   51                        $cmd = 
"suggestRange";
 
   75                $hasErrors = (!$always) ? $this->
editQuestion(
true) : 
false;
 
   78                        require_once 
'Services/Form/classes/class.ilPropertyFormGUI.php';
 
   91                if (
$_POST[
'flash'][
'delete'] == 1)
 
   93                        $this->
object->deleteApplet();
 
   97                        $this->
object->setApplet( 
$_POST[
'flash'][
'filename'] );
 
   99                if ($_FILES[
"flash"][
"tmp_name"])
 
  101                        $this->
object->deleteApplet();
 
  102                        $filename = $this->
object->moveUploadedFile( $_FILES[
"flash"][
"tmp_name"], $_FILES[
"flash"][
"name"] );
 
  105                $this->
object->clearParameters();
 
  106                if (is_array( 
$_POST[
"flash"][
"flash_param_name"] ))
 
  108                        foreach (
$_POST[
'flash'][
'flash_param_name'] as $idx => $val)
 
  110                                $this->
object->addParameter( $val, 
$_POST[
'flash'][
'flash_param_value'][$idx] );
 
  113                if (is_array( 
$_POST[
'flash'][
'flash_param_delete'] ))
 
  115                        foreach (
$_POST[
'flash'][
'flash_param_delete'] as $key => $value)
 
  117                                $this->
object->removeParameter( 
$_POST[
'flash'][
'flash_param_name'][$key] );
 
  121                $this->
object->setWidth( 
$_POST[
"flash"][
"width"] );
 
  122                $this->
object->setHeight( 
$_POST[
"flash"][
"height"] );
 
  123                $this->
object->setPoints( 
$_POST[
"points"] );
 
  137                include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
  139                $this->editForm = $form;
 
  141                $form->setFormAction($this->ctrl->getFormAction($this));
 
  143                $form->setMultipart(TRUE);
 
  144                $form->setTableWidth(
"100%");
 
  145                $form->setId(
"flash");
 
  158                        $form->setValuesByPost();
 
  159                        $errors = !$form->checkInput();
 
  160                        $form->setValuesByPost(); 
 
  161                        if (
$errors) $checkonly = 
false;
 
  164                if (!$checkonly) $this->tpl->setVariable(
"QUESTION_DATA", $form->getHTML());
 
  172                $flash->setRequired( TRUE );
 
  173                if (strlen( $this->object->getApplet() ))
 
  175                        $flash->setApplet( $this->object->getApplet() );
 
  176                        $flash->setAppletPathWeb( $this->object->getFlashPathWeb() );
 
  178                $flash->setWidth( $this->object->getWidth() );
 
  179                $flash->setHeight( $this->object->getHeight() );
 
  180                $flash->setParameters( $this->object->getParameters() );
 
  182                if ($this->object->getId())
 
  185                        $hidden->setValue( $this->object->getId() );
 
  190                $points->setValue( $this->object->getPoints() );
 
  191                $points->setRequired( TRUE );
 
  192                $points->setSize( 3 );
 
  193                $points->setMinValue( 0.0 );
 
  202                $this->
object->addParameter(
"", 
"");
 
  222                $graphicalOutput = FALSE,
 
  223                $result_output = FALSE,
 
  224                $show_question_only = TRUE,
 
  225                $show_feedback = FALSE,
 
  226                $show_correct_solution = FALSE,
 
  227                $show_manual_scoring = FALSE,
 
  228                $show_question_text = TRUE
 
  232                $template = 
new ilTemplate(
"tpl.il_as_qpl_flash_question_output_solution.html", TRUE, TRUE, 
"Modules/TestQuestionPool");
 
  235                if (is_array($this->object->getParameters()))
 
  237                        foreach ($this->object->getParameters() as $name => $value)
 
  239                                array_push(
$params, urlencode($name) . 
"=" . urlencode($value));
 
  244                array_push(
$params, 
"client=" . urlencode(CLIENT_ID));
 
  245                array_push(
$params, 
"points_max=" . urlencode($this->object->getPoints()));
 
  253                        include_once 
"./Modules/Test/classes/class.ilObjTest.php";
 
  258                        array_push(
$params, 
"active_id=" . $active_id);
 
  260                array_push(
$params, 
"question_id=" . $this->object->getId());
 
  262                if ($show_correct_solution)
 
  264                        array_push(
$params, 
"solution=correct");
 
  268                        array_push(
$params, 
"solution=user");
 
  271                if (($active_id > 0) && (!$show_correct_solution))
 
  273                        if ($graphicalOutput)
 
  276                                $reached_points = $this->
object->getReachedPoints($active_id, 
$pass);
 
  277                                if ($reached_points == $this->object->getMaximumPoints())
 
  279                                        $template->setCurrentBlock(
"icon_ok");
 
  281                                        $template->setVariable(
"TEXT_OK", $this->lng->txt(
"answer_is_right"));
 
  282                                        $template->parseCurrentBlock();
 
  286                                        $template->setCurrentBlock(
"icon_ok");
 
  287                                        if ($reached_points > 0)
 
  290                                                $template->setVariable(
"TEXT_NOT_OK", $this->lng->txt(
"answer_is_not_correct_but_positive"));
 
  295                                                $template->setVariable(
"TEXT_NOT_OK", $this->lng->txt(
"answer_is_wrong"));
 
  297                                        $template->parseCurrentBlock();
 
  304                        $template->setCurrentBlock(
"flash_vars");
 
  305                        $template->setVariable(
"FLASH_VARS", join(
$params, 
"&"));
 
  306                        $template->parseCurrentBlock();
 
  307                        $template->setCurrentBlock(
"applet_parameters");
 
  308                        $template->setVariable(
"PARAM_VALUE", join(
$params, 
"&"));
 
  309                        $template->parseCurrentBlock();
 
  311                if ($show_question_text==
true)
 
  313                        $template->setVariable(
"QUESTIONTEXT", $this->object->prepareTextareaOutput($this->object->getQuestion(), TRUE));
 
  315                $template->setVariable(
"APPLET_WIDTH", $this->object->getWidth());
 
  316                $template->setVariable(
"APPLET_HEIGHT", $this->object->getHeight());
 
  317                $template->setVariable(
"ID", $this->object->getId());
 
  318                $template->setVariable(
"APPLET_PATH", $this->object->getFlashPathWeb() . $this->object->getApplet());
 
  319                $template->setVariable(
"APPLET_FILE", $this->object->getApplet());
 
  321                $questionoutput = $template->get();
 
  322                $solutiontemplate = 
new ilTemplate(
"tpl.il_as_tst_solution_output.html",TRUE, TRUE, 
"Modules/TestQuestionPool");
 
  323                $solutiontemplate->setVariable(
"SOLUTION_OUTPUT", $questionoutput);
 
  324                $solutionoutput = $solutiontemplate->get(); 
 
  325                if (!$show_question_only)
 
  330                return $solutionoutput;
 
  333        function getPreview($show_question_only = FALSE, $showInlineFeedback = 
false)
 
  335                $template = 
new ilTemplate(
"tpl.il_as_qpl_flash_question_output.html",TRUE, TRUE, 
"Modules/TestQuestionPool");
 
  337                if (is_array($this->object->getParameters()))
 
  339                        foreach ($this->object->getParameters() as $name => $value)
 
  341                                array_push(
$params, urlencode($name) . 
"=" . urlencode($value));
 
  346                        $template->setCurrentBlock(
"flash_vars");
 
  347                        $template->setVariable(
"FLASH_VARS", join(
$params, 
"&"));
 
  348                        $template->parseCurrentBlock();
 
  349                        $template->setCurrentBlock(
"applet_parameters");
 
  350                        $template->setVariable(
"PARAM_VALUE", join(
$params, 
"&"));
 
  351                        $template->parseCurrentBlock();
 
  353                $template->setVariable(
"QUESTIONTEXT", $this->object->prepareTextareaOutput($this->object->getQuestion(), TRUE));
 
  354                $template->setVariable(
"APPLET_WIDTH", $this->object->getWidth());
 
  355                $template->setVariable(
"APPLET_HEIGHT", $this->object->getHeight());
 
  356                $template->setVariable(
"ID", $this->object->getId());
 
  357                $template->setVariable(
"APPLET_PATH", $this->object->getFlashPathWeb() . $this->object->getApplet());
 
  358                $template->setVariable(
"APPLET_FILE", $this->object->getApplet());
 
  359                $questionoutput = $template->get();
 
  360                if (!$show_question_only)
 
  365                return $questionoutput;
 
  369        function getTestOutput($active_id, 
$pass, $is_postponed = FALSE, $use_post_solutions = FALSE, $show_feedback = FALSE)
 
  373                $template = 
new ilTemplate(
"tpl.il_as_qpl_flash_question_output.html",TRUE, TRUE, 
"Modules/TestQuestionPool");
 
  375                if (is_array($this->object->getParameters()))
 
  377                        foreach ($this->object->getParameters() as $name => $value)
 
  379                                array_push(
$params, urlencode($name) . 
"=" . urlencode($value));
 
  384                array_push(
$params, 
"client=" . urlencode(CLIENT_ID));
 
  385                array_push(
$params, 
"points_max=" . urlencode($this->object->getPoints()));
 
  393                        include_once 
"./Modules/Test/classes/class.ilObjTest.php";
 
  398                        array_push(
$params, 
"active_id=" . $active_id);
 
  400                array_push(
$params, 
"question_id=" . $this->object->getId());
 
  404                        $template->setCurrentBlock(
"flash_vars");
 
  405                        $template->setVariable(
"FLASH_VARS", join(
$params, 
"&"));
 
  406                        $template->parseCurrentBlock();
 
  407                        $template->setCurrentBlock(
"applet_parameters");
 
  408                        $template->setVariable(
"PARAM_VALUE", join(
$params, 
"&"));
 
  409                        $template->parseCurrentBlock();
 
  411                $template->setVariable(
"QUESTIONTEXT", $this->object->prepareTextareaOutput($this->object->getQuestion(), TRUE));
 
  412                $template->setVariable(
"APPLET_WIDTH", $this->object->getWidth());
 
  413                $template->setVariable(
"APPLET_HEIGHT", $this->object->getHeight());
 
  414                $template->setVariable(
"ID", $this->object->getId());
 
  415                $template->setVariable(
"APPLET_PATH", $this->object->getFlashPathWeb() . $this->object->getApplet());
 
  416                $template->setVariable(
"APPLET_FILE", $this->object->getFlashPathWeb() . $this->object->getApplet());
 
  417                $questionoutput = $template->get();
 
  419                $pageoutput = $this->
outQuestionPage(
"", $is_postponed, $active_id, $questionoutput);
 
  432                global $rbacsystem, $ilTabs;
 
  434                $ilTabs->clearTargets();
 
  436                $this->ctrl->setParameterByClass(
"ilAssQuestionPageGUI", 
"q_id", 
$_GET[
"q_id"]);
 
  437                include_once 
"./Modules/TestQuestionPool/classes/class.assQuestion.php";
 
  438                $q_type = $this->
object->getQuestionType();
 
  442                        $classname = $q_type . 
"GUI";
 
  443                        $this->ctrl->setParameterByClass(strtolower($classname), 
"sel_question_types", $q_type);
 
  444                        $this->ctrl->setParameterByClass(strtolower($classname), 
"q_id", 
$_GET[
"q_id"]);
 
  449                        if ($rbacsystem->checkAccess(
'write', 
$_GET[
"ref_id"]))
 
  452                                $ilTabs->addTarget(
"edit_page",
 
  453                                        $this->ctrl->getLinkTargetByClass(
"ilAssQuestionPageGUI", 
"edit"),
 
  454                                        array(
"edit", 
"insert", 
"exec_pg"),
 
  455                                        "", 
"", $force_active);
 
  461                $force_active = 
false;
 
  462                if ($rbacsystem->checkAccess(
'write', 
$_GET[
"ref_id"]))
 
  465                        if ($classname) 
$url = $this->ctrl->getLinkTargetByClass($classname, 
"editQuestion");
 
  466                        $commands = 
$_POST[
"cmd"];
 
  467                        if (is_array($commands))
 
  469                                foreach ($commands as $key => $value)
 
  471                                        if (preg_match(
"/^suggestrange_.*/", $key, $matches))
 
  473                                                $force_active = 
true;
 
  478                        $ilTabs->addTarget(
"edit_question",
 
  480                                array(
"editQuestion", 
"save", 
"flashAddParam", 
"saveEdit", 
"originalSyncForm"),
 
  481                                $classname, 
"", $force_active);
 
  496                        $ilTabs->addTarget(
"statistics",
 
  497                                $this->ctrl->getLinkTargetByClass($classname, 
"assessment"),
 
  508                return $this->
object->prepareTextareaOutput(
$output, TRUE);
 
An exception for terminatinating execution or to throw for unit testing.
The assFlashQuestionGUI class encapsulates the GUI representation for flash questions.
setQuestionTabs()
Sets the ILIAS tabs for this question type.
getAfterParticipationSuppressionQuestionPostVars()
Returns a list of postvars which will be suppressed in the form output when used in scoring adjustmen...
getPreview($show_question_only=FALSE, $showInlineFeedback=false)
suggestRange()
Suggest a range for a result.
getSpecificFeedbackOutput($active_id, $pass)
Returns the answer specific feedback for the question.
editQuestion($checkonly=FALSE)
Creates an output of the edit form for the question.
writePostData($always=false)
{Evaluates a posted edit form and writes the form data in the question object.integer A positive valu...
getTestOutput($active_id, $pass, $is_postponed=FALSE, $use_post_solutions=FALSE, $show_feedback=FALSE)
writeQuestionSpecificPostData(ilPropertyFormGUI $form)
Extracts the question specific values from $_POST and applies them to the data object.
getSolutionOutput( $active_id, $pass=NULL, $graphicalOutput=FALSE, $result_output=FALSE, $show_question_only=TRUE, $show_feedback=FALSE, $show_correct_solution=FALSE, $show_manual_scoring=FALSE, $show_question_text=TRUE)
Get the question solution output.
populateQuestionSpecificFormPart(ilPropertyFormGUI $form)
Adds the question specific forms parts to a question property form gui.
getAggregatedAnswersView($relevant_answers)
Returns an html string containing a question specific representation of the answers so far given in t...
__construct($id=-1)
assFlashQuestionGUI constructor
Class for Flash based questions.
Basic GUI class for assessment questions.
populateTaxonomyFormSection(ilPropertyFormGUI $form)
setErrorMessage($errormessage)
addTab_QuestionHints(ilTabsGUI $tabs)
adds the hints tab to ilTabsGUI
writeQuestionGenericPostData()
addQuestionFormCommandButtons($form)
Add the command buttons of a question properties form.
getILIASPage($html="")
Returns the ILIAS Page around a question.
getQuestionTemplate()
get question template
addTab_SuggestedSolution(ilTabsGUI $tabs, $classname)
saveTaxonomyAssignments()
outQuestionPage($a_temp_var, $a_postponed=false, $active_id="", $html="")
output question page
addBackTab(ilTabsGUI $ilTabs)
addTab_QuestionFeedback(ilTabsGUI $tabs)
adds the feedback tab to ilTabsGUI
addBasicQuestionFormProperties($form)
Add basic question form properties: assessment: title, author, description, question,...
addTab_QuestionPreview(ilTabsGUI $tabsGUI)
static _getPass($active_id)
Retrieves the actual pass of a given user for a given test.
special template class to simplify handling of ITX/PEAR
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static removeTrailingPathSeparators($path)
if(!is_dir( $entity_dir)) exit("Fatal Error ([A-Za-z0-9]+)\s+" &#(? foreach( $entity_files as $file) $output
Interface ilGuiQuestionScoringAdjustable.