ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
ilSurveyEditorGUI Class Reference

Class ilSurveyEditorGUI. More...

+ Collaboration diagram for ilSurveyEditorGUI:

Public Member Functions

 __construct (ilObjSurveyGUI $a_parent_gui)
 
 executeCommand ()
 
 questionsObject ()
 
 saveObligatoryObject ()
 
 unfoldQuestionblockObject ()
 
 moveQuestionsObject ()
 
 insertQuestionsBeforeObject ()
 
 insertQuestionsAfterObject ()
 
 removeQuestionsObject ()
 
 removeQuestionsForm ($checked_questionblocks, $checked_questions, $checked_headings)
 
 confirmRemoveQuestionsObject ()
 
 copyQuestionsToPoolObject ()
 
 executeCopyQuestionsToPoolObject ()
 
 createQuestionObject (ilPropertyFormGUI $a_form=null)
 
 executeCreateQuestionObject ()
 
 changeDatatypeObject ()
 
 browseForQuestionsObject ()
 
 filterQuestionBrowserObject ()
 
 resetfilterQuestionBrowserObject ()
 
 insertQuestionsObject ()
 
 browseForQuestionblocksObject ()
 
 filterQuestionblockBrowserObject ()
 
 resetfilterQuestionblockBrowserObject ()
 
 insertQuestionblocksObject ()
 
 editQuestionblockObject (ilPropertyFormGUI $a_form=null)
 
 createQuestionblockObject (ilPropertyFormGUI $a_form=null)
 
 saveDefineQuestionblockObject ()
 
 addHeadingObject (ilPropertyFormGUI $a_form=null)
 
 editHeadingObject (ilPropertyFormGUI $a_form=null)
 
 saveHeadingObject ()
 
 removeHeadingObject ()
 
 confirmedRemoveHeadingObject ()
 
 printViewObject ()
 Creates a print view of the survey questions. More...
 

Protected Member Functions

 questionsSubtabs ($a_cmd)
 
 gatherSelectedTableItems ($allow_blocks=true, $allow_questions=true, $allow_headings=false, $allow_questions_in_blocks=false)
 Gather (and filter) selected items from table gui. More...
 
 insertQuestions ($insert_mode)
 
 createQuestionPool ($name="dummy")
 
 setBrowseForQuestionsSubtabs ()
 
 initQuestionblockForm ($a_block_id=null, $a_question_ids=null)
 
 initHeadingForm ($a_question_id=null)
 

Protected Attributes

 $ctrl
 
 $lng
 
 $tpl
 
 $tabs
 
 $help
 
 $toolbar
 
 $user
 
 $tree
 
 $parent_gui
 
 $object
 
 $print_options
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilSurveyEditorGUI::__construct ( ilObjSurveyGUI  $a_parent_gui)

Definition at line 66 of file class.ilSurveyEditorGUI.php.

67 {
68 global $DIC;
69
70 $this->tabs = $DIC->tabs();
71 $this->help = $DIC["ilHelp"];
72 $this->toolbar = $DIC->toolbar();
73 $this->user = $DIC->user();
74 $this->tree = $DIC->repositoryTree();
75 $ilCtrl = $DIC->ctrl();
76 $lng = $DIC->language();
77 $tpl = $DIC["tpl"];
78
79 $this->parent_gui = $a_parent_gui;
80 $this->object = $this->parent_gui->object;
81
82 $this->ctrl = $ilCtrl;
83 $this->lng = $lng;
84 $this->tpl = $tpl;
85
86 $this->ctrl->saveParameter($this, array("pgov", "pgov_pos"));
87
88 $this->print_options = array(
89 //0 => $this->lng->txt('none'),
90 ilObjSurvey::PRINT_HIDE_LABELS => $this->lng->txt('svy_print_hide_labels'),
91 //2 => $this->lng->txt('svy_print_label_only'),
92 ilObjSurvey::PRINT_SHOW_LABELS => $this->lng->txt('svy_print_show_labels')
93 );
94 }
user()
Definition: user.php:4
global $ilCtrl
Definition: ilias.php:18
global $DIC
Definition: saml.php:7

References $DIC, $ilCtrl, $lng, $tpl, ilObjSurvey\PRINT_HIDE_LABELS, ilObjSurvey\PRINT_SHOW_LABELS, and user().

+ Here is the call graph for this function:

Member Function Documentation

◆ addHeadingObject()

ilSurveyEditorGUI::addHeadingObject ( ilPropertyFormGUI  $a_form = null)

Definition at line 1103 of file class.ilSurveyEditorGUI.php.

1104 {
1105 $q_id = $_REQUEST["q_id"];
1106 $this->ctrl->setParameter($this, "q_id", $q_id);
1107
1108 $this->questionsSubtabs("questions");
1109
1110 if (!$a_form) {
1111 $a_form = $this->initHeadingForm($q_id);
1112 }
1113
1114 $this->tpl->setContent($a_form->getHTML());
1115 }
initHeadingForm($a_question_id=null)

References initHeadingForm(), and questionsSubtabs().

Referenced by saveHeadingObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ browseForQuestionblocksObject()

ilSurveyEditorGUI::browseForQuestionblocksObject ( )

Definition at line 860 of file class.ilSurveyEditorGUI.php.

861 {
863
864 include_once "./Modules/Survey/classes/tables/class.ilSurveyQuestionblockbrowserTableGUI.php";
865 $table_gui = new ilSurveyQuestionblockbrowserTableGUI($this, 'browseForQuestionblocks', $this->object, true);
866 $table_gui->setEditable(true);
867 $this->tpl->setContent($table_gui->getHTML());
868 }

References setBrowseForQuestionsSubtabs().

+ Here is the call graph for this function:

◆ browseForQuestionsObject()

ilSurveyEditorGUI::browseForQuestionsObject ( )

Definition at line 788 of file class.ilSurveyEditorGUI.php.

789 {
791
792 include_once "./Modules/Survey/classes/tables/class.ilSurveyQuestionbrowserTableGUI.php";
793 $table_gui = new ilSurveyQuestionbrowserTableGUI($this, 'browseForQuestions', $this->object, true);
794 $table_gui->setEditable(true);
795 $this->tpl->setContent($table_gui->getHTML());
796 }

References setBrowseForQuestionsSubtabs().

+ Here is the call graph for this function:

◆ changeDatatypeObject()

ilSurveyEditorGUI::changeDatatypeObject ( )

Definition at line 770 of file class.ilSurveyEditorGUI.php.

771 {
773
774 $ilUser->writePref('svy_insert_type', $_POST['datatype']);
775
776 switch ($_POST["datatype"]) {
777 case 2:
778 $this->ctrl->redirect($this, 'browseForQuestionblocks');
779 break;
780
781 case 1:
782 default:
783 $this->ctrl->redirect($this, 'browseForQuestions');
784 break;
785 }
786 }
$_POST["username"]
$ilUser
Definition: imgupload.php:18

References $_POST, $ilUser, and $user.

◆ confirmedRemoveHeadingObject()

ilSurveyEditorGUI::confirmedRemoveHeadingObject ( )

Definition at line 1177 of file class.ilSurveyEditorGUI.php.

1178 {
1179 $q_id = (int) $_REQUEST["q_id"];
1180 if (!$q_id) {
1181 $this->ctrl->redirect($this, "questions");
1182 }
1183
1184 $this->object->saveHeading("", $q_id);
1185 $this->ctrl->redirect($this, "questions");
1186 }

◆ confirmRemoveQuestionsObject()

ilSurveyEditorGUI::confirmRemoveQuestionsObject ( )

Definition at line 508 of file class.ilSurveyEditorGUI.php.

