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

Survey per page view. More...

+ Collaboration diagram for ilSurveyPageGUI:

Public Member Functions

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

Protected Member Functions

 appendNewQuestionToSurvey ($a_new_id, $a_duplicate=true, $a_force_duplicate=false)
 Add new question to survey (database part) More...
 
 addQuestion ($a_type, $a_use_pool, $a_pos, $a_special_position)
 Call add question to survey form. More...
 
 cutQuestion ($a_id)
 Add question to be cut to clipboard. More...
 
 copyQuestion ($a_id)
 Add question to be copied to clipboard. More...
 
 multiCut ($a_id)
 Add questions to be cut to clipboard. More...
 
 multiCopy ($a_id)
 Add questions to be copied to clipboard. More...
 
 clearClipboard ()
 Empty clipboard. More...
 
 paste ($a_id)
 Paste from clipboard. More...
 
 dnd ()
 Move questions in page. More...
 
 deleteBlock ()
 Confirm removing question block. More...
 
 deleteQuestion ($a_id)
 Confirm removing question(s) from survey. More...
 
 confirmRemoveQuestions ()
 Remove question(s) from survey. More...
 
 editBlock ($a_id)
 Edit question block. More...
 
 addHeading ($a_id)
 Add heading to question. More...
 
 editHeading ($a_id)
 Edit question heading. More...
 
 deleteHeading ($a_id)
 Delete question heading. More...
 
 callEditor ($a_cmd, $a_param, $a_value)
 
 splitPage ($a_id)
 Split current page in 2 pages. More...
 
 moveNext ($a_id)
 Move question to next page. More...
 
 movePrevious ($a_id)
 Move question to previous page. More...
 
 editQuestion ($a_id)
 Edit question. More...
 
 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 ($a_pages)
 Render toolbar form. More...
 
 renderPage ()
 render questions per page More...
 

Protected Attributes

 $ctrl
 
 $rbacsystem
 
 $db
 
 $tabs
 
 $tpl
 
 $toolbar
 
 $user
 
 $ref_id
 
 $lng
 
 $object
 
 $editor_gui
 
 $current_page
 
 $has_previous_page
 
 $has_next_page
 
 $has_datasets
 
 $use_pool
 
 $log
 

Detailed Description

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
Version
Id
class.ilObjSurveyGUI.php 26720 2010-11-25 17:06:26Z jluetzen

@ilCtrl_Calls ilSurveyPageGUI:

Definition at line 14 of file class.ilSurveyPageGUI.php.

Constructor & Destructor Documentation

◆ __construct()

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

Constructor.

Parameters
ilObjSurvey$a_survey
ilSurveyEditorGUI$a_survey_editor_gui

Definition at line 72 of file class.ilSurveyPageGUI.php.

73 {
74 global $DIC;
75
76 $this->lng = $DIC->language();
77 $this->ctrl = $DIC->ctrl();
78 $this->rbacsystem = $DIC->rbac()->system();
79 $this->db = $DIC->database();
80 $this->tabs = $DIC->tabs();
81 $this->tpl = $DIC["tpl"];
82 $this->toolbar = $DIC->toolbar();
83 $this->user = $DIC->user();
84 $this->editor_gui = $a_survey_editor_gui;
85 $this->ref_id = $a_survey->getRefId();
86 $this->object = $a_survey;
87 $this->log = ilLoggerFactory::getLogger("svy");
88 }
user()
Definition: user.php:4
static getLogger($a_component_id)
Get component logger.
getRefId()
get reference id @access public
global $DIC
Definition: saml.php:7

References $DIC, ilLoggerFactory\getLogger(), ilObject\getRefId(), and user().

+ Here is the call graph for this function:

Member Function Documentation

◆ addHeading()

ilSurveyPageGUI::addHeading (   $a_id)
protected

Add heading to question.

Parameters
int$a_id

Definition at line 827 of file class.ilSurveyPageGUI.php.

828 {
829 $this->callEditor("addHeadingObject", "q_id", $a_id);
830 return true;
831 }
callEditor($a_cmd, $a_param, $a_value)

References callEditor().

+ Here is the call graph for this function:

◆ addPoolQuestion()

ilSurveyPageGUI::addPoolQuestion (   $pos,
  $node 
)

Definition at line 1751 of file class.ilSurveyPageGUI.php.

