Public Member Functions

ilObjSurveyGUI Class Reference

Inheritance diagram for ilObjSurveyGUI:
Collaboration diagram for ilObjSurveyGUI:

Public Member Functions

 ilObjSurveyGUI ()
 Constructor public.
 backToRepositoryObject ()
executeCommand ()
 execute command
 saveObject ()
 save object public
 cancelObject ($in_rep=false)
 cancel action and go back to previous page public
 cancelPropertiesObject ()
 Cancel actions in the properties form.
 savePropertiesObject ()
 Save the survey properties.
 handleWriteAccess ()
 Checks for write access and returns to the parent object.
 propertiesObject ()
 Creates the properties form for the survey object.
 filterQuestionsObject ()
 Called when the filter in the question browser is activated.
 resetFilterQuestionsObject ()
 Called when the filter in the question browser has been resetted.
 changeDatatypeObject ()
 Change the object type in the question browser.
 insertQuestionsObject ()
 Insert questions into the survey.
 removeQuestionsObject ()
 Remove questions from the survey.
 browseForQuestionsObject ($filter_questionpool="", $reset_filter=false, $browsequestions=1)
 Creates the questionbrowser to select questions from question pools.
 searchQuestionsExecuteObject ()
 Execute a search for survey questions.
 searchQuestionsObject ($search_results=false)
 Creates a form to search questions for inserting.
 removeQuestionsForm ($checked_questions, $checked_questionblocks)
 Creates a confirmation form to remove questions from the survey.
 defineQuestionblock ($questionblock_id="")
 Displays the definition form for a question block.
 createQuestionObject ()
 Creates a form to select a survey question pool for storage.
 cancelCreateQuestionObject ()
 Cancel the creation of a new questions in a survey.
 executeCreateQuestionObject ()
 Execute the creation of a new questions in a survey.
 addHeadingObject ($question_id="")
 Creates a form to add a heading to a survey.
 confirmInsertQuestionObject ()
 Insert questions or question blocks into the survey after confirmation.
 cancelInsertQuestionObject ()
 Cancels insert questions or question blocks into the survey.
 saveHeadingObject ()
 Saves an edited heading in the survey questions list.
 cancelHeadingObject ()
 Cancels saving a heading in the survey questions list.
 confirmRemoveHeadingObject ()
 Remove a survey heading after confirmation.
 cancelRemoveHeadingObject ()
 Cancels the removal of survey headings.
 confirmRemoveHeadingForm ()
 Displays a confirmation form to delete a survey heading.
 confirmRemoveQuestionsObject ()
 Remove questions from survey after confirmation.
 cancelRemoveQuestionsObject ()
 Cancel remove questions from survey after confirmation.
 defineQuestionblockObject ()
 Cancel remove questions from survey after confirmation.
 saveDefineQuestionblockObject ()
 Confirm define a question block.
 unfoldQuestionblockObject ()
 Unfold a question block.
 cancelDefineQuestionblockObject ()
 Cancel define a question block.
 moveQuestionsObject ()
 Move questions.
 insertQuestions ($insert_mode)
 Insert questions from move clipboard.
 insertQuestionsBeforeObject ()
 Insert questions before selection.
 insertQuestionsAfterObject ()
 Insert questions after selection.
 saveObligatoryObject ()
 Save obligatory states.
 questionsObject ()
 Creates the questions form for the survey object.
 evaluationObject ()
 Redirects the evaluation object call to the ilSurveyEvaluationGUI class.
 outUserGroupTable ($a_type, $id_array, $block_result, $block_row, $title_text, $buttons)
 Creates the search output for the user/group search form.
 cancelInvitationStatusObject ()
 Cancels an action on the invitation tab.
 saveInvitationStatusObject ()
 Saves the status of the invitation tab.
 searchInvitationObject ()
 Searches users for the invitation tab.
 disinviteUserGroupObject ()
 Disinvite users or groups from a survey.
 inviteUserGroupObject ()
 Invite users or groups to a survey.
 inviteObject ()
 Creates the output for user/group invitation to a survey.
 deleteAllUserDataObject ()
 Creates a confirmation form for delete all user data.
 confirmDeleteAllUserDataObject ()
 Deletes all user data of the survey after confirmation.
 cancelDeleteAllUserDataObject ()
 Cancels delete of all user data in maintenance.
 confirmDeleteSelectedUserDataObject ()
 Deletes all user data for the test object.
 cancelDeleteSelectedUserDataObject ()
 Cancels the deletion of all user data for the test object.
 deleteSingleUserResultsObject ()
 Asks for a confirmation to delete selected user data of the test object.
 maintenanceObject ()
 statusObject ()
 Creates the status output for a test.
 exportObject ()
 createExportFileObject ()
 create export file
 importObject ()
 display dialogue for importing tests
 uploadObject ($redirect=true)
 display status information or report errors messages in case of error
 createObject ()
 form for new content object creation
 cloneAllObject ()
 form for new survey object duplication
 importFileObject ()
 form for new survey object import
 downloadExportFileObject ()
 download export file
 confirmDeleteExportFileObject ()
 confirmation screen for export file deletion
 cancelDeleteExportFileObject ()
 cancel deletion of export files
 deleteExportFileObject ()
 delete export files
 setCodeLanguageObject ()
 codesObject ()
 Display the survey access codes tab.
 createSurveyCodesObject ()
 Create access codes for the survey.
 addConstraintForm ($step, &$survey_questions, $questions=false)
 Display the form to add preconditions for survey questions.
 constraintsAddObject ()
 Add a precondition for a survey question or question block.
 constraintStep3Object ()
 Handles the third step of the precondition add action.
 constraintStep2Object ()
 Handles the second step of the precondition add action.
 constraintStep1Object ()
 Handles the first step of the precondition add action.
 deleteConstraintsObject ()
 Delete constraints of a survey.
 createConstraintsObject ()
 constraintsObject ()
 Administration page for survey constraints.
 infoScreenObject ()
 this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually, if everything works through ilCtrl in the future this may be changed
 infoScreen ()
 show information screen
 addLocatorItems ()
 should be overwritten to add object specific items (repository items are preloaded)
 getTabs (&$tabs_gui)
 adds tabs to tab gui object
 _goto ($a_target, $a_access_code="")
 redirect script

Detailed Description

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


Member Function Documentation

ilObjSurveyGUI::_goto ( a_target,
a_access_code = "" 
)

redirect script

Parameters:
string $a_target

Definition at line 4050 of file class.ilObjSurveyGUI.php.

References $_GET, $_SESSION, $ilErr, ilObjectGUI::$lng, ilObject::_lookupObjId(), ilObject::_lookupTitle(), exit, and sendInfo().

        {
                global $ilAccess, $ilErr, $lng;
                if ($ilAccess->checkAccess("read", "", $a_target))
                {
                        include_once "./classes/class.ilUtil.php";
                        if (strlen($a_access_code))
                        {
                                $_SESSION["anonymous_id"] = $a_access_code;
                                $_GET["baseClass"] = "ilObjSurveyGUI";
                                $_GET["cmd"] = "infoScreen";
                                $_GET["ref_id"] = $a_target;
                                include("ilias.php");
                                exit;
                        }
                        else
                        {
                                $_GET["baseClass"] = "ilObjSurveyGUI";
                                $_GET["cmd"] = "infoScreen";
                                $_GET["ref_id"] = $a_target;
                                include("ilias.php");
                                exit;
                        }
                }
                else if ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID))
                {
                        $_GET["cmd"] = "frameset";
                        $_GET["target"] = "";
                        $_GET["ref_id"] = ROOT_FOLDER_ID;
                        sendInfo(sprintf($lng->txt("msg_no_perm_read_item"),
                                ilObject::_lookupTitle(ilObject::_lookupObjId($a_target))), true);
                        include("repository.php");
                        exit;
                }

                $ilErr->raiseError($lng->txt("msg_no_perm_read_lm"), $ilErr->FATAL);
        }

Here is the call graph for this function:

ilObjSurveyGUI::addConstraintForm ( step,
&$  survey_questions,
questions = false 
)

Display the form to add preconditions for survey questions.

Display the form to add preconditions for survey questions

private

Definition at line 3270 of file class.ilObjSurveyGUI.php.

References $_GET, $_POST, $_SESSION, $row, and $title.

Referenced by constraintStep1Object(), constraintStep2Object(), and constraintStep3Object().

        {
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_add_constraint.html", true);
                if (is_array($questions))
                {
                        foreach ($questions as $question)
                        {
                                $this->tpl->setCurrentBlock("option_q");
                                $this->tpl->setVariable("OPTION_VALUE", $question["question_id"]);
                                $this->tpl->setVariable("OPTION_TEXT", $question["title"] . " (" . $this->lng->txt($question["type_tag"]) . ")");
                                if ($question["question_id"] == $_POST["q"])
                                {
                                        $this->tpl->setVariable("OPTION_CHECKED", " selected=\"selected\"");
                                }
                                $this->tpl->parseCurrentBlock();
                        }
                }
                
                if ($step > 1)
                {
                        $relations = $this->object->getAllRelations();
                        switch ($survey_questions[$_POST["q"]]["type_tag"])
                        {
                                case "SurveyNominalQuestion":
                                        foreach ($relations as $rel_id => $relation)
                                        {
                                                if ((strcmp($relation["short"], "=") == 0) or (strcmp($relation["short"], "<>") == 0))
                                                {
                                                        $this->tpl->setCurrentBlock("option_r");
                                                        $this->tpl->setVariable("OPTION_VALUE", $rel_id);
                                                        $this->tpl->setVariable("OPTION_TEXT", $relation["short"]);
                                                        if ($rel_id == $_POST["r"])
                                                        {
                                                                $this->tpl->setVariable("OPTION_CHECKED", " selected=\"selected\"");
                                                        }
                                                        $this->tpl->parseCurrentBlock();
                                                }
                                        }
                                        break;
                                case "SurveyOrdinalQuestion":
                                case "SurveyMetricQuestion":
                                        foreach ($relations as $rel_id => $relation)
                                        {
                                                $this->tpl->setCurrentBlock("option_r");
                                                $this->tpl->setVariable("OPTION_VALUE", $rel_id);
                                                $this->tpl->setVariable("OPTION_TEXT", $relation["short"]);
                                                if ($rel_id == $_POST["r"])
                                                {
                                                        $this->tpl->setVariable("OPTION_CHECKED", " selected=\"selected\"");
                                                }
                                                $this->tpl->parseCurrentBlock();
                                        }
                                        break;
                        }
                        $this->tpl->setCurrentBlock("select_relation");
                        $this->tpl->setVariable("SELECT_RELATION", $this->lng->txt("step") . " 2: " . $this->lng->txt("select_relation"));
                        $this->tpl->parseCurrentBlock();
                }
                
                if ($step > 2)
                {
                        $variables =& $this->object->getVariables($_POST["q"]);
                        switch ($survey_questions[$_POST["q"]]["type_tag"])
                        {
                                case "SurveyNominalQuestion":
                                case "SurveyOrdinalQuestion":
                                        foreach ($variables as $sequence => $row)
                                        {
                                                $this->tpl->setCurrentBlock("option_v");
                                                $this->tpl->setVariable("OPTION_VALUE", $sequence);
                                                $this->tpl->setVariable("OPTION_TEXT", ($sequence+1) . " - " . $row->title);
                                                $this->tpl->parseCurrentBlock();
                                        }
                                        break;
                                case "SurveyMetricQuestion":
                                                $this->tpl->setCurrentBlock("textfield");
                                                $this->tpl->setVariable("TEXTFIELD_VALUE", "");
                                                $this->tpl->parseCurrentBlock();
                                        break;
                        }
                        $this->tpl->setCurrentBlock("select_value");
                        if (strcmp($survey_questions[$_POST["q"]]["type_tag"], "SurveyMetricQuestion") == 0)
                        {
                                $this->tpl->setVariable("SELECT_VALUE", $this->lng->txt("step") . " 3: " . $this->lng->txt("enter_value"));
                        }
                        else
                        {
                                $this->tpl->setVariable("SELECT_VALUE", $this->lng->txt("step") . " 3: " . $this->lng->txt("select_value"));
                        }
                        $this->tpl->parseCurrentBlock();
                }
                
                $this->tpl->setCurrentBlock("buttons");
                $this->tpl->setVariable("BTN_CONTINUE", $this->lng->txt("continue"));
                switch ($step)
                {
                        case 1:
                                $this->tpl->setVariable("COMMAND", "constraintStep2");
                                $this->tpl->setVariable("COMMAND_BACK", "constraints");
                                break;
                        case 2:
                                $this->tpl->setVariable("COMMAND", "constraintStep3");
                                $this->tpl->setVariable("COMMAND_BACK", "constraintStep1");
                                break;
                        case 3:
                                $this->tpl->setVariable("COMMAND", "constraintsAdd");
                                $this->tpl->setVariable("COMMAND_BACK", "constraintStep2");
                                break;
                }
                $this->tpl->setVariable("BTN_BACK", $this->lng->txt("back"));
                $this->tpl->parseCurrentBlock();
                $this->tpl->setCurrentBlock("adm_content");
                $title = "";
                if ($survey_questions[$_SESSION["constraintstructure"][$_GET["start"]][0]]["questionblock_id"] > 0)
                {
                        $title = $this->lng->txt("questionblock") . ": " . $survey_questions[$_SESSION["constraintstructure"][$_GET["start"]][0]]["questionblock_title"];
                }
                else
                {
                        $title = $this->lng->txt($survey_questions[$_SESSION["constraintstructure"][$_GET["start"]][0]]["type_tag"]) . ": " . $survey_questions[$_SESSION["constraintstructure"][$_GET["start"]][0]]["title"];
                }
                $this->tpl->setVariable("CONSTRAINT_QUESTION_TEXT", $title);
                $this->tpl->setVariable("SELECT_PRIOR_QUESTION", $this->lng->txt("step") . " 1: " . $this->lng->txt("select_prior_question"));
                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this) . "&start=" . $_GET["start"]);
                $this->tpl->parseCurrentBlock();
        }

Here is the caller graph for this function:

ilObjSurveyGUI::addHeadingObject ( question_id = ""  ) 

Creates a form to add a heading to a survey.

Creates a form to add a heading to a survey

Parameters:
integer $question_id The id of the question directly after the heading. If the id is given, an existing heading will be edited public

Definition at line 1233 of file class.ilObjSurveyGUI.php.

References $_POST, $key, and ilUtil::prepareFormOutput().

Referenced by questionsObject(), and saveHeadingObject().

        {
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_heading.html", true);
                $survey_questions =& $this->object->getSurveyQuestions();
                if ($question_id)
                {
                        $_POST["insertbefore"] = $question_id;
                        $_POST["heading"] = $survey_questions[$question_id]["heading"];
                }
                foreach ($survey_questions as $key => $value)
                {
                        $this->tpl->setCurrentBlock("insertbefore_row");
                        $this->tpl->setVariable("VALUE_OPTION", $key);
                        $option = $this->lng->txt("before") . ": \"" . $value["title"] . "\"";
                        if (strlen($option) > 80)
                        {
                                $option = preg_replace("/^(.{40}).*(.{40})$/", "\\1 [...] \\2", $option);
                        }
                        include_once "./classes/class.ilUtil.php";
                        $this->tpl->setVariable("TEXT_OPTION", ilUtil::prepareFormOutput($option));
                        if ($key == $_POST["insertbefore"])
                        {
                                $this->tpl->setVariable("SELECTED_OPTION", " selected=\"selected\"");
                        }
                        $this->tpl->parseCurrentBlock();
                }
                if ($question_id)
                {
                        $this->tpl->setCurrentBlock("hidden");
                        $this->tpl->setVariable("INSERTBEFORE_ORIGINAL", $question_id);
                        $this->tpl->parseCurrentBlock();
                }
                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
                $this->tpl->setVariable("TXT_REQUIRED_FLD", $this->lng->txt("required_field"));
                if ($question_id)
                {
                        $this->tpl->setVariable("TEXT_ADD_HEADING", $this->lng->txt("edit_heading"));
                        $this->tpl->setVariable("SELECT_DISABLED", " disabled=\"disabled\"");
                }
                else
                {
                        $this->tpl->setVariable("TEXT_ADD_HEADING", $this->lng->txt("add_heading"));
                }
                $this->tpl->setVariable("TEXT_HEADING", $this->lng->txt("heading"));
                $this->tpl->setVariable("VALUE_HEADING", $_POST["heading"]);
                $this->tpl->setVariable("TEXT_INSERT", $this->lng->txt("insert"));
                $this->tpl->setVariable("CANCEL", $this->lng->txt("cancel"));
                $this->tpl->setVariable("SAVE", $this->lng->txt("save"));
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::addLocatorItems (  ) 

should be overwritten to add object specific items (repository items are preloaded)

Reimplemented from ilObjectGUI.

Definition at line 3889 of file class.ilObjSurveyGUI.php.

        {
                global $ilLocator;
                switch ($this->ctrl->getCmd())
                {
                        case "next":
                        case "previous":
                        case "start":
                        case "resume":
                                $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "infoScreen"));
                                break;
                        case "evaluation":
                        case "checkEvaluationAccess":
                        case "evaluationdetails":
                        case "evaluationuser":
                                $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTargetByClass("ilsurveyevaluationgui", "evaluation"));
                                break;
                        case "create":
                        case "save":
                        case "cancel":
                        case "importFile":
                        case "cloneAll":
                                break;
                        case "infoScreen":
                                $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "infoScreen"));
                                break;
                default:
                                $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, ""));
                                break;
                }
        }

ilObjSurveyGUI::backToRepositoryObject (  ) 

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

References ilObjectGUI::getReturnLocation(), and ilUtil::redirect().

        {
                include_once "./classes/class.ilUtil.php";
                $path = $this->tree->getPathFull($this->object->getRefID());
                ilUtil::redirect($this->getReturnLocation("cancel","./repository.php?cmd=frameset&ref_id=" . $path[count($path) - 2]["child"]));
        }

Here is the call graph for this function:

ilObjSurveyGUI::browseForQuestionsObject ( filter_questionpool = "",
reset_filter = false,
browsequestions = 1 
)

Creates the questionbrowser to select questions from question pools.

Creates the questionbrowser to select questions from question pools

public

Definition at line 536 of file class.ilObjSurveyGUI.php.

References $_GET, $_POST, $counter, ilObjectGUI::$data, $key, $rbacsystem, $table, ilFormat::formatDate(), ilFormat::ftimestamp2dateDB(), ilUtil::getImagePath(), and sendInfo().