509 {
510 $checked_questions = array();
511 $checked_questionblocks = array();
512 $checked_headings = array();
513 foreach ($_POST as $key => $value) {
514 if (preg_match("/id_(\d+)/", $key, $matches)) {
515 array_push($checked_questions, $matches[1]);
516 }
517 if (preg_match("/id_qb_(\d+)/", $key, $matches)) {
518 array_push($checked_questionblocks, $matches[1]);
519 }
520 if (preg_match("/id_tb_(\d+)/", $key, $matches)) {
521 array_push($checked_headings, $matches[1]);
522 }
523 }
524
525 if (sizeof($checked_questions) || sizeof($checked_questionblocks)) {
526 $this->object->removeQuestions($checked_questions, $checked_questionblocks);
527 }
528 if ($checked_headings) {
529 foreach ($checked_headings as $q_id) {
530 $this->object->saveHeading("", $q_id);
531 }
532 }
533 $this->object->saveCompletionStatus();
534 ilUtil::sendSuccess($this->lng->txt("questions_removed"), true);
535 $this->ctrl->redirect($this, "questions");
536 }
$key
Definition: croninfo.php:18

References $_POST, and $key.

◆ copyQuestionsToPoolObject()

ilSurveyEditorGUI::copyQuestionsToPoolObject ( )

Definition at line 538 of file class.ilSurveyEditorGUI.php.

539 {
540 $items = $this->gatherSelectedTableItems(true, true, false, true);
541
542 // gather questions from blocks
543 $copy_questions = $items["questions"];
544 foreach ($items["blocks"] as $block_id) {
545 foreach ($this->object->getQuestionblockQuestionIds($block_id) as $qid) {
546 array_push($copy_questions, $qid);
547 }
548 }
549 $copy_questions = array_unique($copy_questions);
550
551 // only if not already in pool
552 if (count($copy_questions)) {
553 foreach ($copy_questions as $idx => $question_id) {
554 $question = ilObjSurvey::_instanciateQuestion($question_id);
555 if ($question->getOriginalId()) {
556 unset($copy_questions[$idx]);
557 }
558 }
559 }
560 if (count($copy_questions) == 0) {
561 ilUtil::sendInfo($this->lng->txt("no_question_selected_for_copy_to_pool"), true);
562 $this->ctrl->redirect($this, "questions");
563 } else {
564 $this->questionsSubtabs("questions");
565
566 include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
567 $form = new ilPropertyFormGUI();
568
569 $form->setFormAction($this->ctrl->getFormAction($this, "executeCreateQuestion"));
570
571 $ids = new ilHiddenInputGUI("question_ids");
572 $ids->setValue(implode(";", $copy_questions));
573 $form->addItem($ids);
574
575 $questionpools = &$this->object->getAvailableQuestionpools(false, false, true, "write");
576 $pools = new ilSelectInputGUI($this->lng->txt("survey_copy_select_questionpool"), "sel_spl");
577 $pools->setOptions($questionpools);
578 $form->addItem($pools);
579
580 $form->addCommandButton("executeCopyQuestionsToPool", $this->lng->txt("submit"));
581 $form->addCommandButton("questions", $this->lng->txt("cancel"));
582
583 return $this->tpl->setContent($form->getHTML());
584 }
585 }
This class represents a hidden form property in a property form.
static _instanciateQuestion($question_id)
Creates an instance of a question with a given question id.
This class represents a property form user interface.
This class represents a selection list property in a property form.
gatherSelectedTableItems($allow_blocks=true, $allow_questions=true, $allow_headings=false, $allow_questions_in_blocks=false)
Gather (and filter) selected items from table gui.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
if(isset($_POST['submit'])) $form