1752 {
1755
1756 if ($node == "page_end") {
1757 $pos = $this->object->getSurveyPages();
1758 $pos = array_pop($pos[$this->current_page - 1]);
1759 $pos = $pos["question_id"] . "a";
1760 } else {
1761 $pos = $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 = ($ilUser->getPref('svy_insert_type') == 1 || strlen($ilUser->getPref('svy_insert_type')) == 0) ? 'browseForQuestions' : 'browseForQuestionblocks';
1768 $ilCtrl->redirect($this->editor_gui, $cmd);
1769 }
global $ilCtrl
Definition: ilias.php:18
$ilUser
Definition: imgupload.php:18

References $ctrl, $ilCtrl, $ilUser, and $user.

◆ addQuestion()

ilSurveyPageGUI::addQuestion (   $a_type,
  $a_use_pool,
  $a_pos,
  $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)

Definition at line 385 of file class.ilSurveyPageGUI.php.

386 {
388 $ilTabs = $this->tabs;
389
390 // get translated type
391 include_once "./Modules/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPool.php";
393 foreach ($questiontypes as $item) {
394 if ($item["questiontype_id"] == $a_type) {
395 $type_trans = $item["type_tag"];
396 }
397 }
398
399 $id = $a_pos;
400
401 // new page behind current (from toolbar)
402 if ($a_special_position == "toolbar") {
403 $id = $this->object->getSurveyPages();
404 if ($a_pos && $a_pos != "fst") {
405 $id = $id[$a_pos - 1];
406 $id = array_pop($id);
407 $id = $id["question_id"] . "c";
408 } else {
409 $id = "0c";
410 }
411 }
412 // append current page
413 elseif ($a_special_position == "page_end") {
414 $id = $this->object->getSurveyPages();
415 $id = $id[$this->current_page - 1];
416 $id = array_pop($id);
417 $id = $id["question_id"] . "a";
418 } else {
419 $id .= "b";
420 }
421
422 if ($a_use_pool) {
423 $_GET["sel_question_types"] = $type_trans;
424 $_REQUEST["pgov_pos"] = $id;
425 $ilCtrl->setParameter($this->editor_gui, "pgov_pos", $id);
426 if (!$_POST["usage"]) {
427 $ilTabs->clearSubTabs(); // #17193
428 $this->editor_gui->createQuestionObject();
429 } else {
430 $this->editor_gui->executeCreateQuestionObject();
431 }
432 return true;
433 } else {
434 // create question and redirect to question form
435
436 include_once "./Modules/SurveyQuestionPool/classes/class.SurveyQuestionGUI.php";
437 $q_gui = SurveyQuestionGUI::_getQuestionGUI($type_trans);
438 $q_gui->object->setObjId($this->object->getId());
439 $q_gui->object->createNewQuestion();
440 $q_gui_class = get_class($q_gui);
441
442 // #12531
443 $ilCtrl->setParameterByClass($q_gui_class, "pgov", $this->current_page);
444 $ilCtrl->setParameterByClass($q_gui_class, "pgov_pos", $id);
445 $ilCtrl->setParameterByClass($q_gui_class, "ref_id", $this->ref_id);
446 $ilCtrl->setParameterByClass($q_gui_class, "new_for_survey", $this->ref_id);
447 $ilCtrl->setParameterByClass($q_gui_class, "q_id", $q_gui->object->getId());
448 $ilCtrl->setParameterByClass($q_gui_class, "sel_question_types", $q_gui->getQuestionType());
449 $ilCtrl->redirectByClass($q_gui_class, "editQuestion");
450 }
451 }
$_GET["client_id"]
$_POST["username"]
static _getQuestionGUI($questiontype, $question_id=-1)
Creates a question gui representation.
static _getQuestiontypes()
Creates a list of all available question types.
if(!array_key_exists('StateId', $_REQUEST)) $id
$a_type
Definition: workflow.php:92

References $_GET, $_POST, $a_type, $ctrl, $id, $ilCtrl, $tabs, SurveyQuestionGUI\_getQuestionGUI(), and ilObjSurveyQuestionPool\_getQuestiontypes().

Referenced by addQuestionToolbar(), and executeCommand().

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

◆ addQuestionToolbar()

ilSurveyPageGUI::addQuestionToolbar ( )
protected

Add question to survey action (used in toolbar)

Definition at line 1102 of file class.ilSurveyPageGUI.php.

1103 {
1105 $lng = $this->lng;
1106
1107 $pool_active = $this->object->isPoolActive();
1108
1109 if (!$_POST["usage"] && $pool_active) {
1110 ilUtil::sendFailure($lng->txt("select_one"), true);
1111 return $this->addQuestionToolbarForm();
1112 }
1113
1114 // make sure that it is set for current and next requests
1115 $ilCtrl->setParameter($this->editor_gui, "pgov", $this->current_page);
1116
1117 if (!$this->addQuestion($_POST["qtype"], $pool_active, $_POST["pgov"], "toolbar")) {
1118 $this->renderPage();
1119 }
1120 }
addQuestionToolbarForm()
Add question to survey form (used in toolbar)
addQuestion($a_type, $a_use_pool, $a_pos, $a_special_position)
Call add question to survey form.
renderPage()
render questions per page
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.

References $_POST, $ctrl, $ilCtrl, $lng, addQuestion(), addQuestionToolbarForm(), renderPage(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ addQuestionToolbarForm()

ilSurveyPageGUI::addQuestionToolbarForm ( )
protected

Add question to survey form (used in toolbar)

Definition at line 1043 of file class.ilSurveyPageGUI.php.

1044 {
1045 $lng = $this->lng;
1047 $tpl = $this->tpl;
1048
1049 include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
1050 $form = new ilPropertyFormGUI();
1051 $form->setFormAction($ilCtrl->getFormAction($this, "addQuestionToolbar"));
1052 $form->setTitle($lng->txt("survey_add_new_question"));
1053
1054 // question types
1055 include_once "./Modules/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPool.php";
1057 $type_map = array();
1058 foreach ($questiontypes as $trans => $item) {
1059 $type_map[$item["questiontype_id"]] = $trans;
1060 }
1061 include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
1062 $si = new ilSelectInputGUI($lng->txt("question_type"), "qtype");
1063 $si->setOptions($type_map);
1064 $form->addItem($si);
1065
1066 $pages = $this->object->getSurveyPages();
1067 if ($pages) {
1068 $pages_drop = array("fst" => $lng->txt("survey_at_beginning"));
1069 foreach ($pages as $idx => $questions) {
1070 $question = array_shift($questions);
1071 if ($question["questionblock_id"]) {
1072 $pages_drop[$idx + 1] = $lng->txt("survey_behind_page") . " " . $question["questionblock_title"];
1073 } else {
1074 $pages_drop[$idx + 1] = $lng->txt("survey_behind_page") . " " . strip_tags($question["title"]);
1075 }
1076 }
1077 $pos = new ilSelectInputGUI($lng->txt("position"), "pgov");
1078 $pos->setOptions($pages_drop);
1079 $form->addItem($pos);
1080
1081 $pos->setValue($this->current_page);
1082 } else {
1083 // #9089: 1st page
1084 $pos = new ilHiddenInputGUI("pgov");
1085 $pos->setValue("fst");
1086 $form->addItem($pos);
1087 }
1088
1089 if ($this->object->isPoolActive()) {
1090 $this->editor_gui->createQuestionObject($form);
1091 }
1092
1093 $form->addCommandButton("addQuestionToolbar", $lng->txt("create"));
1094 $form->addCommandButton("renderPage", $lng->txt("cancel"));
1095
1096 return $tpl->setContent($form->getHTML());
1097 }
This class represents a hidden form property in a property form.
This class represents a property form user interface.
This class represents a selection list property in a property form.
if(isset($_POST['submit'])) $form

References $ctrl, $form, $ilCtrl, $lng, $si, $tpl, and ilObjSurveyQuestionPool\_getQuestiontypes().

Referenced by addQuestionToolbar().

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

◆ appendNewQuestionToSurvey()

ilSurveyPageGUI::appendNewQuestionToSurvey (   $a_new_id,
  $a_duplicate = true,
  $a_force_duplicate = false 
)
protected

Add new question to survey (database part)

Parameters
int$a_new_id
bool$a_duplicate
Todo:
: move out of GUI class, see also ilObjSurvey->insertQuestion

Definition at line 190 of file class.ilSurveyPageGUI.php.

191 {
193
194 $this->log->debug("append question, id: " . $a_new_id . ", duplicate: " . $a_duplicate . ", force: " . $a_force_duplicate);
195
196 // get maximum sequence index in test
197 $result = $ilDB->queryF(
198 "SELECT survey_question_id FROM svy_svy_qst WHERE survey_fi = %s",
199 array('integer'),
200 array($this->object->getSurveyId())
201 );
202 $sequence = $result->numRows();
203
204 // create duplicate if pool question (or forced for question blocks copy)
205 if ($a_duplicate) {
206 // this does nothing if this is not a pool question and $a_force_duplicate is false
207 $survey_question_id = $this->object->duplicateQuestionForSurvey($a_new_id, $a_force_duplicate);
208 }
209 // used by copy & paste
210 else {
211 $survey_question_id = $a_new_id;
212 }
213
214 // check if question is not already in the survey, see #22018
215 if ($this->object->isQuestionInSurvey($survey_question_id)) {
216 return $survey_question_id;
217 }
218
219 // append to survey
220 $next_id = $ilDB->nextId('svy_svy_qst');
221 $affectedRows = $ilDB->manipulateF(
222 "INSERT INTO svy_svy_qst (survey_question_id, survey_fi," .
223 "question_fi, sequence, tstamp) VALUES (%s, %s, %s, %s, %s)",
224 array('integer', 'integer', 'integer', 'integer', 'integer'),
225 array($next_id, $this->object->getSurveyId(), $survey_question_id, $sequence, time())
226 );
227
228 $this->log->debug("insert svy_svy_qst, id: " . $next_id . ", qfi: " . $survey_question_id . ", seq: " . $sequence);
229
230 return $survey_question_id;
231 }
$result
global $ilDB

References $db, $ilDB, and $result.

Referenced by insertNewQuestion(), insertQuestionBlock(), and paste().

+ Here is the caller graph for this function:

◆ callEditor()

ilSurveyPageGUI::callEditor (   $a_cmd,
  $a_param,
  $a_value 
)
protected

Definition at line 855 of file class.ilSurveyPageGUI.php.

856 {
857 $ilTabs = $this->tabs;
858
859 $ilTabs->clearSubTabs();
860 $_REQUEST[$a_param] = $a_value;
861
862 call_user_func(array($this->editor_gui, $a_cmd));
863 }

References $tabs.

Referenced by addHeading(), deleteHeading(), editBlock(), and editHeading().

+ Here is the caller graph for this function:

◆ clearClipboard()

ilSurveyPageGUI::clearClipboard ( )
protected

Empty clipboard.

Definition at line 532 of file class.ilSurveyPageGUI.php.

533 {
534 $_SESSION["survey_page_view"][$this->ref_id]["clipboard"] = null;
535 }
$_SESSION["AccountId"]

References $_SESSION, and $ref_id.

Referenced by paste().

+ Here is the caller graph for this function:

◆ confirmRemoveQuestions()

ilSurveyPageGUI::confirmRemoveQuestions ( )
protected

Remove question(s) from survey.

Definition at line 753 of file class.ilSurveyPageGUI.php.

754 {
756
757 // gather ids
758 $ids = array();
759 foreach ($_POST as $key => $value) {
760 if (preg_match("/id_(\d+)/", $key, $matches)) {
761 array_push($ids, $matches[1]);
762 }
763 }
764
765
766 $pages = $this->object->getSurveyPages();
767 $source = $pages[$this->current_page - 1];
768
769 $block_id = $source;
770 $block_id = array_shift($block_id);
771 $block_id = $block_id["questionblock_id"];
772
773 if (sizeof($ids) && sizeof($source) > sizeof($ids)) {
774 // block is obsolete
775 if (sizeof($source) - sizeof($ids) == 1) {
776 $this->object->unfoldQuestionblocks(array($block_id));
777 }
778 // block will remain, remove question(s) from block
779 else {
780 foreach ($ids as $qid) {
781 $this->object->removeQuestionFromBlock($qid, $block_id);
782 }
783 }
784
785 $this->object->removeQuestions($ids, array());
786 }
787 // all items on page
788 else {
789 // remove complete block
790 if ($block_id) {
791 $this->object->removeQuestions(array(), array($block_id));
792 }
793 // remove single question
794 else {
795 $this->object->removeQuestions($ids, array());
796 }
797
798 // render previous page
799 if ($this->current_page > 1) {
800 $this->current_page--;
801 }
802 }
803
804 $this->object->saveCompletionStatus();
805
806 // #10567
807 $ilCtrl->setParameter($this, "pgov", $this->current_page);
808 $ilCtrl->redirect($this, "renderPage");
809 }
$source
Definition: linkback.php:22
$key
Definition: croninfo.php:18

References $_POST, $ctrl, $ilCtrl, $key, and $source.

◆ copyQuestion()

ilSurveyPageGUI::copyQuestion (   $a_id)
protected

Add question to be copied to clipboard.

Parameters
int$a_idquestion id

Definition at line 476 of file class.ilSurveyPageGUI.php.

477 {
479
480 ilUtil::sendSuccess($lng->txt("survey_questions_to_clipboard_copy"));
481 $this->suppress_clipboard_msg = true;
482
483 $_SESSION["survey_page_view"][$this->ref_id]["clipboard"] = array(
484 "source" => $this->current_page,
485 "nodes" => array($a_id),
486 "mode" => "copy");
487 }

References $_SESSION, $lng, and $ref_id.

◆ cutQuestion()

ilSurveyPageGUI::cutQuestion (   $a_id)
protected

Add question to be cut to clipboard.

Parameters
int$a_idquestion id

Definition at line 458 of file class.ilSurveyPageGUI.php.

459 {
461
462 ilUtil::sendSuccess($lng->txt("survey_questions_to_clipboard_cut"));
463 $this->suppress_clipboard_msg = true;
464
465 $_SESSION["survey_page_view"][$this->ref_id]["clipboard"] = array(
466 "source" => $this->current_page,
467 "nodes" => array($a_id),
468 "mode" => "cut");
469 }

References $_SESSION, $lng, and $ref_id.

◆ deleteBlock()

ilSurveyPageGUI::deleteBlock ( )
protected

Confirm removing question block.

Parameters
int$a_id

Definition at line 707 of file class.ilSurveyPageGUI.php.

708 {
711
712 $ilCtrl->setParameter($this->editor_gui, "pgov", $this->current_page);
713 ilUtil::sendQuestion($lng->txt("remove_questions"));
714
715 $page = $this->object->getSurveyPages();
716 $page = $page[$this->current_page - 1];
717
718 // #10567
719 if ($_REQUEST["csum"] != md5(print_r($page, true))) {
720 $ilCtrl->redirect($this, "renderPage");
721 }
722
723 $page = array_shift($page);
724 $block_id = $page["questionblock_id"];
725 if ($block_id) {
726 $this->editor_gui->removeQuestionsForm(array($block_id), array(), array());
727 } else {
728 $this->editor_gui->removeQuestionsForm(array(), array($page["question_id"]), array());
729 }
730 }
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.

References $ctrl, $ilCtrl, $lng, and ilUtil\sendQuestion().

+ Here is the call graph for this function:

◆ deleteHeading()

ilSurveyPageGUI::deleteHeading (   $a_id)
protected

Delete question heading.

Parameters
int$a_id

Definition at line 849 of file class.ilSurveyPageGUI.php.

850 {
851 $this->callEditor("removeHeadingObject", "q_id", $a_id);
852 return true;
853 }

References callEditor().

+ Here is the call graph for this function:

◆ deleteQuestion()

ilSurveyPageGUI::deleteQuestion (   $a_id)
protected

Confirm removing question(s) from survey.

Parameters
int | array$a_id

Definition at line 737 of file class.ilSurveyPageGUI.php.

738 {
740
741 if (!is_array($a_id)) {
742 $a_id = array($a_id);
743 }
744
745 $ilCtrl->setParameter($this->editor_gui, "pgov", $this->current_page);
746 $this->editor_gui->removeQuestionsForm(array(), $a_id, array());
747 return true;
748 }

References $ctrl, and $ilCtrl.

◆ determineCurrentPage()

ilSurveyPageGUI::determineCurrentPage ( )

determine current page

Definition at line 168 of file class.ilSurveyPageGUI.php.

169 {
170 $current_page = (int) $_REQUEST["jump"];
171 if (!$current_page) {
172 $current_page = (int) $_REQUEST["pgov"];
173 }
174 if (!$current_page) {
175 $current_page = (int) $_REQUEST["pg"];
176 }
177 if (!$current_page) {
178 $current_page = 1;
179 }
180 $this->current_page = $current_page;
181 }

References $current_page.

Referenced by executeCommand().

+ Here is the caller graph for this function:

◆ dnd()

ilSurveyPageGUI::dnd ( )
protected

Move questions in page.

Definition at line 685 of file class.ilSurveyPageGUI.php.

686 {
687 $source_id = (int) array_pop(explode("_", $_REQUEST["il_hform_source"]));
688 if ($_REQUEST["il_hform_target"] != "droparea_end") {
689 $target_id = (int) array_pop(explode("_", $_REQUEST["il_hform_target"]));
690 $pos = 0;
691 } else {
692 $page = $this->object->getSurveyPages();
693 $page = $page[$this->current_page - 1];
694 $last = array_pop($page);
695 $target_id = (int) $last["question_id"];
696 $pos = 1;
697 }
698 if ($source_id != $target_id) {
699 $this->object->moveQuestions(array($source_id), $target_id, $pos);
700 }
701 }
$target_id
Definition: goto.php:49

References $target_id.

◆ editBlock()

ilSurveyPageGUI::editBlock (   $a_id)
protected

Edit question block.

Parameters
int$a_id

Definition at line 816 of file class.ilSurveyPageGUI.php.

817 {
818 $this->callEditor("editQuestionblockObject", "bl_id", $a_id);
819 return true;
820 }

References callEditor().

+ Here is the call graph for this function:

◆ editHeading()

ilSurveyPageGUI::editHeading (   $a_id)
protected

Edit question heading.

Parameters
int$a_id

Definition at line 838 of file class.ilSurveyPageGUI.php.

839 {
840 $this->callEditor("editHeadingObject", "q_id", $a_id);
841 return true;
842 }

References callEditor().

+ Here is the call graph for this function:

◆ editQuestion()

ilSurveyPageGUI::editQuestion (   $a_id)
protected

Edit question.

Parameters
int$a_id

Definition at line 1026 of file class.ilSurveyPageGUI.php.

1027 {
1029
1030 $data = $this->object->getSurveyQuestions();
1031 $data = $data[$a_id];
1032
1033 $q_gui = $data["type_tag"] . "GUI";
1034 $ilCtrl->setParameterByClass($q_gui, "pgov", $this->current_page);
1035 $ilCtrl->setParameterByClass($q_gui, "q_id", $a_id);
1036
1037 $ilCtrl->redirectByClass($q_gui, "editQuestion");
1038 }
$data
Definition: bench.php:6

References $ctrl, $data, and $ilCtrl.

◆ executeCommand()

ilSurveyPageGUI::executeCommand ( )

Routing.

Definition at line 93 of file class.ilSurveyPageGUI.php.

94 {
98
99 $cmd = $ilCtrl->getCmd("renderPage");
100 $next_class = $ilCtrl->getNextClass($this);
101
102 switch ($next_class) {
103 default:
104 $this->determineCurrentPage();
105
106 $has_content = false;
107
108 if ($rbacsystem->checkAccess("write", $this->ref_id)) {
109 // add page?
110 if ($_REQUEST["new_id"]) {
111 $this->insertNewQuestion($_REQUEST["new_id"]);
112 }
113
114 // subcommands
115 if ($_REQUEST["il_hform_subcmd"]) {
116 $subcmd = $_REQUEST["il_hform_subcmd"];
117
118 // make sure that it is set for current and next requests
119 $ilCtrl->setParameter($this->editor_gui, "pgov", $this->current_page);
120 $_REQUEST["pgov"] = $this->current_page;
121
122 $id = explode("_", $_REQUEST["il_hform_node"]);
123 $id = (int) $id[1];
124
125 // multi operation
126 if (substr($_REQUEST["il_hform_subcmd"], 0, 5) == "multi") {
127 if ($_REQUEST["il_hform_multi"]) {
128 // removing types as we only allow questions anyway
129 $id = array();
130 foreach (explode(";", $_REQUEST["il_hform_multi"]) as $item) {
131 $id[] = (int) array_pop(explode("_", $item));
132 }
133
134 if ($subcmd == "multiDelete") {
135 $subcmd = "deleteQuestion";
136 }
137 } else {
138 // #9525
139 if ($subcmd == "multiDelete") {
140 ilUtil::sendFailure($lng->txt("no_checkbox"), true);
141 $ilCtrl->redirect($this, "renderPage");
142 } else {
143 ilUtil::sendFailure($lng->txt("no_checkbox"));
144 }
145 }
146 }
147
148 if (substr($subcmd, 0, 11) == "addQuestion") {
149 $type = explode("_", $subcmd);
150 $type = (int) $type[1];
151 $has_content = $this->addQuestion($type, $this->object->isPoolActive(), $id, $_REQUEST["il_hform_node"]);
152 } else {
153 $has_content = $this->$subcmd($id, $_REQUEST["il_hform_node"]);
154 }
155 }
156 }
157
158 if (!$has_content) {
159 $this->$cmd();
160 }
161 break;
162 }
163 }
determineCurrentPage()
determine current page
insertNewQuestion($a_new_id)
Add new question to survey.
$type

References $ctrl, $current_page, $id, $ilCtrl, $lng, $rbacsystem, $type, addQuestion(), determineCurrentPage(), insertNewQuestion(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ getAutoBlockTitle()

ilSurveyPageGUI::getAutoBlockTitle ( )

Get name for newly created blocks.

Returns
string

Definition at line 1744 of file class.ilSurveyPageGUI.php.

1745 {
1746 $lng = $this->lng;
1747
1748 return $lng->txt("survey_auto_block_title");
1749 }

References $lng.

Referenced by insertNewQuestion(), insertQuestionBlock(), moveNext(), movePrevious(), paste(), and splitPage().

+ Here is the caller graph for this function:

◆ getPageNodes()

ilSurveyPageGUI::getPageNodes ( array  $a_questions,
  $a_has_previous_page = false,
  $a_has_next_page = false,
  $a_readonly = false 
)

Get Form HTML.

Parameters
array$questions
bool$a_has_previous_page
bool$a_has_next_page
bool$a_readonly
Returns
string

Definition at line 1473 of file class.ilSurveyPageGUI.php.

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

References $_SESSION, $ctrl, $ilCtrl, $lng, ilObjSurveyQuestionPool\_getQuestiontypes(), and renderPageNode().

Referenced by renderPage().

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

◆ insertNewQuestion()

ilSurveyPageGUI::insertNewQuestion (   $a_new_id)

Add new question to survey.

Parameters
int$a_new_id

Definition at line 238 of file class.ilSurveyPageGUI.php.

239 {
243
244 include_once "./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
245 if (!SurveyQuestion::_isComplete($a_new_id)) {
246 ilUtil::sendFailure($lng->txt("survey_error_insert_incomplete_question"));
247 } else {
248 $a_new_id = $this->appendNewQuestionToSurvey($a_new_id);
249 $this->object->loadQuestionsFromDb();
250
251 $pos = $_REQUEST["pgov_pos"];
252
253 // a[fter]/b[efore] on same page
254 if (substr($pos, -1) != "c") {
255 // block handling
256 $current = $this->object->getSurveyPages();
257 $current = $current[$this->current_page - 1];
258 if (sizeof($current) == 1) {
259 // as questions are moved to first block question
260 // always use existing as first
261 // the new question is moved later on (see below)
262 $this->object->createQuestionblock(
263 $this->getAutoBlockTitle(),
264 true,
265 false,
266 array((int) $pos, $a_new_id)
267 );
268 } else {
269 $block_id = array_pop($current);
270 $block_id = $block_id["questionblock_id"];
271
272 $this->object->addQuestionToBlock($a_new_id, $block_id);
273 }
274 }
275 // c: as new page (from toolbar/pool)
276 else {
277 // after given question
278 if ((int) $pos) {
279 $pos = (int) $pos . "a";
280 $this->current_page++;
281 }
282 // at the beginning
283 else {
284 $first = $this->object->getSurveyPages();
285 $first = $first[0];
286 $first = array_shift($first);
287 $pos = $first["question_id"] . "b";
288 $this->current_page = 1;
289 }
290 }
291
292 // move to target position
293 $this->object->moveQuestions(
294 array($a_new_id),
295 (int) $pos,
296 ((substr($pos, -1) == "a") ? 1 : 0)
297 );
298
299 $this->object->fixSequenceStructure();
300 }
301 }
static _isComplete($question_id)
Checks whether the question is complete or not.
appendNewQuestionToSurvey($a_new_id, $a_duplicate=true, $a_force_duplicate=false)
Add new question to survey (database part)
getAutoBlockTitle()
Get name for newly created blocks.

References $current, $db, $ilDB, $lng, $rbacsystem, SurveyQuestion\_isComplete(), appendNewQuestionToSurvey(), getAutoBlockTitle(), and ilUtil\sendFailure().

Referenced by executeCommand().

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

◆ insertQuestionBlock()

ilSurveyPageGUI::insertQuestionBlock (   $a_block_id)

Copy and insert questions from block.

Parameters
int$a_block_id

Definition at line 308 of file class.ilSurveyPageGUI.php.

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

References $current, appendNewQuestionToSurvey(), and getAutoBlockTitle().

+ Here is the call graph for this function:

◆ moveNext()

ilSurveyPageGUI::moveNext (   $a_id)
protected

Move question to next page.

Parameters
int$a_id

Definition at line 917 of file class.ilSurveyPageGUI.php.

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

References $current_page, $source, $target, $target_id, and getAutoBlockTitle().

+ Here is the call graph for this function:

◆ movePage()

ilSurveyPageGUI::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 1171 of file class.ilSurveyPageGUI.php.

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

References $ctrl, $ilCtrl, $lng, and $target.

◆ movePageForm()

ilSurveyPageGUI::movePageForm ( )
protected

Move current page.

Definition at line 1125 of file class.ilSurveyPageGUI.php.

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

References $ctrl, $form, $ilCtrl, $lng, and $tpl.

◆ movePrevious()

ilSurveyPageGUI::movePrevious (   $a_id)
protected

Move question to previous page.

Parameters
int$a_id

Definition at line 973 of file class.ilSurveyPageGUI.php.

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

References $source, $target, $target_id, and getAutoBlockTitle().

+ Here is the call graph for this function:

◆ multiCopy()

ilSurveyPageGUI::multiCopy (   $a_id)
protected

Add questions to be copied to clipboard.

Parameters
array$a_idquestion ids

Definition at line 514 of file class.ilSurveyPageGUI.php.

515 {
517
518 if (is_array($a_id)) {
519 ilUtil::sendSuccess($lng->txt("survey_questions_to_clipboard_copy"));
520 $this->suppress_clipboard_msg = true;
521
522 $_SESSION["survey_page_view"][$this->ref_id]["clipboard"] = array(
523 "source" => $this->current_page,
524 "nodes" => $a_id,
525 "mode" => "copy");
526 }
527 }

References $_SESSION, $lng, and $ref_id.

◆ multiCut()

ilSurveyPageGUI::multiCut (   $a_id)
protected

Add questions to be cut to clipboard.

Parameters
array$a_idquestion ids

Definition at line 494 of file class.ilSurveyPageGUI.php.

495 {
497
498 if (is_array($a_id)) {
499 ilUtil::sendSuccess($lng->txt("survey_questions_to_clipboard_cut"));
500 $this->suppress_clipboard_msg = true;
501
502 $_SESSION["survey_page_view"][$this->ref_id]["clipboard"] = array(
503 "source" => $this->current_page,
504 "nodes" => $a_id,
505 "mode" => "cut");
506 }
507 }

References $_SESSION, $lng, and $ref_id.

◆ paste()

ilSurveyPageGUI::paste (   $a_id)
protected

Paste from clipboard.

Parameters
int$a_idtarget position

Definition at line 542 of file class.ilSurveyPageGUI.php.

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

References $_SESSION, $data, $nodes, $ref_id, $source, $target, $title, ilObjSurvey\_instanciateQuestion(), appendNewQuestionToSurvey(), clearClipboard(), and getAutoBlockTitle().

+ Here is the call graph for this function:

◆ renderPage()

ilSurveyPageGUI::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 1345 of file class.ilSurveyPageGUI.php.

1346 {
1348 $lng = $this->lng;
1349 $tpl = $this->tpl;
1351
1352 $pages = $this->object->getSurveyPages();
1353 $this->has_next_page = ($this->current_page < sizeof($pages));
1354 $this->has_previous_page = ($this->current_page > 1);
1355 $this->has_datasets = ilObjSurvey::_hasDatasets($this->object->getSurveyId());
1356
1357 $mess = "";
1358 if ($this->has_datasets) {
1360 $mess = $mbox->getHTML();
1361 }
1362
1363 $ilCtrl->setParameter($this, "pg", $this->current_page);
1364 $ilCtrl->setParameter($this, "pgov", "");
1365
1366 $this->renderToolbar($pages);
1367
1368 if ($pages) {
1369 $ttpl = new ilTemplate("tpl.il_svy_svy_page_view.html", true, true, "Modules/Survey");
1370 $ttpl->setVariable("FORM_ACTION", $ilCtrl->getFormAction($this));
1371 $lng->loadLanguageModule("form");
1372
1373 $read_only = ($this->has_datasets || !$rbacsystem->checkAccess("write", $this->ref_id));
1374
1375 $commands = $multi_commands = array();
1376
1377 if (!$read_only) {
1378 // clipboard is empty
1379 if (!$_SESSION["survey_page_view"][$this->ref_id]["clipboard"]) {
1380 $multi_commands[] = array("cmd" => "multiDelete", "text" => $lng->txt("delete"));
1381 $multi_commands[] = array("cmd" => "multiCut", "text" => $lng->txt("cut"));
1382 $multi_commands[] = array("cmd" => "multiCopy", "text" => $lng->txt("copy"));
1383 $multi_commands[] = array("cmd" => "selectAll", "text" => $lng->txt("select_all"));
1384 } else {
1385 if (!$this->suppress_clipboard_msg) {
1386 ilUtil::sendInfo($lng->txt("survey_clipboard_notice"));
1387 }
1388 $multi_commands[] = array("cmd" => "clearClipboard", "text" => $lng->txt("survey_dnd_clear_clipboard"));
1389 }
1390
1391 // help - see ilPageObjectGUI::insertHelp()
1392 $lng->loadLanguageModule("content");
1393 $ttpl->setCurrentBlock("help_section");
1394 $ttpl->setVariable("TXT_ADD_EL", $lng->txt("cont_add_elements"));
1395 include_once("./Services/UIComponent/Glyph/classes/class.ilGlyphGUI.php");
1396 $ttpl->setVariable("PLUS", ilGlyphGUI::get(ilGlyphGUI::ADD));
1397 $ttpl->setVariable("DRAG_ARROW", ilGlyphGUI::get(ilGlyphGUI::DRAG));
1398 $ttpl->setVariable("TXT_DRAG", $lng->txt("cont_drag_and_drop_elements"));
1399 $ttpl->setVariable("TXT_SEL", $lng->txt("cont_double_click_to_delete"));
1400 $ttpl->parseCurrentBlock();
1401
1402 $ttpl->setVariable("DND_INIT_JS", "initDragElements();");
1403
1404
1405 // tiny mce
1406
1407 include_once "./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
1409
1416 include_once "./Services/RTE/classes/class.ilTinyMCE.php";
1417 $tiny = new ilTinyMCE();
1418 $ttpl->setVariable("WYSIWYG_BLOCKFORMATS", $tiny->_buildAdvancedBlockformatsFromHTMLTags($tags));
1419 $ttpl->setVariable("WYSIWYG_VALID_ELEMENTS", $tiny->_getValidElementsFromHTMLTags($tags));
1420
1421 $buttons_1 = $tiny->_buildAdvancedButtonsFromHTMLTags(1, $tags);
1422 $buttons_2 = $tiny->_buildAdvancedButtonsFromHTMLTags(2, $tags) . ',' .
1423 $tiny->_buildAdvancedTableButtonsFromHTMLTags($tags) .
1424 ($tiny->getStyleSelect() ? ',styleselect' : '');
1425 $buttons_3 = $tiny->_buildAdvancedButtonsFromHTMLTags(3, $tags);
1426 $ttpl->setVariable('WYSIWYG_BUTTONS_1', ilTinyMCE::removeRedundantSeparators($buttons_1));
1427 $ttpl->setVariable('WYSIWYG_BUTTONS_2', ilTinyMCE::removeRedundantSeparators($buttons_2));
1428 $ttpl->setVariable('WYSIWYG_BUTTONS_3', ilTinyMCE::removeRedundantSeparators($buttons_3));
1429 }
1430
1431 // commands
1432 if (count($multi_commands) > 0) {
1433 foreach ($multi_commands as $cmd) {
1434 $ttpl->setCurrentBlock("multi_cmd");
1435 $ttpl->setVariable("ORG_CMD_MULTI", "renderPage");
1436 $ttpl->setVariable("MULTI_CMD", $cmd["cmd"]);
1437 $ttpl->setVariable("MULTI_CMD_TXT", $cmd["text"]);
1438 $ttpl->parseCurrentBlock();
1439 }
1440
1441 $ttpl->setCurrentBlock("multi_cmds");
1442 $ttpl->setVariable("MCMD_ALT", $lng->txt("commands"));
1443 $ttpl->setVariable("MCMD_IMG", ilUtil::getImagePath("arrow_downright.svg"));
1444 $ttpl->parseCurrentBlock();
1445 }
1446
1447 // nodes
1448 $ttpl->setVariable("NODES", $this->getPageNodes(
1449 $pages[$this->current_page - 1],
1450 $this->has_previous_page,
1451 $this->has_next_page,
1452 $read_only
1453 ));
1454
1455 $tpl->setContent($mess . $ttpl->get());
1456
1457 // add js to template
1458 include_once("./Services/YUI/classes/class.ilYuiUtil.php");
1460 $tpl->addJavascript("./Modules/Survey/js/SurveyPageView.js");
1461 }
1462 }
static get($a_glyph, $a_text="")
Get glyph html.
static _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
static _hasDatasets($survey_id)
Message box for survey, when data is alrady available.
getPageNodes(array $a_questions, $a_has_previous_page=false, $a_has_next_page=false, $a_readonly=false)
Get Form HTML.
renderToolbar($a_pages)
Render toolbar form.
Tiny MCE editor class.
static removeRedundantSeparators($a_string)
Removes redundant seperators and removes ,, and , at the first or last position of the string.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static initDragDrop()
Init YUI Drag and Drop.
$tags
Definition: croninfo.php:19

References $_SESSION, $ctrl, $ilCtrl, $lng, $rbacsystem, $tags, $tpl, ilObjAdvancedEditing\_getUsedHTMLTags(), ilObjSurvey\_hasDatasets(), ilGlyphGUI\ADD, ilGlyphGUI\DRAG, ilGlyphGUI\get(), ilUtil\getImagePath(), getPageNodes(), ilYuiUtil\initDragDrop(), ilTinyMCE\removeRedundantSeparators(), renderToolbar(), and ilUtil\sendInfo().

Referenced by addQuestionToolbar().

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

◆ renderPageNode()

ilSurveyPageGUI::renderPageNode ( ilTemplate  $a_tpl,
  $a_type,
  $a_id,
  $a_content = null,
array  $a_menu = null,
  $a_spacer = false,
  $a_subtitle = false,
  $a_status = false,
  $a_heading = false 
)

Render single of dnd page view.

Parameters
ilTemplate$a_tpl
string$a_type
int$a_id
string$a_content
array$a_menu
bool$a_spacer
string$a_subtitle
string$a_heading

Definition at line 1641 of file class.ilSurveyPageGUI.php.

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

References $a_content, $a_type, $ctrl, $ilCtrl, $lng, $url, ilGlyphGUI\ADD, ilGlyphGUI\get(), ilTemplate\parseCurrentBlock(), ilTemplate\setCurrentBlock(), HTML_Template_IT\setVariable(), and ilTemplate\touchBlock().

Referenced by getPageNodes().

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

◆ renderToolbar()

ilSurveyPageGUI::renderToolbar (   $a_pages)
protected

Render toolbar form.

Parameters
array$a_pages

Definition at line 1213 of file class.ilSurveyPageGUI.php.

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

References $ctrl, $ilCtrl, $ilUser, $lng, $si, $toolbar, $url, $user, and ilLinkButton\getInstance().

Referenced by renderPage().

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

◆ splitPage()

ilSurveyPageGUI::splitPage (   $a_id)
protected

Split current page in 2 pages.

Parameters
int$a_id

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

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

References $source, and getAutoBlockTitle().

+ Here is the call graph for this function:

Field Documentation

◆ $ctrl

◆ $current_page

ilSurveyPageGUI::$current_page
protected

Definition at line 55 of file class.ilSurveyPageGUI.php.

Referenced by determineCurrentPage(), executeCommand(), and moveNext().

◆ $db

ilSurveyPageGUI::$db
protected

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

Referenced by appendNewQuestionToSurvey(), and insertNewQuestion().

◆ $editor_gui

ilSurveyPageGUI::$editor_gui
protected

Definition at line 54 of file class.ilSurveyPageGUI.php.

◆ $has_datasets

ilSurveyPageGUI::$has_datasets
protected

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

◆ $has_next_page

ilSurveyPageGUI::$has_next_page
protected

Definition at line 57 of file class.ilSurveyPageGUI.php.

◆ $has_previous_page

ilSurveyPageGUI::$has_previous_page
protected

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

◆ $lng

◆ $log

ilSurveyPageGUI::$log
protected

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

◆ $object

ilSurveyPageGUI::$object
protected

Definition at line 53 of file class.ilSurveyPageGUI.php.

◆ $rbacsystem

ilSurveyPageGUI::$rbacsystem
protected

Definition at line 24 of file class.ilSurveyPageGUI.php.

Referenced by executeCommand(), insertNewQuestion(), and renderPage().

◆ $ref_id

ilSurveyPageGUI::$ref_id
protected

◆ $tabs

ilSurveyPageGUI::$tabs
protected

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

Referenced by addQuestion(), and callEditor().

◆ $toolbar

ilSurveyPageGUI::$toolbar
protected

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

Referenced by renderToolbar().

◆ $tpl

ilSurveyPageGUI::$tpl
protected

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

Referenced by addQuestionToolbarForm(), movePageForm(), and renderPage().

◆ $use_pool

ilSurveyPageGUI::$use_pool
protected

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

◆ $user

ilSurveyPageGUI::$user
protected

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

Referenced by addPoolQuestion(), and renderToolbar().


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