ILIAS  release_8 Revision v8.24
ilSurveyPageEditGUI Class Reference

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V. More...

+ Collaboration diagram for ilSurveyPageEditGUI:

Public Member Functions

 __construct (ilObjSurvey $a_survey, ilSurveyEditorGUI $a_survey_editor_gui)
 
 executeCommand ()
 
 determineCurrentPage ()
 
 insertNewQuestion (int $a_new_id)
 Add new question to survey. More...
 
 insertQuestionBlock (int $a_block_id)
 Copy and insert questions from block. More...
 
 getPageNodes (array $a_questions, bool $a_has_previous_page=false, bool $a_has_next_page=false, bool $a_readonly=false)
 
 renderPageNode (ilTemplate $a_tpl, string $a_type, string $a_id, ?string $a_content=null, ?array $a_menu=null, bool $a_spacer=false, string $a_subtitle="", ?string $a_status=null, ?string $a_heading=null)
 Render single node of dnd page view. More...
 
 getAutoBlockTitle ()
 Get name for newly created blocks. More...
 
 addPoolQuestion (string $pos, string $node)
 
 printViewSelection ()
 

Protected Member Functions

 appendNewQuestionToSurvey (int $a_new_id, bool $a_duplicate=true, bool $a_force_duplicate=false)
 Add new question to survey (database part) More...
 
 addQuestion (int $a_type, bool $a_use_pool, string $a_pos, string $a_special_position)
 Call add question to survey form. More...
 
 cutQuestion (int $a_id)
 Add question to be cut to clipboard. More...
 
 copyQuestion (int $a_id)
 Add question to be copied to clipboard. More...
 
 multiCut (array $a_id)
 Add questions to be cut to clipboard. More...
 
 multiCopy (array $a_id)
 Add questions to be copied to clipboard. More...
 
 clearClipboard ()
 Empty clipboard. More...
 
 paste (int $a_id)
 Paste from clipboard. More...
 
 dnd ()
 Move questions in page. More...
 
 deleteBlock ()
 Confirm removing question block. More...
 
 deleteQuestion (array $a_id)
 Confirm removing question(s) from survey. More...
 
 confirmRemoveQuestions ()
 Remove question(s) from survey. More...
 
 editBlock (int $a_id)
 Edit question block. More...
 
 addHeading (int $a_id)
 Add heading to question. More...
 
 editHeading (int $a_id)
 Edit question heading. More...
 
 deleteHeading (int $a_id)
 Delete question heading. More...
 
 callEditor (string $a_cmd, string $a_param, string $a_value)
 
 splitPage (int $a_id)
 Split current page in 2 pages. More...
 
 moveNext (int $a_id)
 Move question to next page. More...
 
 movePrevious (int $a_id)
 Move question to previous page. More...
 
 editQuestion (int $a_id)
 
 addQuestionToolbarForm ()
 Add question to survey form (used in toolbar) More...
 
 addQuestionToolbar ()
 Add question to survey action (used in toolbar) More...
 
 movePageForm ()
 Move current page. More...
 
 movePage ()
 Move current page to new position. More...
 
 renderToolbar (?array $a_pages)
 Render toolbar form. More...
 
 renderPage ()
 render questions per page More...
 

Protected Attributes

ILIAS Survey PrintView GUIService $print
 
ILIAS HTTP Services $http
 
ILIAS DI UIServices $ui
 
bool $suppress_clipboard_msg = false
 
string $pgov
 
ILIAS Survey Editing EditingGUIRequest $svy_request
 
ILIAS Survey Editing EditManager $edit_manager
 
ilCtrl $ctrl
 
ilRbacSystem $rbacsystem
 
ilDBInterface $db
 
ilTabsGUI $tabs
 
ilGlobalTemplateInterface $tpl
 
ilToolbarGUI $toolbar
 
ilObjUser $user
 
int $ref_id
 
ilLanguage $lng
 
ilObjSurvey $object
 
ilSurveyEditorGUI $editor_gui
 
int $current_page = null
 
bool $has_previous_page
 
bool $has_next_page
 
bool $has_datasets
 
bool $use_pool
 
ilLogger $log
 

Detailed Description

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V.

ILIAS is licensed with the GPL-3.0, see https://www.gnu.org/licenses/gpl-3.0.en.html You should have received a copy of said license along with the source code, too.

If this is not the case or you just want to try ILIAS, you'll find us at: https://www.ilias.de https://github.com/ILIAS-eLearning Survey per page view

Author
Jörg Lützenkirchen <luetz.nosp@m.enki.nosp@m.rchen.nosp@m.@lei.nosp@m.fos.c.nosp@m.om @ilCtrl_Calls ilSurveyPageEditGUI:

Definition at line 25 of file class.ilSurveyPageEditGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilSurveyPageEditGUI::__construct ( ilObjSurvey  $a_survey,
ilSurveyEditorGUI  $a_survey_editor_gui 
)

Definition at line 52 of file class.ilSurveyPageEditGUI.php.

55 {
56 global $DIC;
57
58 $this->lng = $DIC->language();
59 $this->ctrl = $DIC->ctrl();
60 $this->rbacsystem = $DIC->rbac()->system();
61 $this->db = $DIC->database();
62 $this->tabs = $DIC->tabs();
63 $this->tpl = $DIC["tpl"];
64 $this->toolbar = $DIC->toolbar();
65 $this->user = $DIC->user();
66 $this->editor_gui = $a_survey_editor_gui;
67 $this->ref_id = $a_survey->getRefId();
68 $this->object = $a_survey;
69 $this->log = ilLoggerFactory::getLogger("svy");
70 $this->edit_manager = $DIC->survey()
71 ->internal()
72 ->domain()
73 ->edit();
74 $this->svy_request = $DIC->survey()
75 ->internal()
76 ->gui()
77 ->editing()
78 ->request();
79 $this->pgov = $this->svy_request->getTargetPosition();
80 $this->ui = $DIC->ui();
81 $this->http = $DIC->http();
82 $this->print = $DIC->survey()
83 ->internal()
84 ->gui()
85 ->print();
86 }
static getLogger(string $a_component_id)
Get component logger.
global $DIC
Definition: feed.php:28
static http()
Fetches the global http state from ILIAS.