References $form, ilObjSurvey\_instanciateQuestion(), gatherSelectedTableItems(), questionsSubtabs(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ createQuestionblockObject()

ilSurveyEditorGUI::createQuestionblockObject ( ilPropertyFormGUI  $a_form = null)

Definition at line 944 of file class.ilSurveyEditorGUI.php.

945 {
946 if (!$a_form) {
947 // gather questions from table selected
948 $items = $this->gatherSelectedTableItems(false, true, false, false);
949
950 if (is_array($_POST["qids"]) && sizeof($_POST["qids"])) {
951 $items["questions"] = $_POST["qids"];
952 }
953 if (count($items["questions"]) < 2) {
954 ilUtil::sendInfo($this->lng->txt("qpl_define_questionblock_select_missing"), true);
955 $this->ctrl->redirect($this, "questions");
956 }
957
958 $a_form = $this->initQuestionblockForm(null, $items["questions"]);
959 }
960
961 $this->questionsSubtabs("questions");
962 $this->tpl->setContent($a_form->getHTML());
963 }
initQuestionblockForm($a_block_id=null, $a_question_ids=null)

References $_POST, gatherSelectedTableItems(), initQuestionblockForm(), questionsSubtabs(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ createQuestionObject()

ilSurveyEditorGUI::createQuestionObject ( ilPropertyFormGUI  $a_form = null)

Definition at line 612 of file class.ilSurveyEditorGUI.php.

613 {
614 if (!$this->object->isPoolActive()) {
615 $_POST["usage"] = 1;
616 $_GET["sel_question_types"] = $_POST["sel_question_types"];
617 return $this->executeCreateQuestionObject();
618 }
619
620 if (!$a_form) {
621 $this->questionsSubtabs("questions");
622
623 include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
624 $form = new ilPropertyFormGUI();
625
626 $sel_question_types = (strlen($_POST["sel_question_types"])) ? $_POST["sel_question_types"] : $_GET["sel_question_types"];
627 $this->ctrl->setParameter($this, "sel_question_types", $sel_question_types);
628 $form->setFormAction($this->ctrl->getFormAction($this, "executeCreateQuestion"));
629 } else {
630 $form = $a_form;
631 }
632
633 $usage = new ilRadioGroupInputGUI($this->lng->txt("survey_pool_selection"), "usage");
634 $usage->setRequired(true);
635 $no_pool = new ilRadioOption($this->lng->txt("survey_no_pool"), 1);
636 $usage->addOption($no_pool);
637 $existing_pool = new ilRadioOption($this->lng->txt("survey_existing_pool"), 3);
638 $usage->addOption($existing_pool);
639 $new_pool = new ilRadioOption($this->lng->txt("survey_new_pool"), 2);
640 $usage->addOption($new_pool);
641 $form->addItem($usage);
642
643 if (isset($_SESSION["svy_qpool_choice"])) {
644 $usage->setValue($_SESSION["svy_qpool_choice"]);
645 } else {
646 // default: no pool
647 $usage->setValue(1);
648 }
649
650 $questionpools = &$this->object->getAvailableQuestionpools(false, true, true, "write");
651 $pools = new ilSelectInputGUI($this->lng->txt("select_questionpool"), "sel_spl");
652 $pools->setOptions($questionpools);
653 $existing_pool->addSubItem($pools);
654
655 $name = new ilTextInputGUI($this->lng->txt("spl_new"), "name_spl"); // #11740
656 $name->setSize(50);
657 $name->setMaxLength(50);
658 $new_pool->addSubItem($name);
659
660 if ($a_form) {
661 return $a_form;
662 }
663
664 $form->addCommandButton("executeCreateQuestion", $this->lng->txt("submit"));
665 $form->addCommandButton("questions", $this->lng->txt("cancel"));
666
667 return $this->tpl->setContent($form->getHTML());
668 }
$_GET["client_id"]
$_SESSION["AccountId"]
This class represents a property in a property form.
This class represents an option in a radio group.
This class represents a text property in a property form.

References $_GET, $_POST, $_SESSION, $form, $name, executeCreateQuestionObject(), and questionsSubtabs().

+ Here is the call graph for this function:

◆ createQuestionPool()

ilSurveyEditorGUI::createQuestionPool (   $name = "dummy")
protected

Definition at line 718 of file class.ilSurveyEditorGUI.php.

719 {
721
722 $parent_ref = $tree->getParentId($this->object->getRefId());
723
724 include_once "./Modules/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPool.php";
725 $qpl = new ilObjSurveyQuestionPool();
726 $qpl->setType("spl");
727 $qpl->setTitle($name);
728 $qpl->setDescription("");
729 $qpl->create();
730 $qpl->createReference();
731 $qpl->putInTree($parent_ref);
732 $qpl->setPermissions($parent_ref);
733 $qpl->setOnline(1); // must be online to be available
734 $qpl->saveToDb();
735
736 return $qpl->getId();
737 }

References $name, and $tree.

Referenced by executeCreateQuestionObject().

+ Here is the caller graph for this function:

◆ editHeadingObject()

ilSurveyEditorGUI::editHeadingObject ( ilPropertyFormGUI  $a_form = null)

Definition at line 1117 of file class.ilSurveyEditorGUI.php.

1118 {
1119 $q_id = $_REQUEST["q_id"];
1120 $this->ctrl->setParameter($this, "q_id", $q_id);
1121
1122 $this->questionsSubtabs("questions");
1123
1124 if (!$a_form) {
1125 $a_form = $this->initHeadingForm($q_id);
1126 }
1127
1128 $this->tpl->setContent($a_form->getHTML());
1129 }

References initHeadingForm(), and questionsSubtabs().

+ Here is the call graph for this function:

◆ editQuestionblockObject()

ilSurveyEditorGUI::editQuestionblockObject ( ilPropertyFormGUI  $a_form = null)

Definition at line 931 of file class.ilSurveyEditorGUI.php.

932 {
933 $block_id = (int) $_REQUEST["bl_id"];
934 $this->ctrl->setParameter($this, "bl_id", $block_id);
935
936 if (!$a_form) {
937 $a_form = $this->initQuestionblockForm($block_id);
938 }
939
940 $this->questionsSubtabs("questions");
941 $this->tpl->setContent($a_form->getHTML());
942 }

References initQuestionblockForm(), and questionsSubtabs().

Referenced by saveDefineQuestionblockObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ executeCommand()

ilSurveyEditorGUI::executeCommand ( )

Definition at line 96 of file class.ilSurveyEditorGUI.php.

97 {
98 $ilTabs = $this->tabs;
99
100 $cmd = $this->ctrl->getCmd("questions");
101
102 if ($_REQUEST["pgov"]) {
103 if ($cmd == "questions") {
104 $this->ctrl->setCmdClass("ilsurveypagegui");
105 $this->ctrl->setCmd("renderpage");
106 } elseif ($cmd == "confirmRemoveQuestions") {
107 // #14324
108 $this->ctrl->setCmdClass("ilsurveypagegui");
109 $this->ctrl->setCmd("confirmRemoveQuestions");
110 }
111 }
112
113 $next_class = $this->ctrl->getNextClass($this);
114 switch ($next_class) {
115 case 'ilsurveypagegui':
116 $this->questionsSubtabs("page");
117 include_once './Modules/Survey/classes/class.ilSurveyPageGUI.php';
118 $pg = new ilSurveyPageGUI($this->object, $this);
119 $this->ctrl->forwardCommand($pg);
120 break;
121
122 default:
123 // question gui
124 if (stristr($next_class, "questiongui")) {
125 $ilTabs->clearTargets();
126 $this->ctrl->saveParameter($this, array("new_for_survey"));
127
128 include_once "./Modules/SurveyQuestionPool/classes/class.SurveyQuestionGUI.php";
129 $q_gui = SurveyQuestionGUI::_getQuestionGUI(null, $_REQUEST["q_id"]);
130 if (is_object($q_gui->object)) {
131 $ilHelp = $this->help;
132 $ilHelp->setScreenIdComponent("spl_qt" . $q_gui->object->getQuestionTypeId());
133 }
134 // $q_gui->object->setObjId($this->object->getId());
135 $q_gui->setBackUrl($this->ctrl->getLinkTarget($this, "questions"));
136 $q_gui->setQuestionTabs();
137 $this->ctrl->forwardCommand($q_gui);
138
139 if (!(int) $_REQUEST["new_for_survey"]) {
140 // not on create
141 $this->tpl->setTitle($this->lng->txt("question") . ": " . $q_gui->object->getTitle());
142 }
143 } else {
144 $cmd .= "Object";
145 $this->$cmd();
146 }
147 break;
148 }
149 }
static _getQuestionGUI($questiontype, $question_id=-1)
Creates a question gui representation.
Survey per page view.

References $help, $tabs, SurveyQuestionGUI\_getQuestionGUI(), and questionsSubtabs().

+ Here is the call graph for this function:

◆ executeCopyQuestionsToPoolObject()

ilSurveyEditorGUI::executeCopyQuestionsToPoolObject ( )

Definition at line 587 of file class.ilSurveyEditorGUI.php.

588 {
589 $question_ids = explode(";", $_POST["question_ids"]);
590 $pool_id = ilObject::_lookupObjId($_POST["sel_spl"]);
591
592 foreach ($question_ids as $qid) {
593 // create copy (== pool "original")
594 $new_question = ilObjSurvey::_instanciateQuestion($qid);
595 $new_question->setId();
596 $new_question->setObjId($pool_id);
597 $new_question->saveToDb();
598
599 // link "source" (survey) to copy (pool)
600 SurveyQuestion::_changeOriginalId($qid, $new_question->getId(), $pool_id);
601 }
602
603 ilUtil::sendSuccess($this->lng->txt("survey_copy_to_questionpool_success"), true);
604 $this->ctrl->redirect($this, "questions");
605 }
static _changeOriginalId($a_question_id, $a_original_id, $a_object_id)
Change original id of existing question in db.
static _lookupObjId($a_id)

References $_POST, SurveyQuestion\_changeOriginalId(), ilObjSurvey\_instanciateQuestion(), and ilObject\_lookupObjId().

+ Here is the call graph for this function:

◆ executeCreateQuestionObject()

ilSurveyEditorGUI::executeCreateQuestionObject ( )

Definition at line 670 of file class.ilSurveyEditorGUI.php.

671 {
672 $_SESSION["svy_qpool_choice"] = $_POST["usage"];
673
674 $q_type = $_GET["sel_question_types"];
675
676 // no pool
677 if ($_POST["usage"] == 1) {
678 $obj_id = $this->object->getId();
679 }
680 // existing pool
681 elseif ($_POST["usage"] == 3 && strlen($_POST["sel_spl"])) {
682 $obj_id = ilObject::_lookupObjId($_POST["sel_spl"]);
683 }
684 // new pool
685 elseif ($_POST["usage"] == 2 && strlen($_POST["name_spl"])) {
686 $obj_id = $this->createQuestionPool($_POST["name_spl"]);
687 } else {
688 if (!$_POST["usage"]) {
689 ilUtil::sendFailure($this->lng->txt("select_one"), true);
690 } else {
691 ilUtil::sendFailure($this->lng->txt("err_no_pool_name"), true);
692 }
693 $this->ctrl->setParameter($this, "sel_question_types", $q_type);
694 $this->ctrl->redirect($this, "createQuestion");
695 }
696
697
698 // create question and redirect to question form
699
700 include_once "./Modules/SurveyQuestionPool/classes/class.SurveyQuestionGUI.php";
701 $q_gui = SurveyQuestionGUI::_getQuestionGUI($q_type);
702 $q_gui->object->setObjId($obj_id); // survey/pool!
703 $q_gui->object->createNewQuestion();
704 $q_gui_class = get_class($q_gui);
705
706 if ($_REQUEST["pgov"]) {
707 $this->ctrl->setParameterByClass($q_gui_class, "pgov", $_REQUEST["pgov"]);
708 $this->ctrl->setParameterByClass($q_gui_class, "pgov_pos", $_REQUEST["pgov_pos"]);
709 }
710
711 $this->ctrl->setParameterByClass($q_gui_class, "ref_id", $this->object->getRefId());
712 $this->ctrl->setParameterByClass($q_gui_class, "new_for_survey", $this->object->getRefId());
713 $this->ctrl->setParameterByClass($q_gui_class, "q_id", $q_gui->object->getId());
714 $this->ctrl->setParameterByClass($q_gui_class, "sel_question_types", $q_gui->getQuestionType());
715 $this->ctrl->redirectByClass($q_gui_class, "editQuestion");
716 }
createQuestionPool($name="dummy")
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.

References $_GET, $_POST, $_SESSION, SurveyQuestionGUI\_getQuestionGUI(), ilObject\_lookupObjId(), createQuestionPool(), and ilUtil\sendFailure().

Referenced by createQuestionObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ filterQuestionblockBrowserObject()

ilSurveyEditorGUI::filterQuestionblockBrowserObject ( )

Definition at line 870 of file class.ilSurveyEditorGUI.php.

871 {
872 include_once "./Modules/Survey/classes/tables/class.ilSurveyQuestionblockbrowserTableGUI.php";
873 $table_gui = new ilSurveyQuestionblockbrowserTableGUI($this, 'browseForQuestionblocks', $this->object);
874 $table_gui->writeFilterToSession();
875 $this->ctrl->redirect($this, 'browseForQuestionblocks');
876 }

◆ filterQuestionBrowserObject()

ilSurveyEditorGUI::filterQuestionBrowserObject ( )

Definition at line 798 of file class.ilSurveyEditorGUI.php.

799 {
800 include_once "./Modules/Survey/classes/tables/class.ilSurveyQuestionbrowserTableGUI.php";
801 $table_gui = new ilSurveyQuestionbrowserTableGUI($this, 'browseForQuestions', $this->object);
802 $table_gui->writeFilterToSession();
803 $this->ctrl->redirect($this, 'browseForQuestions');
804 }

◆ gatherSelectedTableItems()

ilSurveyEditorGUI::gatherSelectedTableItems (   $allow_blocks = true,
  $allow_questions = true,
  $allow_headings = false,
  $allow_questions_in_blocks = false 
)
protected

Gather (and filter) selected items from table gui.

Parameters
bool$allow_blocks
bool$allow_questions
bool$allow_headings
bool$allow_questions_in_blocks
Returns
array (questions, blocks, headings)

Definition at line 301 of file class.ilSurveyEditorGUI.php.

302 {
303 $block_map = array();
304 foreach ($this->object->getSurveyQuestions() as $item) {
305 $block_map[$item["question_id"]] = $item["questionblock_id"];
306 }
307
308 $questions = $blocks = $headings = array();
309 if ($_POST["id"]) {
310 foreach ($_POST["id"] as $key) {
311 // questions
312 if ($allow_questions && preg_match("/cb_(\d+)/", $key, $matches)) {
313 if (($allow_questions_in_blocks || !$block_map[$matches[1]]) &&
314 !in_array($block_map[$matches[1]], $blocks)) {
315 array_push($questions, $matches[1]);
316 }
317 }
318 // blocks
319 if ($allow_blocks && preg_match("/cb_qb_(\d+)/", $key, $matches)) {
320 array_push($blocks, $matches[1]);
321 }
322 // headings
323 if ($allow_headings && preg_match("/cb_tb_(\d+)/", $key, $matches)) {
324 array_push($headings, $matches[1]);
325 }
326 }
327 }
328
329 return array("questions" => $questions,
330 "blocks" => $blocks,
331 "headings" => $headings);
332 }

References $_POST, and $key.

Referenced by copyQuestionsToPoolObject(), createQuestionblockObject(), insertQuestions(), moveQuestionsObject(), removeQuestionsObject(), and unfoldQuestionblockObject().

+ Here is the caller graph for this function:

◆ initHeadingForm()

ilSurveyEditorGUI::initHeadingForm (   $a_question_id = null)
protected

Definition at line 1058 of file class.ilSurveyEditorGUI.php.

1059 {
1060 $survey_questions = $this->object->getSurveyQuestions();
1061
1062 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1063 $form = new ilPropertyFormGUI();
1064 $form->setFormAction($this->ctrl->getFormAction($this, ""));
1065
1066 // heading
1067 $heading = new ilTextAreaInputGUI($this->lng->txt("heading"), "heading");
1068 $heading->setRows(10);
1069 $heading->setCols(80);
1070 $heading->setUseRte(true);
1071 include_once "./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
1072 $heading->setRteTags(ilObjAdvancedEditing::_getUsedHTMLTags("survey"));
1073 $heading->removePlugin(ilRTE::ILIAS_IMG_MANAGER_PLUGIN);
1074 $heading->setRTESupport($this->object->getId(), "svy", "survey");
1075 $heading->setRequired(true);
1076 $form->addItem($heading);
1077
1078 $insertbefore = new ilSelectInputGUI($this->lng->txt("insert"), "insertbefore");
1079 $options = array();
1080 foreach ($survey_questions as $key => $value) {
1081 $options[$key] = $this->lng->txt("before") . ": \"" . $value["title"] . "\"";
1082 }
1083 $insertbefore->setOptions($options);
1084 $insertbefore->setRequired(true);
1085 $form->addItem($insertbefore);
1086
1087 $form->addCommandButton("saveHeading", $this->lng->txt("save"));
1088 $form->addCommandButton("questions", $this->lng->txt("cancel"));
1089
1090 if ($a_question_id) {
1091 $form->setTitle($this->lng->txt("edit_heading"));
1092
1093 $heading->setValue($this->object->prepareTextareaOutput($survey_questions[$a_question_id]["heading"]));
1094 $insertbefore->setValue($a_question_id);
1095 $insertbefore->setDisabled(true);
1096 } else {
1097 $form->setTitle($this->lng->txt("add_heading"));
1098 }
1099
1100 return $form;
1101 }
static _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
const ILIAS_IMG_MANAGER_PLUGIN
Definition: class.ilRTE.php:14
This class represents a text area property in a property form.

References $form, $key, PHPMailer\PHPMailer\$options, ilObjAdvancedEditing\_getUsedHTMLTags(), and ilRTE\ILIAS_IMG_MANAGER_PLUGIN.

Referenced by addHeadingObject(), editHeadingObject(), and saveHeadingObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initQuestionblockForm()

ilSurveyEditorGUI::initQuestionblockForm (   $a_block_id = null,
  $a_question_ids = null 
)
protected

Definition at line 965 of file class.ilSurveyEditorGUI.php.

966 {
967 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
968 $form = new ilPropertyFormGUI();
969 $form->setFormAction($this->ctrl->getFormAction($this, "saveDefineQuestionblock"));
970 $form->setTitle($this->lng->txt("define_questionblock"));
971
972 $title = new ilTextInputGUI($this->lng->txt("title"), "title");
973 $title->setRequired(true);
974 $form->addItem($title);
975
976 $toggle_blocktitle = new ilCheckboxInputGUI($this->lng->txt("survey_show_blocktitle"), "show_blocktitle");
977 $toggle_blocktitle->setInfo($this->lng->txt("survey_show_blocktitle_description"));
978 $form->addItem($toggle_blocktitle);
979
980 $toggle_questiontitle = new ilCheckboxInputGUI($this->lng->txt("show_questiontext"), "show_questiontext");
981 $toggle_questiontitle->setInfo($this->lng->txt("show_questiontext_description"));
982 $form->addItem($toggle_questiontitle);
983
984 if ($a_block_id) {
985 $questionblock = ilObjSurvey::_getQuestionblock($a_block_id);
986 $title->setValue($questionblock["title"]);
987 $toggle_blocktitle->setChecked($questionblock["show_blocktitle"]);
988 $toggle_questiontitle->setChecked($questionblock["show_questiontext"]);
989 } else {
990 $toggle_blocktitle->setChecked(true);
991 $toggle_questiontitle->setChecked(true);
992 }
993
994 $form->addCommandButton("saveDefineQuestionblock", $this->lng->txt("save"));
995 $form->addCommandButton("questions", $this->lng->txt("cancel"));
996
997 // reload?
998 if (!$a_question_ids && $_POST["qids"]) {
999 $a_question_ids = $_POST["qids"];
1000 }
1001
1002 if ($a_question_ids) {
1003 foreach ($a_question_ids as $q_id) {
1004 $hidden = new ilHiddenInputGUI("qids[]");
1005 $hidden->setValue($q_id);
1006 $form->addItem($hidden);
1007 }
1008 }
1009
1010 return $form;
1011 }
This class represents a checkbox property in a property form.
static _getQuestionblock($questionblock_id)
Returns the database row for a given question block.

References $_POST, $form, $title, and ilObjSurvey\_getQuestionblock().

Referenced by createQuestionblockObject(), editQuestionblockObject(), and saveDefineQuestionblockObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ insertQuestionblocksObject()

ilSurveyEditorGUI::insertQuestionblocksObject ( )

Definition at line 886 of file class.ilSurveyEditorGUI.php.

887 {
888 $inserted_objects = 0;
889 if (is_array($_POST['cb'])) {
890 if ($_REQUEST["pgov"]) {
891 include_once "Modules/Survey/classes/class.ilSurveyPageGUI.php";
892 $page_gui = new ilSurveyPageGUI($this->object, $this);
893 $page_gui->determineCurrentPage();
894
895 // as target position is predefined, insert in reverse order
896 $_POST['cb'] = array_reverse($_POST['cb']);
897 }
898 foreach ($_POST['cb'] as $questionblock_id) {
899 if (!$_REQUEST["pgov"]) {
900 $this->object->insertQuestionblock($questionblock_id);
901 } else {
902 $page_gui->insertQuestionblock($questionblock_id);
903 }
904 $inserted_objects++;
905 }
906 }
907 if ($inserted_objects) {
908 $this->object->saveCompletionStatus();
909 ilUtil::sendSuccess(($inserted_objects == 1) ? $this->lng->txt("questionblock_inserted") : $this->lng->txt("questionblocks_inserted"), true);
910 if (!$_REQUEST["pgov"]) {
911 $this->ctrl->redirect($this, "questions");
912 } else {
913 $target_page = $_REQUEST["pgov"];
914 if (substr($_REQUEST["pgov_pos"], -1) == "c") {
915 $target_page++;
916 }
917 $this->ctrl->setParameterByClass("ilsurveypagegui", "pgov", $target_page);
918 $this->ctrl->redirectByClass("ilsurveypagegui", "renderpage");
919 }
920 } else {
921 ilUtil::sendInfo($this->lng->txt("insert_missing_questionblock"), true);
922 $this->ctrl->redirect($this, 'browseForQuestionblocks');
923 }
924 }

References $_POST, and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ insertQuestions()

ilSurveyEditorGUI::insertQuestions (   $insert_mode)
protected

Definition at line 413 of file class.ilSurveyEditorGUI.php.

414 {
415 $insert_id = null;
416 if ($_POST["id"]) {
417 $items = $this->gatherSelectedTableItems(true, true, false, false);
418
419 // we are using POST id for original order
420 while (!$insert_id && sizeof($_POST["id"])) {
421 $target = array_shift($_POST["id"]);
422 if (preg_match("/^cb_(\d+)$/", $target, $matches)) {
423 // questions in blocks are not allowed
424 if (in_array($matches[1], $items["questions"])) {
425 $insert_id = $matches[1];
426 }
427 }
428 if (!$insert_id && preg_match("/^cb_qb_(\d+)$/", $target, $matches)) {
429 $ids = $this->object->getQuestionblockQuestionIds($matches[1]);
430 if (count($ids)) {
431 if ($insert_mode == 0) {
432 $insert_id = $ids[0];
433 } elseif ($insert_mode == 1) {
434 $insert_id = $ids[count($ids) - 1];
435 }
436 }
437 }
438 }
439 }
440
441 if (!$insert_id) {
442 ilUtil::sendInfo($this->lng->txt("no_target_selected_for_move"), true);
443 } else {
444 ilUtil::sendSuccess($this->lng->txt('msg_obj_modified'), true);
445 $this->object->moveQuestions($_SESSION["move_questions"], $insert_id, $insert_mode);
446 unset($_SESSION["move_questions"]);
447 unset($_SESSION["move_questions_survey_id"]);
448 }
449
450 $this->ctrl->redirect($this, "questions");
451 }
$target
Definition: test.php:19

References $_POST, $_SESSION, $target, gatherSelectedTableItems(), and ilUtil\sendInfo().

Referenced by insertQuestionsAfterObject(), and insertQuestionsBeforeObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ insertQuestionsAfterObject()

ilSurveyEditorGUI::insertQuestionsAfterObject ( )

Definition at line 408 of file class.ilSurveyEditorGUI.php.

409 {
410 $this->insertQuestions(1);
411 }

References insertQuestions().

+ Here is the call graph for this function:

◆ insertQuestionsBeforeObject()

ilSurveyEditorGUI::insertQuestionsBeforeObject ( )

Definition at line 403 of file class.ilSurveyEditorGUI.php.

404 {
405 $this->insertQuestions(0);
406 }

References insertQuestions().

+ Here is the call graph for this function:

◆ insertQuestionsObject()

ilSurveyEditorGUI::insertQuestionsObject ( )

Definition at line 814 of file class.ilSurveyEditorGUI.php.

815 {
816 $inserted_objects = 0;
817 if (is_array($_POST['q_id'])) {
818 if ($_REQUEST["pgov"]) {
819 include_once "Modules/Survey/classes/class.ilSurveyPageGUI.php";
820 $page_gui = new ilSurveyPageGUI($this->object, $this);
821 $page_gui->determineCurrentPage();
822
823 // as target position is predefined, insert in reverse order
824 $_POST['q_id'] = array_reverse($_POST['q_id']);
825 }
826 foreach ($_POST['q_id'] as $question_id) {
827 if (!$_REQUEST["pgov"]) {
828 $this->object->insertQuestion($question_id);
829 } else {
830 // target position (pgov pos) is processed there
831 $page_gui->insertNewQuestion($question_id);
832 }
833 $inserted_objects++;
834 }
835 }
836 if ($inserted_objects) {
837 $this->object->saveCompletionStatus();
838 ilUtil::sendSuccess($this->lng->txt("questions_inserted"), true);
839 if (!$_REQUEST["pgov"]) {
840 $this->ctrl->redirect($this, "questions");
841 } else {
842 $target_page = $_REQUEST["pgov"];
843 if (substr($_REQUEST["pgov_pos"], -1) == "c") {
844 // see ilSurveyPageGUI::insertNewQuestion()
845 if ((int) $_REQUEST["pgov_pos"]) {
846 $target_page++;
847 } else {
848 $target_page = 1;
849 }
850 }
851 $this->ctrl->setParameterByClass("ilsurveypagegui", "pgov", $target_page);
852 $this->ctrl->redirectByClass("ilsurveypagegui", "renderpage");
853 }
854 } else {
855 ilUtil::sendInfo($this->lng->txt("insert_missing_question"), true);
856 $this->ctrl->redirect($this, 'browseForQuestions');
857 }
858 }

References $_POST, and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ moveQuestionsObject()

ilSurveyEditorGUI::moveQuestionsObject ( )

Definition at line 382 of file class.ilSurveyEditorGUI.php.

383 {
384 $items = $this->gatherSelectedTableItems(true, true, false, false);
385
386 $move_questions = $items["questions"];
387 foreach ($items["blocks"] as $block_id) {
388 foreach ($this->object->getQuestionblockQuestionIds($block_id) as $qid) {
389 array_push($move_questions, $qid);
390 }
391 }
392 if (count($move_questions) == 0) {
393 ilUtil::sendInfo($this->lng->txt("no_question_selected_for_move"), true);
394 $this->ctrl->redirect($this, "questions");
395 } else {
396 $_SESSION["move_questions"] = $move_questions;
397 $_SESSION["move_questions_survey_id"] = $this->object->getId();
398 ilUtil::sendInfo($this->lng->txt("select_target_position_for_move_question"));
399 $this->questionsObject();
400 }
401 }

References $_SESSION, gatherSelectedTableItems(), questionsObject(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ printViewObject()

ilSurveyEditorGUI::printViewObject ( )

Creates a print view of the survey questions.

@access public

Definition at line 1193 of file class.ilSurveyEditorGUI.php.

1194 {
1195 $ilToolbar = $this->toolbar;
1196
1197 $this->questionsSubtabs("print");
1198
1199 #21023 and #19448
1200 if (!$current_title = (int) $_REQUEST['export_label']) {
1201 $current_title = $this->object->getShowQuestionTitles();
1202 }
1203 /*if(!isset($_POST["export_label"]))
1204 {fir
1205 $_POST["export_label"] = $this->object->getShowQuestionTitles();
1206 }
1207 $current_title = (int)$_REQUEST["export_label"];
1208 */
1209
1210 include_once "Services/Form/classes/class.ilSelectInputGUI.php";
1211 $label = new ilSelectInputGUI($this->lng->txt("title") . "/" . $this->lng->txt("label"), "export_label");
1212
1213 #19448 comment none and label only options.
1214 $label->setOptions($this->print_options);
1215 $label->setValue($current_title);
1216
1217 $ilToolbar->addStickyItem($label, true);
1218
1219 $ilToolbar->setFormAction($this->ctrl->getFormAction($this, "printView"));
1220
1221 include_once "Services/UIComponent/Button/classes/class.ilSubmitButton.php";
1222 $button = ilSubmitButton::getInstance();
1223 $button->setCaption("show");
1224 $button->setCommand("printView");
1225 $ilToolbar->addStickyItem($button);
1226
1227 $ilToolbar->addSeparator();
1228
1229 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
1230 $button = ilLinkButton::getInstance();
1231 $button->setCaption("print");
1232 $button->setOnClick("window.print(); return false;");
1233 $button->setOmitPreventDoubleSubmission(true);
1234 $ilToolbar->addButtonInstance($button);
1235
1236 include_once './Services/WebServices/RPC/classes/class.ilRPCServerSettings.php';
1237 if (ilRPCServerSettings::getInstance()->isEnabled()) {
1238 $this->ctrl->setParameter($this, "export_label", $current_title);
1239 $this->ctrl->setParameter($this, "pdf", "1");
1240 $pdf_url = $this->ctrl->getLinkTarget($this, "printView");
1241 $this->ctrl->setParameter($this, "pdf", "");
1242 $this->ctrl->setParameter($this, "export_label", "");
1243
1244 $button = ilLinkButton::getInstance();
1245 $button->setCaption("pdf_export");
1246 $button->setUrl($pdf_url);
1247 $button->setOmitPreventDoubleSubmission(true);
1248 $ilToolbar->addButtonInstance($button);
1249 }
1250
1251 // defer rendering of tex to fo processing
1252 if (array_key_exists("pdf", $_GET) && ($_GET["pdf"] == 1)) {
1253 require_once('Services/MathJax/classes/class.ilMathJax.php');
1255 }
1256
1257 $template = new ilTemplate("tpl.il_svy_svy_printview.html", true, true, "Modules/Survey");
1258
1259 $pages = &$this->object->getSurveyPages();
1260 $required = false;
1261 foreach ($pages as $page) {
1262 if (count($page) > 0) {
1263 foreach ($page as $question) {
1264 $questionGUI = $this->object->getQuestionGUI($question["type_tag"], $question["question_id"]);
1265 if (is_object($questionGUI)) {
1266 if (strlen($question["heading"])) {
1267 $template->setCurrentBlock("textblock");
1268 $template->setVariable("TEXTBLOCK", $question["heading"]);
1269 $template->parseCurrentBlock();
1270 }
1271 $template->setCurrentBlock("question");
1272 $template->setVariable("QUESTION_DATA", $questionGUI->getPrintView($current_title, $question["questionblock_show_questiontext"], $this->object->getSurveyId()));
1273 $template->parseCurrentBlock();
1274
1275 if ($question["obligatory"]) {
1276 $required = true;
1277 }
1278 }
1279 }
1280 if (count($page) > 1 && $page[0]["questionblock_show_blocktitle"]) {
1281 $template->setCurrentBlock("page");
1282 $template->setVariable("BLOCKTITLE", $page[0]["questionblock_title"]);
1283 $template->parseCurrentBlock();
1284 } else {
1285 $template->setCurrentBlock("page");
1286 $template->parseCurrentBlock();
1287 }
1288 }
1289 }
1290
1291 // #6412
1292 if ($required) {
1293 $template->setVariable("TEXT_REQUIRED", $this->lng->txt("required_field"));
1294 }
1295
1296 // $this->tpl->addCss("./Modules/Survey/templates/default/survey_print.css", "print");
1297 if (array_key_exists("pdf", $_GET) && ($_GET["pdf"] == 1)) {
1298 $printbody = new ilTemplate("tpl.il_as_tst_print_body.html", true, true, "Modules/Test");
1299 $printbody->setVariable("TITLE", sprintf($this->lng->txt("tst_result_user_name"), $uname));
1300 $printbody->setVariable("ADM_CONTENT", $template->get());
1301 $printoutput = $printbody->get();
1302 $printoutput = preg_replace("/href=\".*?\"/", "", $printoutput);
1303 $fo = $this->object->processPrintoutput2FO($printoutput);
1304
1305 // render tex as fo graphics
1306 require_once('Services/MathJax/classes/class.ilMathJax.php');
1309 ->setRendering(ilMathJax::RENDER_PNG_AS_FO_FILE)
1310 ->insertLatexImages($fo);
1311
1312 // #11436
1313 if (!$fo || !$this->object->deliverPDFfromFO($fo)) {
1314 ilUtil::sendFailure($this->lng->txt("msg_failed"), true);
1315 $this->ctrl->redirect($this, "printView");
1316 }
1317 } else {
1318 $this->tpl->setVariable("ADM_CONTENT", $template->get());
1319 }
1320 }
static getInstance()
Factory.
static getInstance()
Singleton: get instance.
const PURPOSE_PDF
const PURPOSE_DEFERRED_PDF
const RENDER_PNG_AS_FO_FILE
static getInstance()
Get singelton instance.
static getInstance()
Factory.
special template class to simplify handling of ITX/PEAR
$template

References $_GET, $template, $toolbar, ilMathJax\getInstance(), ilLinkButton\getInstance(), ilSubmitButton\getInstance(), ilRPCServerSettings\getInstance(), ilMathJax\PURPOSE_DEFERRED_PDF, ilMathJax\PURPOSE_PDF, questionsSubtabs(), ilMathJax\RENDER_PNG_AS_FO_FILE, and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ questionsObject()

ilSurveyEditorGUI::questionsObject ( )

Definition at line 209 of file class.ilSurveyEditorGUI.php.

210 {
211 $ilToolbar = $this->toolbar;
213
214 // insert new questions?
215 if ($_GET["new_id"] > 0) {
216 // add a question to the survey previous created in a questionpool
217 $existing = $this->object->getExistingQuestions();
218 if (!in_array($_GET["new_id"], $existing)) {
219 $inserted = $this->object->insertQuestion($_GET["new_id"]);
220 if (!$inserted) {
221 ilUtil::sendFailure($this->lng->txt("survey_error_insert_incomplete_question"));
222 }
223 }
224 }
225
226 $this->questionsSubtabs("questions");
227
228 $hasDatasets = ilObjSurvey::_hasDatasets($this->object->getSurveyId());
229 $read_only = $hasDatasets;
230
231 // toolbar
232 if (!$read_only) {
233 $qtypes = array();
234 include_once "./Modules/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPool.php";
235 foreach (ilObjSurveyQuestionPool::_getQuestiontypes() as $translation => $data) {
236 $qtypes[$data["type_tag"]] = $translation;
237 }
238
239 $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
240 include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
241 $types = new ilSelectInputGUI($this->lng->txt("create_new"), "sel_question_types");
242 $types->setOptions($qtypes);
243 $ilToolbar->addStickyItem($types, "");
244
245 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
246 include_once "Services/UIComponent/Button/classes/class.ilSubmitButton.php";
247
248 $button = ilSubmitButton::getInstance();
249 $button->setCaption("svy_create_question");
250 $button->setCommand("createQuestion");
251 $ilToolbar->addStickyItem($button);
252
253 if ($this->object->isPoolActive()) {
254 $ilToolbar->addSeparator();
255
256 $cmd = ($ilUser->getPref('svy_insert_type') == 1 ||
257 strlen($ilUser->getPref('svy_insert_type')) == 0)
258 ? 'browseForQuestions'
259 : 'browseForQuestionblocks';
260
261 $button = ilLinkButton::getInstance();
262 $button->setCaption("browse_for_questions");
263 $button->setUrl($this->ctrl->getLinkTarget($this, $cmd));
264 $ilToolbar->addStickyItem($button);
265 }
266
267 $ilToolbar->addSeparator();
268
269 $button = ilLinkButton::getInstance();
270 $button->setCaption("add_heading");
271 $button->setUrl($this->ctrl->getLinkTarget($this, "addHeading"));
272 $ilToolbar->addInputItem($button);
273 }
274 $mess = "";
275 if ($hasDatasets) {
277 $mess = $mbox->getHTML();
278 }
279
280 // table gui
281
282 include_once "Modules/Survey/classes/class.ilSurveyQuestionTableGUI.php";
284 $this,
285 "questions",
286 $this->object,
287 $read_only
288 );
289 $this->tpl->setContent($mess . $table->getHTML());
290 }
static _getQuestiontypes()
Creates a list of all available question types.
static _hasDatasets($survey_id)
Message box for survey, when data is alrady available.
Survey question table GUI class.
if(empty($password)) $table
Definition: pwgen.php:24
$data
Definition: bench.php:6

References $_GET, $data, $ilUser, $table, $toolbar, $user, ilObjSurveyQuestionPool\_getQuestiontypes(), ilObjSurvey\_hasDatasets(), ilLinkButton\getInstance(), ilSubmitButton\getInstance(), questionsSubtabs(), and ilUtil\sendFailure().

Referenced by moveQuestionsObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ questionsSubtabs()

ilSurveyEditorGUI::questionsSubtabs (   $a_cmd)
protected

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

152 {
153 $ilTabs = $this->tabs;
154
155 if ($a_cmd == "questions" && $_REQUEST["pgov"]) {
156 $a_cmd = "page";
157 }
158
159 $hidden_tabs = array();
160 $template = $this->object->getTemplate();
161 if ($template) {
162 include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
164 $hidden_tabs = $template->getHiddenTabs();
165 }
166
167 $ilTabs->addSubTab(
168 "page",
169 $this->lng->txt("survey_per_page_view"),
170 $this->ctrl->getLinkTargetByClass("ilsurveypagegui", "renderPage")
171 );
172
173 if (!in_array("survey_question_editor", $hidden_tabs)) {
174 $this->ctrl->setParameter($this, "pgov", "");
175 $ilTabs->addSubTab(
176 "questions",
177 $this->lng->txt("survey_question_editor"),
178 $this->ctrl->getLinkTarget($this, "questions")
179 );
180 $this->ctrl->setParameter($this, "pgov", $_REQUEST["pgov"]);
181 }
182
183 $ilTabs->addSubTab(
184 "print",
185 $this->lng->txt("print_view"),
186 $this->ctrl->getLinkTarget($this, "printView")
187 );
188
189 if ($this->object->getSurveyPages()) {
190 if ($a_cmd == "page") {
191 $this->ctrl->setParameterByClass("ilsurveyexecutiongui", "pgov", max(1, $_REQUEST["pg"]));
192 }
193 $this->ctrl->setParameterByClass("ilsurveyexecutiongui", "prvw", 1);
194 $ilTabs->addSubTab(
195 "preview",
196 $this->lng->txt("preview"),
197 $this->ctrl->getLinkTargetByClass(array("ilobjsurveygui", "ilsurveyexecutiongui"), "preview")
198 );
199 }
200
201 $ilTabs->activateSubTab($a_cmd);
202 }
Settings template application class.

References $tabs, and $template.

Referenced by addHeadingObject(), copyQuestionsToPoolObject(), createQuestionblockObject(), createQuestionObject(), editHeadingObject(), editQuestionblockObject(), executeCommand(), printViewObject(), questionsObject(), and removeHeadingObject().

+ Here is the caller graph for this function:

◆ removeHeadingObject()

ilSurveyEditorGUI::removeHeadingObject ( )

Definition at line 1155 of file class.ilSurveyEditorGUI.php.

1156 {
1157 $q_id = (int) $_REQUEST["q_id"];
1158 $this->ctrl->setParameter($this, "q_id", $q_id);
1159
1160 if (!$q_id) {
1161 $this->ctrl->redirect($this, "questions");
1162 }
1163
1164 $this->questionsSubtabs("questions");
1165
1166 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
1167 $cgui = new ilConfirmationGUI();
1168 $cgui->setHeaderText($this->lng->txt("confirm_remove_heading"));
1169
1170 $cgui->setFormAction($this->ctrl->getFormAction($this, "confirmedRemoveHeading"));
1171 $cgui->setCancel($this->lng->txt("cancel"), "questions");
1172 $cgui->setConfirm($this->lng->txt("confirm"), "confirmedRemoveHeading");
1173
1174 $this->tpl->setContent($cgui->getHTML());
1175 }
Confirmation screen class.

References questionsSubtabs().

+ Here is the call graph for this function:

◆ removeQuestionsForm()

ilSurveyEditorGUI::removeQuestionsForm (   $checked_questionblocks,
  $checked_questions,
  $checked_headings 
)

Definition at line 466 of file class.ilSurveyEditorGUI.php.

467 {
468 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
469 $cgui = new ilConfirmationGUI();
470 $cgui->setHeaderText($this->lng->txt("survey_sure_delete_questions"));
471
472 $cgui->setFormAction($this->ctrl->getFormAction($this, "confirmRemoveQuestions"));
473 $cgui->setCancel($this->lng->txt("cancel"), "questions");
474 $cgui->setConfirm($this->lng->txt("confirm"), "confirmRemoveQuestions");
475
476 $counter = 0;
477 $surveyquestions = &$this->object->getSurveyQuestions();
478 include_once "./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
479 foreach ($surveyquestions as $question_id => $data) {
480 if (in_array($data["question_id"], $checked_questions)) {
482
483 $cgui->addItem(
484 "id_" . $data["question_id"],
485 $data["question_id"],
486 $type . ": " . $data["title"]
487 );
488 } elseif ((in_array($data["questionblock_id"], $checked_questionblocks))) {
490
491 $cgui->addItem(
492 "id_qb_" . $data["questionblock_id"],
493 $data["questionblock_id"],
494 $data["questionblock_title"] . " - " . $type . ": " . $data["title"]
495 );
496 } elseif (in_array($data["question_id"], $checked_headings)) {
497 $cgui->addItem(
498 "id_tb_" . $data["question_id"],
499 $data["question_id"],
500 $data["heading"]
501 );
502 }
503 }
504
505 $this->tpl->setContent($cgui->getHTML());
506 }
static _getQuestionTypeName($type_tag)
Return the translation for a given question type tag.
$type

References $data, $type, and SurveyQuestion\_getQuestionTypeName().

Referenced by removeQuestionsObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ removeQuestionsObject()

ilSurveyEditorGUI::removeQuestionsObject ( )

Definition at line 453 of file class.ilSurveyEditorGUI.php.

454 {
455 $items = $this->gatherSelectedTableItems(true, true, true, true);
456 if (count($items["blocks"]) + count($items["questions"]) + count($items["headings"]) > 0) {
457 ilUtil::sendQuestion($this->lng->txt("remove_questions"));
458 $this->removeQuestionsForm($items["blocks"], $items["questions"], $items["headings"]);
459 return;
460 } else {
461 ilUtil::sendInfo($this->lng->txt("no_question_selected_for_removal"), true);
462 $this->ctrl->redirect($this, "questions");
463 }
464 }
removeQuestionsForm($checked_questionblocks, $checked_questions, $checked_headings)
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.

References gatherSelectedTableItems(), removeQuestionsForm(), ilUtil\sendInfo(), and ilUtil\sendQuestion().

+ Here is the call graph for this function:

◆ resetfilterQuestionblockBrowserObject()

ilSurveyEditorGUI::resetfilterQuestionblockBrowserObject ( )

Definition at line 878 of file class.ilSurveyEditorGUI.php.

879 {
880 include_once "./Modules/Survey/classes/tables/class.ilSurveyQuestionblockbrowserTableGUI.php";
881 $table_gui = new ilSurveyQuestionblockbrowserTableGUI($this, 'browseForQuestionblocks', $this->object);
882 $table_gui->resetFilter();
883 $this->ctrl->redirect($this, 'browseForQuestionblocks');
884 }

◆ resetfilterQuestionBrowserObject()

ilSurveyEditorGUI::resetfilterQuestionBrowserObject ( )

Definition at line 806 of file class.ilSurveyEditorGUI.php.

807 {
808 include_once "./Modules/Survey/classes/tables/class.ilSurveyQuestionbrowserTableGUI.php";
809 $table_gui = new ilSurveyQuestionbrowserTableGUI($this, 'browseForQuestions', $this->object);
810 $table_gui->resetFilter();
811 $this->ctrl->redirect($this, 'browseForQuestions');
812 }

◆ saveDefineQuestionblockObject()

ilSurveyEditorGUI::saveDefineQuestionblockObject ( )

Definition at line 1013 of file class.ilSurveyEditorGUI.php.

1014 {
1015 $block_id = (int) $_REQUEST["bl_id"];
1016 $q_ids = $_POST["qids"];
1017
1018 $this->ctrl->setParameter($this, "bl_id", $block_id);
1019
1020 if (!$block_id && !is_array($q_ids)) {
1021 $this->ctrl->redirect($this, "questions");
1022 }
1023
1024 $form = $this->initQuestionblockForm($block_id);
1025 if ($form->checkInput()) {
1026 $title = $form->getInput("title");
1027 $show_questiontext = $form->getInput("show_questiontext");
1028 $show_blocktitle = $form->getInput("show_blocktitle") ;
1029 if ($block_id) {
1030 $this->object->modifyQuestionblock(
1031 $block_id,
1032 $title,
1033 $show_questiontext,
1034 $show_blocktitle
1035 );
1036 } elseif ($q_ids) {
1037 $this->object->createQuestionblock(
1038 $title,
1039 $show_questiontext,
1040 $show_blocktitle,
1041 $q_ids
1042 );
1043 }
1044
1045 ilUtil::sendSuccess($this->lng->txt('msg_obj_modified'), true);
1046 $this->ctrl->redirect($this, "questions");
1047 }
1048
1049 $form->setValuesByPost();
1051 }
editQuestionblockObject(ilPropertyFormGUI $a_form=null)

References $_POST, $form, $title, editQuestionblockObject(), and initQuestionblockForm().

+ Here is the call graph for this function:

◆ saveHeadingObject()

ilSurveyEditorGUI::saveHeadingObject ( )

Definition at line 1131 of file class.ilSurveyEditorGUI.php.

1132 {
1133 // #15474
1134 $q_id = (int) $_REQUEST["q_id"];
1135 $this->ctrl->setParameter($this, "q_id", $q_id);
1136
1137 $form = $this->initHeadingForm($q_id);
1138 if ($form->checkInput()) {
1139 include_once "./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
1140 $this->object->saveHeading(
1142 $form->getInput("heading"),
1143 true,
1145 ),
1146 $form->getInput("insertbefore")
1147 );
1148 $this->ctrl->redirect($this, "questions");
1149 }
1150
1151 $form->setValuesByPost();
1152 $this->addHeadingObject($form);
1153 }
static _getUsedHTMLTagsAsString($a_module="")
Returns a string of all allowed HTML tags for text editing.
addHeadingObject(ilPropertyFormGUI $a_form=null)
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled

References $form, ilObjAdvancedEditing\_getUsedHTMLTagsAsString(), addHeadingObject(), initHeadingForm(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ saveObligatoryObject()

ilSurveyEditorGUI::saveObligatoryObject ( )

Definition at line 334 of file class.ilSurveyEditorGUI.php.

335 {
336 if (isset($_POST["order"])) {
337 $position = -1;
338 $order = array();
339 asort($_POST["order"]);
340 foreach (array_keys($_POST["order"]) as $id) {
341 // block items
342 if (substr($id, 0, 3) == "qb_") {
343 $block_id = substr($id, 3);
344 $block = $_POST["block_order"][$block_id];
345 asort($block);
346 foreach (array_keys($block) as $question_id) {
347 $position++;
348 $order[$question_id] = $position;
349 }
350 } else {
351 $question_id = substr($id, 2);
352 $position++;
353 $order[$question_id] = $position;
354 }
355 }
356 $this->object->updateOrder($order);
357 }
358
359 $obligatory = array();
360 foreach ($_POST as $key => $value) {
361 if (preg_match("/obligatory_(\d+)/", $key, $matches)) {
362 $obligatory[$matches[1]] = 1;
363 }
364 }
365 $this->object->setObligatoryStates($obligatory);
366 ilUtil::sendSuccess($this->lng->txt('msg_obj_modified'), true);
367 $this->ctrl->redirect($this, "questions");
368 }
if(!array_key_exists('StateId', $_REQUEST)) $id

References $_POST, $id, and $key.

◆ setBrowseForQuestionsSubtabs()

ilSurveyEditorGUI::setBrowseForQuestionsSubtabs ( )
protected

Definition at line 744 of file class.ilSurveyEditorGUI.php.

745 {
746 $ilTabs = $this->tabs;
747 $ilToolbar = $this->toolbar;
749
750 if (!isset($_REQUEST["pgov"])) {
751 $link = $this->ctrl->getLinkTarget($this, "questions");
752 } else {
753 $link = $this->ctrl->getLinkTargetByClass("ilsurveypagegui", "renderpage");
754 }
755 $ilTabs->setBackTarget($this->lng->txt("menubacktosurvey"), $link);
756
757 // type selector
758 include_once "Services/Form/classes/class.ilSelectInputGUI.php";
759 $types = new ilSelectInputGUI($this->lng->txt("display_all_available"), "datatype");
760 $types->setOptions(array(
761 1 => $this->lng->txt("questions"),
762 2 => $this->lng->txt("questionblocks")
763 ));
764 $types->setValue($ilUser->getPref('svy_insert_type'));
765 $ilToolbar->addInputItem($types, true);
766 $ilToolbar->addFormButton($this->lng->txt("change"), "changeDatatype");
767 $ilToolbar->setFormAction($this->ctrl->getFormAction($this, "changeDatatype"));
768 }

References $ilUser, $tabs, $toolbar, and $user.

Referenced by browseForQuestionblocksObject(), and browseForQuestionsObject().

+ Here is the caller graph for this function:

◆ unfoldQuestionblockObject()

ilSurveyEditorGUI::unfoldQuestionblockObject ( )

Definition at line 370 of file class.ilSurveyEditorGUI.php.

371 {
372 $items = $this->gatherSelectedTableItems(true, false, false, false);
373 if (count($items["blocks"])) {
374 ilUtil::sendSuccess($this->lng->txt('msg_obj_modified'), true);
375 $this->object->unfoldQuestionblocks($items["blocks"]);
376 } else {
377 ilUtil::sendInfo($this->lng->txt("qpl_unfold_select_none"), true);
378 }
379 $this->ctrl->redirect($this, "questions");
380 }

References gatherSelectedTableItems(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

Field Documentation

◆ $ctrl

ilSurveyEditorGUI::$ctrl
protected

Definition at line 21 of file class.ilSurveyEditorGUI.php.

◆ $help

ilSurveyEditorGUI::$help
protected

Definition at line 41 of file class.ilSurveyEditorGUI.php.

Referenced by executeCommand().

◆ $lng

ilSurveyEditorGUI::$lng
protected

Definition at line 26 of file class.ilSurveyEditorGUI.php.

Referenced by __construct().

◆ $object

ilSurveyEditorGUI::$object
protected

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

◆ $parent_gui

ilSurveyEditorGUI::$parent_gui
protected

Definition at line 58 of file class.ilSurveyEditorGUI.php.

◆ $print_options

ilSurveyEditorGUI::$print_options
protected

Definition at line 64 of file class.ilSurveyEditorGUI.php.

◆ $tabs

ilSurveyEditorGUI::$tabs
protected

◆ $toolbar

ilSurveyEditorGUI::$toolbar
protected

◆ $tpl

ilSurveyEditorGUI::$tpl
protected

Definition at line 31 of file class.ilSurveyEditorGUI.php.

Referenced by __construct().

◆ $tree

ilSurveyEditorGUI::$tree
protected

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

Referenced by createQuestionPool().

◆ $user

ilSurveyEditorGUI::$user
protected

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