Referenced by changeDatatypeObject(), filterQuestionsObject(), insertQuestionsObject(), and resetFilterQuestionsObject().

        {
    global $rbacsystem;

                if (strcmp($this->ctrl->getCmd(), "filterQuestions") != 0)
                {
                        if (array_key_exists("sel_questionpool", $_GET)) $filter_questionpool = $_GET["sel_questionpool"];
                }
                if (strcmp($this->ctrl->getCmd(), "changeDatatype") != 0)
                {
                        if (array_key_exists("browsetype", $_GET))      $browsequestions = $_GET["browsetype"];
                }
                if ($_POST["cmd"]["back"]) {
                        $show_questionbrowser = false;
                }
                
    $add_parameter = "&insert_question=1";

                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_questionbrowser.html", true);
    $this->tpl->addBlockFile("A_BUTTONS", "a_buttons", "tpl.il_svy_svy_action_buttons.html", true);
    $this->tpl->addBlockFile("FILTER_QUESTION_MANAGER", "filter_questions", "tpl.il_svy_svy_filter_questions.html", true);

                $questionpools =& $this->object->getQuestionpoolTitles();
                if (count($questionpools) == 0)
                {
                        sendInfo($this->lng->txt("no_questions_available"));
                        return;
                }

                $filter_type = $_GET["sel_filter_type"];
                if (!$filter_type)
                {
                        $filter_type = $_POST["sel_filter_type"];
                }
                if ($reset_filter)
                {
                        $filter_type = "";
                }
                $add_parameter .= "&sel_filter_type=$filter_type";

                $filter_text = $_GET["filter_text"];
                if (!$filter_text)
                {
                        $filter_text = $_POST["filter_text"];
                }
                if ($reset_filter)
                {
                        $filter_text = "";
                }
                $add_parameter .= "&filter_text=$filter_text";

                $add_parameter .= "&browsetype=$browsequestions";
                $filter_fields = array(
                        "title" => $this->lng->txt("title"),
                        "comment" => $this->lng->txt("description"),
                        "author" => $this->lng->txt("author"),
                );
                $this->tpl->setCurrentBlock("filterrow");
                foreach ($filter_fields as $key => $value) 
                {
                        $this->tpl->setVariable("VALUE_FILTER_TYPE", "$key");
                        $this->tpl->setVariable("NAME_FILTER_TYPE", "$value");
                        if (!$reset_filter) 
                        {
                                if (strcmp($filter_type, $key) == 0) 
                                {
                                        $this->tpl->setVariable("VALUE_FILTER_SELECTED", " selected=\"selected\"");
                                }
                        }
                        $this->tpl->parseCurrentBlock();
                }

                $filter_question_type = $_POST["sel_question_type"];
                if (!$filter_question_type)
                {
                        $filter_question_type = $_GET["sel_question_type"];
                }
                if ($reset_filter)
                {
                        $filter_question_type = "";
                }
                $add_parameter .= "&sel_question_type=$filter_question_type";

                if ($browsequestions)
                {
                        $questiontypes =& $this->object->_getQuestiontypes();
                        foreach ($questiontypes as $key => $value)
                        {
                                $this->tpl->setCurrentBlock("questiontype_row");
                                $this->tpl->setVariable("VALUE_QUESTION_TYPE", $value);
                                $this->tpl->setVariable("TEXT_QUESTION_TYPE", $this->lng->txt($value));
                                if (strcmp($filter_question_type, $value) == 0)
                                {
                                        $this->tpl->setVariable("SELECTED_QUESTION_TYPE", " selected=\"selected\"");
                                }
                                $this->tpl->parseCurrentBlock();
                        }
                }
                
                if ($reset_filter)
                {
                        $filter_questionpool = "";
                }
                $add_parameter .= "&sel_questionpool=$filter_questionpool";
                
                if ($browsequestions)
                {
                        foreach ($questionpools as $key => $value)
                        {
                                $this->tpl->setCurrentBlock("questionpool_row");
                                $this->tpl->setVariable("VALUE_QUESTIONPOOL", $key);
                                $this->tpl->setVariable("TEXT_QUESTIONPOOL", $value);
                                if (strcmp($filter_questionpool, $key) == 0)
                                {
                                        $this->tpl->setVariable("SELECTED_QUESTIONPOOL", " selected=\"selected\"");
                                }
                                $this->tpl->parseCurrentBlock();
                        }
                }

                if ($browsequestions)
                {
                        $this->tpl->setCurrentBlock("question_filters");
                        $this->tpl->setVariable("SHOW_QUESTION_TYPES", $this->lng->txt("filter_show_question_types"));
                        $this->tpl->setVariable("TEXT_ALL_QUESTION_TYPES", $this->lng->txt("filter_all_question_types"));
                        $this->tpl->setVariable("SHOW_QUESTIONPOOLS", $this->lng->txt("filter_show_questionpools"));
                        $this->tpl->setVariable("TEXT_ALL_QUESTIONPOOLS", $this->lng->txt("filter_all_questionpools"));
                        $this->tpl->parseCurrentBlock();
                }

                $this->tpl->setCurrentBlock("filter_questions");
    $this->tpl->setVariable("FILTER_TEXT", $this->lng->txt("filter"));
    $this->tpl->setVariable("TEXT_FILTER_BY", $this->lng->txt("by"));
    if (!$_POST["cmd"]["reset"]) {
      $this->tpl->setVariable("VALUE_FILTER_TEXT", $filter_text);
    }
    $this->tpl->setVariable("VALUE_SUBMIT_FILTER", $this->lng->txt("set_filter"));
    $this->tpl->setVariable("VALUE_RESET_FILTER", $this->lng->txt("reset_filter"));
    $this->tpl->setVariable("OPTION_QUESTIONS", $this->lng->txt("questions"));
    $this->tpl->setVariable("OPTION_QUESTIONBLOCKS", $this->lng->txt("questionblocks"));
                if ($browsequestions)
                {
            $this->tpl->setVariable("SELECTED_QUESTIONS", " selected=\"selected\"");
                }
                else
                {
            $this->tpl->setVariable("SELECTED_QUESTIONBLOCKS", " selected=\"selected\"");
                }
    $this->tpl->setVariable("TEXT_DATATYPE", $this->lng->txt("display_all_available"));
                $this->tpl->setVariable("BTN_CHANGE", $this->lng->txt("change"));
    $this->tpl->parseCurrentBlock();

                if ($_POST["cmd"]["reset"])
                {
                        $_POST["filter_text"] = "";
                }
                $startrow = 0;
                if ($_GET["prevrow"])
                {
                        $startrow = $_GET["prevrow"];
                }
                if ($_GET["nextrow"])
                {
                        $startrow = $_GET["nextrow"];
                }
                if ($_GET["startrow"])
                {
                        $startrow = $_GET["startrow"];
                }
                if (!$_GET["sort"])
                {
                        // default sort order
                        $_GET["sort"] = array("title" => "ASC");
                }
                if ($browsequestions)
                {
                        $table = $this->object->getQuestionsTable($_GET["sort"], $filter_text, $filter_type, $startrow, 1, $filter_question_type, $filter_questionpool);
                }
                else
                {
                        $table = $this->object->getQuestionblocksTable($_GET["sort"], $filter_text, $filter_type, $startrow);
                }
    $colors = array("tblrow1", "tblrow2");
    $counter = 0;
                $questionblock_id = 0;
                if ($browsequestions)
                {
                        include_once "./classes/class.ilFormat.php";
                        foreach ($table["rows"] as $data)
                        {
                                if ($rbacsystem->checkAccess("write", $data["ref_id"])) {
                                        $this->tpl->setCurrentBlock("QTab");
                                        if ($data["complete"]) {
                                                // make only complete questions selectable
                                                $this->tpl->setVariable("QUESTION_ID", $data["question_id"]);
                                        }
                                        $this->tpl->setVariable("QUESTION_TITLE", "<strong>" . $data["title"] . "</strong>");
                                        $this->tpl->setVariable("PREVIEW", "[<a href=\"" . "ilias.php?baseClass=ilObjSurveyQuestionPoolGUI&ref_id=" . $data["ref_id"] . "&cmd=preview&preview=" . $data["question_id"] . " \" target=\"_blank\">" . $this->lng->txt("preview") . "</a>]");
                                        $this->tpl->setVariable("QUESTION_COMMENT", $data["description"]);
                                        $this->tpl->setVariable("QUESTION_TYPE", $this->lng->txt($data["type_tag"]));
                                        $this->tpl->setVariable("QUESTION_AUTHOR", $data["author"]);
                                        $this->tpl->setVariable("QUESTION_CREATED", ilFormat::formatDate(ilFormat::ftimestamp2dateDB($data["created"]), "date"));
                                        $this->tpl->setVariable("QUESTION_UPDATED", ilFormat::formatDate(ilFormat::ftimestamp2dateDB($data["TIMESTAMP14"]), "date"));
                                        $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                                        $this->tpl->setVariable("QUESTION_POOL", $questionpools[$data["obj_fi"]]);
                                        $this->tpl->parseCurrentBlock();
                                        $counter++;
                                }
                        }
                        if ($table["rowcount"] > count($table["rows"]))
                        {
                                $nextstep = $table["nextrow"] + $table["step"];
                                if ($nextstep > $table["rowcount"])
                                {
                                        $nextstep = $table["rowcount"];
                                }
                                $sort = "";
                                if (is_array($_GET["sort"]))
                                {
                                        $key = key($_GET["sort"]);
                                        $sort = "&sort[$key]=" . $_GET["sort"]["$key"];
                                }
                                $counter = 1;
                                for ($i = 0; $i < $table["rowcount"]; $i += $table["step"])
                                {
                                        $this->tpl->setCurrentBlock("pages_questions");
                                        if ($table["startrow"] == $i)
                                        {
                                                $this->tpl->setVariable("PAGE_NUMBER", "<span class=\"inactivepage\">$counter</span>");
                                        }
                                        else
                                        {
                                                $this->tpl->setVariable("PAGE_NUMBER", "<a href=\"" . $this->ctrl->getLinkTarget($this, "browseForQuestions") . $add_parameter . "$sort&nextrow=$i" . "\">$counter</a>");
                                        }
                                        $this->tpl->parseCurrentBlock();
                                        $counter++;
                                }
                                $this->tpl->setCurrentBlock("questions_navigation_bottom");
                                $this->tpl->setVariable("TEXT_ITEM", $this->lng->txt("item"));
                                $this->tpl->setVariable("TEXT_ITEM_START", $table["startrow"] + 1);
                                $end = $table["startrow"] + $table["step"];
                                if ($end > $table["rowcount"])
                                {
                                        $end = $table["rowcount"];
                                }
                                $this->tpl->setVariable("TEXT_ITEM_END", $end);
                                $this->tpl->setVariable("TEXT_OF", strtolower($this->lng->txt("of")));
                                $this->tpl->setVariable("TEXT_ITEM_COUNT", $table["rowcount"]);
                                $this->tpl->setVariable("TEXT_PREVIOUS", $this->lng->txt("previous"));
                                $this->tpl->setVariable("TEXT_NEXT", $this->lng->txt("next"));
                                $this->tpl->setVariable("HREF_PREV_ROWS", $this->ctrl->getLinkTarget($this, "browseForQuestions") . $add_parameter . "$sort&prevrow=" . $table["prevrow"]);
                                $this->tpl->setVariable("HREF_NEXT_ROWS", $this->ctrl->getLinkTarget($this, "browseForQuestions") . $add_parameter . "$sort&nextrow=" . $table["nextrow"]);
                                $this->tpl->parseCurrentBlock();
                        }
                }
                else
                {
                        foreach ($table["rows"] as $data)
                        {
                                $this->tpl->setCurrentBlock("questionblock_row");
                                $this->tpl->setVariable("QUESTIONBLOCK_ID", $data["questionblock_id"]);
                                $this->tpl->setVariable("QUESTIONBLOCK_TITLE", "<strong>" . $data["title"] . "</strong>");
                                $this->tpl->setVariable("SURVEY_TITLE", $data["surveytitle"]);
                                $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                                $this->tpl->setVariable("QUESTIONS_TITLE", $data["questions"]);
                                $this->tpl->parseCurrentBlock();
                                $counter++;
                        }
                        if ($table["rowcount"] > count($table["rows"]))
                        {
                                $nextstep = $table["nextrow"] + $table["step"];
                                if ($nextstep > $table["rowcount"])
                                {
                                        $nextstep = $table["rowcount"];
                                }
                                $sort = "";
                                if (is_array($_GET["sort"]))
                                {
                                        $key = key($_GET["sort"]);
                                        $sort = "&sort[$key]=" . $_GET["sort"]["$key"];
                                }
                                $counter = 1;
                                for ($i = 0; $i < $table["rowcount"]; $i += $table["step"])
                                {
                                        $this->tpl->setCurrentBlock("pages_questionblocks");
                                        if ($table["startrow"] == $i)
                                        {
                                                $this->tpl->setVariable("PAGE_NUMBER", "<strong>$counter</strong>");
                                        }
                                        else
                                        {
                                                $this->tpl->setVariable("PAGE_NUMBER", "<a href=\"" . $this->ctrl->getLinkTarget($this, "browseForQuestions") . $add_parameter . "$sort&nextrow=$i" . "\">$counter</a>");
                                        }
                                        $this->tpl->parseCurrentBlock();
                                        $counter++;
                                }
                                $this->tpl->setCurrentBlock("questionblocks_navigation_bottom");
                                $this->tpl->setVariable("TEXT_ITEM", $this->lng->txt("item"));
                                $this->tpl->setVariable("TEXT_ITEM_START", $table["startrow"] + 1);
                                $end = $table["startrow"] + $table["step"];
                                if ($end > $table["rowcount"])
                                {
                                        $end = $table["rowcount"];
                                }
                                $this->tpl->setVariable("TEXT_ITEM_END", $end);
                                $this->tpl->setVariable("TEXT_OF", strtolower($this->lng->txt("of")));
                                $this->tpl->setVariable("TEXT_ITEM_COUNT", $table["rowcount"]);
                                $this->tpl->setVariable("TEXT_PREVIOUS", $this->lng->txt("previous"));
                                $this->tpl->setVariable("TEXT_NEXT", $this->lng->txt("next"));
                                $this->tpl->setVariable("HREF_PREV_ROWS", $this->ctrl->getLinkTarget($this, "browseForQuestions") . $add_parameter . "$sort&prevrow=" . $table["prevrow"]);
                                $this->tpl->setVariable("HREF_NEXT_ROWS", $this->ctrl->getLinkTarget($this, "browseForQuestions") . $add_parameter . "$sort&nextrow=" . $table["nextrow"]);
                                $this->tpl->parseCurrentBlock();
                        }
                }

    // if there are no questions, display a message
    if ($counter == 0) 
                {
      $this->tpl->setCurrentBlock("Emptytable");
                        if ($browsequestions)
                        {
        $this->tpl->setVariable("TEXT_EMPTYTABLE", $this->lng->txt("no_questions_available"));
                        }
                        else
                        {
        $this->tpl->setVariable("TEXT_EMPTYTABLE", $this->lng->txt("no_questionblocks_available"));
                        }
      $this->tpl->parseCurrentBlock();
    }
                else
                {
                        $this->tpl->setCurrentBlock("selectall");
                        $this->tpl->setVariable("SELECT_ALL", $this->lng->txt("select_all"));
                        $counter++;
                        $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                        $this->tpl->parseCurrentBlock();
                        // create edit buttons & table footer
                        $this->tpl->setCurrentBlock("selection");
                        $this->tpl->setVariable("INSERT", $this->lng->txt("insert"));
                        $this->tpl->parseCurrentBlock();

                        $this->tpl->setCurrentBlock("Footer");
                        include_once "./classes/class.ilUtil.php";
                        $this->tpl->setVariable("ARROW", "<img src=\"" . ilUtil::getImagePath("arrow_downright.gif") . "\" alt=\"".$this->lng->txt("arrow_downright")."\">");
                        $this->tpl->parseCurrentBlock();
                }
    // define the sort column parameters
    $sort = array(
      "title" => $_GET["sort"]["title"],
      "description" => $_GET["sort"]["description"],
      "type" => $_GET["sort"]["type"],
      "author" => $_GET["sort"]["author"],
      "created" => $_GET["sort"]["created"],
      "updated" => $_GET["sort"]["updated"],
                        "qpl" => $_GET["sort"]["qpl"],
                        "svy" => $_GET["sort"]["svy"]
    );
    foreach ($sort as $key => $value) {
      if (strcmp($value, "ASC") == 0) {
        $sort[$key] = "DESC";
      } else {
        $sort[$key] = "ASC";
      }
    }

                if ($browsequestions)
                {
                        $this->tpl->setCurrentBlock("questions_header");
                        $this->tpl->setVariable("QUESTION_TITLE", "<a href=\"" . $this->ctrl->getLinkTargetByClass(get_class($this), "browseForQuestions") . "$add_parameter&startrow=" . $table["startrow"] . "&sort[title]=" . $sort["title"] . "\">" . $this->lng->txt("title") . "</a>" . $table["images"]["title"]);
                        $this->tpl->setVariable("QUESTION_COMMENT", "<a href=\"" . $this->ctrl->getLinkTargetByClass(get_class($this), "browseForQuestions") . "$add_parameter&startrow=" . $table["startrow"] . "&sort[description]=" . $sort["description"] . "\">" . $this->lng->txt("description") . "</a>". $table["images"]["description"]);
                        $this->tpl->setVariable("QUESTION_TYPE", "<a href=\"" . $this->ctrl->getLinkTargetByClass(get_class($this), "browseForQuestions") . "$add_parameter&startrow=" . $table["startrow"] . "&sort[type]=" . $sort["type"] . "\">" . $this->lng->txt("question_type") . "</a>" . $table["images"]["type"]);
                        $this->tpl->setVariable("QUESTION_AUTHOR", "<a href=\"" . $this->ctrl->getLinkTargetByClass(get_class($this), "browseForQuestions") . "$add_parameter&startrow=" . $table["startrow"] . "&sort[author]=" . $sort["author"] . "\">" . $this->lng->txt("author") . "</a>" . $table["images"]["author"]);
                        $this->tpl->setVariable("QUESTION_CREATED", "<a href=\"" . $this->ctrl->getLinkTargetByClass(get_class($this), "browseForQuestions") . "$add_parameter&startrow=" . $table["startrow"] . "&sort[created]=" . $sort["created"] . "\">" . $this->lng->txt("create_date") . "</a>" . $table["images"]["created"]);
                        $this->tpl->setVariable("QUESTION_UPDATED", "<a href=\"" . $this->ctrl->getLinkTargetByClass(get_class($this), "browseForQuestions") . "$add_parameter&startrow=" . $table["startrow"] . "&sort[updated]=" . $sort["updated"] . "\">" . $this->lng->txt("last_update") . "</a>" . $table["images"]["updated"]);
                        $this->tpl->setVariable("QUESTION_POOL", "<a href=\"" . $this->ctrl->getLinkTargetByClass(get_class($this), "browseForQuestions") . "$add_parameter&startrow=" . $table["startrow"] . "&sort[qpl]=" . $sort["qpl"] . "\">" . $this->lng->txt("obj_spl") . "</a>" . $table["images"]["qpl"]);
                        $this->tpl->parseCurrentBlock();
                }
                else
                {
                        $this->tpl->setCurrentBlock("questionblocks_header");
                        $this->tpl->setVariable("QUESTIONBLOCK_TITLE", "<a href=\"" . $this->ctrl->getLinkTargetByClass(get_class($this), "browseForQuestions") . "$add_parameter&startrow=" . $table["startrow"] . "&sort[title]=" . $sort["title"] . "\">" . $this->lng->txt("title") . "</a>" . $table["images"]["title"]);
                        $this->tpl->setVariable("SURVEY_TITLE", "<a href=\"" . $this->ctrl->getLinkTargetByClass(get_class($this), "browseForQuestions") . "$add_parameter&startrow=" . $table["startrow"] . "&sort[svy]=" . $sort["svy"] . "\">" . $this->lng->txt("obj_svy") . "</a>" . $table["images"]["svy"]);
                        $this->tpl->setVariable("QUESTIONS_TITLE", $this->lng->txt("contains"));
                        $this->tpl->parseCurrentBlock();
                }
    $this->tpl->setCurrentBlock("adm_content");
    // create table header
    $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this) . $add_parameter);
    $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::cancelCreateQuestionObject (  ) 

Cancel the creation of a new questions in a survey.

Cancel the creation of a new questions in a survey

private

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

        {
                $this->ctrl->redirect($this, "questions");
        }

ilObjSurveyGUI::cancelDefineQuestionblockObject (  ) 

Cancel define a question block.

Cancel define a question block

private

Definition at line 1550 of file class.ilObjSurveyGUI.php.

        {
                $this->ctrl->redirect($this, "questions");
        }

ilObjSurveyGUI::cancelDeleteAllUserDataObject (  ) 

Cancels delete of all user data in maintenance.

Cancels delete of all user data in maintenance

private

Definition at line 2495 of file class.ilObjSurveyGUI.php.

        {
                $this->ctrl->redirect($this, "maintenance");
        }

ilObjSurveyGUI::cancelDeleteExportFileObject (  ) 

cancel deletion of export files

Definition at line 3107 of file class.ilObjSurveyGUI.php.

        {
                session_unregister("ilExportFiles");
                $this->ctrl->redirect($this, "export");
        }

ilObjSurveyGUI::cancelDeleteSelectedUserDataObject (  ) 

Cancels the deletion of all user data for the test object.

Cancels the deletion of all user data for the test object

public

Definition at line 2521 of file class.ilObjSurveyGUI.php.

        {
                $this->ctrl->redirect($this, "maintenance");
        }

ilObjSurveyGUI::cancelHeadingObject (  ) 

Cancels saving a heading in the survey questions list.

Cancels saving a heading in the survey questions list

public

Definition at line 1358 of file class.ilObjSurveyGUI.php.

        {
                $this->ctrl->redirect($this, "questions");
        }

ilObjSurveyGUI::cancelInsertQuestionObject (  ) 

Cancels insert questions or question blocks into the survey.

Cancels insert questions or question blocks into the survey

public

Definition at line 1319 of file class.ilObjSurveyGUI.php.

        {
                $this->ctrl->redirect($this, "questions");
        }

ilObjSurveyGUI::cancelInvitationStatusObject (  ) 

Cancels an action on the invitation tab.

Cancels an action on the invitation tab

private

Definition at line 2179 of file class.ilObjSurveyGUI.php.

        {
                $this->ctrl->redirect($this, "invite");
        }

ilObjSurveyGUI::cancelObject ( in_rep = false  ) 

cancel action and go back to previous page public

Reimplemented from ilObjectGUI.

Definition at line 149 of file class.ilObjSurveyGUI.php.

References $_GET, ilUtil::redirect(), and sendInfo().

        {
                sendInfo($this->lng->txt("msg_cancel"),true);
                ilUtil::redirect("repository.php?cmd=frameset&ref_id=".$_GET["ref_id"]);
        }

Here is the call graph for this function:

ilObjSurveyGUI::cancelPropertiesObject (  ) 

Cancel actions in the properties form.

Cancel actions in the properties form

private

Definition at line 162 of file class.ilObjSurveyGUI.php.

References sendInfo().

        {
    sendInfo($this->lng->txt("msg_cancel"), true);
                $this->ctrl->redirect($this, "properties");
        }

Here is the call graph for this function:

ilObjSurveyGUI::cancelRemoveHeadingObject (  ) 

Cancels the removal of survey headings.

Cancels the removal of survey headings

public

Definition at line 1383 of file class.ilObjSurveyGUI.php.

        {
                $this->ctrl->redirect($this, "questions");
        }

ilObjSurveyGUI::cancelRemoveQuestionsObject (  ) 

Cancel remove questions from survey after confirmation.

Cancel remove questions from survey after confirmation

private

Definition at line 1442 of file class.ilObjSurveyGUI.php.

        {
                $this->ctrl->redirect($this, "questions");
        }

ilObjSurveyGUI::changeDatatypeObject (  ) 

Change the object type in the question browser.

Change the object type in the question browser

private

Definition at line 443 of file class.ilObjSurveyGUI.php.

References $_POST, and browseForQuestionsObject().

        {
                $this->browseForQuestionsObject("", true, $_POST["datatype"]);
        }

Here is the call graph for this function:

ilObjSurveyGUI::cloneAllObject (  ) 

form for new survey object duplication

Definition at line 2981 of file class.ilObjSurveyGUI.php.

References $_POST, ilObjectGUI::$ref_id, ilObjSurvey::_clone(), createObject(), ilUtil::redirect(), and sendInfo().

        {
                if ($_POST["svy"] < 1)
                {
                        sendInfo($this->lng->txt("svy_select_surveys"));
                        $this->createObject();
                        return;
                }
                include_once "./survey/classes/class.ilObjSurvey.php";
                include_once "./classes/class.ilUtil.php";
                $ref_id = ilObjSurvey::_clone($_POST["svy"]);
                // always send a message
                sendInfo($this->lng->txt("object_duplicated"),true);

                ilUtil::redirect("ilias.php?ref_id=".$ref_id.
                        "&baseClass=ilObjSurveyGUI");
        }

Here is the call graph for this function:

ilObjSurveyGUI::codesObject (  ) 

Display the survey access codes tab.

Display the survey access codes tab

private

Definition at line 3154 of file class.ilObjSurveyGUI.php.

References $_GET, $lang, $rbacsystem, $tbl, handleWriteAccess(), and sendInfo().

        {
                $this->handleWriteAccess();

                global $rbacsystem;
                global $ilUser;
                
                $default_lang = $ilUser->getPref("survey_code_language");
                
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_codes.html", true);
                if ($rbacsystem->checkAccess("write", $this->ref_id))
                {
                        $codecount = $this->object->getSurveyCodesCount();
                        if ($codecount)
                        {
                                $maxentries = $ilUser->getPref("hits_per_page");
                                if ($maxentries < 1)
                                {
                                        $maxentries = 9999;
                                }
        
                                $survey_codes =& $this->object->getSurveyCodesTableData($default_lang, $_GET["offset"], $maxentries, $_GET["sort_by"], $_GET["sort_order"]);
                                $headervars = array("", "counter", "date", "used", "url");
        
                                include_once "./classes/class.ilTableGUI.php";
                                $tbl = new ilTableGUI(0, FALSE);
                                $tbl->setTitle($this->lng->txt("survey_code"));
                                $header_names = array(
                                        "",
                                        $this->lng->txt("survey_code"),
                                        $this->lng->txt("create_date"),
                                        $this->lng->txt("survey_code_used"),
                                        $this->lng->txt("survey_code_url")
                                );
                                $tbl->setHeaderNames($header_names);
        
                                $tbl->disable("sort");
                                $tbl->disable("auto_sort");
                                $tbl->disable("title");
                                $tbl->setLimit($maxentries);
                                $tbl->setOffset($_GET["offset"]);
                                $tbl->setData($survey_codes);
                                $tbl->setMaxCount($codecount);
                                $tbl->setOrderDirection($_GET["sort_order"]);
        
                                $header_params = $this->ctrl->getParameterArray($this, "codes");
                                $tbl->setHeaderVars($headervars, $header_params);
                                
                                // footer
                                $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
                                // render table
                                $tableoutput = $tbl->render();
                                $this->tpl->setVariable("CODES_TABLE", $tableoutput);
                        }
                        else
                        {
                                $this->tpl->setCurrentBlock("emptyrow");
                                $this->tpl->setVariable("NO_CODES", $this->lng->txt("survey_code_no_codes"));
                                $this->tpl->parseCurrentBlock();
                        }
                        
                        $languages = $this->lng->getInstalledLanguages();
                        foreach ($languages as $lang)
                        {
                                $this->tpl->setCurrentBlock("option_lang");
                                $this->tpl->setVariable("VALUE_LANG", $lang);
                                $this->tpl->setVariable("TEXT_LANG", $this->lng->txt("lang_$lang"));
                                if (strcmp($lang, $default_lang) == 0)
                                {
                                        $this->tpl->setVariable("SELECTED_LANG", " selected=\"selected\"");
                                }
                                $this->tpl->parseCurrentBlock();
                        }
                        
                        $this->tpl->setCurrentBlock("adm_content");
                        $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
                        $this->tpl->setVariable("TEXT_CREATE", $this->lng->txt("create"));
                        $this->tpl->setVariable("TEXT_SURVEY_CODES", $this->lng->txt("new_survey_codes"));
                        $this->tpl->setVariable("TEXT_SURVEY_CODES_LANG", $this->lng->txt("survey_codes_lang"));
                        $this->tpl->setVariable("TEXT_NO_LANGUAGE_SELECTED", $this->lng->txt("please_select"));
                        $this->tpl->setVariable("VALUE_ACTIVATE", $this->lng->txt("select"));
                        $this->tpl->parseCurrentBlock();
                }
                else
                {
                        sendInfo($this->lng->txt("cannot_create_survey_codes"));
                }
        }

Here is the call graph for this function:

ilObjSurveyGUI::confirmDeleteAllUserDataObject (  ) 

Deletes all user data of the survey after confirmation.

Deletes all user data of the survey after confirmation

private

Definition at line 2481 of file class.ilObjSurveyGUI.php.

References sendInfo().

        {
                $this->object->deleteAllUserData();
                sendInfo($this->lng->txt("svy_all_user_data_deleted"), true);
                $this->ctrl->redirect($this, "maintenance");
        }

Here is the call graph for this function:

ilObjSurveyGUI::confirmDeleteExportFileObject (  ) 

confirmation screen for export file deletion

Definition at line 3053 of file class.ilObjSurveyGUI.php.

References $_POST, $_SESSION, $counter, $file, ilUtil::getImagePath(), sendInfo(), and ilUtil::switchColor().

        {
                if(!isset($_POST["file"]))
                {
                        sendInfo($this->lng->txt("no_checkbox"), true);
                        $this->ctrl->redirect($this, "export");
                }

                //$this->setTabs();

                // SAVE POST VALUES
                $_SESSION["ilExportFiles"] = $_POST["file"];

                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.confirm_deletion.html", true);

                sendInfo($this->lng->txt("info_delete_sure"));

                $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));

                // BEGIN TABLE HEADER
                $this->tpl->setCurrentBlock("table_header");
                $this->tpl->setVariable("TEXT",$this->lng->txt("objects"));
                $this->tpl->parseCurrentBlock();

                // BEGIN TABLE DATA
                $counter = 0;
                include_once "./classes/class.ilUtil.php";
                foreach($_POST["file"] as $file)
                {
                                $this->tpl->setCurrentBlock("table_row");
                                $this->tpl->setVariable("IMG_OBJ", ilUtil::getImagePath("icon_file.gif"));
                                $this->tpl->setVariable("TEXT_IMG_OBJ", $this->lng->txt("file_icon"));
                                $this->tpl->setVariable("CSS_ROW",ilUtil::switchColor(++$counter,"tblrow1","tblrow2"));
                                $this->tpl->setVariable("TEXT_CONTENT", $file);
                                $this->tpl->parseCurrentBlock();
                }

                // cancel/confirm button
                $this->tpl->setVariable("IMG_ARROW",ilUtil::getImagePath("arrow_downright.gif"));
                $buttons = array( "cancelDeleteExportFile"  => $this->lng->txt("cancel"),
                        "deleteExportFile"  => $this->lng->txt("confirm"));
                foreach ($buttons as $name => $value)
                {
                        $this->tpl->setCurrentBlock("operation_btn");
                        $this->tpl->setVariable("BTN_NAME",$name);
                        $this->tpl->setVariable("BTN_VALUE",$value);
                        $this->tpl->parseCurrentBlock();
                }
        }

Here is the call graph for this function:

ilObjSurveyGUI::confirmDeleteSelectedUserDataObject (  ) 

Deletes all user data for the test object.

Deletes all user data for the test object

public

Definition at line 2507 of file class.ilObjSurveyGUI.php.

References $_POST, and sendInfo().

        {
                $this->object->removeSelectedSurveyResults($_POST["chbUser"]);
                sendInfo($this->lng->txt("svy_selected_user_data_deleted"), true);
                $this->ctrl->redirect($this, "maintenance");
        }

Here is the call graph for this function:

ilObjSurveyGUI::confirmInsertQuestionObject (  ) 

Insert questions or question blocks into the survey after confirmation.

Insert questions or question blocks into the survey after confirmation

public

Definition at line 1292 of file class.ilObjSurveyGUI.php.

References $_GET, $_POST, $key, and sendInfo().

        {
                // insert questions from test after confirmation
                foreach ($_POST as $key => $value) {
                        if (preg_match("/id_(\d+)/", $key, $matches)) {
                                if ($_GET["browsetype"] == 1)
                                {
                                        $this->object->insertQuestion($matches[1]);
                                }
                                else
                                {
                                        $this->object->insertQuestionBlock($matches[1]);
                                }
                        }
                }
                $this->object->saveCompletionStatus();
                sendInfo($this->lng->txt("questions_inserted"), true);
                $this->ctrl->redirect($this, "questions");
        }

Here is the call graph for this function:

ilObjSurveyGUI::confirmRemoveHeadingForm (  ) 

Displays a confirmation form to delete a survey heading.

Displays a confirmation form to delete a survey heading

public

Definition at line 1395 of file class.ilObjSurveyGUI.php.

References $_GET, and sendInfo().

Referenced by questionsObject().

        {
                sendInfo($this->lng->txt("confirm_remove_heading"));
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_confirm_removeheading.html", true);
                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("BTN_CONFIRM_REMOVE", $this->lng->txt("confirm"));
                $this->tpl->setVariable("BTN_CANCEL_REMOVE", $this->lng->txt("cancel"));
                $this->tpl->setVariable("REMOVE_HEADING", $_GET["removeheading"]);
                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::confirmRemoveHeadingObject (  ) 

Remove a survey heading after confirmation.

Remove a survey heading after confirmation

public

Definition at line 1370 of file class.ilObjSurveyGUI.php.

References $_POST.

        {
                $this->object->saveHeading("", $_POST["removeheading"]);
                $this->ctrl->redirect($this, "questions");
        }

ilObjSurveyGUI::confirmRemoveQuestionsObject (  ) 

Remove questions from survey after confirmation.

Remove questions from survey after confirmation

private

Definition at line 1414 of file class.ilObjSurveyGUI.php.

References $_POST, $key, and sendInfo().

        {
                $checked_questions = array();
                $checked_questionblocks = array();
                foreach ($_POST as $key => $value) 
                {
                        if (preg_match("/id_(\d+)/", $key, $matches)) 
                        {
                                array_push($checked_questions, $matches[1]);
                        }
                        if (preg_match("/id_qb_(\d+)/", $key, $matches)) 
                        {
                                array_push($checked_questionblocks, $matches[1]);
                        }
                }
                $this->object->removeQuestions($checked_questions, $checked_questionblocks);
                $this->object->saveCompletionStatus();
                sendInfo($this->lng->txt("questions_removed"), true);
                $this->ctrl->redirect($this, "questions");
        }

Here is the call graph for this function:

ilObjSurveyGUI::constraintsAddObject (  ) 

Add a precondition for a survey question or question block.

Add a precondition for a survey question or question block

private

Definition at line 3404 of file class.ilObjSurveyGUI.php.

References $_POST, $_SESSION, and $key.

        {
                $survey_questions =& $this->object->getSurveyQuestions();
                $structure =& $_SESSION["constraintstructure"];
                $include_elements = $_SESSION["includeElements"];
                foreach ($include_elements as $elementCounter)
                {
                        if (is_array($structure[$elementCounter]))
                        {
                                foreach ($structure[$elementCounter] as $key => $question_id)
                                {
                                        $this->object->addConstraint($question_id, $_POST["q"], $_POST["r"], $_POST["v"]);
                                }
                        }
                }
                unset($_SESSION["includeElements"]);
                unset($_SESSION["constraintstructure"]);
                $this->ctrl->redirect($this, "constraints");
        }

ilObjSurveyGUI::constraintsObject (  ) 

Administration page for survey constraints.

Administration page for survey constraints

public

Definition at line 3539 of file class.ilObjSurveyGUI.php.

References $_GET, $_SESSION, $counter, ilObjectGUI::$data, $rbacsystem, $title, $type, constraintStep1Object(), ilUtil::getImagePath(), handleWriteAccess(), and sendInfo().

        {
                $this->handleWriteAccess();

                global $rbacsystem;
                
                $hasDatasets = $this->object->_hasDatasets($this->object->getSurveyId());
                $step = 0;
                if (array_key_exists("step", $_GET))    $step = $_GET["step"];
                switch ($step)
                {
                        case 1:
                                $this->constraintStep1Object();
                                return;
                                break;
                        case 2:
                                return;
                                break;
                        case 3:
                                return;
                                break;
                }
                
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_constraints_list.html", true);
                $survey_questions =& $this->object->getSurveyQuestions();
                $last_questionblock_title = "";
                $counter = 1;
                $structure = array();
                $colors = array("tblrow1", "tblrow2");
                foreach ($survey_questions as $question_id => $data)
                {
                        $title = $data["title"];
                        $show = true;
                        if ($data["questionblock_id"] > 0)
                        {
                                $title = $data["questionblock_title"];
                                $type = $this->lng->txt("questionblock");
                                if (strcmp($title, $last_questionblock_title) != 0) 
                                {
                                        $last_questionblock_title = $title;
                                        $structure[$counter] = array();
                                        array_push($structure[$counter], $data["question_id"]);
                                }
                                else
                                {
                                        array_push($structure[$counter-1], $data["question_id"]);
                                        $show = false;
                                }
                        }
                        else
                        {
                                $structure[$counter] = array($data["question_id"]);
                                $type = $this->lng->txt("question");
                        }
                        if ($show)
                        {
                                if ($counter == 1)
                                {
                                        $this->tpl->setCurrentBlock("description");
                                        $this->tpl->setVariable("DESCRIPTION", $this->lng->txt("constraints_first_question_description"));
                                        $this->tpl->parseCurrentBlock();
                                }
                                else
                                {
                                        $constraints =& $this->object->getConstraints($data["question_id"]);
                                        $rowcount = 0;
                                        if (count($constraints))
                                        {
                                                foreach ($constraints as $constraint)
                                                {
                                                        $value = "";
                                                        $variables =& $this->object->getVariables($constraint["question"]);
                                                        switch ($survey_questions[$constraint["question"]]["type_tag"])
                                                        {
                                                                case "SurveyMetricQuestion":
                                                                        $value = $constraint["value"];
                                                                        break;
                                                                case "SurveyNominalQuestion":
                                                                case "SurveyOrdinalQuestion":
                                                                        $value = sprintf("%d", $constraint["value"]+1) . " - " . $variables[$constraint["value"]]->title;
                                                                        break;
                                                        }
                                                        $this->tpl->setCurrentBlock("constraint");
                                                        $this->tpl->setVariable("CONSTRAINT_TEXT", $survey_questions[$constraint["question"]]["title"] . " " . $constraint["short"] . " $value");
                                                        $this->tpl->setVariable("SEQUENCE_ID", $counter);
                                                        $this->tpl->setVariable("CONSTRAINT_ID", $constraint["id"]);
                                                        $this->tpl->setVariable("COLOR_CLASS", $colors[$rowcount % 2]);
                                                        $rowcount++;
                                                        $this->tpl->parseCurrentBlock();
                                                }
                                                if ($rbacsystem->checkAccess("write", $this->ref_id) and !$hasDatasets)
                                                {
                                                        $this->tpl->setCurrentBlock("delete_button");
                                                        $this->tpl->setVariable("BTN_DELETE", $this->lng->txt("delete"));
                                                        include_once "./classes/class.ilUtil.php";
                                                        $this->tpl->setVariable("ARROW", "<img src=\"" . ilUtil::getImagePath("arrow_downright.gif") . "\" alt=\"".$this->lng->txt("arrow_downright")."\">");
                                                        $this->tpl->parseCurrentBlock();
                                                }
                                        }
                                        else
                                        {
                                                $this->tpl->setCurrentBlock("empty_row");
                                                $this->tpl->setVariable("EMPTY_TEXT", $this->lng->txt("no_available_constraints"));
                                                $this->tpl->setVariable("COLOR_CLASS", $colors[$rowcount % 2]);
                                                $this->tpl->parseCurrentBlock();
                                        }
                                        $this->tpl->setCurrentBlock("question");
                                        $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                                        $this->tpl->setVariable("DEFINED_PRECONDITIONS", $this->lng->txt("existing_constraints"));
                                        $this->tpl->parseCurrentBlock();
                                }
                                if ($counter != 1)
                                {
                                        $this->tpl->setCurrentBlock("include_elements");
                                        $this->tpl->setVariable("QUESTION_NR", "$counter");
                                        $this->tpl->parseCurrentBlock();
                                }
                                $this->tpl->setCurrentBlock("constraint_section");
                                $this->tpl->setVariable("QUESTION_NR", "$counter");
                                $this->tpl->setVariable("TITLE", "$title");
                                $icontype = "question.gif";
                                if ($data["questionblock_id"] > 0)
                                {
                                        $icontype = "questionblock.gif";
                                        $this->tpl->setVariable("TYPE", "$type: ");
                                }
                                include_once "./classes/class.ilUtil.php";
                                $this->tpl->setVariable("ICON_HREF", ilUtil::getImagePath($icontype, true));
                                $this->tpl->setVariable("ICON_ALT", $type);
                                $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                                $this->tpl->parseCurrentBlock();
                                $counter++;
                        }
                }
                if ($rbacsystem->checkAccess("write", $this->ref_id) and !$hasDatasets)
                {
                        $this->tpl->setCurrentBlock("selectall");
                        $this->tpl->setVariable("SELECT_ALL", $this->lng->txt("select_all"));
                        $counter++;
                        $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                        $this->tpl->parseCurrentBlock();

                        $this->tpl->setCurrentBlock("buttons");
                        $this->tpl->setVariable("ARROW", "<img src=\"" . ilUtil::getImagePath("arrow_downright.gif") . "\" alt=\"".$this->lng->txt("arrow_downright")."\">");
                        $this->tpl->setVariable("BTN_CREATE_CONSTRAINTS", $this->lng->txt("constraint_add"));
                        $this->tpl->parseCurrentBlock();
                }
                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("CONSTRAINTS_INTRODUCTION", $this->lng->txt("constraints_introduction"));
                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
                $this->tpl->setVariable("CONSTRAINTS_HEADER", $this->lng->txt("constraints_list_of_entities"));
                $this->tpl->parseCurrentBlock();
                $_SESSION["constraintstructure"] = $structure;
                if ($hasDatasets)
                {
                        sendInfo($this->lng->txt("survey_has_datasets_warning"));
                }
        }

Here is the call graph for this function:

ilObjSurveyGUI::constraintStep1Object (  ) 

Handles the first step of the precondition add action.

Handles the first step of the precondition add action

private

Definition at line 3461 of file class.ilObjSurveyGUI.php.

References $_GET, $_SESSION, $key, addConstraintForm(), and sendInfo().

Referenced by constraintsObject(), and createConstraintsObject().

        {
                $survey_questions =& $this->object->getSurveyQuestions();
                $structure =& $_SESSION["constraintstructure"];
                $start = $_GET["start"];
                $option_questions = array();
                for ($i = 1; $i < $start; $i++)
                {
                        if (is_array($structure[$i]))
                        {
                                foreach ($structure[$i] as $key => $question_id)
                                {
                                        if (strcmp($survey_questions[$question_id]["type_tag"], "SurveyTextQuestion") != 0)
                                        {
                                                array_push($option_questions, array("question_id" => $survey_questions[$question_id]["question_id"], "title" => $survey_questions[$question_id]["title"], "type_tag" => $survey_questions[$question_id]["type_tag"]));
                                        }
                                }
                        }
                }
                if (count($option_questions) == 0)
                {
                        unset($_SESSION["includeElements"]);
                        unset($_SESSION["constraintstructure"]);
                        sendInfo($this->lng->txt("constraints_no_nonessay_available"), true);
                        $this->ctrl->redirect($this, "constraints");
                }
                $this->addConstraintForm(1, $survey_questions, $option_questions);
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::constraintStep2Object (  ) 

Handles the second step of the precondition add action.

Handles the second step of the precondition add action

private

Definition at line 3446 of file class.ilObjSurveyGUI.php.

References $_POST, and addConstraintForm().

        {
                $survey_questions =& $this->object->getSurveyQuestions();
                $option_questions = array();
                array_push($option_questions, array("question_id" => $_POST["q"], "title" => $survey_questions[$_POST["q"]]["title"], "type_tag" => $survey_questions[$_POST["q"]]["type_tag"]));
                $this->addConstraintForm(2, $survey_questions, $option_questions);
        }

Here is the call graph for this function:

ilObjSurveyGUI::constraintStep3Object (  ) 

Handles the third step of the precondition add action.

Handles the third step of the precondition add action

private

Definition at line 3431 of file class.ilObjSurveyGUI.php.

References $_POST, and addConstraintForm().

        {
                $survey_questions =& $this->object->getSurveyQuestions();
                $option_questions = array();
                array_push($option_questions, array("question_id" => $_POST["q"], "title" => $survey_questions[$_POST["q"]]["title"], "type_tag" => $survey_questions[$_POST["q"]]["type_tag"]));
                $this->addConstraintForm(3, $survey_questions, $option_questions);
        }

Here is the call graph for this function:

ilObjSurveyGUI::createConstraintsObject (  ) 

Definition at line 3515 of file class.ilObjSurveyGUI.php.

References $_GET, $_POST, $_SESSION, constraintStep1Object(), and sendInfo().

        {
                $include_elements = $_POST["includeElements"];
                if ((!is_array($include_elements)) || (count($include_elements) == 0))
                {
                        sendInfo($this->lng->txt("constraints_no_questions_or_questionblocks_selected"), true);
                        $this->ctrl->redirect($this, "constraints");
                }
                else if (count($include_elements) >= 1)
                {
                        $_SESSION["includeElements"] = $include_elements;
                        sort($include_elements, SORT_NUMERIC);
                        $_GET["start"] = $include_elements[0];
                        $this->constraintStep1Object();
                }
        }

Here is the call graph for this function:

ilObjSurveyGUI::createExportFileObject (  ) 

create export file

Definition at line 2781 of file class.ilObjSurveyGUI.php.

References $rbacsystem, and sendInfo().

        {
                global $rbacsystem;
                
                if ($rbacsystem->checkAccess("write", $this->ref_id))
                {
                        include_once("./survey/classes/class.ilSurveyExport.php");
                        $survey_exp = new ilSurveyExport($this->object);
                        $survey_exp->buildExportFile();
                        $this->ctrl->redirect($this, "export");
                }
                else
                {
                        sendInfo("cannot_export_survey");
                }
        }

Here is the call graph for this function:

ilObjSurveyGUI::createObject (  ) 

form for new content object creation

Reimplemented from ilObjectGUI.

Definition at line 2882 of file class.ilObjSurveyGUI.php.

References $_GET, $_POST, $_SESSION, ilObjectGUI::$data, $key, $rbacsystem, ilObjSurvey::_getAvailableSurveys(), ilFrameTargetInfo::_getFrame(), ilUtil::getImagePath(), ilObjectGUI::getTemplateFile(), and ilUtil::prepareFormOutput().

Referenced by cloneAllObject(), and importFileObject().

        {
                global $rbacsystem;
                $new_type = $_POST["new_type"] ? $_POST["new_type"] : $_GET["new_type"];
                if (!$rbacsystem->checkAccess("create", $_GET["ref_id"], $new_type))
                {
                        $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
                }
                else
                {
                        $this->getTemplateFile("create", $new_type);

                        include_once("./survey/classes/class.ilObjSurvey.php");
                        $svy = new ilObjSurvey();
                        
                        $surveys =& ilObjSurvey::_getAvailableSurveys(true);
                        if (count($surveys) > 0)
                        {
                                foreach ($surveys as $key => $value)
                                {
                                        $this->tpl->setCurrentBlock("option_svy");
                                        $this->tpl->setVariable("OPTION_VALUE_SVY", $key);
                                        $this->tpl->setVariable("TXT_OPTION_SVY", $value);
                                        if ($_POST["svy"] == $key)
                                        {
                                                $this->tpl->setVariable("OPTION_SELECTED_SVY", " selected=\"selected\"");                               
                                        }
                                        $this->tpl->parseCurrentBlock();
                                }
                        }
                        
                        $questionpools =& $svy->getAvailableQuestionpools($use_obj_id = true, $could_be_offline = true);
                        if (count($questionpools) > 0)
                        {
                                foreach ($questionpools as $key => $value)
                                {
                                        $this->tpl->setCurrentBlock("option_spl");
                                        $this->tpl->setVariable("OPTION_VALUE", $key);
                                        $this->tpl->setVariable("TXT_OPTION", $value);
                                        if ($_POST["spl"] == $key)
                                        {
                                                $this->tpl->setVariable("OPTION_SELECTED", " selected=\"selected\"");                           
                                        }
                                        $this->tpl->parseCurrentBlock();
                                }
                        }
                        // fill in saved values in case of error
                        $data = array();
                        $data["fields"] = array();
                        include_once "./classes/class.ilUtil.php";
                        $data["fields"]["title"] = ilUtil::prepareFormOutput($_SESSION["error_post_vars"]["Fobject"]["title"],true);
                        $data["fields"]["desc"] = ilUtil::prepareFormOutput($_SESSION["error_post_vars"]["Fobject"]["desc"]);

                        foreach ($data["fields"] as $key => $val)
                        {
                                $this->tpl->setVariable("TXT_".strtoupper($key), $this->lng->txt($key));
                                $this->tpl->setVariable(strtoupper($key), $val);

                                if ($this->prepare_output)
                                {
                                        $this->tpl->parseCurrentBlock();
                                }
                        }

                        $this->ctrl->setParameter($this, "new_type", $this->type);
//                      $this->tpl->setVariable("FORMACTION", $this->getFormAction("save","adm_object.php?cmd=gateway&ref_id=".
//                                                                                                                                         $_GET["ref_id"]."&new_type=".$new_type));
                        $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
                        $this->tpl->setVariable("TXT_HEADER", $this->lng->txt($new_type."_new"));
                        $this->tpl->setVariable("TXT_SELECT_QUESTIONPOOL", $this->lng->txt("select_questionpool_short"));
                        $this->tpl->setVariable("OPTION_SELECT_QUESTIONPOOL", $this->lng->txt("select_questionpool_option"));
                        $this->tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel"));
                        $this->tpl->setVariable("TXT_SUBMIT", $this->lng->txt($new_type."_add"));
                        $this->tpl->setVariable("CMD_SUBMIT", "save");
                        $this->tpl->setVariable("TARGET", ' target="'.
                                ilFrameTargetInfo::_getFrame("MainContent").'" ');
                        $this->tpl->setVariable("TXT_REQUIRED_FLD", $this->lng->txt("required_field"));

                        $this->tpl->setVariable("TXT_IMPORT_SVY", $this->lng->txt("import_svy"));
                        $this->tpl->setVariable("TXT_SVY_FILE", $this->lng->txt("svy_upload_file"));
                        $this->tpl->setVariable("TXT_IMPORT", $this->lng->txt("import"));

                        $this->tpl->setVariable("TXT_DUPLICATE_SVY", $this->lng->txt("duplicate_svy"));
                        $this->tpl->setVariable("TXT_SELECT_SVY", $this->lng->txt("obj_svy"));
                        $this->tpl->setVariable("OPTION_SELECT_SVY", $this->lng->txt("select_svy_option"));
                        $this->tpl->setVariable("TXT_DUPLICATE", $this->lng->txt("duplicate"));

                        $this->tpl->setVariable("TYPE_IMG", ilUtil::getImagePath('icon_svy.gif'));
                        $this->tpl->setVariable("ALT_IMG",$this->lng->txt("obj_svy"));
                        $this->tpl->setVariable("TYPE_IMG2", ilUtil::getImagePath('icon_svy.gif'));
                        $this->tpl->setVariable("ALT_IMG2",$this->lng->txt("obj_svy"));
                        $this->tpl->setVariable("TYPE_IMG3", ilUtil::getImagePath('icon_svy.gif'));
                        $this->tpl->setVariable("ALT_IMG3",$this->lng->txt("obj_svy"));
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::createQuestionObject (  ) 

Creates a form to select a survey question pool for storage.

Creates a form to select a survey question pool for storage

public

Definition at line 1169 of file class.ilObjSurveyGUI.php.

References $_POST, $key, and sendInfo().

        {
                global $ilUser;
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_qpl_select.html", true);
                $questionpools =& $this->object->getAvailableQuestionpools();
                foreach ($questionpools as $key => $value)
                {
                        $this->tpl->setCurrentBlock("option");
                        $this->tpl->setVariable("VALUE_OPTION", $key);
                        $this->tpl->setVariable("TEXT_OPTION", $value);
                        $this->tpl->parseCurrentBlock();
                }
                $this->tpl->setCurrentBlock("hidden");
                $this->tpl->setVariable("HIDDEN_NAME", "sel_question_types");
                $this->tpl->setVariable("HIDDEN_VALUE", $_POST["sel_question_types"]);
                $this->tpl->parseCurrentBlock();
                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
                $this->tpl->setVariable("TXT_QPL_SELECT", $this->lng->txt("select_questionpool"));
                if (count($questionpools))
                {
                        $this->tpl->setVariable("BTN_SUBMIT", $this->lng->txt("submit"));
                }
                else
                {
                        sendInfo($this->lng->txt("create_questionpool_before_add_question"));
                }
                $this->tpl->setVariable("BTN_CANCEL", $this->lng->txt("cancel"));
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

ilObjSurveyGUI::createSurveyCodesObject (  ) 

Create access codes for the survey.

Create access codes for the survey

private

Definition at line 3250 of file class.ilObjSurveyGUI.php.

References $_POST, and sendInfo().

        {
                if (preg_match("/\d+/", $_POST["nrOfCodes"]))
                {
                        $this->object->createSurveyCodes($_POST["nrOfCodes"]);
                }
                else
                {
                        sendInfo($this->lng->txt("enter_valid_number_of_codes"), true);
                }
                $this->ctrl->redirect($this, "codes");
        }

Here is the call graph for this function:

ilObjSurveyGUI::defineQuestionblock ( questionblock_id = ""  ) 

Displays the definition form for a question block.

Displays the definition form for a question block

Parameters:
integer $questionblock_id The database id of the questionblock to edit an existing questionblock public

Definition at line 1123 of file class.ilObjSurveyGUI.php.

References $_POST, $key, and sendInfo().

Referenced by defineQuestionblockObject(), and questionsObject().

        {
                sendInfo();
                if ($questionblock_id)
                {
                        $questionblock = $this->object->getQuestionblock($questionblock_id);
                }
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_define_questionblock.html", true);
                foreach ($_POST as $key => $value)
                {
                        if (preg_match("/cb_(\d+)/", $key, $matches))
                        {
                                $this->tpl->setCurrentBlock("hidden");
                                $this->tpl->setVariable("HIDDEN_NAME", "cb_$matches[1]");
                                $this->tpl->setVariable("HIDDEN_VALUE", $matches[1]);
                                $this->tpl->parseCurrentBlock();
                        }
                }
                if ($questionblock_id)
                {
                        $this->tpl->setCurrentBlock("hidden");
                        $this->tpl->setVariable("HIDDEN_NAME", "questionblock_id");
                        $this->tpl->setVariable("HIDDEN_VALUE", $questionblock_id);
                        $this->tpl->parseCurrentBlock();
                }
                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("DEFINE_QUESTIONBLOCK_HEADING", $this->lng->txt("define_questionblock"));
                $this->tpl->setVariable("TEXT_TITLE", $this->lng->txt("title"));
                if ($questionblock_id)
                {
                        $this->tpl->setVariable("VALUE_TITLE", $questionblock["title"]);
                }
                $this->tpl->setVariable("TXT_REQUIRED_FLD", $this->lng->txt("required_field"));
                $this->tpl->setVariable("SAVE", $this->lng->txt("save"));
                $this->tpl->setVariable("CANCEL", $this->lng->txt("cancel"));
                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::defineQuestionblockObject (  ) 

Cancel remove questions from survey after confirmation.

Cancel remove questions from survey after confirmation

private

Definition at line 1454 of file class.ilObjSurveyGUI.php.

References $_POST, $key, defineQuestionblock(), and sendInfo().

Referenced by saveDefineQuestionblockObject().

        {
                $questionblock = array();
                foreach ($_POST as $key => $value)
                {
                        if (preg_match("/cb_(\d+)/", $key, $matches))
                        {
                                array_push($questionblock, $value);
                        }
                }
                if (count($questionblock) < 2)
                {
                        sendInfo($this->lng->txt("qpl_define_questionblock_select_missing"), true);
                        $this->ctrl->redirect($this, "questions");
                }
                else
                {
                        $this->defineQuestionblock();
                        return;
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::deleteAllUserDataObject (  ) 

Creates a confirmation form for delete all user data.

Creates a confirmation form for delete all user data

private

Definition at line 2461 of file class.ilObjSurveyGUI.php.

References sendInfo().

        {
                sendInfo($this->lng->txt("confirm_delete_all_user_data"));
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_maintenance.html", true);
                $this->tpl->setCurrentBlock("confirm_delete");
                $this->tpl->setVariable("BTN_CONFIRM_DELETE_ALL", $this->lng->txt("confirm"));
                $this->tpl->setVariable("BTN_CANCEL_DELETE_ALL", $this->lng->txt("cancel"));
                $this->tpl->parseCurrentBlock();
                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

ilObjSurveyGUI::deleteConstraintsObject (  ) 

Delete constraints of a survey.

Delete constraints of a survey

private

Definition at line 3497 of file class.ilObjSurveyGUI.php.

References $_POST, $_SESSION, and $key.

        {
                $survey_questions =& $this->object->getSurveyQuestions();
                $structure =& $_SESSION["constraintstructure"];
                foreach ($_POST as $key => $value)
                {
                        if (preg_match("/^constraint_(\d+)_(\d+)/", $key, $matches)) 
                        {
                                foreach ($structure[$matches[1]] as $key => $question_id)
                                {
                                        $this->object->deleteConstraint($matches[2], $question_id);
                                }
                        }
                }

                $this->ctrl->redirect($this, "constraints");
        }

ilObjSurveyGUI::deleteExportFileObject (  ) 

delete export files

Definition at line 3117 of file class.ilObjSurveyGUI.php.

References $_SESSION, $file, and ilUtil::delDir().

        {
                $export_dir = $this->object->getExportDirectory();
                foreach($_SESSION["ilExportFiles"] as $file)
                {
                        $exp_file = $export_dir."/".$file;
                        $exp_dir = $export_dir."/".substr($file, 0, strlen($file) - 4);
                        if (@is_file($exp_file))
                        {
                                unlink($exp_file);
                        }
                        if (@is_dir($exp_dir))
                        {
                                include_once "./classes/class.ilUtil.php";
                                ilUtil::delDir($exp_dir);
                        }
                }
                $this->ctrl->redirect($this, "export");
        }

Here is the call graph for this function:

ilObjSurveyGUI::deleteSingleUserResultsObject (  ) 

Asks for a confirmation to delete selected user data of the test object.

Asks for a confirmation to delete selected user data of the test object

public

Definition at line 2533 of file class.ilObjSurveyGUI.php.

References $_POST, $key, and sendInfo().

        {
                if (count($_POST["chbUser"]) == 0)
                {
                        $this->ctrl->redirect($this, "maintenance");
                }
                sendInfo($this->lng->txt("confirm_delete_single_user_data"));
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_maintenance.html", true);

                $this->tpl->setCurrentBlock("confirm_delete_selected");
                $this->tpl->setVariable("BTN_CONFIRM_DELETE_SELECTED", $this->lng->txt("confirm"));
                $this->tpl->setVariable("BTN_CANCEL_DELETE_SELECTED", $this->lng->txt("cancel"));
                $this->tpl->parseCurrentBlock();
                
                foreach ($_POST["chbUser"] as $key => $value)
                {
                        $this->tpl->setCurrentBlock("hidden");
                        $this->tpl->setVariable("USER_ID", $value);
                        $this->tpl->parseCurrentBlock();
                }
                
                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

ilObjSurveyGUI::disinviteUserGroupObject (  ) 

Disinvite users or groups from a survey.

Disinvite users or groups from a survey

private

Definition at line 2217 of file class.ilObjSurveyGUI.php.

References $_POST, and $user_id.

        {
                // disinvite users
                if (is_array($_POST["invited_users"]))
                {
                        foreach ($_POST["invited_users"] as $user_id)
                        {
                                $this->object->disinviteUser($user_id);
                        }
                }
                $this->ctrl->redirect($this, "invite");
        }

ilObjSurveyGUI::downloadExportFileObject (  ) 

download export file

Definition at line 3029 of file class.ilObjSurveyGUI.php.

References $_POST, ilUtil::deliverFile(), and sendInfo().

        {
                if(!isset($_POST["file"]))
                {
                        sendInfo($this->lng->txt("no_checkbox"), true);
                        $this->ctrl->redirect($this, "export");
                }

                if (count($_POST["file"]) > 1)
                {
                        sendInfo($this->lng->txt("select_max_one_item"), true);
                        $this->ctrl->redirect($this, "export");
                }


                $export_dir = $this->object->getExportDirectory();
                include_once "./classes/class.ilUtil.php";
                ilUtil::deliverFile($export_dir."/".$_POST["file"][0],
                        $_POST["file"][0]);
        }

Here is the call graph for this function:

ilObjSurveyGUI::evaluationObject (  ) 

Redirects the evaluation object call to the ilSurveyEvaluationGUI class.

Redirects the evaluation object call to the ilSurveyEvaluationGUI class

private

Definition at line 2024 of file class.ilObjSurveyGUI.php.

        {
                include_once("./survey/classes/class.ilSurveyEvaluationGUI.php");
                $eval_gui = new ilSurveyEvaluationGUI($this->object);
                $this->ctrl->setCmdClass(get_class($eval_gui));
                $this->ctrl->redirect($eval_gui, "evaluation");
        }

& ilObjSurveyGUI::executeCommand (  ) 

execute command

Reimplemented from ilObjectGUI.

Definition at line 76 of file class.ilObjSurveyGUI.php.

References $_GET, $cmd, ilObjectGUI::getCreationMode(), infoScreen(), and ilObjectGUI::prepareOutput().

        {
                $cmd = $this->ctrl->getCmd("properties");
                $next_class = $this->ctrl->getNextClass($this);
                $this->ctrl->setReturn($this, "properties");
                $this->prepareOutput();

                //echo "<br>nextclass:$next_class:cmd:$cmd:qtype=$q_type";
                switch($next_class)
                {
                        case "ilinfoscreengui":
                                $this->infoScreen();    // forwards command
                                break;
                        case 'ilmdeditorgui':
                                include_once 'Services/MetaData/classes/class.ilMDEditorGUI.php';
                                $md_gui =& new ilMDEditorGUI($this->object->getId(), 0, $this->object->getType());
                                $md_gui->addObserver($this->object,'MDUpdateListener','General');

                                $this->ctrl->forwardCommand($md_gui);
                                break;
                        
                        case "ilsurveyevaluationgui":
                                include_once("./survey/classes/class.ilSurveyEvaluationGUI.php");
                                $eval_gui = new ilSurveyEvaluationGUI($this->object);
                                $ret =& $this->ctrl->forwardCommand($eval_gui);
                                break;

                        case "ilsurveyexecutiongui":
                                include_once("./survey/classes/class.ilSurveyExecutionGUI.php");
                                $exec_gui = new ilSurveyExecutionGUI($this->object);
                                $ret =& $this->ctrl->forwardCommand($exec_gui);
                                break;
                                
                        case 'ilpermissiongui':
                                include_once("./classes/class.ilPermissionGUI.php");
                                $perm_gui =& new ilPermissionGUI($this);
                                $ret =& $this->ctrl->forwardCommand($perm_gui);
                                break;

                        default:
                                $cmd.= "Object";
                                $ret =& $this->$cmd();
                                break;
                }
                if (strtolower($_GET["baseClass"]) != "iladministrationgui" &&
                        $this->getCreationMode() != true)
                {
                        $this->tpl->show();
                }
        }

Here is the call graph for this function:

ilObjSurveyGUI::executeCreateQuestionObject (  ) 

Execute the creation of a new questions in a survey.

Execute the creation of a new questions in a survey

private

Definition at line 1219 of file class.ilObjSurveyGUI.php.

References $_GET, $_POST, and ilUtil::redirect().

        {
                include_once "./classes/class.ilUtil.php";
                ilUtil::redirect("ilias.php?baseClass=ilObjSurveyQuestionPoolGUI&ref_id=" . $_POST["sel_spl"] . "&cmd=createQuestionForSurvey&new_for_survey=".$_GET["ref_id"]."&sel_question_types=".$_POST["sel_question_types"]);
        }

Here is the call graph for this function:

ilObjSurveyGUI::exportObject (  ) 

Definition at line 2672 of file class.ilObjSurveyGUI.php.

References $_GET, $rbacsystem, $tbl, ilObjectGUI::$tree, ilUtil::getImagePath(), handleWriteAccess(), and ilUtil::switchColor().

        {
                $this->handleWriteAccess();

                global $tree;
                global $rbacsystem;

                //add template for view button
                $this->tpl->addBlockfile("BUTTONS", "buttons", "tpl.buttons.html");

                // create export file button
                $this->tpl->setCurrentBlock("btn_cell");
                $this->tpl->setVariable("BTN_LINK", $this->ctrl->getLinkTarget($this, "createExportFile"));
                $this->tpl->setVariable("BTN_TXT", $this->lng->txt("svy_create_export_file"));
                $this->tpl->parseCurrentBlock();

                $export_dir = $this->object->getExportDirectory();
                $export_files = $this->object->getExportFiles($export_dir);

                // create table
                include_once("./classes/class.ilTableGUI.php");
                $tbl = new ilTableGUI();

                // load files templates
                $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");

                // load template for table content data
                $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.export_file_row.html", true);

                $num = 0;

                $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));

                $tbl->setTitle($this->lng->txt("svy_export_files"));

                $tbl->setHeaderNames(array("", $this->lng->txt("svy_file"),
                        $this->lng->txt("svy_size"), $this->lng->txt("date") ));

                $tbl->enabled["sort"] = false;
                $tbl->setColumnWidth(array("1%", "49%", "25%", "25%"));

                // control
                $tbl->setOrderColumn($_GET["sort_by"]);
                $tbl->setOrderDirection($_GET["sort_order"]);
                $tbl->setLimit($_GET["limit"]);
                $tbl->setOffset($_GET["offset"]);
                $tbl->setMaxCount($this->maxcount);             // ???
                $header_params = $this->ctrl->getParameterArray($this, "export");
                $tbl->setHeaderVars(array("", "file", "size", "date"), $header_params);

                // footer
                $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
                //$tbl->disable("footer");

                $tbl->setMaxCount(count($export_files));
                $export_files = array_slice($export_files, $_GET["offset"], $_GET["limit"]);

                $tbl->render();
                if(count($export_files) > 0)
                {
                        $this->tpl->setVariable("COLUMN_COUNTS", 4);
                        
                        $i=0;
                        foreach($export_files as $exp_file)
                        {
                                $this->tpl->setCurrentBlock("tbl_content");
                                $this->tpl->setVariable("TXT_FILENAME", $exp_file);

                                $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2");
                                $this->tpl->setVariable("CSS_ROW", $css_row);

                                $this->tpl->setVariable("TXT_SIZE", filesize($export_dir."/".$exp_file));
                                $this->tpl->setVariable("CHECKBOX_ID", $exp_file);

                                $file_arr = explode("__", $exp_file);
                                $this->tpl->setVariable("TXT_DATE", date("Y-m-d H:i:s",$file_arr[0]));

                                $this->tpl->parseCurrentBlock();
                        }
                        $this->tpl->setCurrentBlock("selectall");
                        $this->tpl->setVariable("SELECT_ALL", $this->lng->txt("select_all"));
                        $this->tpl->setVariable("CSS_ROW", $css_row);
                        $this->tpl->parseCurrentBlock();
                        // delete button
                        $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.gif"));
                        $this->tpl->setCurrentBlock("tbl_action_btn");
                        $this->tpl->setVariable("BTN_NAME", "confirmDeleteExportFile");
                        $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("delete"));
                        $this->tpl->parseCurrentBlock();
        
                        $this->tpl->setCurrentBlock("tbl_action_btn");
                        $this->tpl->setVariable("BTN_NAME", "downloadExportFile");
                        $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("download"));
                        $this->tpl->parseCurrentBlock();        
                } //if is_array
                else
                {
                        $this->tpl->setCurrentBlock("notfound");
                        $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found"));
                        $this->tpl->setVariable("NUM_COLS", 3);
                        $this->tpl->parseCurrentBlock();
                }

                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

ilObjSurveyGUI::filterQuestionsObject (  ) 

Called when the filter in the question browser is activated.

Called when the filter in the question browser is activated

private

Definition at line 419 of file class.ilObjSurveyGUI.php.

References $_POST, and browseForQuestionsObject().

        {
                $this->browseForQuestionsObject($_POST["sel_questionpool"]);
        }

Here is the call graph for this function:

ilObjSurveyGUI::getTabs ( &$  tabs_gui  ) 

adds tabs to tab gui object

Parameters:
object $tabs_gui ilTabsGUI object

Reimplemented from ilObjectGUI.

Definition at line 3926 of file class.ilObjSurveyGUI.php.

References $_GET.

        {
                global $ilAccess;
                
                switch ($this->ctrl->getCmd())
                {
                        case "start":
                        case "resume":
                        case "next":
                        case "previous":

                        case "evaluation":
                        case "checkEvaluationAccess":
                        case "evaluationdetails":
                        case "evaluationuser":
                                return;
                                break;
                }
                
                // properties
                if ($ilAccess->checkAccess("write", "", $this->ref_id))
                {
                        $force_active = ($this->ctrl->getCmd() == "")
                                ? true
                                : false;
                        $tabs_gui->addTarget("properties",
                                 $this->ctrl->getLinkTarget($this,'properties'),
                                 array("properties", "save", "cancel"), "",
                                 "", $force_active);
                }

                if ($ilAccess->checkAccess("visible", "", $this->ref_id))
                {
                        $tabs_gui->addTarget("info",
                                 $this->ctrl->getLinkTarget($this,'infoScreen'),
                                 array("infoScreen", "showSummary"));
                }
                        
                // questions
                if ($ilAccess->checkAccess("write", "", $this->ref_id))
                {
                        $force_active = ($_GET["up"] != "" || $_GET["down"] != "")
                                ? true
                                : false;
        
                        $tabs_gui->addTarget("survey_questions",
                                 $this->ctrl->getLinkTarget($this,'questions'),
                                 array("questions", "browseForQuestions", "searchQuestions", "createQuestion",
                                 "searchQuestionsExecute",
                                 "filterQuestions", "resetFilterQuestions", "changeDatatype", "insertQuestions",
                                 "removeQuestions", "cancelRemoveQuestions", "confirmRemoveQuestions",
                                 "defineQuestionblock", "saveDefineQuestionblock", "cancelDefineQuestionblock",
                                 "unfoldQuestionblock", "moveQuestions",
                                 "insertQuestionsBefore", "insertQuestionsAfter", "saveObligatory",
                                 "addHeading", "saveHeading", "cancelHeading", "editHeading",
                                 "confirmRemoveHeading", "cancelRemoveHeading"),
                                 "", "", $force_active);
                                 
                        // meta data
                        $tabs_gui->addTarget("meta_data",
                                 $this->ctrl->getLinkTargetByClass('ilmdeditorgui','listSection'),
                                 "", "ilmdeditorgui");
        
                        // constraints
                        $tabs_gui->addTarget("constraints",
                                 $this->ctrl->getLinkTarget($this, "constraints"),
                                 array("constraints", "constraintStep1", "constraintStep2",
                                 "constraintStep3", "constraintsAdd", "createConstraints"),
                                 "");
                }
                
                if (($ilAccess->checkAccess("write", "", $this->ref_id)) || ($ilAccess->checkAccess("invite", "", $this->ref_id)))
                {
                        // invite
                        $tabs_gui->addTarget("invite_participants",
                                 $this->ctrl->getLinkTarget($this, "invite"),
                                 array("invite", "saveInvitationStatus",
                                 "cancelInvitationStatus", "searchInvitation", "inviteUserGroup",
                                 "disinviteUserGroup"),
                                 "");
                }
                
                if ($ilAccess->checkAccess("write", "", $this->ref_id))
                {
                        // export
                        $tabs_gui->addTarget("export",
                                 $this->ctrl->getLinkTarget($this,'export'),
                                 array("export", "createExportFile", "confirmDeleteExportFile",
                                 "downloadExportFile"), 
                                 ""
                                );
        
                        // maintenance
                        $tabs_gui->addTarget("maintenance",
                                 $this->ctrl->getLinkTarget($this,'maintenance'),
                                 array("maintenance", "deleteAllUserData"),
                                 "");
        
                        // status
                        $tabs_gui->addTarget("status",
                                 $this->ctrl->getLinkTarget($this,'status'),
                                 array("status"),
                                 "");
                                
                        if ($this->object->getAnonymize() == 1)
                        {
                                // code
                                $tabs_gui->addTarget("codes",
                                         $this->ctrl->getLinkTarget($this,'codes'),
                                         array("codes", "createSurveyCodes", "setCodeLanguage"),
                                         "");
                        }
                                 
                        // permissions
                        $tabs_gui->addTarget("perm_settings",
                                $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"), array("perm","info","owner"), 'ilpermissiongui');
                }
        }

ilObjSurveyGUI::handleWriteAccess (  ) 

Checks for write access and returns to the parent object.

Checks for write access and returns to the parent object

public

Definition at line 227 of file class.ilObjSurveyGUI.php.

References sendInfo().

Referenced by codesObject(), constraintsObject(), exportObject(), maintenanceObject(), propertiesObject(), questionsObject(), and statusObject().

        {
                global $ilAccess;
                if (!$ilAccess->checkAccess("write", "", $this->ref_id)) 
                {
                        // allow only write access
                        sendInfo($this->lng->txt("cannot_edit_survey"), TRUE);
                        $this->ctrl->redirect($this, "infoScreen");
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::ilObjSurveyGUI (  ) 

Constructor public.

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

References $_GET, $ilCtrl, ilObjectGUI::$lng, $rbacsystem, and ilObjectGUI::ilObjectGUI().

        {
    global $lng, $ilCtrl, $rbacsystem;

                $this->type = "svy";
                $lng->loadLanguageModule("survey");
                $this->ctrl =& $ilCtrl;
                $this->ctrl->saveParameter($this, "ref_id");

                $this->ilObjectGUI("",$_GET["ref_id"], true, false);
                if (!$rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
                {
                        $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
                }
        }

Here is the call graph for this function:

ilObjSurveyGUI::importFileObject (  ) 

form for new survey object import

Definition at line 3002 of file class.ilObjSurveyGUI.php.

References $_POST, ilObjectGUI::$ref_id, createObject(), ilUtil::redirect(), sendInfo(), and uploadObject().

        {
                if ($_POST["spl"] < 1)
                {
                        sendInfo($this->lng->txt("svy_select_questionpools"));
                        $this->createObject();
                        return;
                }
                if (strcmp($_FILES["xmldoc"]["tmp_name"], "") == 0)
                {
                        sendInfo($this->lng->txt("svy_select_file_for_import"));
                        $this->createObject();
                        return;
                }
                $this->ctrl->setParameter($this, "new_type", $this->type);
                $ref_id = $this->uploadObject(false);
                // always send a message
                sendInfo($this->lng->txt("object_imported"),true);

                ilUtil::redirect("ilias.php?ref_id=".$ref_id.
                        "&baseClass=ilObjSurveyGUI");
//              $this->ctrl->redirect($this, "importFile");
        }

Here is the call graph for this function:

ilObjSurveyGUI::importObject (  ) 

display dialogue for importing tests

public

Reimplemented from ilObjectGUI.

Definition at line 2803 of file class.ilObjSurveyGUI.php.

References $key, and ilObjectGUI::getTemplateFile().

Referenced by uploadObject().

        {
                $this->getTemplateFile("import", "svy");
                $this->tpl->setCurrentBlock("option_qpl");
                include_once("./survey/classes/class.ilObjSurvey.php");
                $svy = new ilObjSurvey();
                $questionpools =& $svy->getAvailableQuestionpools(true);
                if (count($questionpools) == 0)
                {
                }
                else
                {
                        foreach ($questionpools as $key => $value)
                        {
                                $this->tpl->setCurrentBlock("option_spl");
                                $this->tpl->setVariable("OPTION_VALUE", $key);
                                $this->tpl->setVariable("TXT_OPTION", $value);
                                $this->tpl->parseCurrentBlock();
                        }
                }
                $this->tpl->setVariable("TXT_SELECT_QUESTIONPOOL", $this->lng->txt("select_questionpool"));
                $this->tpl->setVariable("OPTION_SELECT_QUESTIONPOOL", $this->lng->txt("select_questionpool_option"));
                $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
//              $this->tpl->setVariable("FORMACTION", "adm_object.php?&ref_id=".$_GET["ref_id"]."&cmd=gateway&new_type=".$this->type);
                $this->tpl->setVariable("BTN_NAME", "upload");
                $this->tpl->setVariable("TXT_UPLOAD", $this->lng->txt("upload"));
                $this->tpl->setVariable("TXT_IMPORT_TST", $this->lng->txt("import_tst"));
                $this->tpl->setVariable("TXT_SELECT_MODE", $this->lng->txt("select_mode"));
                $this->tpl->setVariable("TXT_SELECT_FILE", $this->lng->txt("select_file"));

        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::infoScreen (  ) 

show information screen

Definition at line 3713 of file class.ilObjSurveyGUI.php.

References $_POST, $_SESSION, ilObjSurveyAccess::_hasEvaluationAccess(), and sendInfo().

Referenced by executeCommand(), and infoScreenObject().

        {
                global $ilAccess;
                global $ilUser;

                if (!$ilAccess->checkAccess("visible", "", $this->ref_id))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
                }
                
                include_once("classes/class.ilInfoScreenGUI.php");
                $info = new ilInfoScreenGUI($this);
                include_once "./survey/classes/class.ilSurveyExecutionGUI.php";
                $output_gui =& new ilSurveyExecutionGUI($this->object);
                $info->setFormAction($this->ctrl->getFormAction($output_gui));
                $info->enablePrivateNotes();
                $anonymize_key = NULL;
                if ($this->object->getAnonymize() == 1)
                {
                        if ($_SESSION["anonymous_id"])
                        {
                                $anonymize_key = $_SESSION["anonymous_id"];
                        }
                        else if ($_POST["anonymous_id"])
                        {
                                $anonymize_key = $_POST["anonymous_id"];
                        }
                }
                $canStart = $this->object->canStartSurvey($anonymize_key);
                $showButtons = $canStart["result"];
                if (!$showButtons) sendInfo(implode("<br />", $canStart["messages"]));

                if ($showButtons)
                {
                        // output of start/resume buttons for personalized surveys
                        if (!$this->object->getAnonymize())
                        {
                                $survey_started = $this->object->isSurveyStarted($ilUser->getId(), "");
                                // Anonymous User tries to start a personalized survey
                                if ($_SESSION["AccountId"] == ANONYMOUS_USER_ID)
                                {
                                        sendInfo($this->lng->txt("anonymous_with_personalized_survey"));
                                }
                                else
                                {
                                        if ($survey_started === 1)
                                        {
                                                sendInfo($this->lng->txt("already_completed_survey"));
                                        }
                                        elseif ($survey_started === 0)
                                        {
                                                $info->addFormButton("resume", $this->lng->txt("resume_survey"));
                                        }
                                        elseif ($survey_started === FALSE)
                                        {
                                                $info->addFormButton("start", $this->lng->txt("start_survey"));
                                        }
                                }
                        }
                        // output of start/resume buttons for anonymized surveys
                        else if ($this->object->getAnonymize() && !$this->object->isAccessibleWithoutCode())
                        {
                                if (($_SESSION["AccountId"] == ANONYMOUS_USER_ID) && (strlen($_POST["anonymous_id"]) == 0) && (strlen($_SESSION["anonymous_id"]) == 0))
                                {
                                        $info->setFormAction($this->ctrl->getFormAction($this));
                                        $info->addSection($this->lng->txt("anonymization"));
                                        $info->addProperty("", $this->lng->txt("anonymize_anonymous_introduction"));
                                        $info->addPropertyTextinput($this->lng->txt("enter_anonymous_id"), "anonymous_id", "", 8, "infoScreen", $this->lng->txt("submit"));
                                }
                                else
                                {
                                        if (strlen($_POST["anonymous_id"]) > 0)
                                        {
                                                if (!$this->object->checkSurveyCode($_POST["anonymous_id"]))
                                                {
                                                        sendInfo("wrong_survey_code_used");
                                                }
                                                else
                                                {
                                                        $anonymize_key = $_POST["anonymous_id"];
                                                }
                                        }
                                        else if (strlen($_SESSION["anonymous_id"]) > 0)
                                        {
                                                if (!$this->object->checkSurveyCode($_SESSION["anonymous_id"]))
                                                {
                                                        sendInfo($this->lng->txt("wrong_survey_code_used"));
                                                }
                                                else
                                                {
                                                        $anonymize_key = $_SESSION["anonymous_id"];
                                                }
                                        }
                                        else
                                        {
                                                // registered users do not need to know that there is an anonymous key. The data is anonymized automatically
                                                $anonymize_key = $this->object->getUserAccessCode($ilUser->getId());
                                                if (!strlen($anonymize_key))
                                                {
                                                        $anonymize_key = $this->object->createNewAccessCode();
                                                        $this->object->saveUserAccessCode($ilUser->getId(), $anonymize_key);
                                                }
                                        }
                                        $info->addHiddenElement("anonymous_id", $anonymize_key);
                                        $survey_started = $this->object->isSurveyStarted($ilUser->getId(), $anonymize_key);
                                        if ($survey_started === 1)
                                        {
                                                sendInfo($this->lng->txt("already_completed_survey"));
                                        }
                                        elseif ($survey_started === 0)
                                        {
                                                $info->addFormButton("resume", $this->lng->txt("resume_survey"));
                                        }
                                        elseif ($survey_started === FALSE)
                                        {
                                                $info->addFormButton("start", $this->lng->txt("start_survey"));
                                        }
                                }
                        }
                        else
                        {
                                // free access
                                $survey_started = $this->object->isSurveyStarted($ilUser->getId(), "");
                                if ($survey_started === 1)
                                {
                                        sendInfo($this->lng->txt("already_completed_survey"));
                                }
                                elseif ($survey_started === 0)
                                {
                                        $info->addFormButton("resume", $this->lng->txt("resume_survey"));
                                }
                                elseif ($survey_started === FALSE)
                                {
                                        $info->addFormButton("start", $this->lng->txt("start_survey"));
                                }
                        }
                }
                
                if (strlen($this->object->getIntroduction()))
                {
                        $introduction = $this->object->getIntroduction();
                        $info->addSection($this->lng->txt("introduction"));
                        $info->addProperty("", $this->object->prepareTextareaOutput($introduction));
                }
                
                $info->addSection($this->lng->txt("svy_general_properties"));
                $info->addProperty($this->lng->txt("author"), $this->object->getAuthor());
                $info->addProperty($this->lng->txt("title"), $this->object->getTitle());
                switch ($this->object->getAnonymize())
                {
                        case ANONYMIZE_OFF:
                                $info->addProperty($this->lng->txt("anonymization"), $this->lng->txt("anonymize_personalized"));
                                break;
                        case ANONYMIZE_ON:
                                if ($_SESSION["AccountId"] == ANONYMOUS_USER_ID)
                                {
                                        $info->addProperty($this->lng->txt("anonymization"), $this->lng->txt("anonymize_with_code"));
                                }
                                else
                                {
                                        $info->addProperty($this->lng->txt("anonymization"), $this->lng->txt("anonymize_registered_user"));
                                }
                                break;
                        case ANONYMIZE_FREEACCESS:
                                $info->addProperty($this->lng->txt("anonymization"), $this->lng->txt("anonymize_without_code"));
                                break;
                }
                include_once "./survey/classes/class.ilObjSurveyAccess.php";
                if ($ilAccess->checkAccess("write", "", $this->ref_id) || ilObjSurveyAccess::_hasEvaluationAccess($this->object->getId(), $ilUser->getId()))
                {
                        $info->addProperty($this->lng->txt("evaluation_access"), $this->lng->txt("evaluation_access_info"));
                }
                $info->addMetaDataSections($this->object->getId(),0, $this->object->getType());
                $this->ctrl->forwardCommand($info);
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::infoScreenObject (  ) 

this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually, if everything works through ilCtrl in the future this may be changed

Definition at line 3703 of file class.ilObjSurveyGUI.php.

References infoScreen().

        {
                $this->ctrl->setCmd("showSummary");
                $this->ctrl->setCmdClass("ilinfoscreengui");
                $this->infoScreen();
        }

Here is the call graph for this function:

ilObjSurveyGUI::insertQuestions ( insert_mode  ) 

Insert questions from move clipboard.

Insert questions from move clipboard

private

Definition at line 1600 of file class.ilObjSurveyGUI.php.

References $_POST, $_SESSION, $key, and sendInfo().

Referenced by insertQuestionsAfterObject(), and insertQuestionsBeforeObject().

        {
                // get all questions to move
                $move_questions = $_SESSION["move_questions"];
                // get insert point
                $insert_id = -1;
                foreach ($_POST as $key => $value)
                {
                        if (preg_match("/^cb_(\d+)$/", $key, $matches))
                        {
                                if ($insert_id < 0)
                                {
                                        $insert_id = $matches[1];
                                }
                        }
                        if (preg_match("/^cb_qb_(\d+)$/", $key, $matches))
                        {
                                if ($insert_id < 0)
                                {
                                        $ids =& $this->object->getQuestionblockQuestionIds($matches[1]);
                                        if (count($ids))
                                        {
                                                if ($insert_mode == 0)
                                                {
                                                        $insert_id = $ids[0];
                                                }
                                                else if ($insert_mode == 1)
                                                {
                                                        $insert_id = $ids[count($ids)-1];
                                                }
                                        }
                                }
                        }
                }
                if ($insert_id <= 0)
                {
                        sendInfo($this->lng->txt("no_target_selected_for_move"), true);
                }
                else
                {
                        $this->object->moveQuestions($move_questions, $insert_id, $insert_mode);
                }
                unset($_SESSION["move_questions"]);
                $this->ctrl->redirect($this, "questions");
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::insertQuestionsAfterObject (  ) 

Insert questions after selection.

Insert questions after selection

private

Definition at line 1665 of file class.ilObjSurveyGUI.php.

References insertQuestions().

        {
                $this->insertQuestions(1);
        }

Here is the call graph for this function:

ilObjSurveyGUI::insertQuestionsBeforeObject (  ) 

Insert questions before selection.

Insert questions before selection

private

Definition at line 1653 of file class.ilObjSurveyGUI.php.

References insertQuestions().

        {
                $this->insertQuestions(0);
        }

Here is the call graph for this function:

ilObjSurveyGUI::insertQuestionsObject (  ) 

Insert questions into the survey.

Insert questions into the survey

private

Definition at line 455 of file class.ilObjSurveyGUI.php.

References $_GET, $_POST, $key, browseForQuestionsObject(), and sendInfo().

        {
                // insert selected questions into test
                $inserted_objects = 0;
                foreach ($_POST as $key => $value) 
                {
                        if (preg_match("/cb_(\d+)/", $key, $matches)) 
                        {
                                if ($_GET["browsetype"] == 1)
                                {
                                        $this->object->insertQuestion($matches[1]);
                                }
                                else
                                {
                                        $this->object->insertQuestionBlock($matches[1]);
                                }
                                $inserted_objects++;
                        }
                }
                if ($inserted_objects)
                {
                        $this->object->saveCompletionStatus();
                        sendInfo($this->lng->txt("questions_inserted"), true);
                        $this->ctrl->redirect($this, "questions");
                }
                else
                {
                        if ($_GET["browsetype"] == 1)
                        {
                                sendInfo($this->lng->txt("insert_missing_question"));
                        }
                        else
                        {
                                sendInfo($this->lng->txt("insert_missing_questionblock"));
                        }
                        $this->browseForQuestionsObject("", false, $_GET["browsetype"]);
                }
        }

Here is the call graph for this function:

ilObjSurveyGUI::inviteObject (  ) 

Creates the output for user/group invitation to a survey.

Creates the output for user/group invitation to a survey

public

Definition at line 2274 of file class.ilObjSurveyGUI.php.

References $_POST, $rbacsystem, $users, ilObjectGUI::getReturnLocation(), outUserGroupTable(), ilUtil::redirect(), and sendInfo().

Referenced by searchInvitationObject().

        {
                global $rbacsystem;

                if ((!$rbacsystem->checkAccess("read", $this->ref_id)) && (!$rbacsystem->checkAccess("write", $this->ref_id))) 
                {
                        // allow only read and write access
                        sendInfo($this->lng->txt("cannot_edit_survey"), true);
                        $path = $this->tree->getPathFull($this->object->getRefID());
                        include_once "./classes/class.ilUtil.php";
                        ilUtil::redirect($this->getReturnLocation("cancel","./repository.php?cmd=frameset&ref_id=" . $path[count($path) - 2]["child"]));
                        return;
                }
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_invite.html", true);

                if ($this->object->getStatus() == STATUS_OFFLINE)
                {
                        $this->tpl->setCurrentBlock("survey_offline");
                        $this->tpl->setVariable("SURVEY_OFFLINE_MESSAGE", $this->lng->txt("survey_offline_message"));
                        $this->tpl->parseCurrentBlock();
                        return;
                }

                $concat = ($_POST["concatenation"]) ? $_POST["concatenation"] : "or";
                $searchfor = ($_POST["search_for"]) ? $_POST["search_for"] : array("usr");

                if (strcmp($this->ctrl->getCmd(), "searchInvitation") == 0)
                {
                        if (is_array($_POST["search_for"]))
                        {
                                if (in_array("usr", $_POST["search_for"]) or in_array("grp", $_POST["search_for"]) or in_array("role", $_POST["search_for"]))
                                {
                                        include_once "./classes/class.ilSearch.php";
                                        $search =& new ilSearch($ilUser->id);
                                        $search->setSearchString($_POST["search_term"]);
                                        $search->setCombination($concat);
                                        $search->setSearchFor($searchfor);
                                        $search->setSearchType("new");
                                        if($search->validate($message))
                                        {
                                                $search->performSearch();
                                        }
                                        if ($message)
                                        {
                                                sendInfo($message);
                                        }
                                        if(!$search->getNumberOfResults() && $search->getSearchFor())
                                        {
                                                sendInfo($this->lng->txt("search_no_match"));
                                        }
                                        $buttons = array("add");
                                        $invited_users = $this->object->getInvitedUsers();
                                        if ($searchresult = $search->getResultByType("usr"))
                                        {
                                                $users = array();
                                                foreach ($searchresult as $result_array)
                                                {
                                                        if (!in_array($result_array["id"], $invited_users))
                                                        {
                                                                array_push($users, $result_array["id"]);
                                                        }
                                                }
                                                $this->outUserGroupTable("usr", $users, "user_result", "user_row", $this->lng->txt("search_users"), $buttons);
                                        }
                                        $searchresult = array();
                                        if ($searchresult = $search->getResultByType("grp"))
                                        {
                                                $groups = array();
                                                foreach ($searchresult as $result_array)
                                                {
                                                        array_push($groups, $result_array["id"]);
                                                }
                                                $this->outUserGroupTable("grp", $groups, "group_result", "group_row", $this->lng->txt("search_groups"), $buttons);
                                        }
                                        $searchresult = array();
                                        if ($searchresult = $search->getResultByType("role"))
                                        {
                                                $roles = array();
                                                foreach ($searchresult as $result_array)
                                                {
                                                        array_push($roles, $result_array["id"]);
                                                }
                                                $this->outUserGroupTable("role", $roles, "role_result", "role_row", $this->lng->txt("search_roles"), $buttons);
                                        }
                                }
                        }
                        else
                        {
                                sendInfo($this->lng->txt("no_user_or_group_selected"));
                        }
                }

                if (($this->object->getInvitationMode() == MODE_PREDEFINED_USERS) and ($this->object->getInvitation() == INVITATION_ON))
                {
                        if ($rbacsystem->checkAccess('invite', $this->ref_id))
                        {
                                $this->tpl->setCurrentBlock("invitation");
                                $this->tpl->setVariable("SEARCH_INVITATION", $this->lng->txt("search_invitation"));
                                $this->tpl->setVariable("SEARCH_TERM", $this->lng->txt("search_term"));
                                $this->tpl->setVariable("SEARCH_FOR", $this->lng->txt("search_for"));
                                $this->tpl->setVariable("SEARCH_USERS", $this->lng->txt("objs_usr"));
                                $this->tpl->setVariable("SEARCH_GROUPS", $this->lng->txt("objs_grp"));
                                $this->tpl->setVariable("SEARCH_ROLES", $this->lng->txt("objs_role"));
                                $this->tpl->setVariable("TEXT_CONCATENATION", $this->lng->txt("concatenation"));
                                $this->tpl->setVariable("TEXT_AND", $this->lng->txt("and"));
                                $this->tpl->setVariable("TEXT_OR", $this->lng->txt("or"));
                                $this->tpl->setVariable("VALUE_SEARCH_TERM", $_POST["search_term"]);
                                if (is_array($searchfor))
                                {
                                        if (in_array("usr", $searchfor))
                                        {
                                                $this->tpl->setVariable("CHECKED_USERS", " checked=\"checked\"");
                                        }
                                        if (in_array("grp", $searchfor))
                                        {
                                                $this->tpl->setVariable("CHECKED_GROUPS", " checked=\"checked\"");
                                        }
                                        if (in_array("role", $searchfor))
                                        {
                                                $this->tpl->setVariable("CHECKED_ROLES", " checked=\"checked\"");
                                        }
                                }
                                if (strcmp($concat, "and") == 0)
                                {
                                        $this->tpl->setVariable("CHECKED_AND", " checked=\"checked\"");
                                }
                                else if (strcmp($concat, "or") == 0)
                                {
                                        $this->tpl->setVariable("CHECKED_OR", " checked=\"checked\"");
                                }
                                $this->tpl->setVariable("SEARCH", $this->lng->txt("search"));
                                $this->tpl->parseCurrentBlock();
                        }
                }
                if ($this->object->getInvitationMode() == MODE_PREDEFINED_USERS)
                {
                        $invited_users = $this->object->getInvitedUsers();
                        $buttons = array("disinvite");
                        if (count($invited_users))
                        {
                                $this->outUserGroupTable("usr", $invited_users, "invited_user_result", "invited_user_row", $this->lng->txt("invited_users"), $buttons);
                        }
                }
                if ($this->object->getInvitation() == INVITATION_ON)
                {
                        $this->tpl->setCurrentBlock("invitation_mode");
                        $this->tpl->setVariable("TEXT_MODE", $this->lng->txt("invitation_mode"));
                        $this->tpl->setVariable("VALUE_UNLIMITED", $this->lng->txt("unlimited_users"));
                        $this->tpl->setVariable("VALUE_PREDEFINED", $this->lng->txt("predefined_users"));
                        if ($this->object->getInvitationMode() == MODE_PREDEFINED_USERS)
                        {
                                $this->tpl->setVariable("SELECTED_PREDEFINED", " selected=\"selected\"");
                        }
                        else
                        {
                                $this->tpl->setVariable("SELECTED_UNLIMITED", " selected=\"selected\"");
                        }
                        $this->tpl->parseCurrentBlock();
                }
                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
                $this->tpl->setVariable("TEXT_INVITATION", $this->lng->txt("invitation"));
                $this->tpl->setVariable("VALUE_ON", $this->lng->txt("on"));
                $this->tpl->setVariable("VALUE_OFF", $this->lng->txt("off"));
                $this->tpl->setVariable("TXT_REQUIRED_FLD", $this->lng->txt("required_field"));
                if ($this->object->getInvitation() == INVITATION_ON)
                {
                        $this->tpl->setVariable("SELECTED_ON", " selected=\"selected\"");
                }
                else
                {
                        $this->tpl->setVariable("SELECTED_OFF", " selected=\"selected\"");
                }
    if ($rbacsystem->checkAccess("write", $this->ref_id) or $rbacsystem->checkAccess('invite', $this->ref_id)) {
                        $this->tpl->setVariable("SAVE", $this->lng->txt("save"));
                        $this->tpl->setVariable("CANCEL", $this->lng->txt("cancel"));
                }
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::inviteUserGroupObject (  ) 

Invite users or groups to a survey.

Invite users or groups to a survey

private

Definition at line 2237 of file class.ilObjSurveyGUI.php.

References $_POST, $role_id, and $user_id.

        {
                // add users to invitation
                if (is_array($_POST["user_select"]))
                {
                        foreach ($_POST["user_select"] as $user_id)
                        {
                                $this->object->inviteUser($user_id);
                        }
                }
                // add groups to invitation
                if (is_array($_POST["group_select"]))
                {
                        foreach ($_POST["group_select"] as $group_id)
                        {
                                $this->object->inviteGroup($group_id);
                        }
                }
                // add roles to invitation
                if (is_array($_POST["role_select"]))
                {
                        foreach ($_POST["role_select"] as $role_id)
                        {
                                $this->object->inviteRole($role_id);
                        }
                }
                $this->ctrl->redirect($this, "invite");
        }

ilObjSurveyGUI::maintenanceObject (  ) 

Definition at line 2559 of file class.ilObjSurveyGUI.php.

References $counter, $rbacsystem, $total, ilFormat::formatDate(), ilFormat::ftimestamp2datetimeDB(), ilUtil::getImagePath(), handleWriteAccess(), and sendInfo().

        {
                $this->handleWriteAccess();

                global $rbacsystem;

                if ($rbacsystem->checkAccess("write", $this->ref_id)) 
                {
                        $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_maintenance.html", true);
                        $total =& $this->object->getSurveyParticipants();
                        if (count($total))
                        {
                                $color_class = array("tblrow1", "tblrow2");
                                $counter = 0;
                                foreach ($total as $finished_id => $user_data)
                                {
                                        $user_name = $user_data["name"];
                                        $user_login = $user_data["login"];
                                        $this->tpl->setCurrentBlock("userrow");
                                        $this->tpl->setVariable("ROW_CLASS", $color_class[$counter % 2]);
                                        $this->tpl->setVariable("USER_ID", $finished_id);
                                        $this->tpl->setVariable("VALUE_USER_NAME", $user_name);
                                        $this->tpl->setVariable("VALUE_USER_LOGIN", $user_login);
                                        $last_access = $this->object->_getLastAccess($finished_id);
                                        $this->tpl->setVariable("LAST_ACCESS", ilFormat::formatDate(ilFormat::ftimestamp2datetimeDB($last_access)));
                                        $this->tpl->parseCurrentBlock();
                                        $counter++;
                                }
                                $this->tpl->setCurrentBlock("selectall");
                                $this->tpl->setVariable("SELECT_ALL", $this->lng->txt("select_all"));
                                $counter++;
                                $this->tpl->setVariable("ROW_CLASS", $color_class[$counter % 2]);
                                $this->tpl->parseCurrentBlock();
                                $this->tpl->setCurrentBlock("participanttable");
                                $this->tpl->setVariable("USER_NAME", $this->lng->txt("name"));
                                $this->tpl->setVariable("USER_LOGIN", $this->lng->txt("login"));
                                $this->tpl->setVariable("LAST_ACCESS", $this->lng->txt("last_access"));
                                $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.gif"));
                                $this->tpl->setVariable("ARROW", $this->lng->txt("arrow_downright"));
                                $this->tpl->setVariable("DELETE", $this->lng->txt("delete_user_data"));
                                $this->tpl->parseCurrentBlock();

                                $this->tpl->setCurrentBlock("adm_content");
                                $this->tpl->setVariable("BTN_DELETE_ALL", $this->lng->txt("svy_delete_all_user_data"));
        //                      $this->tpl->setVariable("BTN_CREATE_SOLUTIONS", $this->lng->txt("tst_create_solutions"));
                                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
                                $this->tpl->parseCurrentBlock();
                        }
                        else
                        {
                                $this->tpl->setCurrentBlock("maintenance_information");
                                $this->tpl->setVariable("MAINTENANCE_INFORMATION", $this->lng->txt("svy_maintenance_information_no_results"));
                                $this->tpl->parseCurrentBlock();
                        }
                }
                else
                {
                        sendInfo($this->lng->txt("cannot_maintain_survey"));
                }
        }       

Here is the call graph for this function:

ilObjSurveyGUI::moveQuestionsObject (  ) 

Move questions.

Move questions

private

Definition at line 1562 of file class.ilObjSurveyGUI.php.

References $_POST, $_SESSION, $key, questionsObject(), and sendInfo().

        {
                $move_questions = array();
                foreach ($_POST as $key => $value)
                {
                        if (preg_match("/cb_(\d+)/", $key, $matches))
                        {
                                array_push($move_questions, $matches[1]);
                        }
                        if (preg_match("/cb_qb_(\d+)/", $key, $matches))
                        {
                                $ids = $this->object->getQuestionblockQuestionIds($matches[1]);
                                foreach ($ids as $qkey => $qid)
                                {
                                        array_push($move_questions, $qid);
                                }
                        }
                }
                if (count($move_questions) == 0)
                {
                        sendInfo($this->lng->txt("no_question_selected_for_move"), true);
                        $this->ctrl->redirect($this, "questions");
                }
                else
                {
                        $_SESSION["move_questions"] = $move_questions;
                        sendInfo($this->lng->txt("select_target_position_for_move_question"));
                        $this->questionsObject();
                }
        }

Here is the call graph for this function:

ilObjSurveyGUI::outUserGroupTable ( a_type,
id_array,
block_result,
block_row,
title_text,
buttons 
)

Creates the search output for the user/group search form.

Creates the search output for the user/group search form

public

Definition at line 2039 of file class.ilObjSurveyGUI.php.

References $counter, $rbacsystem, $role_id, $user, $user_id, ilObjUser::_lookupLogin(), and ilUtil::getImagePath().

Referenced by inviteObject().

        {
                global $rbacsystem;
                
                $rowclass = array("tblrow1", "tblrow2");
                switch($a_type)
                {
                        case "usr":
                                include_once "./classes/class.ilObjUser.php";
                                $counter = 0;
                                foreach ($id_array as $user_id)
                                {
                                        $this->tpl->setCurrentBlock($block_row);
                                        $this->tpl->setVariable("COLOR_CLASS", $rowclass[$counter % 2]);
                                        if (ilObjUser::_lookupLogin($user_id))
                                        {
                                                $user = new ilObjUser($user_id);
                                                $this->tpl->setVariable("COUNTER", $user->getId());
                                                $this->tpl->setVariable("VALUE_LOGIN", $user->getLogin());
                                                $this->tpl->setVariable("VALUE_FIRSTNAME", $user->getFirstname());
                                                $this->tpl->setVariable("VALUE_LASTNAME", $user->getLastname());
                                        }
                                        else
                                        {
                                                $this->tpl->setVariable("COUNTER", $user_id);
                                                $this->tpl->setVariable("VALUE_LOGIN", $this->lng->txt("deleted_user"));
                                                $this->tpl->setVariable("VALUE_FIRSTNAME", $this->lng->txt("unknown"));
                                                $this->tpl->setVariable("VALUE_LASTNAME", $this->lng->txt("unknown"));
                                        }
                                        $counter++;
                                        $this->tpl->parseCurrentBlock();
                                }
                                if (count($id_array))
                                {
                                        $this->tpl->setCurrentBlock("selectall_$block_result");
                                        $this->tpl->setVariable("SELECT_ALL", $this->lng->txt("select_all"));
                                        $counter++;
                                        $this->tpl->setVariable("COLOR_CLASS", $rowclass[$counter % 2]);
                                        $this->tpl->parseCurrentBlock();
                                }
                                $this->tpl->setCurrentBlock($block_result);
                                include_once "./classes/class.ilUtil.php";
                                $this->tpl->setVariable("TEXT_USER_TITLE", "<img src=\"" . ilUtil::getImagePath("icon_usr.gif") . "\" alt=\"".$this->lng->txt("obj_usr")."\" /> " . $title_text);
                                $this->tpl->setVariable("TEXT_LOGIN", $this->lng->txt("login"));
                                $this->tpl->setVariable("TEXT_FIRSTNAME", $this->lng->txt("firstname"));
                                $this->tpl->setVariable("TEXT_LASTNAME", $this->lng->txt("lastname"));
                                if ($rbacsystem->checkAccess('invite', $this->object->getRefId()))
                                {
                                        foreach ($buttons as $cat)
                                        {
                                                $this->tpl->setVariable("VALUE_" . strtoupper($cat), $this->lng->txt($cat));
                                        }
                                        $this->tpl->setVariable("ARROW", "<img src=\"" . ilUtil::getImagePath("arrow_downright.gif") . "\" alt=\"".$this->lng->txt("arrow_downright")."\">");
                                }
                                $this->tpl->parseCurrentBlock();
                                break;
                        case "grp":
                                include_once "./classes/class.ilObjGroup.php";
                                $counter = 0;
                                foreach ($id_array as $group_id)
                                {
                                        $group = new ilObjGroup($group_id);
                                        $this->tpl->setCurrentBlock($block_row);
                                        $this->tpl->setVariable("COLOR_CLASS", $rowclass[$counter % 2]);
                                        $this->tpl->setVariable("COUNTER", $group->getRefId());
                                        $this->tpl->setVariable("VALUE_TITLE", $group->getTitle());
                                        $this->tpl->setVariable("VALUE_DESCRIPTION", $group->getDescription());
                                        $counter++;
                                        $this->tpl->parseCurrentBlock();
                                }
                                if (count($id_array))
                                {
                                        $this->tpl->setCurrentBlock("selectall_$block_result");
                                        $this->tpl->setVariable("SELECT_ALL", $this->lng->txt("select_all"));
                                        $counter++;
                                        $this->tpl->setVariable("COLOR_CLASS", $rowclass[$counter % 2]);
                                        $this->tpl->parseCurrentBlock();
                                }
                                $this->tpl->setCurrentBlock($block_result);
                                include_once "./classes/class.ilUtil.php";
                                $this->tpl->setVariable("TEXT_GROUP_TITLE", "<img src=\"" . ilUtil::getImagePath("icon_grp.gif") . "\" alt=\"".$this->lng->txt("obj_grp")."\" /> " . $title_text);
                                $this->tpl->setVariable("TEXT_TITLE", $this->lng->txt("title"));
                                $this->tpl->setVariable("TEXT_DESCRIPTION", $this->lng->txt("description"));
                                if ($rbacsystem->checkAccess('invite', $this->object->getRefId()))
                                {
                                        foreach ($buttons as $cat)
                                        {
                                                $this->tpl->setVariable("VALUE_" . strtoupper($cat), $this->lng->txt($cat));
                                        }
                                        $this->tpl->setVariable("ARROW", "<img src=\"" . ilUtil::getImagePath("arrow_downright.gif") . "\" alt=\"".$this->lng->txt("arrow_downright")."\">");
                                }
                                $this->tpl->parseCurrentBlock();
                                break;
                        case "role":
                                include_once "./classes/class.ilObjRole.php";
                                $counter = 0;
                                foreach ($id_array as $role_id)
                                {
                                        $role = new ilObjRole($role_id);
                                        $this->tpl->setCurrentBlock($block_row);
                                        $this->tpl->setVariable("COLOR_CLASS", $rowclass[$counter % 2]);
                                        $this->tpl->setVariable("COUNTER", $role->getId());
                                        $this->tpl->setVariable("VALUE_TITLE", $role->getTitle());
                                        $this->tpl->setVariable("VALUE_DESCRIPTION", $role->getDescription());
                                        $counter++;
                                        $this->tpl->parseCurrentBlock();
                                }
                                if (count($id_array))
                                {
                                        $this->tpl->setCurrentBlock("selectall_$block_result");
                                        $this->tpl->setVariable("SELECT_ALL", $this->lng->txt("select_all"));
                                        $counter++;
                                        $this->tpl->setVariable("COLOR_CLASS", $rowclass[$counter % 2]);
                                        $this->tpl->parseCurrentBlock();
                                }
                                $this->tpl->setCurrentBlock($block_result);
                                include_once "./classes/class.ilUtil.php";
                                $this->tpl->setVariable("TEXT_ROLE_TITLE", "<img src=\"" . ilUtil::getImagePath("icon_role.gif") . "\" alt=\"".$this->lng->txt("obj_role")."\" /> " . $title_text);
                                $this->tpl->setVariable("TEXT_TITLE", $this->lng->txt("title"));
                                $this->tpl->setVariable("TEXT_DESCRIPTION", $this->lng->txt("description"));
                                if ($rbacsystem->checkAccess('invite', $this->object->getRefId()))
                                {
                                        foreach ($buttons as $cat)
                                        {
                                                $this->tpl->setVariable("VALUE_" . strtoupper($cat), $this->lng->txt($cat));
                                        }
                                        $this->tpl->setVariable("ARROW", "<img src=\"" . ilUtil::getImagePath("arrow_downright.gif") . "\" alt=\"".$this->lng->txt("arrow_downright")."\">");
                                }
                                $this->tpl->parseCurrentBlock();
                                break;
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::propertiesObject (  ) 

Creates the properties form for the survey object.

Creates the properties form for the survey object

public

Definition at line 245 of file class.ilObjSurveyGUI.php.

References $_GET, ilObjectGUI::$obj_id, ilRTE::_getRTEClassname(), ilObject::_lookupObjectId(), ilObject::_lookupType(), ilUtil::getImagePath(), handleWriteAccess(), ilUtil::makeDateSelect(), and ilUtil::prepareFormOutput().

  {
                $this->handleWriteAccess();

                include_once "./classes/class.ilUtil.php";
                $this->lng->loadLanguageModule("jscalendar");
                $this->tpl->addBlockFile("CALENDAR_LANG_JAVASCRIPT", "calendar_javascript", "tpl.calendar.html");
                $this->tpl->setCurrentBlock("calendar_javascript");
                $this->tpl->setVariable("FULL_SUNDAY", $this->lng->txt("l_su"));
                $this->tpl->setVariable("FULL_MONDAY", $this->lng->txt("l_mo"));
                $this->tpl->setVariable("FULL_TUESDAY", $this->lng->txt("l_tu"));
                $this->tpl->setVariable("FULL_WEDNESDAY", $this->lng->txt("l_we"));
                $this->tpl->setVariable("FULL_THURSDAY", $this->lng->txt("l_th"));
                $this->tpl->setVariable("FULL_FRIDAY", $this->lng->txt("l_fr"));
                $this->tpl->setVariable("FULL_SATURDAY", $this->lng->txt("l_sa"));
                $this->tpl->setVariable("SHORT_SUNDAY", $this->lng->txt("s_su"));
                $this->tpl->setVariable("SHORT_MONDAY", $this->lng->txt("s_mo"));
                $this->tpl->setVariable("SHORT_TUESDAY", $this->lng->txt("s_tu"));
                $this->tpl->setVariable("SHORT_WEDNESDAY", $this->lng->txt("s_we"));
                $this->tpl->setVariable("SHORT_THURSDAY", $this->lng->txt("s_th"));
                $this->tpl->setVariable("SHORT_FRIDAY", $this->lng->txt("s_fr"));
                $this->tpl->setVariable("SHORT_SATURDAY", $this->lng->txt("s_sa"));
                $this->tpl->setVariable("FULL_JANUARY", $this->lng->txt("l_01"));
                $this->tpl->setVariable("FULL_FEBRUARY", $this->lng->txt("l_02"));
                $this->tpl->setVariable("FULL_MARCH", $this->lng->txt("l_03"));
                $this->tpl->setVariable("FULL_APRIL", $this->lng->txt("l_04"));
                $this->tpl->setVariable("FULL_MAY", $this->lng->txt("l_05"));
                $this->tpl->setVariable("FULL_JUNE", $this->lng->txt("l_06"));
                $this->tpl->setVariable("FULL_JULY", $this->lng->txt("l_07"));
                $this->tpl->setVariable("FULL_AUGUST", $this->lng->txt("l_08"));
                $this->tpl->setVariable("FULL_SEPTEMBER", $this->lng->txt("l_09"));
                $this->tpl->setVariable("FULL_OCTOBER", $this->lng->txt("l_10"));
                $this->tpl->setVariable("FULL_NOVEMBER", $this->lng->txt("l_11"));
                $this->tpl->setVariable("FULL_DECEMBER", $this->lng->txt("l_12"));
                $this->tpl->setVariable("SHORT_JANUARY", $this->lng->txt("s_01"));
                $this->tpl->setVariable("SHORT_FEBRUARY", $this->lng->txt("s_02"));
                $this->tpl->setVariable("SHORT_MARCH", $this->lng->txt("s_03"));
                $this->tpl->setVariable("SHORT_APRIL", $this->lng->txt("s_04"));
                $this->tpl->setVariable("SHORT_MAY", $this->lng->txt("s_05"));
                $this->tpl->setVariable("SHORT_JUNE", $this->lng->txt("s_06"));
                $this->tpl->setVariable("SHORT_JULY", $this->lng->txt("s_07"));
                $this->tpl->setVariable("SHORT_AUGUST", $this->lng->txt("s_08"));
                $this->tpl->setVariable("SHORT_SEPTEMBER", $this->lng->txt("s_09"));
                $this->tpl->setVariable("SHORT_OCTOBER", $this->lng->txt("s_10"));
                $this->tpl->setVariable("SHORT_NOVEMBER", $this->lng->txt("s_11"));
                $this->tpl->setVariable("SHORT_DECEMBER", $this->lng->txt("s_12"));
                $this->tpl->setVariable("ABOUT_CALENDAR", $this->lng->txt("about_calendar"));
                $this->tpl->setVariable("ABOUT_CALENDAR_LONG", $this->lng->txt("about_calendar_long"));
                $this->tpl->setVariable("ABOUT_TIME_LONG", $this->lng->txt("about_time"));
                $this->tpl->setVariable("PREV_YEAR", $this->lng->txt("prev_year"));
                $this->tpl->setVariable("PREV_MONTH", $this->lng->txt("prev_month"));
                $this->tpl->setVariable("GO_TODAY", $this->lng->txt("go_today"));
                $this->tpl->setVariable("NEXT_MONTH", $this->lng->txt("next_month"));
                $this->tpl->setVariable("NEXT_YEAR", $this->lng->txt("next_year"));
                $this->tpl->setVariable("SEL_DATE", $this->lng->txt("select_date"));
                $this->tpl->setVariable("DRAG_TO_MOVE", $this->lng->txt("drag_to_move"));
                $this->tpl->setVariable("PART_TODAY", $this->lng->txt("part_today"));
                $this->tpl->setVariable("DAY_FIRST", $this->lng->txt("day_first"));
                $this->tpl->setVariable("CLOSE", $this->lng->txt("close"));
                $this->tpl->setVariable("TODAY", $this->lng->txt("today"));
                $this->tpl->setVariable("TIME_PART", $this->lng->txt("time_part"));
                $this->tpl->setVariable("DEF_DATE_FORMAT", $this->lng->txt("def_date_format"));
                $this->tpl->setVariable("TT_DATE_FORMAT", $this->lng->txt("tt_date_format"));
                $this->tpl->setVariable("WK", $this->lng->txt("wk"));
                $this->tpl->setVariable("TIME", $this->lng->txt("time"));
                $this->tpl->parseCurrentBlock();
                $this->tpl->setCurrentBlock("CalendarJS");
                $this->tpl->setVariable("LOCATION_JAVASCRIPT_CALENDAR", "./survey/js/calendar/calendar.js");
                $this->tpl->setVariable("LOCATION_JAVASCRIPT_CALENDAR_SETUP", "./survey/js/calendar/calendar-setup.js");
                $this->tpl->setVariable("LOCATION_JAVASCRIPT_CALENDAR_STYLESHEET", "./survey/js/calendar/calendar.css");
                $this->tpl->parseCurrentBlock();

                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_properties.html", true);
                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
                $this->tpl->setVariable("TEXT_TITLE", $this->lng->txt("title"));
                $this->tpl->setVariable("VALUE_TITLE", ilUtil::prepareFormOutput($this->object->getTitle()));
                $this->tpl->setVariable("TEXT_AUTHOR", $this->lng->txt("author"));
                $this->tpl->setVariable("VALUE_AUTHOR", ilUtil::prepareFormOutput($this->object->getAuthor()));
                $this->tpl->setVariable("TEXT_DESCRIPTION", $this->lng->txt("description"));
                $this->tpl->setVariable("VALUE_DESCRIPTION", ilUtil::prepareFormOutput($this->object->getDescription()));
                $this->tpl->setVariable("TEXT_INTRODUCTION", $this->lng->txt("introduction"));
                $this->tpl->setVariable("VALUE_INTRODUCTION", ilUtil::prepareFormOutput($this->object->prepareTextareaOutput($this->object->getIntroduction())));
                $this->tpl->setVariable("TEXT_OUTRO", $this->lng->txt("outro"));
                $this->tpl->setVariable("VALUE_OUTRO", $this->object->prepareTextareaOutput($this->object->getOutro()));
                $this->tpl->setVariable("TEXT_STATUS", $this->lng->txt("status"));
                $this->tpl->setVariable("TEXT_START_DATE", $this->lng->txt("start_date"));
                $this->tpl->setVariable("VALUE_START_DATE", ilUtil::makeDateSelect("start_date", $this->object->getStartYear(), $this->object->getStartMonth(), $this->object->getStartDay()));
                $this->tpl->setVariable("IMG_START_DATE_CALENDAR", ilUtil::getImagePath("calendar.png"));
                $this->tpl->setVariable("TXT_START_DATE_CALENDAR", $this->lng->txt("open_calendar"));
                $this->tpl->setVariable("TEXT_END_DATE", $this->lng->txt("end_date"));
                $this->tpl->setVariable("VALUE_END_DATE", ilUtil::makeDateSelect("end_date", $this->object->getEndYear(), $this->object->getEndMonth(), $this->object->getEndDay()));
                $this->tpl->setVariable("IMG_END_DATE_CALENDAR", ilUtil::getImagePath("calendar.png"));
                $this->tpl->setVariable("TXT_END_DATE_CALENDAR", $this->lng->txt("open_calendar"));
                $this->tpl->setVariable("TEXT_EVALUATION_ACCESS", $this->lng->txt("evaluation_access"));
                $this->tpl->setVariable("VALUE_OFFLINE", $this->lng->txt("offline"));
                $this->tpl->setVariable("VALUE_ONLINE", $this->lng->txt("online"));
                $this->tpl->setVariable("TEXT_ENABLED", $this->lng->txt("enabled"));
                $this->tpl->setVariable("VALUE_OFF", $this->lng->txt("off"));
                $this->tpl->setVariable("VALUE_ALL", $this->lng->txt("evaluation_access_all"));
                $this->tpl->setVariable("VALUE_PARTICIPANTS", $this->lng->txt("evaluation_access_participants"));
                $this->tpl->setVariable("TEXT_ANONYMIZATION", $this->lng->txt("anonymize_survey"));
                $this->tpl->setVariable("ANON_VALUE_OFF", $this->lng->txt("anonymize_personalized"));
                $this->tpl->setVariable("ANON_VALUE_ON", $this->lng->txt("anonymize_with_code"));
                $this->tpl->setVariable("ANON_VALUE_FREEACCESS", $this->lng->txt("anonymize_without_code"));
                
                switch ($this->object->getAnonymize())
                {
                        case ANONYMIZE_OFF:
                                $this->tpl->setVariable("ANON_SELECTED_OFF", " selected=\"selected\"");
                                break;
                        case ANONYMIZE_ON:
                                $this->tpl->setVariable("ANON_SELECTED_ON", " selected=\"selected\"");
                                break;
                        case ANONYMIZE_FREEACCESS:
                                $this->tpl->setVariable("ANON_SELECTED_FREEACCESS", " selected=\"selected\"");
                                break;
                }
                
                if ($this->object->getEndDateEnabled())
                {
                        $this->tpl->setVariable("CHECKED_END_DATE", " checked=\"checked\"");
                }
                if ($this->object->getStartDateEnabled())
                {
                        $this->tpl->setVariable("CHECKED_START_DATE", " checked=\"checked\"");
                }
                switch ($this->object->getEvaluationAccess())
                {
                        case EVALUATION_ACCESS_OFF:
                                $this->tpl->setVariable("SELECTED_OFF", " selected=\"selected\"");
                                break;
                        case EVALUATION_ACCESS_ALL:
                                $this->tpl->setVariable("SELECTED_ALL", " selected=\"selected\"");
                                break;
                        case EVALUATION_ACCESS_PARTICIPANTS:
                                $this->tpl->setVariable("SELECTED_PARTICIPANTS", " selected=\"selected\"");
                                break;
                }
                if ($this->object->getStatus() == STATUS_ONLINE)
                {
                        $this->tpl->setVariable("SELECTED_ONLINE", " selected=\"selected\"");
                }
                else
                {
                        $this->tpl->setVariable("SELECTED_OFFLINE", " selected=\"selected\"");
                }
                $this->tpl->setVariable("TXT_REQUIRED_FLD", $this->lng->txt("required_field"));
                $this->tpl->setVariable("SAVE", $this->lng->txt("save"));
                $this->tpl->setVariable("CANCEL", $this->lng->txt("cancel"));
                $this->tpl->setVariable("TEXT_SHOW_QUESTIONTITLES", $this->lng->txt("svy_show_questiontitles"));
                if ($this->object->getShowQuestionTitles())
                {
                        $this->tpl->setVariable("QUESTIONTITLES_CHECKED", " checked=\"checked\"");
                }
    $this->tpl->parseCurrentBlock();
                include_once "./Services/RTE/classes/class.ilRTE.php";
                $rtestring = ilRTE::_getRTEClassname();
                include_once "./Services/RTE/classes/class.$rtestring.php";
                $rte = new $rtestring();
                $rte->removePlugin("ibrowser");
                include_once "./classes/class.ilObject.php";
                $obj_id = ilObject::_lookupObjectId($_GET["ref_id"]);
                $obj_type = ilObject::_lookupType($_GET["ref_id"], TRUE);
                $rte->addRTESupport($obj_id, $obj_type, "survey");
  }

Here is the call graph for this function:

ilObjSurveyGUI::questionsObject (  ) 

Creates the questions form for the survey object.

Creates the questions form for the survey object

public

Definition at line 1698 of file class.ilObjSurveyGUI.php.

References $_GET, $_SESSION, $counter, ilObjectGUI::$data, $query, $rbacsystem, ilObjectGUI::$ref_id, SurveyQuestion::_getRefIdFromObjId(), addHeadingObject(), confirmRemoveHeadingForm(), defineQuestionblock(), ilUtil::getImagePath(), handleWriteAccess(), ilUtil::redirect(), and sendInfo().

Referenced by moveQuestionsObject().

        {
                $this->handleWriteAccess();

                global $rbacsystem;

                $hasDatasets = $this->object->_hasDatasets($this->object->getSurveyId());
                include_once "./classes/class.ilUtil.php";

                if ($_GET["new_id"] > 0)
                {
                        // add a question to the survey previous created in a questionpool
                        $inserted = $this->object->insertQuestion($_GET["new_id"]);
                        if (!$inserted)
                        {
                                sendInfo($this->lng->txt("survey_error_insert_incomplete_question"));
                        }
                }
                
                if ($_GET["eqid"] and $_GET["eqpl"])
                {
                        ilUtil::redirect("ilias.php?baseClass=ilObjSurveyQuestionPoolGUI&ref_id=" . $_GET["eqpl"] . "&cmd=editQuestionForSurvey&calling_survey=".$_GET["ref_id"]."&q_id=" . $_GET["eqid"]);
                }


                $_SESSION["calling_survey"] = $this->object->getRefId();
                unset($_SESSION["survey_id"]);

                if ($_GET["editheading"])
                {
                        $this->addHeadingObject($_GET["editheading"]);
                        return;
                }
                
                if ($_GET["up"] > 0)
                {
                        $this->object->moveUpQuestion($_GET["up"]);
                }
                if ($_GET["down"] > 0)
                {
                        $this->object->moveDownQuestion($_GET["down"]);
                }
                if ($_GET["qbup"] > 0)
                {
                        $this->object->moveUpQuestionblock($_GET["qbup"]);
                }
                if ($_GET["qbdown"] > 0)
                {
                        $this->object->moveDownQuestionblock($_GET["qbdown"]);
                }
                
                if ($_GET["removeheading"])
                {
                        $this->confirmRemoveHeadingForm();
                        return;
                }
                
                if ($_GET["editblock"])
                {
                        $this->defineQuestionblock($_GET["editblock"]);
                        return;
                }

                if ($_GET["add"])
                {
                        // called after a new question was created from a questionpool
                        $selected_array = array();
                        array_push($selected_array, $_GET["add"]);
                        sendInfo($this->lng->txt("ask_insert_questions"));
                        $this->insertQuestionsForm($selected_array);
                        return;
                }

                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_questions.html", true);

                $survey_questions =& $this->object->getSurveyQuestions();
                $questionblock_titles =& $this->object->getQuestionblockTitles();
                $questionpools =& $this->object->getQuestionpoolTitles();
                $colors = array("tblrow1", "tblrow2");
                $counter = 0;
                $title_counter = 0;
                $last_color_class = "";
                $obligatory = "<img src=\"" . ilUtil::getImagePath("obligatory.gif", true) . "\" alt=\"" . $this->lng->txt("question_obligatory") . "\" title=\"" . $this->lng->txt("question_obligatory") . "\" />";
                if (count($survey_questions) > 0)
                {
                        foreach ($survey_questions as $question_id => $data)
                        {
                                $title_counter++;
                                if (($last_questionblock_id > 0) && ($data["questionblock_id"] == 0))
                                {
                                        $counter++;
                                }
                                if (($last_questionblock_id > 0) && ($data["questionblock_id"] > 0) && ($data["questionblock_id"] != $last_questionblock_id))
                                {
                                        $counter++;
                                }
                                if (($data["questionblock_id"] > 0) and ($data["questionblock_id"] != $last_questionblock_id))
                                {
                                        // add a separator line for the beginning of a question block
                                        $this->tpl->setCurrentBlock("separator");
                                        $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                                        $this->tpl->parseCurrentBlock();
                                        $this->tpl->setCurrentBlock("QTab");
                                        $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                                        $this->tpl->parseCurrentBlock();

                                        $this->tpl->setCurrentBlock("block");
                                        $this->tpl->setVariable("TYPE_ICON", "<img src=\"" . ilUtil::getImagePath("questionblock.gif", true) . "\" alt=\"".$this->lng->txt("questionblock_icon")."\" />");
                                        $this->tpl->setVariable("TEXT_QUESTIONBLOCK", $this->lng->txt("questionblock") . ": " . $data["questionblock_title"]);
                                        $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                                        if ($rbacsystem->checkAccess("write", $this->ref_id) and !$hasDatasets) 
                                        {
                                                if ($data["question_id"] != $this->object->questions[0])
                                                {
                                                        $this->tpl->setVariable("BUTTON_UP", "<a href=\"" . $this->ctrl->getLinkTarget($this, "questions") . "$&qbup=" . $data["questionblock_id"] . "\"><img src=\"" . ilUtil::getImagePath("a_up.gif") . "\" alt=\"" . $this->lng->txt("up") . "\" title=\"" . $this->lng->txt("up") . "\" border=\"0\" /></a>");
                                                }
                                                $akeys = array_keys($survey_questions);
                                                if ($data["questionblock_id"] != $survey_questions[$akeys[count($akeys)-1]]["questionblock_id"])
                                                {
                                                        $this->tpl->setVariable("BUTTON_DOWN", "<a href=\"" . $this->ctrl->getLinkTarget($this, "questions") . "&qbdown=" . $data["questionblock_id"] . "\"><img src=\"" . ilUtil::getImagePath("a_down.gif") . "\" alt=\"" . $this->lng->txt("down") . "\" title=\"" . $this->lng->txt("down") . "\" border=\"0\" /></a>");
                                                }
                                                $this->tpl->setVariable("TEXT_EDIT", $this->lng->txt("edit"));
                                                $this->tpl->setVariable("HREF_EDIT", $this->ctrl->getLinkTarget($this, "questions") . "&editblock=" . $data["questionblock_id"]);
                                        }
                                        $this->tpl->parseCurrentBlock();
                                        $this->tpl->setCurrentBlock("QTab");
                                        $this->tpl->setVariable("QUESTION_ID", "qb_" . $data["questionblock_id"]);
                                        $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                                        $this->tpl->parseCurrentBlock();
                                }
                                if (($last_questionblock_id > 0) && ($data["questionblock_id"] == 0))
                                {
                                        // add a separator line for the end of a question block
                                        $this->tpl->setCurrentBlock("separator");
                                        $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                                        $this->tpl->parseCurrentBlock();
                                        $this->tpl->setCurrentBlock("QTab");
                                        $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                                        $this->tpl->parseCurrentBlock();
                                }
                                if ($data["heading"])
                                {
                                        $this->tpl->setCurrentBlock("heading");
                                        $this->tpl->setVariable("TEXT_HEADING", $data["heading"]);
                                        $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                                        if ($rbacsystem->checkAccess("write", $this->ref_id) and !$hasDatasets) 
                                        {
                                                $this->tpl->setVariable("TEXT_EDIT", $this->lng->txt("edit"));
                                                $this->tpl->setVariable("HREF_EDIT", $this->ctrl->getLinkTarget($this, "questions") . "&editheading=" . $data["question_id"]);
                                                $this->tpl->setVariable("TEXT_DELETE", $this->lng->txt("remove"));
                                                $this->tpl->setVariable("HREF_DELETE", $this->ctrl->getLinkTarget($this, "questions") . "&removeheading=" . $data["question_id"]);
                                        }
                                        $this->tpl->parseCurrentBlock();
                                        $this->tpl->setCurrentBlock("QTab");
                                        $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                                        $this->tpl->parseCurrentBlock();
                                }
                                if (!$data["questionblock_id"])
                                {
                                        $this->tpl->setCurrentBlock("checkable");
                                        $this->tpl->setVariable("QUESTION_ID", $data["question_id"]);
                                        $this->tpl->parseCurrentBlock();
                                }
                                $this->tpl->setCurrentBlock("QTab");
                                include_once "./survey/classes/class.SurveyQuestion.php";
                                $ref_id = SurveyQuestion::_getRefIdFromObjId($data["obj_fi"]);
                                if ($rbacsystem->checkAccess("write", $this->ref_id) and !$hasDatasets) 
                                {
                                        $q_id = $data["question_id"];
                                        $qpl_ref_id = $this->object->_getRefIdFromObjId($data["obj_fi"]);
                                        $this->tpl->setVariable("QUESTION_TITLE", "$title_counter. <a href=\"" . $this->ctrl->getLinkTarget($this, "questions") . "&eqid=$q_id&eqpl=$qpl_ref_id" . "\">" . $data["title"] . "</a>");
                                }
                                else
                                {
                                        $this->tpl->setVariable("QUESTION_TITLE", "$title_counter. ". $data["title"]);
                                }
                                $this->tpl->setVariable("TYPE_ICON", "<img src=\"" . ilUtil::getImagePath("question.gif", true) . "\" alt=\"".$this->lng->txt("question_icon")."\" />");
                                if ($rbacsystem->checkAccess("write", $this->ref_id) and !$hasDatasets) 
                                {
                                        $obligatory_checked = "";
                                        if ($data["obligatory"] == 1)
                                        {
                                                $obligatory_checked = " checked=\"checked\"";
                                        }
                                        $this->tpl->setVariable("QUESTION_OBLIGATORY", "<input type=\"checkbox\" name=\"obligatory_" . $data["question_id"] . "\" value=\"1\"$obligatory_checked />");
                                }
                                else
                                {
                                        if ($data["obligatory"] == 1)
                                        {
                                                $this->tpl->setVariable("QUESTION_OBLIGATORY", $obligatory);
                                        }
                                }
                                $this->tpl->setVariable("QUESTION_COMMENT", $data["description"]);
                                if ($rbacsystem->checkAccess("write", $this->ref_id) and !$hasDatasets) 
                                {
                                        if (!$data["questionblock_id"])
                                        {
                                                // up/down buttons for non-questionblock questions
                                                if ($data["question_id"] != $this->object->questions[0])
                                                {
                                                        $this->tpl->setVariable("BUTTON_UP", "<a href=\"" . $this->ctrl->getLinkTarget($this, "questions") . "&up=" . $data["question_id"] . "\"><img src=\"" . ilUtil::getImagePath("a_up.gif") . "\" alt=\"".$this->lng->txt("up")."\" border=\"0\" /></a>");
                                                }
                                                if ($data["question_id"] != $this->object->questions[count($this->object->questions)-1])
                                                {
                                                        $this->tpl->setVariable("BUTTON_DOWN", "<a href=\"" . $this->ctrl->getLinkTarget($this, "questions") . "&down=" . $data["question_id"] . "\"><img src=\"" . ilUtil::getImagePath("a_down.gif") . "\" alt=\"".$this->lng->txt("down")."\" border=\"0\" /></a>");
                                                }
                                        }
                                        else
                                        {
                                                // up/down buttons for questionblock questions
                                                if ($data["questionblock_id"] == $last_questionblock_id)
                                                {
                                                        $this->tpl->setVariable("BUTTON_UP", "<a href=\"" . $this->ctrl->getLinkTarget($this, "questions") . "&up=" . $data["question_id"] . "\"><img src=\"" . ilUtil::getImagePath("a_up.gif") . "\" alt=\"".$this->lng->txt("up")."\" border=\"0\" /></a>");
                                                }
                                                $tmp_questions = array_keys($survey_questions);
                                                $blockkey = array_search($question_id, $tmp_questions);
                                                if (($blockkey !== FALSE) && ($blockkey < count($tmp_questions)-1))
                                                {
                                                        if ($data["questionblock_id"] == $survey_questions[$tmp_questions[$blockkey+1]]["questionblock_id"])
                                                        {
                                                                $this->tpl->setVariable("BUTTON_DOWN", "<a href=\"" . $this->ctrl->getLinkTarget($this, "questions") . "&down=" . $data["question_id"] . "\"><img src=\"" . ilUtil::getImagePath("a_down.gif") . "\" alt=\"".$this->lng->txt("down")."\" border=\"0\" /></a>");
                                                        }
                                                }
                                        }
                                }
                                $this->tpl->setVariable("QUESTION_TYPE", $this->lng->txt($data["type_tag"]));
                                $this->tpl->setVariable("QUESTION_AUTHOR", $data["author"]);
                                $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                                $last_color_class = $colors[$counter % 2];
                                if (!$data["questionblock_id"])
                                {
                                        $counter++;
                                }
                                $this->tpl->parseCurrentBlock();
                                $last_questionblock_id = $data["questionblock_id"];
                        }

                        if ($rbacsystem->checkAccess("write", $this->ref_id) and !$hasDatasets) 
                        {
                                $this->tpl->setCurrentBlock("selectall");
                                $this->tpl->setVariable("SELECT_ALL", $this->lng->txt("select_all"));
                                $this->tpl->setVariable("COLOR_CLASS", $last_color_class);
                                $this->tpl->parseCurrentBlock();
                                if (array_key_exists("move_questions", $_SESSION))
                                {
                                        $this->tpl->setCurrentBlock("move_buttons");
                                        $this->tpl->setVariable("INSERT_BEFORE", $this->lng->txt("insert_before"));
                                        $this->tpl->setVariable("INSERT_AFTER", $this->lng->txt("insert_after"));
                                        $this->tpl->parseCurrentBlock();
                                }
                                $this->tpl->setCurrentBlock("QFooter");
                                $this->tpl->setVariable("ARROW", "<img src=\"" . ilUtil::getImagePath("arrow_downright.gif") . "\" alt=\"".$this->lng->txt("arrow_downright")."\">");
                                $this->tpl->setVariable("REMOVE", $this->lng->txt("remove_question"));
                                $this->tpl->setVariable("MOVE", $this->lng->txt("move"));
                                $this->tpl->setVariable("QUESTIONBLOCK", $this->lng->txt("define_questionblock"));
                                $this->tpl->setVariable("UNFOLD", $this->lng->txt("unfold"));
                                $this->tpl->parseCurrentBlock();
                                $this->tpl->setCurrentBlock("actionbuttons");
                                $this->tpl->setVariable("SAVE", $this->lng->txt("save_obligatory_state"));
                                $this->tpl->setVariable("HEADING", $this->lng->txt("add_heading"));
                                $this->tpl->parseCurrentBlock();
                        }
                }
                else
                {
                        $this->tpl->setCurrentBlock("Emptytable");
                        $this->tpl->setVariable("TEXT_EMPTYTABLE", $this->lng->txt("no_questions_available"));
                        $this->tpl->parseCurrentBlock();
                }
                if (($last_questionblock_id > 0))
                {
                        // add a separator line for the end of a question block (if the last question is a questionblock question)
                        $this->tpl->setCurrentBlock("separator");
                        $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                        $this->tpl->parseCurrentBlock();
                        $this->tpl->setCurrentBlock("QTab");
                        $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                        $this->tpl->parseCurrentBlock();
                }

                if ($rbacsystem->checkAccess("write", $this->ref_id) and !$hasDatasets) 
                {
                        $this->tpl->setCurrentBlock("QTypes");
                        $query = "SELECT * FROM survey_questiontype";
                        $query_result = $this->ilias->db->query($query);
                        while ($data = $query_result->fetchRow(DB_FETCHMODE_OBJECT))
                        {
                                $this->tpl->setVariable("QUESTION_TYPE_ID", $data->type_tag);
                                $this->tpl->setVariable("QUESTION_TYPE", $this->lng->txt($data->type_tag));
                                $this->tpl->parseCurrentBlock();
                        }
                        $this->tpl->parseCurrentBlock();
                }
                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
                $this->tpl->setVariable("QUESTION_TITLE", $this->lng->txt("title"));
                $this->tpl->setVariable("QUESTION_COMMENT", $this->lng->txt("description"));
                $this->tpl->setVariable("QUESTION_OBLIGATORY", $this->lng->txt("obligatory"));
                $this->tpl->setVariable("QUESTION_SEQUENCE", $this->lng->txt("sequence"));
                $this->tpl->setVariable("QUESTION_TYPE", $this->lng->txt("question_type"));
                $this->tpl->setVariable("QUESTION_AUTHOR", $this->lng->txt("author"));

                if ($rbacsystem->checkAccess("write", $this->ref_id) and !$hasDatasets)
                {
                        $this->tpl->setVariable("BUTTON_INSERT_QUESTION", $this->lng->txt("browse_for_questions"));
                        $this->tpl->setVariable("BUTTON_SEARCH_QUESTION", $this->lng->txt("search_questions"));
                        $this->tpl->setVariable("TEXT_OR", " " . strtolower($this->lng->txt("or")));
                        $this->tpl->setVariable("TEXT_CREATE_NEW", " " . strtolower($this->lng->txt("or")) . " " . $this->lng->txt("create_new"));
                        $this->tpl->setVariable("BUTTON_CREATE_QUESTION", $this->lng->txt("create"));
                }
                if ($hasDatasets)
                {
                        sendInfo($this->lng->txt("survey_has_datasets_warning"));
                }

                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::removeQuestionsForm ( checked_questions,
checked_questionblocks 
)

Creates a confirmation form to remove questions from the survey.

Creates a confirmation form to remove questions from the survey

Parameters:
array $checked_questions An array containing the id's of the questions to be removed
array $checked_questionblocks An array containing the id's of the question blocks to be removed public

Definition at line 1068 of file class.ilObjSurveyGUI.php.

References $counter, ilObjectGUI::$data, $id, and sendInfo().

Referenced by removeQuestionsObject().

        {
                sendInfo();
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_remove_questions.html", true);
                $colors = array("tblrow1", "tblrow2");
                $counter = 0;
                $surveyquestions =& $this->object->getSurveyQuestions();
                foreach ($surveyquestions as $question_id => $data)
                {
                        if (in_array($data["question_id"], $checked_questions) or (in_array($data["questionblock_id"], $checked_questionblocks)))
                        {
                                $this->tpl->setCurrentBlock("row");
                                $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]);
                                $this->tpl->setVariable("TEXT_TITLE", $data["title"]);
                                $this->tpl->setVariable("TEXT_DESCRIPTION", $data["description"]);
                                $this->tpl->setVariable("TEXT_TYPE", $this->lng->txt($data["type_tag"]));
                                $this->tpl->setVariable("TEXT_QUESTIONBLOCK", $data["questionblock_title"]);
                                $this->tpl->parseCurrentBlock();
                                $counter++;
                        }
                }
                foreach ($checked_questions as $id)
                {
                        $this->tpl->setCurrentBlock("hidden");
                        $this->tpl->setVariable("HIDDEN_NAME", "id_$id");
                        $this->tpl->setVariable("HIDDEN_VALUE", "$id");
                        $this->tpl->parseCurrentBlock();
                }
                foreach ($checked_questionblocks as $id)
                {
                        $this->tpl->setCurrentBlock("hidden");
                        $this->tpl->setVariable("HIDDEN_NAME", "id_qb_$id");
                        $this->tpl->setVariable("HIDDEN_VALUE", "$id");
                        $this->tpl->parseCurrentBlock();
                }
                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("TEXT_TITLE", $this->lng->txt("title"));
                $this->tpl->setVariable("TEXT_DESCRIPTION", $this->lng->txt("description"));
                $this->tpl->setVariable("TEXT_TYPE", $this->lng->txt("question_type"));
                $this->tpl->setVariable("TEXT_QUESTIONBLOCK", $this->lng->txt("questionblock"));
                $this->tpl->setVariable("BTN_CONFIRM", $this->lng->txt("confirm"));
                $this->tpl->setVariable("BTN_CANCEL", $this->lng->txt("cancel"));
                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this));
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::removeQuestionsObject (  ) 

Remove questions from the survey.

Remove questions from the survey

private

Definition at line 501 of file class.ilObjSurveyGUI.php.

References $_POST, $key, removeQuestionsForm(), and sendInfo().

        {
                $checked_questions = array();
                $checked_questionblocks = array();
                foreach ($_POST as $key => $value) 
                {
                        if (preg_match("/cb_(\d+)/", $key, $matches)) 
                        {
                                array_push($checked_questions, $matches[1]);
                        }
                        if (preg_match("/cb_qb_(\d+)/", $key, $matches))
                        {
                                array_push($checked_questionblocks, $matches[1]);
                        }
                }
                if (count($checked_questions) + count($checked_questionblocks) > 0) 
                {
                        sendInfo($this->lng->txt("remove_questions"));
                        $this->removeQuestionsForm($checked_questions, $checked_questionblocks);
                        return;
                } 
                else 
                {
                        sendInfo($this->lng->txt("no_question_selected_for_removal"), true);
                        $this->ctrl->redirect($this, "questions");
                }
        }

Here is the call graph for this function:

ilObjSurveyGUI::resetFilterQuestionsObject (  ) 

Called when the filter in the question browser has been resetted.

Called when the filter in the question browser has been resetted

private

Definition at line 431 of file class.ilObjSurveyGUI.php.

References browseForQuestionsObject().

        {
                $this->browseForQuestionsObject("", true);
        }

Here is the call graph for this function:

ilObjSurveyGUI::saveDefineQuestionblockObject (  ) 

Confirm define a question block.

Confirm define a question block

private

Definition at line 1483 of file class.ilObjSurveyGUI.php.

References $_POST, $key, defineQuestionblockObject(), sendInfo(), and ilUtil::stripSlashes().

        {
                if ($_POST["title"])
                {
                        if ($_POST["questionblock_id"])
                        {
                                include_once "./classes/class.ilUtil.php";
                                $this->object->modifyQuestionblock($_POST["questionblock_id"], ilUtil::stripSlashes($_POST["title"]));
                        }
                        else
                        {
                                $questionblock = array();
                                foreach ($_POST as $key => $value)
                                {
                                        if (preg_match("/cb_(\d+)/", $key, $matches))
                                        {
                                                array_push($questionblock, $value);
                                        }
                                }
                                include_once "./classes/class.ilUtil.php";
                                $this->object->createQuestionblock(ilUtil::stripSlashes($_POST["title"]), $questionblock);
                        }
                        $this->ctrl->redirect($this, "questions");
                }
                else
                {
                        sendInfo($this->lng->txt("enter_questionblock_title"));
                        $this->defineQuestionblockObject();
                        return;
                }
        }

Here is the call graph for this function:

ilObjSurveyGUI::saveHeadingObject (  ) 

Saves an edited heading in the survey questions list.

Saves an edited heading in the survey questions list

public

Definition at line 1331 of file class.ilObjSurveyGUI.php.

References $_POST, addHeadingObject(), and sendInfo().

        {
                if ($_POST["heading"])
                {
                        $insertbefore = $_POST["insertbefore"];
                        if (!$insertbefore)
                        {
                                $insertbefore = $_POST["insertbefore_original"];
                        }
                        $this->object->saveHeading($_POST["heading"], $insertbefore);
                        $this->ctrl->redirect($this, "questions");
                }
                else
                {
                        sendInfo($this->lng->txt("error_add_heading"));
                        $this->addHeadingObject();
                        return;
                }
        }

Here is the call graph for this function:

ilObjSurveyGUI::saveInvitationStatusObject (  ) 

Saves the status of the invitation tab.

Saves the status of the invitation tab

private

Definition at line 2191 of file class.ilObjSurveyGUI.php.

References $_POST.

        {
                $this->object->setInvitationAndMode($_POST["invitation"], $_POST["mode"]);
                $this->object->saveToDb();
                $this->ctrl->redirect($this, "invite");
        }

ilObjSurveyGUI::saveObject (  ) 

save object public

Reimplemented from ilObjectGUI.

Definition at line 131 of file class.ilObjSurveyGUI.php.

References $rbacadmin, ilUtil::redirect(), and sendInfo().

        {
                global $rbacadmin;

                // create and insert forum in objecttree
                $newObj = parent::saveObject();
                // always send a message
                sendInfo($this->lng->txt("object_added"),true);
                
                ilUtil::redirect("ilias.php?ref_id=".$newObj->getRefId().
                        "&baseClass=ilObjSurveyGUI");
        }

Here is the call graph for this function:

ilObjSurveyGUI::saveObligatoryObject (  ) 

Save obligatory states.

Save obligatory states

private

Definition at line 1677 of file class.ilObjSurveyGUI.php.

References $_POST, and $key.

        {
                $obligatory = array();
                foreach ($_POST as $key => $value)
                {
                        if (preg_match("/obligatory_(\d+)/", $key, $matches))
                        {
                                $obligatory[$matches[1]] = 1;
                        }
                }
                $this->object->setObligatoryStates($obligatory);
                $this->ctrl->redirect($this, "questions");
        }

ilObjSurveyGUI::savePropertiesObject (  ) 

Save the survey properties.

Save the survey properties

private

Definition at line 175 of file class.ilObjSurveyGUI.php.

References $_POST, $_SESSION, $result, ilObjAdvancedEditing::_getUsedHTMLTagsAsString(), sendInfo(), and ilUtil::stripSlashes().

        {
                include_once "./classes/class.ilUtil.php";
                $this->object->setTitle(ilUtil::stripSlashes($_POST["title"]));
                $this->object->setDescription(ilUtil::stripSlashes($_POST["description"]));
                $this->object->setAuthor(ilUtil::stripSlashes($_POST["author"]));
                $result = $this->object->setStatus($_POST["status"]);
                if ($result)
                {
                        sendInfo($result, true);
                }
                $this->object->setEvaluationAccess($_POST["evaluation_access"]);
                $this->object->setStartDate(sprintf("%04d-%02d-%02d", $_POST["start_date"]["y"], $_POST["start_date"]["m"], $_POST["start_date"]["d"]));
                $this->object->setStartDateEnabled($_POST["checked_start_date"]);
                $this->object->setEndDate(sprintf("%04d-%02d-%02d", $_POST["end_date"]["y"], $_POST["end_date"]["m"], $_POST["end_date"]["d"]));
                $this->object->setEndDateEnabled($_POST["checked_end_date"]);

                include_once "./classes/class.ilObjAdvancedEditing.php";
                $introduction = ilUtil::stripSlashes($_POST["introduction"], true, ilObjAdvancedEditing::_getUsedHTMLTagsAsString("survey"));
                $this->object->setIntroduction($introduction);
                $outro = ilUtil::stripSlashes($_POST["outro"], true, ilObjAdvancedEditing::_getUsedHTMLTagsAsString("survey"));
                $this->object->setOutro($outro);

                $this->object->setAnonymize($_POST["anonymize"]);
                if ($_POST["showQuestionTitles"])
                {
                        $this->object->showQuestionTitles();
                }
                else
                {
                        $this->object->hideQuestionTitles();
                }
                $this->update = $this->object->update();
                $this->object->saveToDb();
                if (strcmp($_SESSION["info"], "") != 0)
                {
                        sendInfo($_SESSION["info"] . "<br />" . $this->lng->txt("msg_obj_modified"), true);
                }
                else
                {
                        sendInfo($this->lng->txt("msg_obj_modified"), true);
                }
                $this->ctrl->redirect($this, "properties");
        }

Here is the call graph for this function:

ilObjSurveyGUI::searchInvitationObject (  ) 

Searches users for the invitation tab.

Searches users for the invitation tab

private

Definition at line 2205 of file class.ilObjSurveyGUI.php.

References inviteObject().

        {
                $this->inviteObject();
        }

Here is the call graph for this function:

ilObjSurveyGUI::searchQuestionsExecuteObject (  ) 

Execute a search for survey questions.

Execute a search for survey questions

private

Definition at line 934 of file class.ilObjSurveyGUI.php.

References $_POST, $results, searchQuestionsObject(), sendInfo(), and ilUtil::stripSlashes().

        {
                include_once "./survey/classes/class.SurveySearch.php";
                include_once "./classes/class.ilUtil.php";
                $search = new SurveySearch(ilUtil::stripSlashes($_POST["search_term"]), $_POST["concat"], $_POST["search_field"], $_POST["search_type"]);
                $search->search();
                $results =& $search->search_results;
                if (count($results))
                {
                        $this->searchQuestionsObject($results);
                }
                else
                {
                        sendInfo($this->lng->txt("no_search_results"));
                        $this->searchQuestionsObject();
                }
        }

Here is the call graph for this function:

ilObjSurveyGUI::searchQuestionsObject ( search_results = false  ) 

Creates a form to search questions for inserting.

Creates a form to search questions for inserting

Parameters:
mixed $search_results Array containing search results of a search for survey questions public

Definition at line 960 of file class.ilObjSurveyGUI.php.

References $_POST, $counter, ilObjectGUI::$data, ilUtil::getImagePath(), and sendInfo().

Referenced by searchQuestionsExecuteObject().

        {
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_search_questions.html", true);

                if (is_array($search_results))
                {
                        $classes = array("tblrow1", "tblrow2");
                        $counter = 0;
                        $titles = $this->object->getQuestionpoolTitles();
                        $forbidden_pools =& $this->object->getForbiddenQuestionpools();
                        $existing_questions =& $this->object->getExistingQuestions();
                        foreach ($search_results as $data)
                        {
                                if ((!in_array($data["question_id"], $existing_questions)) && (!in_array($data["obj_fi"], $forbidden_pools)))
                                {
                                        $this->tpl->setCurrentBlock("result_row");
                                        $this->tpl->setVariable("COLOR_CLASS", $classes[$counter % 2]);
                                        $this->tpl->setVariable("QUESTION_ID", $data["question_id"]);
                                        $this->tpl->setVariable("QUESTION_TITLE", $data["title"]);
                                        $this->tpl->setVariable("QUESTION_DESCRIPTION", $data["description"]);
                                        $this->tpl->setVariable("QUESTION_TYPE", $this->lng->txt($data["type_tag"]));
                                        $this->tpl->setVariable("QUESTION_AUTHOR", $data["author"]);
                                        $this->tpl->setVariable("QUESTION_POOL", $titles[$data["obj_fi"]]);
                                        $this->tpl->parseCurrentBlock();
                                        $counter++;
                                }
                        }
                        $this->tpl->setCurrentBlock("search_results");
                        include_once "./classes/class.ilUtil.php";
                        $this->tpl->setVariable("RESULT_IMAGE", ilUtil::getImagePath("icon_spl_b.gif"));
                        $this->tpl->setVariable("ALT_IMAGE", $this->lng->txt("found_questions"));
                        $this->tpl->setVariable("TEXT_QUESTION_TITLE", $this->lng->txt("title"));
                        $this->tpl->setVariable("TEXT_QUESTION_DESCRIPTION", $this->lng->txt("description"));
                        $this->tpl->setVariable("TEXT_QUESTION_TYPE", $this->lng->txt("question_type"));
                        $this->tpl->setVariable("TEXT_QUESTION_AUTHOR", $this->lng->txt("author"));
                        $this->tpl->setVariable("TEXT_QUESTION_POOL", $this->lng->txt("obj_spl"));
                        $this->tpl->setVariable("BTN_INSERT", $this->lng->txt("insert"));
                        $this->tpl->setVariable("ARROW", "<img src=\"" . ilUtil::getImagePath("arrow_downright.gif") . "\" alt=\"".$this->lng->txt("arrow_downright")."\">");
                        $this->tpl->setVariable("FOUND_QUESTIONS", $this->lng->txt("found_questions"));
                        $this->tpl->parseCurrentBlock();
                }
                
                sendInfo();
                $questiontypes = &$this->object->getQuestiontypes();
                foreach ($questiontypes as $questiontype)
                {
                        $this->tpl->setCurrentBlock("questiontypes");
                        $this->tpl->setVariable("VALUE_QUESTION_TYPE", $questiontype);
                        $this->tpl->setVariable("TEXT_QUESTION_TYPE", $this->lng->txt($questiontype));
                        if (strcmp($_POST["search_type"], $questiontype) == 0)
                        {
                                $this->tpl->setVariable("SELECTED_SEARCH_TYPE", " selected=\"selected\"");
                        }
                        $this->tpl->parseCurrentBlock();
                }
                $this->tpl->setCurrentBlock("adm_content");
                switch ($_POST["search_field"])
                {
                        case "title":
                                $this->tpl->setVariable("CHECKED_TITLE", " selected=\"selected\"");
                                break;
                        case "description":
                                $this->tpl->setVariable("CHECKED_DESCRIPTION", " selected=\"selected\"");
                                break;
                        case "author":
                                $this->tpl->setVariable("CHECKED_AUTHOR", " selected=\"selected\"");
                                break;
                        case "questiontext":
                                $this->tpl->setVariable("CHECKED_QUESTIONTEXT", " selected=\"selected\"");
                                break;
                        case "default":
                                $this->tpl->setVariable("CHECKED_ALL", " selected=\"selected\"");
                                break;
                }
                $this->tpl->setVariable("TEXT_SEARCH_TERM", $this->lng->txt("search_term"));
                $this->tpl->setVariable("VALUE_SEARCH_TERM", $_POST["search_term"]);
                $this->tpl->setVariable("TEXT_CONCATENATION", $this->lng->txt("concatenation"));
                $this->tpl->setVariable("TEXT_AND", $this->lng->txt("and"));
                $this->tpl->setVariable("TEXT_OR", $this->lng->txt("or"));
                if ($_POST["concat"] == 1)
                {
                        $this->tpl->setVariable("CHECKED_OR", " checked=\"checked\"");
                }
                else
                {
                        $this->tpl->setVariable("CHECKED_AND", " checked=\"checked\"");
                }
                $this->tpl->setVariable("TEXT_SEARCH_FOR", $this->lng->txt("search_for"));
                $this->tpl->setVariable("SEARCH_FIELD_ALL", $this->lng->txt("search_field_all"));
                $this->tpl->setVariable("SEARCH_FIELD_TITLE", $this->lng->txt("title"));
                $this->tpl->setVariable("SEARCH_FIELD_DESCRIPTION", $this->lng->txt("description"));
                $this->tpl->setVariable("SEARCH_FIELD_AUTHOR", $this->lng->txt("author"));
                $this->tpl->setVariable("SEARCH_FIELD_QUESTIONTEXT", $this->lng->txt("question"));
                $this->tpl->setVariable("SEARCH_TYPE_ALL", $this->lng->txt("search_type_all"));
                $this->tpl->setVariable("BTN_SEARCH", $this->lng->txt("search"));
                $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this) . "&search_question=1&browsetype=1&insert_question=1");
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSurveyGUI::setCodeLanguageObject (  ) 

Definition at line 3137 of file class.ilObjSurveyGUI.php.

References $_POST.

        {
                if (strcmp($_POST["lang"], "-1") != 0)
                {
                        global $ilUser;
                        $ilUser->writePref("survey_code_language", $_POST["lang"]);
                }
                $this->ctrl->redirect($this, "codes");
        }

ilObjSurveyGUI::statusObject (  ) 

Creates the status output for a test.

Creates the status output for a test

public

Definition at line 2627 of file class.ilObjSurveyGUI.php.

References handleWriteAccess().

        {
                $this->handleWriteAccess();
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_status.html", true);
                if (!$this->object->isComplete())
                {
                        if (count($this->object->questions) == 0)
                        {
                                $this->tpl->setCurrentBlock("list_element");
                                $this->tpl->setVariable("TEXT_ELEMENT", $this->lng->txt("svy_missing_questions"));
                                $this->tpl->parseCurrentBlock();
                        }
                        if (strcmp($this->object->author, "") == 0)
                        {
                                $this->tpl->setCurrentBlock("list_element");
                                $this->tpl->setVariable("TEXT_ELEMENT", $this->lng->txt("svy_missing_author"));
                                $this->tpl->parseCurrentBlock();
                        }
                        if (strcmp($this->object->title, "") == 0)
                        {
                                $this->tpl->setCurrentBlock("list_element");
                                $this->tpl->setVariable("TEXT_ELEMENT", $this->lng->txt("svy_missing_author"));
                                $this->tpl->parseCurrentBlock();
                        }
                        $this->tpl->setCurrentBlock("status_list");
                        $this->tpl->setVariable("TEXT_MISSING_ELEMENTS", $this->lng->txt("svy_status_missing_elements"));
                        $this->tpl->parseCurrentBlock();
                }
                $this->tpl->setCurrentBlock("adm_content");
                if ($this->object->isComplete())
                {
                        $this->tpl->setVariable("TEXT_STATUS_MESSAGE", $this->lng->txt("svy_status_ok"));
                        $this->tpl->setVariable("STATUS_CLASS", "bold");
                }
                else
                {
                        $this->tpl->setVariable("TEXT_STATUS_MESSAGE", $this->lng->txt("svy_status_missing"));
                        $this->tpl->setVariable("STATUS_CLASS", "warning");
                }
                $this->tpl->parseCurrentBlock();
        }       

Here is the call graph for this function:

ilObjSurveyGUI::unfoldQuestionblockObject (  ) 

Unfold a question block.

Unfold a question block

private

Definition at line 1522 of file class.ilObjSurveyGUI.php.

References $_POST, $key, and sendInfo().

        {
                $unfoldblocks = array();
                foreach ($_POST as $key => $value)
                {
                        if (preg_match("/cb_qb_(\d+)/", $key, $matches))
                        {
                                array_push($unfoldblocks, $matches[1]);
                        }
                }
                if (count($unfoldblocks))
                {
                        $this->object->unfoldQuestionblocks($unfoldblocks);
                }
                else
                {
                        sendInfo($this->lng->txt("qpl_unfold_select_none"), true);
                }
                $this->ctrl->redirect($this, "questions");
        }

Here is the call graph for this function:

ilObjSurveyGUI::uploadObject ( redirect = true  ) 

display status information or report errors messages in case of error

public

Definition at line 2841 of file class.ilObjSurveyGUI.php.

References $_GET, $_POST, $redirect, ilObjectGUI::getReturnLocation(), importObject(), ilUtil::redirect(), and sendInfo().

Referenced by importFileObject().

        {
                if ($_POST["spl"] < 1)
                {
                        sendInfo($this->lng->txt("svy_select_questionpools"));
                        $this->importObject();
                        return;
                }
                if (strcmp($_FILES["xmldoc"]["tmp_name"], "") == 0)
                {
                        sendInfo($this->lng->txt("svy_select_file_for_import"));
                        $this->importObject();
                        return;
                }
                include_once("./survey/classes/class.ilObjSurvey.php");
                $newObj = new ilObjSurvey();
                $newObj->setType($_GET["new_type"]);
                $newObj->setTitle("dummy");
                $newObj->setDescription("dummy");
                $newObj->create(true);
                $newObj->createReference();
                $newObj->putInTree($_GET["ref_id"]);
                $newObj->setPermissions($_GET["ref_id"]);
                $newObj->notify("new",$_GET["ref_id"],$_GET["parent_non_rbac_id"],$_GET["ref_id"],$newObj->getRefId());

                // copy uploaded file to import directory
                $newObj->importObject($_FILES["xmldoc"], $_POST["spl"]);

                $newObj->update();
                $newObj->saveToDb();
                if ($redirect)
                {
                        include_once "./classes/class.ilUtil.php";
                        ilUtil::redirect($this->getReturnLocation("upload",$this->ctrl->getTargetScript()."?".$this->link_params));
                }
                return $newObj->getRefId();
        }

Here is the call graph for this function:

Here is the caller graph for this function:


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