References $DIC, ILIAS\Repository\ctrl(), ilLoggerFactory\getLogger(), ilObject\getRefId(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), ILIAS\Repository\tabs(), ILIAS\Repository\toolbar(), ILIAS\Repository\ui(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

Member Function Documentation

◆ addHeading()

ilSurveyPageEditGUI::addHeading ( int  $a_id)
protected

Add heading to question.

Definition at line 829 of file class.ilSurveyPageEditGUI.php.

829 : void
830 {
831 $this->callEditor("addHeading", "q_id", $a_id);
832 }
callEditor(string $a_cmd, string $a_param, string $a_value)

◆ addPoolQuestion()

ilSurveyPageEditGUI::addPoolQuestion ( string  $pos,
string  $node 
)

Definition at line 1749 of file class.ilSurveyPageEditGUI.php.

1752 : void {
1753 $ilCtrl = $this->ctrl;
1755
1756 if ($node === "page_end") {
1757 $pages = $this->object->getSurveyPages();
1758 $page = array_pop($pages[$this->current_page - 1]);
1759 $pos = $page["question_id"] . "a";
1760 } else {
1761 $pos .= "b";
1762 }
1763
1764 $ilCtrl->setParameter($this->editor_gui, "pgov", $this->current_page);
1765 $ilCtrl->setParameter($this->editor_gui, "pgov_pos", $pos);
1766
1767 $cmd = ((int) $ilUser->getPref('svy_insert_type') === 1 || ($ilUser->getPref('svy_insert_type') ?? '') === '') ? 'browseForQuestions' : 'browseForQuestionblocks';
1768 $ilCtrl->redirect($this->editor_gui, $cmd);
1769 }
$ilUser
Definition: imgupload.php:34

◆ addQuestion()

ilSurveyPageEditGUI::addQuestion ( int  $a_type,
bool  $a_use_pool,
string  $a_pos,
string  $a_special_position 
)
protected

Call add question to survey form.

Parameters
int$a_typequestion type
bool$a_use_pooladd question to pool
int$a_postarget position
string$a_special_positionspecial positions (toolbar | page_end)
Exceptions
ilCtrlException

Definition at line 398 of file class.ilSurveyPageEditGUI.php.

403 : bool {
404 $ilCtrl = $this->ctrl;
405 $ilTabs = $this->tabs;
406
407 // get translated type
408 $type_trans = "";
410 foreach ($questiontypes as $item) {
411 if ($item["questiontype_id"] == $a_type) {
412 $type_trans = $item["type_tag"];
413 }
414 }
415
416 $id = $a_pos;
417
418 // new page behind current (from toolbar)
419 if ($a_special_position === "toolbar") {
420 $id = $this->object->getSurveyPages();
421 if ($a_pos && $a_pos !== "fst") {
422 $id = $id[(int) $a_pos - 1];
423 $id = array_pop($id);
424 $id = $id["question_id"] . "c";
425 } else {
426 $id = "0c";
427 }
428 }
429 // append current page
430 elseif ($a_special_position === "page_end") {
431 $id = $this->object->getSurveyPages();
432 $id = $id[$this->current_page - 1];
433 $id = array_pop($id);
434 $id = $id["question_id"] . "a";
435 } else {
436 $id .= "b";
437 }
438
439 if ($a_use_pool) {
440 $ilCtrl->setParameter($this->editor_gui, "pgov_pos", $id);
441 $ilCtrl->setParameter($this->editor_gui, "sel_question_types", $type_trans);
442 if ($this->svy_request->getPoolUsage() === 0) {
443 $ilTabs->clearSubTabs(); // #17193
444 $this->editor_gui->createQuestionObject(null, $type_trans, $id);
445 } else {
446 $this->editor_gui->executeCreateQuestionObject($type_trans, null, $id);
447 }
448 return true;
449 } else {
450 // create question and redirect to question form
451
452 $q_gui = SurveyQuestionGUI::_getQuestionGUI($type_trans);
453 $q_gui->object->setObjId($this->object->getId());
454 $q_gui->object->createNewQuestion();
455 $q_gui_class = get_class($q_gui);
456
457 // #12531
458 $ilCtrl->setParameterByClass($q_gui_class, "pgov", $this->current_page);
459 $ilCtrl->setParameterByClass($q_gui_class, "pgov_pos", $id);
460 $ilCtrl->setParameterByClass($q_gui_class, "ref_id", $this->ref_id);
461 $ilCtrl->setParameterByClass($q_gui_class, "new_for_survey", $this->ref_id);
462 $ilCtrl->setParameterByClass($q_gui_class, "q_id", $q_gui->object->getId());
463 $ilCtrl->setParameterByClass($q_gui_class, "sel_question_types", $q_gui->getQuestionType());
464 $ilCtrl->redirectByClass($q_gui_class, "editQuestion");
465 }
466 return false;
467 }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
static _getQuestionGUI(?string $questiontype, int $question_id=-1)
Creates a question gui representation.
static _getQuestiontypes()
Get all available question types.

Referenced by executeCommand().

+ Here is the caller graph for this function:

◆ addQuestionToolbar()

ilSurveyPageEditGUI::addQuestionToolbar ( )
protected

Add question to survey action (used in toolbar)

Definition at line 1092 of file class.ilSurveyPageEditGUI.php.

1092 : void
1093 {
1094 $ilCtrl = $this->ctrl;
1095 $lng = $this->lng;
1096
1097 $pool_active = $this->object->getPoolUsage();
1098
1099 if ($this->svy_request->getPoolUsage() === 0 && $pool_active) {
1100 $this->tpl->setOnScreenMessage('failure', $lng->txt("select_one"), true);
1101 $this->addQuestionToolbarForm();
1102 return;
1103 }
1104
1105 // make sure that it is set for current and next requests
1106 $ilCtrl->setParameter($this->editor_gui, "pgov", $this->current_page);
1107 if (!$this->addQuestion(
1108 $this->svy_request->getQuestionType(),
1109 $pool_active,
1110 $this->pgov,
1111 "toolbar"
1112 )) {
1113 $this->renderPage();
1114 }
1115 }
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
renderPage()
render questions per page
addQuestion(int $a_type, bool $a_use_pool, string $a_pos, string $a_special_position)
Call add question to survey form.
addQuestionToolbarForm()
Add question to survey form (used in toolbar)

References $lng.

◆ addQuestionToolbarForm()

ilSurveyPageEditGUI::addQuestionToolbarForm ( )
protected

Add question to survey form (used in toolbar)

Definition at line 1036 of file class.ilSurveyPageEditGUI.php.

1036 : void
1037 {
1038 $lng = $this->lng;
1039 $ilCtrl = $this->ctrl;
1040 $tpl = $this->tpl;
1041
1042 $form = new ilPropertyFormGUI();
1043 $form->setFormAction($ilCtrl->getFormAction($this, "addQuestionToolbar"));
1044 $form->setTitle($lng->txt("survey_add_new_question"));
1045
1046 // question types
1048 $type_map = array();
1049 foreach ($questiontypes as $trans => $item) {
1050 $type_map[$item["questiontype_id"]] = $trans;
1051 }
1052 $si = new ilSelectInputGUI($lng->txt("question_type"), "qtype");
1053 $si->setOptions($type_map);
1054 $form->addItem($si);
1055
1056 $pages = $this->object->getSurveyPages();
1057 if ($pages) {
1058 $pages_drop = array("fst" => $lng->txt("survey_at_beginning"));
1059 foreach ($pages as $idx => $questions) {
1060 $question = array_shift($questions);
1061 if ($question["questionblock_id"]) {
1062 $pages_drop[$idx + 1] = $lng->txt("survey_behind_page") . " " . $question["questionblock_title"];
1063 } else {
1064 $pages_drop[$idx + 1] = $lng->txt("survey_behind_page") . " " . strip_tags($question["title"]);
1065 }
1066 }
1067 $pos = new ilSelectInputGUI($lng->txt("position"), "pgov");
1068 $pos->setOptions($pages_drop);
1069 $form->addItem($pos);
1070
1071 $pos->setValue($this->current_page);
1072 } else {
1073 // #9089: 1st page
1074 $pos = new ilHiddenInputGUI("pgov");
1075 $pos->setValue("fst");
1076 $form->addItem($pos);
1077 }
1078
1079 if ($this->object->getPoolUsage()) {
1080 $this->editor_gui->createQuestionObject($form);
1081 }
1082
1083 $form->addCommandButton("addQuestionToolbar", $lng->txt("create"));
1084 $form->addCommandButton("renderPage", $lng->txt("cancel"));
1085
1086 $tpl->setContent($form->getHTML());
1087 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This class represents a property form user interface.
This class represents a selection list property in a property form.
ilGlobalTemplateInterface $tpl
setContent(string $a_html)
Sets content for standard template.

References $lng, $tpl, ilObjSurveyQuestionPool\_getQuestiontypes(), and ILIAS\Repository\object().

+ Here is the call graph for this function:

◆ appendNewQuestionToSurvey()

ilSurveyPageEditGUI::appendNewQuestionToSurvey ( int  $a_new_id,
bool  $a_duplicate = true,
bool  $a_force_duplicate = false 
)
protected

Add new question to survey (database part)

Todo:
: move out of GUI class, see also ilObjSurvey->insertQuestion
Returns
int survey question id

Definition at line 210 of file class.ilSurveyPageEditGUI.php.

214 : int {
216 $this->log->debug("append question, id: " . $a_new_id . ", duplicate: " . $a_duplicate . ", force: " . $a_force_duplicate);
217
218 // get maximum sequence index in test
219 $result = $ilDB->queryF(
220 "SELECT survey_question_id FROM svy_svy_qst WHERE survey_fi = %s",
221 array('integer'),
222 array($this->object->getSurveyId())
223 );
224 $sequence = $result->numRows();
225
226 // create duplicate if pool question (or forced for question blocks copy)
227 if ($a_duplicate) {
228 // this does nothing if this is not a pool question and $a_force_duplicate is false
229 $survey_question_id = $this->object->duplicateQuestionForSurvey($a_new_id, $a_force_duplicate);
230 }
231 // used by copy & paste
232 else {
233 $survey_question_id = $a_new_id;
234 }
235
236 // check if question is not already in the survey, see #22018
237 if ($this->object->isQuestionInSurvey($survey_question_id)) {
238 return $survey_question_id;
239 }
240 // append to survey
241 $next_id = $ilDB->nextId('svy_svy_qst');
242 $affectedRows = $ilDB->manipulateF(
243 "INSERT INTO svy_svy_qst (survey_question_id, survey_fi," .
244 "question_fi, sequence, tstamp) VALUES (%s, %s, %s, %s, %s)",
245 array('integer', 'integer', 'integer', 'integer', 'integer'),
246 array($next_id, $this->object->getSurveyId(), $survey_question_id, $sequence, time())
247 );
248
249 $this->log->debug("insert svy_svy_qst, id: " . $next_id . ", qfi: " . $survey_question_id . ", seq: " . $sequence);
250
251 return $survey_question_id;
252 }

◆ callEditor()

ilSurveyPageEditGUI::callEditor ( string  $a_cmd,
string  $a_param,
string  $a_value 
)
protected

Definition at line 850 of file class.ilSurveyPageEditGUI.php.

854 : void {
855 $ilTabs = $this->tabs;
856
857 $ilTabs->clearSubTabs();
859
860 $ctrl->setParameter($this->editor_gui, $a_param, $a_value);
861 $ctrl->redirect($this->editor_gui, $a_cmd);
862
863 //$_REQUEST[$a_param] = $a_value;
864 //call_user_func(array($this->editor_gui, $a_cmd));
865 }
redirect(object $a_gui_obj, string $a_cmd=null, string $a_anchor=null, bool $is_async=false)
@inheritDoc
setParameter(object $a_gui_obj, string $a_parameter, $a_value)
@inheritDoc

◆ clearClipboard()

ilSurveyPageEditGUI::clearClipboard ( )
protected

Empty clipboard.

Definition at line 551 of file class.ilSurveyPageEditGUI.php.

551 : void
552 {
553 $this->edit_manager->clearQuestionClipboard($this->ref_id);
554 }

◆ confirmRemoveQuestions()

ilSurveyPageEditGUI::confirmRemoveQuestions ( )
protected

Remove question(s) from survey.

Definition at line 768 of file class.ilSurveyPageEditGUI.php.

768 : void
769 {
770 $ilCtrl = $this->ctrl;
771 $ids = $this->svy_request->getQuestionIds();
772
773 $pages = $this->object->getSurveyPages();
774 $source = $pages[$this->current_page - 1];
775
776 $block_id = $source;
777 $block_id = array_shift($block_id);
778 $block_id = $block_id["questionblock_id"];
779
780 if (count($ids) && count($source) > count($ids)) {
781 // block is obsolete
782 if (count($source) - count($ids) === 1) {
783 $this->object->unfoldQuestionblocks(array($block_id));
784 }
785 // block will remain, remove question(s) from block
786 else {
787 foreach ($ids as $qid) {
788 $this->object->removeQuestionFromBlock($qid, $block_id);
789 }
790 }
791
792 $this->object->removeQuestions($ids, array());
793 }
794 // all items on page
795 else {
796 // remove complete block
797 if ($block_id) {
798 $this->object->removeQuestions(array(), array($block_id));
799 }
800 // remove single question
801 else {
802 $this->object->removeQuestions($ids, array());
803 }
804
805 // render previous page
806 if ($this->current_page > 1) {
807 $this->current_page--;
808 }
809 }
810
811 $this->object->saveCompletionStatus();
812
813 // #10567
814 $ilCtrl->setParameter($this, "pgov", $this->current_page);
815 $ilCtrl->redirect($this, "renderPage");
816 }
$source
Definition: metadata.php:93

References $source.

◆ copyQuestion()

ilSurveyPageEditGUI::copyQuestion ( int  $a_id)
protected

Add question to be copied to clipboard.

Definition at line 490 of file class.ilSurveyPageEditGUI.php.

490 : void
491 {
493
494 $this->tpl->setOnScreenMessage('success', $lng->txt("survey_questions_to_clipboard_copy"));
495 $this->suppress_clipboard_msg = true;
496
497 $this->edit_manager->setQuestionClipboard(
498 $this->ref_id,
499 $this->current_page,
500 "copy",
501 array($a_id)
502 );
503 }

References $lng.

◆ cutQuestion()

ilSurveyPageEditGUI::cutQuestion ( int  $a_id)
protected

Add question to be cut to clipboard.

Definition at line 472 of file class.ilSurveyPageEditGUI.php.

472 : void
473 {
475
476 $this->tpl->setOnScreenMessage('success', $lng->txt("survey_questions_to_clipboard_cut"));
477 $this->suppress_clipboard_msg = true;
478
479 $this->edit_manager->setQuestionClipboard(
480 $this->ref_id,
481 $this->current_page,
482 "cut",
483 array($a_id)
484 );
485 }

References $lng.

◆ deleteBlock()

ilSurveyPageEditGUI::deleteBlock ( )
protected

Confirm removing question block.

Definition at line 727 of file class.ilSurveyPageEditGUI.php.

727 : void
728 {
730 $ilCtrl = $this->ctrl;
731
732 $ilCtrl->setParameter($this->editor_gui, "pgov", $this->current_page);
733 $this->tpl->setOnScreenMessage('question', $lng->txt("remove_questions"));
734
735 $page = $this->object->getSurveyPages();
736 $page = $page[$this->current_page - 1];
737
738 // #10567
739 if ($this->svy_request->getCheckSum() !== md5(print_r($page, true))) {
740 $ilCtrl->redirect($this, "renderPage");
741 }
742
743 $page = array_shift($page);
744 $block_id = $page["questionblock_id"];
745 if ($block_id) {
746 $this->editor_gui->removeQuestionsForm(array($block_id), array(), array());
747 } else {
748 $this->editor_gui->removeQuestionsForm(array(), array($page["question_id"]), array());
749 }
750 }

References $lng.

◆ deleteHeading()

ilSurveyPageEditGUI::deleteHeading ( int  $a_id)
protected

Delete question heading.

Definition at line 845 of file class.ilSurveyPageEditGUI.php.

845 : void
846 {
847 $this->callEditor("removeHeading", "q_id", $a_id);
848 }

◆ deleteQuestion()

ilSurveyPageEditGUI::deleteQuestion ( array  $a_id)
protected

Confirm removing question(s) from survey.

Parameters
array$a_id
Exceptions
ilCtrlException

Definition at line 758 of file class.ilSurveyPageEditGUI.php.

758 : void
759 {
760 $ilCtrl = $this->ctrl;
761 $ilCtrl->setParameter($this->editor_gui, "pgov", $this->current_page);
762 $this->editor_gui->removeQuestionsForm(array(), $a_id, array());
763 }

Referenced by executeCommand().

+ Here is the caller graph for this function:

◆ determineCurrentPage()

ilSurveyPageEditGUI::determineCurrentPage ( )

Definition at line 184 of file class.ilSurveyPageEditGUI.php.

184 : void
185 {
186 $current_page = null;
187 $jump = $this->svy_request->getJump();
188 if ($jump != "") {
189 $jump_parts = explode("__", $jump);
190 $current_page = (int) ($jump_parts[0] ?? 1);
191 }
192
193 if (!$current_page) {
195 }
196 if (!$current_page) {
197 $current_page = $this->svy_request->getPage();
198 }
199 if (!$current_page) {
200 $current_page = 1;
201 }
202 $this->current_page = (int) $current_page;
203 }

References $current_page, $pgov, and ILIAS\Repository\int().

Referenced by executeCommand().

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

◆ dnd()

ilSurveyPageEditGUI::dnd ( )
protected

Move questions in page.

Definition at line 704 of file class.ilSurveyPageEditGUI.php.

704 : void
705 {
706 $source_arr = explode("_", $this->svy_request->getHForm("source"));
707 $target_arr = explode("_", $this->svy_request->getHForm("target"));
708 $source_id = (int) array_pop($source_arr);
709 if ($this->svy_request->getHForm("target") !== "droparea_end") {
710 $target_id = (int) array_pop($target_arr);
711 $pos = 0;
712 } else {
713 $page = $this->object->getSurveyPages();
714 $page = $page[$this->current_page - 1];
715 $last = array_pop($page);
716 $target_id = (int) $last["question_id"];
717 $pos = 1;
718 }
719 if ($source_id !== $target_id) {
720 $this->object->moveQuestions(array($source_id), $target_id, $pos);
721 }
722 }
$target_id
Definition: goto.php:52
$target_arr
Definition: goto.php:50

References $target_arr, $target_id, and ILIAS\Repository\int().

+ Here is the call graph for this function:

◆ editBlock()

ilSurveyPageEditGUI::editBlock ( int  $a_id)
protected

Edit question block.

Definition at line 821 of file class.ilSurveyPageEditGUI.php.

821 : void
822 {
823 $this->callEditor("editQuestionblock", "bl_id", $a_id);
824 }

◆ editHeading()

ilSurveyPageEditGUI::editHeading ( int  $a_id)
protected

Edit question heading.

Definition at line 837 of file class.ilSurveyPageEditGUI.php.

837 : void
838 {
839 $this->callEditor("editHeadingObject", "q_id", $a_id);
840 }

◆ editQuestion()

ilSurveyPageEditGUI::editQuestion ( int  $a_id)
protected

Definition at line 1019 of file class.ilSurveyPageEditGUI.php.

1019 : void
1020 {
1021 $ilCtrl = $this->ctrl;
1022
1023 $data = $this->object->getSurveyQuestions();
1024 $data = $data[$a_id];
1025
1026 $q_gui = $data["type_tag"] . "GUI";
1027 $ilCtrl->setParameterByClass($q_gui, "pgov", $this->current_page);
1028 $ilCtrl->setParameterByClass($q_gui, "q_id", $a_id);
1029
1030 $ilCtrl->redirectByClass($q_gui, "editQuestion");
1031 }

References $data.

◆ executeCommand()

ilSurveyPageEditGUI::executeCommand ( )

Definition at line 88 of file class.ilSurveyPageEditGUI.php.

88 : void
89 {
91 $ilCtrl = $this->ctrl;
93
94 $cmd = $ilCtrl->getCmd("renderPage");
95 $next_class = $ilCtrl->getNextClass($this);
96
97 switch ($next_class) {
98 default:
99 $this->determineCurrentPage();
100
101 $has_content = false;
102
103 if ($rbacsystem->checkAccess("write", $this->ref_id)) {
104 // add page?
105 if ($this->svy_request->getNewId()) {
106 $this->insertNewQuestion($this->svy_request->getNewId());
107 $ilCtrl->setParameter($this->editor_gui, "pgov", $this->current_page);
108 $ilCtrl->redirect($this, "questions");
109 }
110
111 // subcommands
112 if ($this->svy_request->getHForm("subcmd")) {
113 $subcmd = $this->svy_request->getHForm("subcmd");
114
115 // make sure that it is set for current and next requests
116 $ilCtrl->setParameter($this->editor_gui, "pgov", $this->current_page);
117 $this->pgov = $this->current_page;
118 // this is necessary, since ILIAS 7
119 // wrote the REQUEST parameter
120 $this->editor_gui->setRequestedPgov($this->pgov);
121
122 $id = explode("_", $this->svy_request->getHForm("node"));
123 $id = (int) ($id[1] ?? 0);
124
125 // multi operation
126 if (strpos($this->svy_request->getHForm("subcmd"), "multi") === 0) {
127 if ($this->svy_request->getHForm("multi")) {
128 // removing types as we only allow questions anyway
129 $id = array();
130 foreach (explode(";", $this->svy_request->getHForm("multi")) as $item) {
131 $item_arr = explode("_", $item);
132 $id[] = (int) array_pop($item_arr);
133 }
134
135 if ($subcmd === "multiDelete") {
136 $subcmd = "deleteQuestion";
137 }
138 } elseif ($subcmd === "multiDelete") {
139 // #9525
140 $this->tpl->setOnScreenMessage('failure', $lng->txt("no_checkbox"), true);
141 $ilCtrl->redirect($this, "renderPage");
142 } else {
143 $this->tpl->setOnScreenMessage('failure', $lng->txt("no_checkbox"));
144 }
145 }
146
147 if (strpos($subcmd, "addQuestion") === 0) {
148 $type = explode("_", $subcmd);
149 $type = (int) $type[1];
150 $has_content = $this->addQuestion(
151 $type,
152 $this->object->getPoolUsage(),
153 $id,
154 $this->svy_request->getHForm("node")
155 );
156 } else {
157 switch ($subcmd) {
158 case "deleteQuestion":
159 $has_content = true;
160 $ids = (!is_array($id))
161 ? [$id]
162 : $id;
163 $this->deleteQuestion($ids);
164 break;
165 default:
166 if ($id === 0 && in_array($subcmd, ["multiCut", "multiCopy"])) {
167 $id = [];
168 }
169 $has_content = $this->$subcmd($id, $this->svy_request->getHForm("node"));
170 break;
171
172 }
173 }
174 }
175 }
176
177 if (!$has_content) {
178 $this->$cmd();
179 }
180 break;
181 }
182 }
checkAccess(string $a_operations, int $a_ref_id, string $a_type="")
checkAccess represents the main method of the RBAC-system in ILIAS3 developers want to use With this ...
deleteQuestion(array $a_id)
Confirm removing question(s) from survey.
insertNewQuestion(int $a_new_id)
Add new question to survey.
$type

References $ctrl, $current_page, $id, $lng, $rbacsystem, $type, addQuestion(), ilRbacSystem\checkAccess(), deleteQuestion(), determineCurrentPage(), insertNewQuestion(), ILIAS\Repository\int(), ILIAS\Repository\object(), and ilLanguage\txt().

+ Here is the call graph for this function:

◆ getAutoBlockTitle()

ilSurveyPageEditGUI::getAutoBlockTitle ( )

Get name for newly created blocks.

Definition at line 1743 of file class.ilSurveyPageEditGUI.php.

1743 : string
1744 {
1745 $lng = $this->lng;
1746 return $lng->txt("survey_auto_block_title");
1747 }

References $lng.

◆ getPageNodes()

ilSurveyPageEditGUI::getPageNodes ( array  $a_questions,
bool  $a_has_previous_page = false,
bool  $a_has_next_page = false,
bool  $a_readonly = false 
)
Returns
string page nodes html
Exceptions
ilCtrlException

Definition at line 1470 of file class.ilSurveyPageEditGUI.php.

1475 : string {
1476 $ilCtrl = $this->ctrl;
1477 $lng = $this->lng;
1478
1479 $ttpl = new ilTemplate("tpl.il_svy_svy_page_view_nodes.html", true, true, "Modules/Survey");
1480
1481 $has_clipboard = !$this->edit_manager->isQuestionClipboardEmpty($this->ref_id);
1482
1483 // question block ?
1484
1485 $first_question = $a_questions;
1486 $first_question = array_shift($first_question);
1487
1488 $compress_view = false;
1489 if ($first_question["questionblock_id"] ?? false) {
1490 $menu = array();
1491
1492 if (!$a_readonly && !$has_clipboard) {
1493 $menu[] = array("cmd" => "editBlock", "text" => $lng->txt("edit"));
1494 }
1495
1496 if ($first_question["questionblock_show_blocktitle"]) {
1497 $block_status = $lng->txt("survey_block_visible");
1498 } else {
1499 $block_status = $lng->txt("survey_block_hidden");
1500 }
1501
1502 $this->renderPageNode(
1503 $ttpl,
1504 "block",
1505 $first_question["questionblock_id"],
1506 $first_question["questionblock_title"] . " (" . $block_status . ")",
1507 $menu,
1508 false,
1509 false,
1510 $block_status
1511 );
1512
1513 if (count($a_questions) > 1) {
1514 $compress_view = $first_question["questionblock_compress_view"];
1515 }
1516 }
1517
1518
1519 // questions/headings
1520
1522 foreach ($a_questions as $idx => $question) {
1523 // drop area
1524
1525 $menu = array();
1526
1527 if (!$a_readonly) {
1528 if (!$has_clipboard) {
1529 foreach ($questiontypes as $trans => $item) {
1530 $menu[] = array("cmd" => "addQuestion_" . $item["questiontype_id"],
1531 "text" => sprintf($lng->txt("svy_page_add_question"), $trans));
1532 }
1533
1534 if ($this->object->getPoolUsage()) {
1535 $menu[] = array("cmd" => "addPoolQuestion",
1536 "text" => $lng->txt("browse_for_questions"));
1537 }
1538 } else {
1539 $menu[] = array("cmd" => "paste", "text" => $lng->txt("survey_dnd_paste"));
1540 }
1541 }
1542
1543 $this->renderPageNode($ttpl, "droparea", $question["question_id"], null, $menu, true);
1544
1545 // question
1546 $question_gui = $this->object->getQuestionGUI($question["type_tag"], $question["question_id"]);
1547 $question_form = $question_gui->getWorkingForm(
1548 array(),
1549 $this->object->getShowQuestionTitles(),
1550 $question["questionblock_show_questiontext"],
1551 "",
1552 $this->object->getSurveyId(),
1553 $compress_view
1554 );
1555
1556 $menu = array();
1557
1558 if (!$a_readonly && !$has_clipboard) {
1559 $menu[] = array("cmd" => "editQuestion", "text" => $lng->txt("edit"));
1560 $menu[] = array("cmd" => "cutQuestion", "text" => $lng->txt("cut"));
1561 $menu[] = array("cmd" => "copyQuestion", "text" => $lng->txt("copy"));
1562
1563 if (count($a_questions) > 1 && $idx > 0) {
1564 $menu[] = array("cmd" => "splitPage", "text" => $lng->txt("survey_dnd_split_page"));
1565 }
1566 if ($a_has_next_page) {
1567 $menu[] = array("cmd" => "moveNext", "text" => $lng->txt("survey_dnd_move_next"));
1568 }
1569 if ($a_has_previous_page) {
1570 $menu[] = array("cmd" => "movePrevious", "text" => $lng->txt("survey_dnd_move_previous"));
1571 }
1572
1573 $menu[] = array("cmd" => "deleteQuestion", "text" => $lng->txt("delete"));
1574
1575 // heading
1576 if ($question["heading"]) {
1577 $menu[] = array("cmd" => "editHeading", "text" => $lng->txt("survey_edit_heading"));
1578 $menu[] = array("cmd" => "deleteHeading", "text" => $lng->txt("survey_delete_heading"));
1579 } else {
1580 $menu[] = array("cmd" => "addHeading", "text" => $lng->txt("add_heading"));
1581 }
1582 }
1583
1584 if ($first_question["questionblock_show_questiontext"]) {
1585 $question_title_status = $lng->txt("survey_question_text_visible");
1586 } else {
1587 $question_title_status = $lng->txt("survey_question_text_hidden");
1588 }
1589
1590 $this->renderPageNode(
1591 $ttpl,
1592 "question",
1593 $question["question_id"],
1594 $question_form,
1595 $menu,
1596 false,
1597 $question["title"],
1598 $question_title_status,
1599 $question["heading"]
1600 );
1601
1602 $ilCtrl->setParameter($this, "eqid", "");
1603 }
1604
1605
1606 // last position (no question id)
1607
1608 $menu = array();
1609
1610 if (!$a_readonly) {
1611 if (!$has_clipboard) {
1612 foreach ($questiontypes as $trans => $item) {
1613 $menu[] = array("cmd" => "addQuestion_" . $item["questiontype_id"],
1614 "text" => sprintf($lng->txt("svy_page_add_question"), $trans));
1615 }
1616
1617 if ($this->object->getPoolUsage()) {
1618 $menu[] = array("cmd" => "addPoolQuestion",
1619 "text" => $lng->txt("browse_for_questions"));
1620 }
1621 } else {
1622 $menu[] = array("cmd" => "paste", "text" => $lng->txt("survey_dnd_paste"));
1623 }
1624 }
1625
1626 $this->renderPageNode($ttpl, "page", "end", null, $menu, true);
1627
1628 return $ttpl->get();
1629 }
renderPageNode(ilTemplate $a_tpl, string $a_type, string $a_id, ?string $a_content=null, ?array $a_menu=null, bool $a_spacer=false, string $a_subtitle="", ?string $a_status=null, ?string $a_heading=null)
Render single node of dnd page view.
special template class to simplify handling of ITX/PEAR

◆ insertNewQuestion()

ilSurveyPageEditGUI::insertNewQuestion ( int  $a_new_id)

Add new question to survey.

Definition at line 257 of file class.ilSurveyPageEditGUI.php.

259 : void {
261 if (!SurveyQuestion::_isComplete($a_new_id)) {
262 $this->tpl->setOnScreenMessage('failure', $lng->txt("survey_error_insert_incomplete_question"));
263 } else {
264 $a_new_id = $this->appendNewQuestionToSurvey($a_new_id);
265 $this->object->loadQuestionsFromDb();
266 $this->object->saveCompletionStatus();
267
268 $pos = $this->svy_request->getTargetQuestionPosition();
269
270 // a[fter]/b[efore] on same page
271 if (substr($pos, -1) !== "c") {
272 // block handling
273 $current = $this->object->getSurveyPages();
274 $current = $current[$this->current_page - 1];
275 if (count($current) === 1) {
276 // as questions are moved to first block question
277 // always use existing as first
278 // the new question is moved later on (see below)
279 $this->object->createQuestionblock(
280 $this->getAutoBlockTitle(),
281 true,
282 false,
283 array((int) $pos, $a_new_id)
284 );
285 } else {
286 $block_id = array_pop($current);
287 $block_id = $block_id["questionblock_id"];
288
289 $this->object->addQuestionToBlock($a_new_id, $block_id);
290 }
291 }
292 // c: as new page (from toolbar/pool)
293 elseif ((int) $pos) {
294 $pos = (int) $pos . "a";
295 $this->current_page++;
296 }
297 // at the beginning
298 else {
299 $first = $this->object->getSurveyPages();
300 $first = $first[0];
301 $first = array_shift($first);
302 $pos = $first["question_id"] . "b";
303 $this->current_page = 1;
304 }
305
306 // move to target position
307 $this->object->moveQuestions(
308 array($a_new_id),
309 (int) $pos,
310 ((substr($pos, -1) === "a") ? 1 : 0)
311 );
312
313 $this->object->fixSequenceStructure();
314 }
315 }
static _isComplete(int $question_id)
Checks whether the question is complete or not.
appendNewQuestionToSurvey(int $a_new_id, bool $a_duplicate=true, bool $a_force_duplicate=false)
Add new question to survey (database part)
getAutoBlockTitle()
Get name for newly created blocks.

References $lng.

Referenced by executeCommand().

+ Here is the caller graph for this function:

◆ insertQuestionBlock()

ilSurveyPageEditGUI::insertQuestionBlock ( int  $a_block_id)

Copy and insert questions from block.

Definition at line 320 of file class.ilSurveyPageEditGUI.php.

322 : void {
323 $new_ids = array();
324 $question_ids = $this->object->getQuestionblockQuestionIds($a_block_id);
325 foreach ($question_ids as $qid) {
326 $new_ids[] = $this->appendNewQuestionToSurvey($qid, true, true);
327 }
328
329 if (count($new_ids)) {
330 $this->object->loadQuestionsFromDb();
331
332 $pos = $this->svy_request->getTargetQuestionPosition();
333
334 // a[fter]/b[efore] on same page
335 if (substr($pos, -1) !== "c") {
336 // block handling
337 $current = $this->object->getSurveyPages();
338 $current = $current[$this->current_page - 1];
339 if (count($current) === 1) {
340 // as questions are moved to first block question
341 // always use existing as first
342 // the new question is moved later on (see below)
343 $this->object->createQuestionblock(
344 $this->getAutoBlockTitle(),
345 true,
346 false,
347 array((int) $pos) + $new_ids
348 );
349 } else {
350 $block_id = array_pop($current);
351 $block_id = $block_id["questionblock_id"];
352
353 foreach ($new_ids as $qid) {
354 $this->object->addQuestionToBlock($qid, $block_id);
355 }
356 }
357 }
358 // c: as new page (from toolbar/pool)
359 else {
360 // re-create block
361 $this->object->createQuestionblock(
362 $this->getAutoBlockTitle(),
363 true,
364 false,
365 $new_ids
366 );
367
368 // after given question
369 if ((int) $pos) {
370 $pos = (int) $pos . "a";
371 }
372 // at the beginning
373 else {
374 $first = $this->object->getSurveyPages();
375 $first = $first[0];
376 $first = array_shift($first);
377 $pos = $first["question_id"] . "b";
378 }
379 }
380
381 // move to target position
382 $this->object->moveQuestions(
383 $new_ids,
384 (int) $pos,
385 ((substr($pos, -1) === "a") ? 1 : 0)
386 );
387 }
388 }

◆ moveNext()

ilSurveyPageEditGUI::moveNext ( int  $a_id)
protected

Move question to next page.

Definition at line 916 of file class.ilSurveyPageEditGUI.php.

916 : void
917 {
918 $pages = $this->object->getSurveyPages();
919 $source = $pages[$this->current_page - 1];
920 $target = $pages[$this->current_page];
921 if (count($target)) {
922 $target_id = $target;
923 $target_id = array_shift($target_id);
924 $target_block_id = $target_id["questionblock_id"];
925 $target_id = $target_id["question_id"];
926
927 // nothing to do if no block
928 if (count($source) > 1) {
929 $block_id = $source;
930 $block_id = array_shift($block_id);
931 $block_id = $block_id["questionblock_id"];
932
933 // source pages block is obsolete
934 if (count($source) === 2) {
935 // delete block
936 $this->object->unfoldQuestionblocks(array($block_id));
937 } else {
938 // remove question from block
939 $this->object->removeQuestionFromBlock($a_id, $block_id);
940 }
941 }
942
943 // move source question to target
944 $this->object->moveQuestions(array($a_id), $target_id, 0);
945
946 // new page has no block yet
947 if (count($target) < 2) {
948 // create block and move target question and source into block
949 $this->object->createQuestionblock(
950 $this->getAutoBlockTitle(),
951 true,
952 false,
953 array($a_id, $target_id)
954 );
955 } else {
956 // add source question to block
957 $this->object->addQuestionToBlock($a_id, $target_block_id);
958 }
959
960 // only if current page is not "deleted"
961 if (count($source) > 1) {
962 $this->current_page++;
963 }
964 }
965 }

References $source, and $target_id.

◆ movePage()

ilSurveyPageEditGUI::movePage ( )
protected

Move current page to new position.

Todo:
this needs to be refactored outside of a GUI class, same with ilSurveyEditorGUI->insertQuestions

Definition at line 1165 of file class.ilSurveyPageEditGUI.php.

1165 : void
1166 {
1167 $lng = $this->lng;
1168 $ilCtrl = $this->ctrl;
1169
1170 $questions = [];
1171
1172 // current_page is already set to new position
1173 $target_page = $this->current_page - 1;
1174 $source_page = $this->svy_request->getOldPosition() - 1;
1175
1176 $pages = $this->object->getSurveyPages();
1177 foreach ($pages[$source_page] as $question) {
1178 $questions[] = $question["question_id"];
1179 }
1180
1181 // move to first position
1182 $position = 0;
1183 if ($this->pgov !== "fst") {
1184 $position = 1;
1185 }
1186
1187 $target = $pages[$target_page];
1188 if ($position === 0) { // before
1189 $target = array_shift($target); // ... use always the first question of the page
1190 } else { // after
1191 $target = array_pop($target); // ... use always the last question of the page
1192 }
1193 $this->object->moveQuestions($questions, $target["question_id"], $position);
1194
1195 if ($target_page < $source_page && $position) {
1196 $this->current_page++;
1197 }
1198
1199 $this->tpl->setOnScreenMessage('success', $lng->txt("survey_page_moved"), true);
1200 $ilCtrl->setParameter($this, "pgov", $this->current_page);
1201 $ilCtrl->redirect($this, "renderPage");
1202 }

References $lng.

◆ movePageForm()

ilSurveyPageEditGUI::movePageForm ( )
protected

Move current page.

Definition at line 1120 of file class.ilSurveyPageEditGUI.php.

1120 : void
1121 {
1122 $lng = $this->lng;
1123 $ilCtrl = $this->ctrl;
1124 $tpl = $this->tpl;
1125
1126 $form = new ilPropertyFormGUI();
1127 $form->setFormAction($ilCtrl->getFormAction($this, "movePage"));
1128 $form->setTitle($lng->txt("survey_move_page"));
1129
1130 $old_pos = new ilHiddenInputGUI("old_pos");
1131 $old_pos->setValue($this->current_page);
1132 $form->addItem($old_pos);
1133
1134 $pages = $this->object->getSurveyPages();
1135 if ($pages) {
1136 $pages_drop = array();
1137 if ((int) $this->current_page !== 1) {
1138 $pages_drop["fst"] = $lng->txt("survey_at_beginning");
1139 }
1140 foreach ($pages as $idx => $questions) {
1141 if (($idx + 1) != $this->current_page && ($idx + 2) != $this->current_page) {
1142 $question = array_shift($questions);
1143 if ($question["questionblock_id"]) {
1144 $pages_drop[$idx + 1] = $lng->txt("survey_behind_page") . " " . $question["questionblock_title"];
1145 } else {
1146 $pages_drop[$idx + 1] = $lng->txt("survey_behind_page") . " " . strip_tags($question["title"]);
1147 }
1148 }
1149 }
1150 $pos = new ilSelectInputGUI($lng->txt("position"), "pgov");
1151 $pos->setOptions($pages_drop);
1152 $form->addItem($pos);
1153 }
1154
1155 $form->addCommandButton("movePage", $lng->txt("submit"));
1156 $form->addCommandButton("renderPage", $lng->txt("cancel"));
1157
1158 $tpl->setContent($form->getHTML());
1159 }

References $lng, and $tpl.

◆ movePrevious()

ilSurveyPageEditGUI::movePrevious ( int  $a_id)
protected

Move question to previous page.

Definition at line 970 of file class.ilSurveyPageEditGUI.php.

972 : void {
973 $pages = $this->object->getSurveyPages();
974 $source = $pages[$this->current_page - 1];
975 $target = $pages[$this->current_page - 2];
976 if (count($target)) {
977 $target_id = $target;
978 $target_id = array_pop($target_id);
979 $target_block_id = $target_id["questionblock_id"];
980 $target_id = $target_id["question_id"];
981
982 // nothing to do if no block
983 if (count($source) > 1) {
984 $block_id = $source;
985 $block_id = array_shift($block_id);
986 $block_id = $block_id["questionblock_id"];
987
988 // source pages block is obsolete
989 if (count($source) === 2) {
990 // delete block
991 $this->object->unfoldQuestionblocks(array($block_id));
992 } else {
993 // remove question from block
994 $this->object->removeQuestionFromBlock($a_id, $block_id);
995 }
996 }
997
998 // move source question to target
999 $this->object->moveQuestions(array($a_id), $target_id, 1);
1000
1001 // new page has no block yet
1002 if (count($target) < 2) {
1003 // create block and move target question and source into block
1004 $this->object->createQuestionblock(
1005 $this->getAutoBlockTitle(),
1006 true,
1007 false,
1008 array($target_id, $a_id)
1009 );
1010 } else {
1011 // add source question to block
1012 $this->object->addQuestionToBlock($a_id, $target_block_id);
1013 }
1014
1015 $this->current_page--;
1016 }
1017 }

References $source, and $target_id.

◆ multiCopy()

ilSurveyPageEditGUI::multiCopy ( array  $a_id)
protected

Add questions to be copied to clipboard.

Parameters
int[]$a_idquestion ids

Definition at line 531 of file class.ilSurveyPageEditGUI.php.

531 : void
532 {
534
535 if (count($a_id) > 0) {
536 $this->tpl->setOnScreenMessage('success', $lng->txt("survey_questions_to_clipboard_copy"));
537 $this->suppress_clipboard_msg = true;
538
539 $this->edit_manager->setQuestionClipboard(
540 $this->ref_id,
541 $this->current_page,
542 "copy",
543 $a_id
544 );
545 }
546 }

References $lng.

◆ multiCut()

ilSurveyPageEditGUI::multiCut ( array  $a_id)
protected

Add questions to be cut to clipboard.

Parameters
int[]$a_idquestion ids

Definition at line 510 of file class.ilSurveyPageEditGUI.php.

510 : void
511 {
513
514 if (count($a_id) > 0) {
515 $this->tpl->setOnScreenMessage('success', $lng->txt("survey_questions_to_clipboard_cut"));
516 $this->suppress_clipboard_msg = true;
517
518 $this->edit_manager->setQuestionClipboard(
519 $this->ref_id,
520 $this->current_page,
521 "cut",
522 $a_id
523 );
524 }
525 }

References $lng.

◆ paste()

ilSurveyPageEditGUI::paste ( int  $a_id)
protected

Paste from clipboard.

Parameters
int$a_idtarget position

Definition at line 560 of file class.ilSurveyPageEditGUI.php.

560 : void
561 {
562 $source_page = $this->edit_manager->getQuestionClipboardSourcePage($this->ref_id);
563 $qids = $this->edit_manager->getQuestionClipboardQuestions($this->ref_id);
564 $mode = $this->edit_manager->getQuestionClipboardMode($this->ref_id);
565 $pages = $this->object->getSurveyPages();
566 $source = $pages[$source_page - 1];
567 $target = $pages[$this->current_page - 1];
568
569 // #12558 - use order of source page
570 $nodes = array();
571 foreach ($source as $src_qst) {
572 if (in_array($src_qst["question_id"], $qids)) {
573 $nodes[] = $src_qst["question_id"];
574 }
575 }
576
577 // append to last position?
578 $pos = 0;
579 if ($this->svy_request->getHForm("node") === "page_end") {
580 $a_id = $target;
581 $a_id = array_pop($a_id);
582 $a_id = $a_id["question_id"];
583 $pos = 1;
584 }
585
586 // cut
587 if ($mode === "cut") {
588 // special case: paste cut on same page (no block handling needed)
589 if ($source_page == $this->current_page) {
590 // re-order nodes in page
591 if (count($nodes) <= count($source)) {
592 $this->object->moveQuestions($nodes, $a_id, $pos);
593 }
594 $this->clearClipboard();
595 return;
596 } else {
597 // only if source has block
598 $source_block_id = false;
599 if (count($source) > 1) {
600 $source_block_id = $source;
601 $source_block_id = array_shift($source_block_id);
602 $source_block_id = $source_block_id["questionblock_id"];
603
604 // remove from block
605 if (count($source) > count($nodes)) {
606 foreach ($nodes as $qid) {
607 $this->object->removeQuestionFromBlock($qid, $source_block_id);
608 }
609 }
610 // remove complete block
611 else {
612 $this->object->unfoldQuestionblocks(array($source_block_id));
613 }
614 }
615
616 // page will be "deleted" by operation
617 if (count($source) === count($nodes) && $source_page < $this->current_page) {
618 $this->current_page--;
619 }
620 }
621 }
622
623 // copy
624 elseif ($mode === "copy") {
625 $titles = array();
626 foreach ($this->object->getSurveyPages() as $page) {
627 foreach ($page as $question) {
628 $titles[] = $question["title"];
629 }
630 }
631
632 // copy questions
633 $question_pointer = array();
634 foreach ($nodes as $qid) {
635 // create new questions
636 $question = ilObjSurvey::_instanciateQuestion($qid);
637 // handle exisiting copies
638 $title = $question->getTitle();
639 $max = 0;
640 foreach ($titles as $existing_title) {
641 #21278 preg_quote with delimiter
642 if (preg_match("/" . preg_quote($title, "/") . " \‍(([0-9]+)\‍)$/", $existing_title, $match)) {
643 $max = max($match[1], $max);
644 }
645 }
646 if ($max) {
647 $title .= " (" . ($max + 1) . ")";
648 } else {
649 $title .= " (2)";
650 }
651 $titles[] = $title;
652 $question->setTitle($title);
653
654 $question->id = -1;
655 $question->saveToDb();
656
657 $question_pointer[$qid] = $question->getId();
658 $this->appendNewQuestionToSurvey($question->getId(), false);
659 }
660
661 // copy textblocks
662 $this->object->cloneTextblocks($question_pointer);
663
664 $this->object->loadQuestionsFromDb();
665
666 $nodes = array_values($question_pointer);
667 }
668
669
670 // paste
671
672 // create new block
673 if (count($target) === 1) {
674 $nodes = array_merge(array($a_id), $nodes);
675
676 // moveQuestions() is called within
677 $this->object->createQuestionblock(
678 $this->getAutoBlockTitle(),
679 true,
680 false,
681 $nodes
682 );
683 }
684 // add to existing block
685 else {
686 $target_block_id = $target;
687 $target_block_id = array_shift($target_block_id);
688 $target_block_id = $target_block_id["questionblock_id"];
689
690 foreach ($nodes as $qid) {
691 $this->object->addQuestionToBlock($qid, $target_block_id);
692 }
693
694 // move to new position
695 $this->object->moveQuestions($nodes, $a_id, $pos);
696 }
697
698 $this->clearClipboard();
699 }
static _instanciateQuestion(int $question_id)
Creates an instance of a question with a given question id.

References $source, ilObjSurvey\_instanciateQuestion(), and ILIAS\Repository\object().

+ Here is the call graph for this function:

◆ printViewSelection()

ilSurveyPageEditGUI::printViewSelection ( )

Definition at line 1771 of file class.ilSurveyPageEditGUI.php.

1771 : void
1772 {
1773 $view = $this->print->page($this->ref_id);
1774 $view->sendForm();
1775 }

◆ renderPage()

ilSurveyPageEditGUI::renderPage ( )
protected

render questions per page

Alex Killing, 27 July 2018 I removed a line $tpl->addJavascript("./Services/RTE/tiny_mce_.../tiny_mce_src.js"); at the end of this function. Currently I have no idea when this tiny will be presented... Maybe a bug will come out of this during 5.4 testing

Definition at line 1351 of file class.ilSurveyPageEditGUI.php.

1351 : void
1352 {
1353 $ilCtrl = $this->ctrl;
1354 $lng = $this->lng;
1355 $tpl = $this->tpl;
1357
1358 $pages = $this->object->getSurveyPages();
1359 $this->has_next_page = ($this->current_page < count($pages));
1360 $this->has_previous_page = ($this->current_page > 1);
1361 $this->has_datasets = ilObjSurvey::_hasDatasets($this->object->getSurveyId());
1362
1363 $mess = "";
1364 if ($this->has_datasets) {
1366 $mess = $mbox->getHTML();
1367 }
1368
1369 $ilCtrl->setParameter($this, "pg", $this->current_page);
1370 $ilCtrl->setParameter($this, "pgov", "");
1371
1372 $this->renderToolbar($pages);
1373 if ($pages) {
1374 $ttpl = new ilTemplate("tpl.il_svy_svy_page_view.html", true, true, "Modules/Survey");
1375 $tpl->addOnLoadCode("ilSurveyPageView.init();");
1376 $ttpl->setVariable("FORM_ACTION", $ilCtrl->getFormAction($this));
1377 $lng->loadLanguageModule("form");
1378
1379 $read_only = ($this->has_datasets || !$rbacsystem->checkAccess("write", $this->ref_id));
1380
1381 $commands = $multi_commands = array();
1382
1383 if (!$read_only) {
1384 // clipboard is empty
1385 if ($this->edit_manager->isQuestionClipboardEmpty($this->ref_id)) {
1386 $multi_commands[] = array("cmd" => "multiDelete", "text" => $lng->txt("delete"));
1387 $multi_commands[] = array("cmd" => "multiCut", "text" => $lng->txt("cut"));
1388 $multi_commands[] = array("cmd" => "multiCopy", "text" => $lng->txt("copy"));
1389 $multi_commands[] = array("cmd" => "selectAll", "text" => $lng->txt("select_all"));
1390 } else {
1391 if (!$this->suppress_clipboard_msg) {
1392 $this->tpl->setOnScreenMessage('info', $lng->txt("survey_clipboard_notice"));
1393 }
1394 $multi_commands[] = array("cmd" => "clearClipboard", "text" => $lng->txt("survey_dnd_clear_clipboard"));
1395 }
1396
1397 // help - see ilPageObjectGUI::insertHelp()
1398 $lng->loadLanguageModule("content");
1399 $ttpl->setCurrentBlock("help_section");
1400 $ttpl->setVariable("TXT_ADD_EL", $lng->txt("cont_add_elements"));
1401 $ttpl->setVariable("PLUS", ilGlyphGUI::get(ilGlyphGUI::ADD));
1402 $ttpl->setVariable("DRAG_ARROW", ilGlyphGUI::get(ilGlyphGUI::DRAG));
1403 $ttpl->setVariable("TXT_DRAG", $lng->txt("cont_drag_and_drop_elements"));
1404 $ttpl->setVariable("TXT_SEL", $lng->txt("cont_double_click_to_delete"));
1405 $ttpl->parseCurrentBlock();
1406
1407 $ttpl->setVariable("DND_INIT_JS", "initDragElements();");
1408
1409
1410 // tiny mce
1411
1413
1420 $tiny = new ilTinyMCE();
1421 $ttpl->setVariable("WYSIWYG_BLOCKFORMATS", $tiny->_buildAdvancedBlockformatsFromHTMLTags($tags));
1422 $ttpl->setVariable("WYSIWYG_VALID_ELEMENTS", $tiny->_getValidElementsFromHTMLTags($tags));
1423
1424 $buttons_1 = $tiny->_buildAdvancedButtonsFromHTMLTags(1, $tags);
1425 $buttons_2 = $tiny->_buildAdvancedButtonsFromHTMLTags(2, $tags) . ',' .
1426 $tiny->_buildAdvancedTableButtonsFromHTMLTags($tags) .
1427 ($tiny->getStyleSelect() ? ',styleselect' : '');
1428 $buttons_3 = $tiny->_buildAdvancedButtonsFromHTMLTags(3, $tags);
1429 $ttpl->setVariable('WYSIWYG_BUTTONS_1', ilTinyMCE::removeRedundantSeparators($buttons_1));
1430 $ttpl->setVariable('WYSIWYG_BUTTONS_2', ilTinyMCE::removeRedundantSeparators($buttons_2));
1431 $ttpl->setVariable('WYSIWYG_BUTTONS_3', ilTinyMCE::removeRedundantSeparators($buttons_3));
1432 }
1433
1434 // commands
1435 if (count($multi_commands) > 0) {
1436 foreach ($multi_commands as $cmd) {
1437 $ttpl->setCurrentBlock("multi_cmd");
1438 $ttpl->setVariable("ORG_CMD_MULTI", "renderPage");
1439 $ttpl->setVariable("MULTI_CMD", $cmd["cmd"]);
1440 $ttpl->setVariable("MULTI_CMD_TXT", $cmd["text"]);
1441 $ttpl->parseCurrentBlock();
1442 }
1443
1444 $ttpl->setCurrentBlock("multi_cmds");
1445 $ttpl->setVariable("MCMD_ALT", $lng->txt("commands"));
1446 $ttpl->setVariable("MCMD_IMG", ilUtil::getImagePath("arrow_downright.svg"));
1447 $ttpl->parseCurrentBlock();
1448 }
1449
1450 // nodes
1451 $ttpl->setVariable("NODES", $this->getPageNodes(
1452 $pages[$this->current_page - 1] ?? [],
1453 $this->has_previous_page,
1454 $this->has_next_page,
1455 $read_only
1456 ));
1457
1458 $tpl->setContent($mess . $ttpl->get());
1459
1460 // add js to template
1462 $tpl->addJavaScript("./Modules/Survey/js/SurveyPageView.js");
1463 }
1464 }
static get(string $a_glyph, string $a_text="")
loadLanguageModule(string $a_module)
Load language module.
static _getUsedHTMLTags(string $a_module="")
Returns an array of all allowed HTML tags for text editing.
static _hasDatasets(int $survey_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getPageNodes(array $a_questions, bool $a_has_previous_page=false, bool $a_has_next_page=false, bool $a_readonly=false)
renderToolbar(?array $a_pages)
Render toolbar form.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static removeRedundantSeparators(string $a_string)
Removes redundant seperators and removes ,, and , at the first or last position of the string.
static getImagePath(string $img, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
static initDragDrop(?ilGlobalTemplateInterface $a_main_tpl=null)
Init YUI Drag and Drop used in Modules/Survey, Services/Calendar, Services/COPage,...
addJavaScript(string $a_js_file, bool $a_add_version_parameter=true, int $a_batch=2)
Add a javascript file that should be included in the header.
addOnLoadCode(string $a_code, int $a_batch=2)
Add on load code.

References $lng, $tpl, ilObjAdvancedEditing\_getUsedHTMLTags(), ilObjSurvey\_hasDatasets(), ilGlyphGUI\ADD, ilRbacSystem\checkAccess(), ilGlyphGUI\DRAG, ilGlyphGUI\get(), ilUtil\getImagePath(), ilYuiUtil\initDragDrop(), ILIAS\Repository\object(), and ilTinyMCE\removeRedundantSeparators().

+ Here is the call graph for this function:

◆ renderPageNode()

ilSurveyPageEditGUI::renderPageNode ( ilTemplate  $a_tpl,
string  $a_type,
string  $a_id,
?string  $a_content = null,
?array  $a_menu = null,
bool  $a_spacer = false,
string  $a_subtitle = "",
?string  $a_status = null,
?string  $a_heading = null 
)

Render single node of dnd page view.

Definition at line 1634 of file class.ilSurveyPageEditGUI.php.

1644 : void {
1645 $ilCtrl = $this->ctrl;
1646 $lng = $this->lng;
1647
1648 $node_id = $a_type . "_" . $a_id;
1649
1650 if ($a_spacer) {
1651 if ($a_menu) {
1652 // drop area menu
1653 foreach ($a_menu as $mcnt => $menu_item) {
1654 $ilCtrl->setParameter($this, "il_hform_node", $node_id);
1655 $ilCtrl->setParameter($this, "il_hform_subcmd", $menu_item["cmd"]);
1656 $url = $ilCtrl->getLinkTarget($this, "renderPage");
1657 $ilCtrl->setParameter($this, "il_hform_subcmd", "");
1658 $ilCtrl->setParameter($this, "il_hform_node", "");
1659
1660 $a_tpl->setCurrentBlock("menu_cmd");
1661 $a_tpl->setVariable("TXT_MENU_CMD", $menu_item["text"]);
1662 $a_tpl->setVariable("URL_MENU_CMD", $url);
1663 $a_tpl->parseCurrentBlock();
1664 }
1665 }
1666
1667 $a_tpl->setCurrentBlock("drop_area");
1668 $a_tpl->setVariable("ICON_ADD", ilGlyphGUI::get(ilGlyphGUI::ADD));
1669 $a_tpl->setVariable("DROP_ID", $a_id);
1670 $a_tpl->parseCurrentBlock();
1671 } elseif ($a_menu) {
1672 // question action menu
1673 foreach ($a_menu as $mcnt => $menu_item) {
1674 $ilCtrl->setParameter($this, "il_hform_node", $node_id);
1675 $ilCtrl->setParameter($this, "il_hform_subcmd", $menu_item["cmd"]);
1676 $url = $ilCtrl->getLinkTarget($this, "renderPage");
1677 $ilCtrl->setParameter($this, "il_hform_subcmd", "");
1678 $ilCtrl->setParameter($this, "il_hform_node", "");
1679
1680 $a_tpl->setCurrentBlock("action_cmd");
1681 $a_tpl->setVariable("TXT_ACTION_CMD", $menu_item["text"]);
1682 $a_tpl->setVariable("URL_ACTION_CMD", $url);
1683 $a_tpl->parseCurrentBlock();
1684 }
1685 }
1686
1687 // add heading to content
1688 if ($a_content !== null &&
1689 $a_type === "question" &&
1690 $a_heading) {
1691 $a_content = "<div class=\"questionheading\">" . $a_heading . "</div>" .
1692 $a_content;
1693 }
1694
1695 if ($a_menu) {
1696 $a_tpl->setVariable("TXT_NODE_CONTENT_ACTIONS", $a_content);
1697 } else {
1698 $a_tpl->setVariable("TXT_NODE_CONTENT_NO_ACTIONS", $a_content);
1699 }
1700
1701 if ($a_content !== null) {
1702 $drag = "";
1703 $selectable = false;
1704 switch ($a_type) {
1705 case "block":
1706 $caption = $lng->txt("questionblock");
1707 break;
1708
1709 case "question":
1710 $caption = $lng->txt("question") . ": " . $a_subtitle;
1711 $drag = "_drag";
1712 $selectable = true;
1713 break;
1714
1715 case "heading":
1716 $caption = $lng->txt("heading");
1717 break;
1718
1719 default:
1720 return;
1721 }
1722
1723 if ($a_status) {
1724 $caption .= " (" . $a_status . ")";
1725 }
1726
1727 $a_tpl->setCurrentBlock("list_item");
1728 $a_tpl->setVariable("NODE_ID", $node_id);
1729 $a_tpl->setVariable("NODE_DRAG", $drag);
1730 $a_tpl->setVariable("TXT_NODE_TYPE", $caption);
1731 if ($selectable) {
1732 $a_tpl->setVariable("SELECTABLE", " selectable");
1733 }
1734 $a_tpl->parseCurrentBlock();
1735 }
1736
1737 $a_tpl->touchBlock("element");
1738 }
setVariable($variable, $value='')
Sets a variable value.
Definition: IT.php:514
setCurrentBlock(string $part=ilGlobalTemplateInterface::DEFAULT_BLOCK)
parseCurrentBlock(string $part=ilGlobalTemplateInterface::DEFAULT_BLOCK)
touchBlock(string $block)
$url

References $url, ilGlyphGUI\ADD, ilGlyphGUI\get(), ilTemplate\parseCurrentBlock(), ilTemplate\setCurrentBlock(), and HTML_Template_IT\setVariable().

+ Here is the call graph for this function:

◆ renderToolbar()

ilSurveyPageEditGUI::renderToolbar ( ?array  $a_pages)
protected

Render toolbar form.

Definition at line 1207 of file class.ilSurveyPageEditGUI.php.

1207 : void
1208 {
1209 $ilToolbar = $this->toolbar;
1210 $ilCtrl = $this->ctrl;
1211 $lng = $this->lng;
1213 $pages_drop = null;
1214
1215 if (!$this->has_datasets) {
1216 $button = ilLinkButton::getInstance();
1217 $button->setCaption("survey_add_new_question");
1218 $button->setUrl($ilCtrl->getLinkTarget($this, "addQuestionToolbarForm"));
1219 $ilToolbar->addStickyItem($button);
1220
1221 if ($this->object->getPoolUsage()) {
1222 //$ilToolbar->addSeparator();
1223
1224 $last_on_page = 0;
1225 if ($a_pages &&
1226 isset($a_pages[$this->current_page - 1])) {
1227 $last_on_page = $a_pages[$this->current_page - 1];
1228 $last_on_page = array_pop($last_on_page);
1229 $last_on_page = $last_on_page["question_id"];
1230 }
1231
1232 $ilCtrl->setParameter($this->editor_gui, "pgov", $this->current_page);
1233 $ilCtrl->setParameter($this->editor_gui, "pgov_pos", $last_on_page . "c");
1234
1235 $cmd = ((int) $ilUser->getPref('svy_insert_type') === 1 ||
1236 ($ilUser->getPref('svy_insert_type') ?? '') === '')
1237 ? 'browseForQuestions'
1238 : 'browseForQuestionblocks';
1239
1240 $button = ilLinkButton::getInstance();
1241 $button->setCaption("browse_for_questions");
1242 $button->setUrl($ilCtrl->getLinkTarget($this->editor_gui, $cmd));
1243 $ilToolbar->addStickyItem($button);
1244
1245 $ilCtrl->setParameter($this->editor_gui, "pgov", "");
1246 $ilCtrl->setParameter($this->editor_gui, "pgov_pos", "");
1247 }
1248
1249 if ($a_pages) {
1250// $ilToolbar->addSeparator();
1251 }
1252 }
1253
1254 // parse data for pages drop-down
1255 if ($a_pages) {
1256 // previous/next
1257
1258 $ilCtrl->setParameter($this, "pg", $this->current_page - 1);
1259 $button = ilLinkButton::getInstance();
1260 $button->setCaption("survey_prev_question");
1261 if ($this->has_previous_page) {
1262 $button->setUrl($ilCtrl->getLinkTarget($this, "renderPage"));
1263 }
1264 $button->setDisabled(!$this->has_previous_page);
1265 $ilToolbar->addStickyItem($button);
1266
1267 $ilCtrl->setParameter($this, "pg", (string) ((int) $this->current_page + 1));
1268 $button = ilLinkButton::getInstance();
1269 $button->setCaption("survey_next_question");
1270 if ($this->has_next_page) {
1271 $button->setUrl($ilCtrl->getLinkTarget($this, "renderPage"));
1272 }
1273 $button->setDisabled(!$this->has_next_page);
1274 $ilToolbar->addStickyItem($button);
1275
1276 $ilCtrl->setParameter($this, "pg", $this->current_page); // #14615
1277
1278 foreach ($a_pages as $idx => $questions) {
1279 $page = $questions;
1280 $page = array_shift($page);
1281 if ($page["questionblock_id"]) {
1282 $pages_drop[$idx + 1] = $page["questionblock_title"];
1283
1284 if (count($questions) > 1) {
1285 foreach ($questions as $question) {
1286 $pages_drop[($idx + 1) . "__" . $question["question_id"]] = "- " . $question["title"];
1287 }
1288 }
1289 } else {
1290 $pages_drop[$idx + 1] = strip_tags($page["title"]);
1291 }
1292 }
1293 }
1294
1295 // jump to page
1296 if (is_array($pages_drop) && count($pages_drop) > 1) {
1297 //$ilToolbar->addSeparator();
1298
1299 $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
1300
1301 $si = new ilSelectInputGUI($lng->txt("survey_jump_to"), "jump");
1302 $si->addCustomAttribute("onChange=\"forms['ilToolbar'].submit();\"");
1303 $si->setOptions($pages_drop);
1304 $si->setValue($this->current_page);
1305 $ilToolbar->addInputItem($si, true);
1306
1307 // we need this to have to right cmd
1308 $cmd = new ilHiddenInputGUI("cmd[renderPage]");
1309 $cmd->setValue("1");
1310 $ilToolbar->addInputItem($cmd);
1311
1312 if (!$this->has_datasets) {
1313 $ilToolbar->addSeparator();
1314
1315 $ilCtrl->setParameter($this, "csum", md5(print_r($a_pages[$this->current_page - 1], true)));
1316 $url = $ilCtrl->getLinkTarget($this, "deleteBlock");
1317 $ilCtrl->setParameter($this, "csum", "");
1318
1319 $button = ilLinkButton::getInstance();
1320 $button->setCaption("survey_delete_page");
1321 $button->setUrl($url);
1322 $ilToolbar->addButtonInstance($button);
1323
1324 $ilToolbar->addSeparator();
1325
1326 $button = ilLinkButton::getInstance();
1327 $button->setCaption("survey_move_page");
1328 $button->setUrl($ilCtrl->getLinkTarget($this, "movePageForm"));
1329 $ilToolbar->addButtonInstance($button);
1330 }
1331 }
1332
1333 // print view
1334 if (is_array($pages_drop)) {
1335 $ilToolbar->addSeparator();
1336 $print_view = $this->print->page($this->ref_id);
1337 $modal_elements = $print_view->getModalElements(
1338 $this->ctrl->getLinkTarget(
1339 $this,
1340 "printViewSelection"
1341 )
1342 );
1343 $ilToolbar->addComponent($modal_elements->button);
1344 $ilToolbar->addComponent($modal_elements->modal);
1345 }
1346 }

References $ilUser, $lng, $url, ILIAS\Repository\ctrl(), ilLinkButton\getInstance(), ILIAS\Repository\int(), and ILIAS\Repository\object().

+ Here is the call graph for this function:

◆ splitPage()

ilSurveyPageEditGUI::splitPage ( int  $a_id)
protected

Split current page in 2 pages.

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

872 : void {
873 $pages = $this->object->getSurveyPages();
874 $source = $pages[$this->current_page - 1];
875
876 $block_questions = array();
877 $add = $block_id = false;
878 foreach ($source as $idx => $item) {
879 if ($item["question_id"] == $a_id) {
880 $block_id = $item["questionblock_id"];
881 $add = $idx;
882 }
883 if ($add) {
884 $block_questions[] = $item["question_id"];
885 }
886 }
887
888 // just 1 question left: block is obsolete
889 if ($add === 1) {
890 $this->object->unfoldQuestionblocks(array($block_id));
891 }
892 // remove questions from block
893 else {
894 foreach ($block_questions as $qid) {
895 $this->object->removeQuestionFromBlock($qid, $block_id);
896 }
897 }
898
899 // more than 1 moved?
900 if (count($block_questions) > 1) {
901 // create new block and move target questions
902 $this->object->createQuestionblock(
903 $this->getAutoBlockTitle(),
904 true,
905 false,
906 $block_questions
907 );
908 }
909
910 $this->current_page++;
911 }

Field Documentation

◆ $ctrl

ilCtrl ilSurveyPageEditGUI::$ctrl
protected

Definition at line 34 of file class.ilSurveyPageEditGUI.php.

Referenced by executeCommand().

◆ $current_page

int ilSurveyPageEditGUI::$current_page = null
protected

Definition at line 45 of file class.ilSurveyPageEditGUI.php.

Referenced by determineCurrentPage(), and executeCommand().

◆ $db

ilDBInterface ilSurveyPageEditGUI::$db
protected

Definition at line 36 of file class.ilSurveyPageEditGUI.php.

◆ $edit_manager

ILIAS Survey Editing EditManager ilSurveyPageEditGUI::$edit_manager
protected

Definition at line 33 of file class.ilSurveyPageEditGUI.php.

◆ $editor_gui

ilSurveyEditorGUI ilSurveyPageEditGUI::$editor_gui
protected

Definition at line 44 of file class.ilSurveyPageEditGUI.php.

◆ $has_datasets

bool ilSurveyPageEditGUI::$has_datasets
protected

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

◆ $has_next_page

bool ilSurveyPageEditGUI::$has_next_page
protected

Definition at line 47 of file class.ilSurveyPageEditGUI.php.

◆ $has_previous_page

bool ilSurveyPageEditGUI::$has_previous_page
protected

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

◆ $http

ILIAS HTTP Services ilSurveyPageEditGUI::$http
protected

Definition at line 28 of file class.ilSurveyPageEditGUI.php.

◆ $lng

ilLanguage ilSurveyPageEditGUI::$lng
protected

Definition at line 42 of file class.ilSurveyPageEditGUI.php.

Referenced by executeCommand().

◆ $log

ilLogger ilSurveyPageEditGUI::$log
protected

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

◆ $object

ilObjSurvey ilSurveyPageEditGUI::$object
protected

Definition at line 43 of file class.ilSurveyPageEditGUI.php.

◆ $pgov

string ilSurveyPageEditGUI::$pgov
protected

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

Referenced by determineCurrentPage().

◆ $print

ILIAS Survey PrintView GUIService ilSurveyPageEditGUI::$print
protected

Definition at line 27 of file class.ilSurveyPageEditGUI.php.

◆ $rbacsystem

ilRbacSystem ilSurveyPageEditGUI::$rbacsystem
protected

Definition at line 35 of file class.ilSurveyPageEditGUI.php.

Referenced by executeCommand().

◆ $ref_id

int ilSurveyPageEditGUI::$ref_id
protected

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

◆ $suppress_clipboard_msg

bool ilSurveyPageEditGUI::$suppress_clipboard_msg = false
protected

Definition at line 30 of file class.ilSurveyPageEditGUI.php.

◆ $svy_request

ILIAS Survey Editing EditingGUIRequest ilSurveyPageEditGUI::$svy_request
protected

Definition at line 32 of file class.ilSurveyPageEditGUI.php.

◆ $tabs

ilTabsGUI ilSurveyPageEditGUI::$tabs
protected

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

◆ $toolbar

ilToolbarGUI ilSurveyPageEditGUI::$toolbar
protected

Definition at line 39 of file class.ilSurveyPageEditGUI.php.

◆ $tpl

ilGlobalTemplateInterface ilSurveyPageEditGUI::$tpl
protected

Definition at line 38 of file class.ilSurveyPageEditGUI.php.

◆ $ui

ILIAS DI UIServices ilSurveyPageEditGUI::$ui
protected

Definition at line 29 of file class.ilSurveyPageEditGUI.php.

◆ $use_pool

bool ilSurveyPageEditGUI::$use_pool
protected

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

◆ $user

ilObjUser ilSurveyPageEditGUI::$user
protected

Definition at line 40 of file class.ilSurveyPageEditGUI.php.


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