4include_once
"./Services/COPage/classes/class.ilPageContentGUI.php";
5include_once
"./Services/COPage/classes/class.ilPCQuestion.php";
49 public function __construct(&$a_pg_obj, &$a_content_obj, $a_hier_id, $a_pc_id =
"")
53 $this->ctrl =
$DIC->ctrl();
54 $this->access =
$DIC->access();
55 $this->tpl =
$DIC[
"tpl"];
56 $this->tabs =
$DIC->tabs();
57 $this->lng =
$DIC->language();
58 $this->
user = $DIC->user();
59 $this->tree =
$DIC->repositoryTree();
60 $this->toolbar =
$DIC->toolbar();
61 $ilCtrl =
$DIC->ctrl();
62 $this->scormlmid = $a_pg_obj->parent_id;
64 $ilCtrl->saveParameter($this, array(
"qpool_ref_id"));
79 $cmd = $ilCtrl->getCmd();
80 $next_class = $ilCtrl->getNextClass($this);
82 $q_type = (
$_POST[
"q_type"] !=
"")
86 switch ($next_class) {
89 if ($cmd !=
"insert") {
91 } elseif (
$_GET[
"subCmd"] !=
"") {
92 $cmd =
$_GET[
"subCmd"];
110 $this->selfassessmentmode = $a_selfassessmentmode;
120 return $this->selfassessmentmode;
137 $lng->txt(
"cont_new_question"),
138 $ilCtrl->getLinkTarget($this,
"insert")
142 $ilCtrl->setParameter($this,
"subCmd",
"insertFromPool");
145 $lng->txt(
"cont_copy_question_from_pool"),
146 $ilCtrl->getLinkTarget($this,
"insert")
149 $ilTabs->activateSubTab($a_active);
151 $ilCtrl->setParameter($this,
"subCmd",
"");
157 public function insert($a_mode =
"create")
169 include_once(
"./Modules/TestQuestionPool/classes/class.ilObjQuestionPool.php");
174 foreach ($all_types as $k => $v) {
175 $options[$v[
"type_tag"]] = $k;
179 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
181 $this->form_gui->setFormAction($ilCtrl->getFormAction($this));
182 $this->form_gui->setTitle(
$lng->txt(
"cont_ed_insert_pcqst"));
186 $qtype_input->setOptions($options);
187 $qtype_input->setRequired(
true);
188 $this->form_gui->addItem($qtype_input);
192 include_once(
"./Modules/Test/classes/class.ilObjAssessmentFolder.php");
194 $ri =
new ilRadioGroupInputGUI($this->lng->txt(
"tst_add_quest_cont_edit_mode"),
"add_quest_cont_edit_mode");
197 $this->lng->txt(
'tst_add_quest_cont_edit_mode_RTE'),
200 $option_rte->setInfo($this->lng->txt(
'tst_add_quest_cont_edit_mode_RTE_info'));
201 $ri->addOption($option_rte);
204 $this->lng->txt(
'tst_add_quest_cont_edit_mode_IPE'),
207 $option_ipe->setInfo($this->lng->txt(
'tst_add_quest_cont_edit_mode_IPE_info'));
208 $ri->addOption($option_ipe);
212 $this->form_gui->addItem($ri,
true);
216 $this->form_gui->addItem($hi);
244 if ($a_mode ==
"edit_empty") {
245 $this->form_gui->addCommandButton(
"edit",
$lng->txt(
"save"));
247 $this->form_gui->addCommandButton(
"create_pcqst",
$lng->txt(
"save"));
248 $this->form_gui->addCommandButton(
"cancelCreate",
$lng->txt(
"cancel"));
251 $this->tpl->setContent($this->form_gui->getHTML());
260 global
$lng, $ilCtrl, $ilTabs;
262 $ilTabs->setTabActive(
'question');
265 $this->content_obj->create($this->pg_obj, $this->hier_id);
267 $this->updated = $this->pg_obj->update();
269 if ($this->updated) {
280 $this->pg_obj->stripHierIDs();
281 $this->pg_obj->addHierIDs();
282 $hier_id = $this->content_obj->lookupHierId();
283 $ilCtrl->setParameter($this,
"q_type",
$_POST[
"q_type"]);
284 $ilCtrl->setParameter($this,
"add_quest_cont_edit_mode",
$_POST[
"add_quest_cont_edit_mode"]);
287 $ilCtrl->setParameter($this,
"hier_id", $this->content_obj->readHierId());
288 $ilCtrl->setParameter($this,
"pc_id", $this->content_obj->readPCId());
290 $ilCtrl->redirect($this,
"edit");
301 if ($a_par[
"new_id"] > 0) {
302 $this->content_obj->setQuestionReference(
"il__qst_" . $a_par[
"new_id"]);
303 $this->pg_obj->update();
315 $ilTabs->setTabActive(
'question');
319 $q_ref = $this->content_obj->getQuestionReference();
323 if (!($inst_id > 0)) {
328 $q_type = (
$_POST[
"q_type"] !=
"")
331 $ilCtrl->setParameter($this,
"q_type", $q_type);
333 if ($q_id ==
"" && $q_type ==
"") {
334 return $this->
insert(
"edit_empty");
337 include_once(
"./Modules/TestQuestionPool/classes/class.ilQuestionEditGUI.php");
338 include_once(
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
339 include_once(
"./Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php");
346 if ($q_id < 1 && $q_type) {
347 include_once
"./Modules/TestQuestionPool/classes/class.assQuestionGUI.php";
351 include_once(
"./Modules/Test/classes/class.ilObjAssessmentFolder.php");
353 && $_REQUEST[
'add_quest_cont_edit_mode'] !=
"") {
354 $addContEditMode =
$_GET[
'add_quest_cont_edit_mode'];
358 $q_gui->object->setAdditionalContentEditingMode($addContEditMode);
362 $q_id = $q_gui->object->createNewQuestion(
true);
363 $this->content_obj->setQuestionReference(
"il__qst_" . $q_id);
364 $this->pg_obj->update();
367 $ilCtrl->setParameterByClass(
"ilQuestionEditGUI",
"q_id", $q_id);
368 $ilCtrl->redirectByClass(array(get_class($this->pg_obj) .
"GUI",
"ilQuestionEditGUI"),
"editQuestion");
379 require_once(
"./Modules/TestQuestionPool/classes/class.assQuestionGUI.php");
381 $this->ctrl->redirectByClass(array(
"ilobjquestionpoolgui", get_class($q_gui)),
"editQuestion");
390 include_once(
"./Modules/TestQuestionPool/classes/class.ilQuestionEditGUI.php");
391 include_once(
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
393 $ilTabs->setTabActive(
'feedback');
395 $q_ref = $this->content_obj->getQuestionReference();
399 if (!($inst_id > 0)) {
404 $ilCtrl->setCmdClass(
"ilquestioneditgui");
405 $ilCtrl->setCmd(
"feedback");
408 $edit_gui->setQuestionId($q_id);
411 $edit_gui->setSelfAssessmentEditingMode(
true);
413 $ret = $ilCtrl->forwardCommand($edit_gui);
414 $this->tpl->setContent(
$ret);
428 $parent_ref =
$tree->getParentId(
$_GET[
"ref_id"]);
429 include_once
"./Modules/TestQuestionPool/classes/class.ilObjQuestionPool.php";
431 $qpl->setType(
"qpl");
432 $qpl->setTitle(
$name);
433 $qpl->setDescription(
"");
435 $qpl->createReference();
436 $qpl->putInTree($parent_ref);
437 $qpl->setPermissions($parent_ref);
440 return $qpl->getRefId();
455 include_once(
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
457 if ($this->content_obj !=
"") {
458 $q_ref = $this->content_obj->getQuestionReference();
463 if (!($inst_id > 0)) {
470 $ilCtrl->getLinkTarget($this,
"edit"),
471 array(
"editQuestion",
"save",
"cancel",
"addSuggestedSolution",
472 "cancelExplorer",
"linkChilds",
"removeSuggestedSolution",
473 "addPair",
"addTerm",
"delete",
"deleteTerms",
"editMode",
"upload",
474 "saveEdit",
"uploadingImage",
"uploadingImagemap",
"addArea",
475 "deletearea",
"saveShape",
"back",
"saveEdit",
"changeGapType",
"createGaps",
"addItem",
"addYesNo",
"addTrueFalse",
476 "toggleGraphicalAnswers",
"setMediaMode"),
482 require_once
'Modules/TestQuestionPool/classes/class.assQuestionGUI.php';
483 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionFeedbackEditingGUI.php';
487 "q_id=" . (
int) $q_id
489 $ilTabs->addTarget(
'feedback', $tabLink, $tabCommands, $ilCtrl->getCmdClass(),
'');
511 $ilAccess->checkAccess(
"write",
"",
$_SESSION[
"cont_qst_pool"])
534 include_once
"./Services/COPage/classes/class.ilPoolSelectorGUI.php";
536 $ilCtrl->setParameter($this,
"subCmd",
"poolSelection");
540 $exp->setTypeWhiteList(array(
"root",
"cat",
"grp",
"fold",
"crs",
"qpl"));
541 $exp->setClickableTypes(array(
'qpl'));
543 if (!$exp->handleCommand()) {
544 $tpl->setContent($exp->getHTML());
556 $ilCtrl->setParameter($this,
"subCmd",
"insertFromPool");
557 $ilCtrl->redirect($this,
"insert");
575 $ilCtrl->setParameter($this,
"subCmd",
"poolSelection");
576 $ilToolbar->addButton(
577 $lng->txt(
"cont_select_other_qpool"),
578 $ilCtrl->getLinkTarget($this,
"insert")
580 $ilCtrl->setParameter($this,
"subCmd",
"");
584 include_once
"./Services/COPage/classes/class.ilCopySelfAssQuestionTableGUI.php";
586 $ilCtrl->setParameter($this,
"subCmd",
"listPoolQuestions");
593 $tpl->setContent($table_gui->getHTML());
607 $this->content_obj->create($this->pg_obj,
$_GET[
"hier_id"]);
609 $this->content_obj->copyPoolQuestionIntoPage(
614 $this->updated = $this->pg_obj->update();
616 $ilCtrl->returnToParent($this);
An exception for terminatinating execution or to throw for unit testing.
static _getQuestionGUI($question_type, $question_id=-1)
Creates a question gui representation and returns the alias to the question gui note: please do not u...
static getCommandsFromClassConstants($guiClassName, $cmdConstantNameBegin='CMD_')
extracts values of all constants of given class with given prefix as array can be used to get all pos...
const ADDITIONAL_CONTENT_EDITING_MODE_RTE
constant for additional content editing mode "default"
const ADDITIONAL_CONTENT_EDITING_MODE_IPE
constant for additional content editing mode "pageobject"
static _getQuestionType($question_id)
Returns the question type of a question with a given id.
const CMD_SHOW
command constants
Table to select self assessment questions for copying into learning resources.
static _extractObjIdOfTarget($a_target)
Extract object id out of target.
static _extractInstOfTarget($a_target)
Extract installation id out of target.
static isAdditionalQuestionContentEditingModePageObjectEnabled()
returns the fact wether content editing with ilias page editor is enabled for questions or not
static & _getSelfAssessmentQuestionTypes($all_tags=false)
Get all self assessment question types.
static _lookupObjId($a_id)
static _lookupType($a_id, $a_reference=false)
lookup object type
setSelfAssessmentMode($a_selfassessmentmode)
Set Self Assessment Mode.
create()
Create new question.
listPoolQuestions()
List questions of pool.
copyQuestion()
Copy question into page.
setInsertTabs($a_active)
Set insert tabs.
executeCommand()
execute command
insertFromPool()
Insert question from ppol.
createQuestionPool($name="Dummy")
Creates a new questionpool and returns the reference id.
getSelfAssessmentMode()
Get Self Assessment Mode.
setNewQuestionId($a_par)
Set new question id.
selectPool()
Select concrete question pool.
poolSelection()
Pool selection.
insert($a_mode="create")
Insert new question form.
__construct(&$a_pg_obj, &$a_content_obj, $a_hier_id, $a_pc_id="")
Constructor @access public.
User Interface for Editing of Page Content Objects (Paragraphs, Tables, ...)
getPageConfig()
Get Page Config.
displayValidationError()
display validation errors
Select media pool for adding objects into pages.
This class represents an option in a radio group.
static appendUrlParameterString($a_url, $a_par, $xml_style=false)
append URL parameter string ("par1=value1&par2=value2...") to given URL string
static sortArray( $array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc