Public Member Functions | |
ilObjSurveyGUI ($a_data, $a_id, $a_call_by_reference=true, $a_prepare_output=true) | |
Constructor public. | |
getCallingScript () | |
Returns the calling script of the GUI class. | |
& | executeCommand () |
execute command | |
saveObject () | |
save object public | |
updateObject () | |
updates object entry in object_data | |
getAddParameter () | |
Returns the GET parameters for the survey object URLs. | |
writePropertiesFormData () | |
runObject () | |
Creates the form output for running the survey. | |
outNavigationButtons ($navigationblock="top", $page) | |
Creates the navigation buttons for a survey. | |
runShowIntroductionPage () | |
Creates the introduction page for a running survey. | |
runShowFinishedPage () | |
Creates the finished page for a running survey. | |
propertiesObject () | |
Creates the properties form for the survey object. | |
questionBrowser () | |
Creates the questionbrowser to select questions from question pools. | |
searchQuestionsForm () | |
Creates a form to search questions for inserting. | |
insertQuestionsForm ($checked_questions) | |
Creates a confirmation form to insert questions into the survey. | |
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. | |
questionpoolSelectForm () | |
Creates a form to select a survey question pool for storage. | |
constraintsForm ($checked_questions, $checked_questionblocks) | |
Creates the form to edit the question/questionblock constraints. | |
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. | |
questionsObject () | |
Creates the questions form for the survey object. | |
printEvaluationObject () | |
evaluationuserObject ($print=0) | |
evaluationdetailsObject () | |
evaluationObject ($details=0, $print=0) | |
Creates the evaluation form. | |
writeInviteFormData () | |
Extracts the results of a posted invitation form. | |
outUserGroupTable ($a_type, $id_array, $block_result, $block_row, $title_text, $buttons) | |
Creates the search output for the user/group search form. | |
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. | |
maintenanceObject () | |
Creates the maintenance form for a survey. | |
statusObject () | |
Creates the status output for a test. | |
setLocator ($a_tree="", $a_id="", $scriptname="repository.php") | |
set Locator | |
editMetaObject () | |
saveMetaObject () | |
chooseMetaSectionObject ($a_script="", $a_templ_var="ADM_CONTENT", $a_templ_block="adm_content") | |
chooseMetaSection () | |
addMetaObject ($a_script="", $a_templ_var="ADM_CONTENT", $a_templ_block="adm_content") | |
addMeta () | |
deleteMetaObject ($a_script="", $a_templ_var="ADM_CONTENT", $a_templ_block="adm_content") | |
deleteMeta () | |
prepareOutput () | |
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 | |
setEvalTabs () | |
codesObject () | |
createSurveyCodesObject () |
Definition at line 50 of file class.ilObjSurveyGUI.php.
ilObjSurveyGUI::addHeadingObject | ( | $ | question_id = "" |
) |
Creates a form to add a heading to a survey.
Creates a form to add a heading to a survey
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 1994 of file class.ilObjSurveyGUI.php.
References $_POST, getAddParameter(), and ilUtil::prepareFormOutput().
Referenced by questionsObject(), and saveHeadingObject().
{ $add_parameter = $this->getAddParameter(); $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); } $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(); }
ilObjSurveyGUI::addMeta | ( | ) |
Definition at line 4322 of file class.ilObjSurveyGUI.php.
References addMetaObject(), and ilObjectGUI::getTabTargetScript().
{ $this->addMetaObject($this->getTabTargetScript()."?ref_id=". $this->object->getRefId()); }
ilObjSurveyGUI::addMetaObject | ( | $ | a_script = "" , |
|
$ | a_templ_var = "ADM_CONTENT" , |
|||
$ | a_templ_block = "adm_content" | |||
) |
Definition at line 4296 of file class.ilObjSurveyGUI.php.
References $_GET, $_POST, ilObjectGUI::getTabTargetScript(), and sendInfo().
Referenced by addMeta().
{ if ($a_script == "") { $a_script = $this->getTabTargetScript()."?ref_id=".$_GET["ref_id"]; } $meta_gui =& new ilMetaDataGUI(); $meta_gui->setObject($this->object); $meta_name = $_POST["meta_name"] ? $_POST["meta_name"] : $_GET["meta_name"]; $meta_index = $_POST["meta_index"] ? $_POST["meta_index"] : $_GET["meta_index"]; if ($meta_index == "") $meta_index = 0; $meta_path = $_POST["meta_path"] ? $_POST["meta_path"] : $_GET["meta_path"]; $meta_section = $_POST["meta_section"] ? $_POST["meta_section"] : $_GET["meta_section"]; if ($meta_name != "") { $meta_gui->meta_obj->add($meta_name, $meta_path, $meta_index); } else { sendInfo($this->lng->txt("meta_choose_element"), true); } $meta_gui->edit($a_templ_var, $a_templ_block, $a_script, $meta_section); }
ilObjSurveyGUI::cancelDeleteAllUserDataObject | ( | ) |
Cancels delete of all user data in maintenance.
Cancels delete of all user data in maintenance
public
Definition at line 4085 of file class.ilObjSurveyGUI.php.
{
$this->ctrl->redirect($this, "maintenance");
}
ilObjSurveyGUI::cancelDeleteExportFileObject | ( | ) |
cancel deletion of export files
Definition at line 4788 of file class.ilObjSurveyGUI.php.
References $_GET, and ilUtil::redirect().
{ session_unregister("ilExportFiles"); ilUtil::redirect("survey.php?cmd=export&ref_id=".$_GET["ref_id"]); }
ilObjSurveyGUI::cancelHeadingObject | ( | ) |
Cancels saving a heading in the survey questions list.
Cancels saving a heading in the survey questions list
public
Definition at line 2119 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 2080 of file class.ilObjSurveyGUI.php.
{
$this->ctrl->redirect($this, "questions");
}
ilObjSurveyGUI::cancelRemoveHeadingObject | ( | ) |
Cancels the removal of survey headings.
Cancels the removal of survey headings
public
Definition at line 2144 of file class.ilObjSurveyGUI.php.
{
$this->ctrl->redirect($this, "questions");
}
ilObjSurveyGUI::chooseMetaSection | ( | ) |
Definition at line 4290 of file class.ilObjSurveyGUI.php.
References chooseMetaSectionObject(), and ilObjectGUI::getTabTargetScript().
{ $this->chooseMetaSectionObject($this->getTabTargetScript()."?ref_id=". $this->object->getRefId()); }
ilObjSurveyGUI::chooseMetaSectionObject | ( | $ | a_script = "" , |
|
$ | a_templ_var = "ADM_CONTENT" , |
|||
$ | a_templ_block = "adm_content" | |||
) |
Definition at line 4277 of file class.ilObjSurveyGUI.php.
References $_GET, $_REQUEST, and ilObjectGUI::getTabTargetScript().
Referenced by chooseMetaSection().
{ if ($a_script == "") { $a_script = $this->getTabTargetScript()."?ref_id=".$_GET["ref_id"]; } $meta_gui =& new ilMetaDataGUI(); $meta_gui->setObject($this->object); $meta_gui->edit($a_templ_var, $a_templ_block, $a_script, $_REQUEST["meta_section"]); }
ilObjSurveyGUI::cloneAllObject | ( | ) |
form for new survey object duplication
Definition at line 4680 of file class.ilObjSurveyGUI.php.
References $_POST, ilObjSurvey::_clone(), createObject(), ilObjectGUI::getReturnLocation(), ilUtil::redirect(), and sendInfo().
{ if ($_POST["svy"] < 1) { sendInfo($this->lng->txt("svy_select_surveys")); $this->createObject(); return; } require_once "./survey/classes/class.ilObjSurvey.php"; ilObjSurvey::_clone($_POST["svy"]); ilUtil::redirect($this->getReturnLocation("cloneAll",$this->ctrl->getTargetScript()."?".$this->link_params)); }
ilObjSurveyGUI::codesObject | ( | ) |
Definition at line 4830 of file class.ilObjSurveyGUI.php.
References $path, $rbacsystem, $row, ilFormat::formatDate(), ilFormat::ftimestamp2dateDB(), ilObjectGUI::getReturnLocation(), ilUtil::redirect(), and sendInfo().
{ 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()); ilUtil::redirect($this->getReturnLocation("cancel","../repository.php?ref_id=" . $path[count($path) - 2]["child"])); return; } $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_codes.html", true); if ($rbacsystem->checkAccess("write", $this->ref_id)) { $color_class = array("tblrow1", "tblrow2"); $survey_codes =& $this->object->getSurveyCodes(); if (count($survey_codes) == 0) { $this->tpl->setCurrentBlock("emptyrow"); $this->tpl->setVariable("COLOR_CLASS", "tblrow1"); $this->tpl->setVariable("NO_CODES", $this->lng->txt("survey_code_no_codes")); $this->tpl->parseCurrentBlock(); } else { foreach ($survey_codes as $key => $row) { $this->tpl->setCurrentBlock("coderow"); $this->tpl->setVariable("COLOR_CLASS", $color_class[$key % 2]); $this->tpl->setVariable("SURVEY_CODE", $row["survey_key"]); $this->tpl->setVariable("CODE_CREATED", ilFormat::formatDate(ilFormat::ftimestamp2dateDB($row["TIMESTAMP14"]), "date")); $state = "<span class=\"smallred\">" . $this->lng->txt("not_used") . "</span>"; if ($this->object->isSurveyCodeUsed($row["survey_key"])) { $state = "<span class=\"smallgreen\">" . $this->lng->txt("used") . "</span>"; } else { $this->tpl->setVariable("CODE_URL_NAME", $this->lng->txt("survey_code_url_name")); //$this->tpl->setVariable("CODE_URL", ILIAS_HTTP_PATH."/survey/survey.php?cmd=run&ref_id=".$this->object->getRefId() . "&accesscode=".$row["survey_key"]); $this->tpl->setVariable("CODE_URL", ILIAS_HTTP_PATH."/goto.php?cmd=run&target=svy_".$this->object->getRefId() . "&client_id=" . CLIENT_ID . "&accesscode=".$row["survey_key"]); } $this->tpl->setVariable("CODE_USED", $state); $this->tpl->parseCurrentBlock(); } } $this->tpl->setCurrentBlock("adm_content"); $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this)); $this->tpl->setVariable("SURVEY_CODE", $this->lng->txt("survey_code")); $this->tpl->setVariable("CODE_CREATED", $this->lng->txt("create_date")); $this->tpl->setVariable("CODE_USED", $this->lng->txt("survey_code_used")); $this->tpl->setVariable("CODE_URL", $this->lng->txt("survey_code_url")); $this->tpl->setVariable("TEXT_CREATE", $this->lng->txt("create")); $this->tpl->setVariable("TEXT_SURVEY_CODES", $this->lng->txt("new_survey_codes")); $this->tpl->parseCurrentBlock(); } else { sendInfo($this->lng->txt("cannot_create_survey_codes")); } }
ilObjSurveyGUI::confirmDeleteAllUserDataObject | ( | ) |
Deletes all user data of the survey after confirmation.
Deletes all user data of the survey after confirmation
public
Definition at line 4071 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"); }
ilObjSurveyGUI::confirmDeleteExportFileObject | ( | ) |
confirmation screen for export file deletion
Definition at line 4738 of file class.ilObjSurveyGUI.php.
References $_POST, $_SESSION, $counter, $file, ilUtil::getImagePath(), sendInfo(), and ilUtil::switchColor().
{ if(!isset($_POST["file"])) { $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE); } //$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; foreach($_POST["file"] as $file) { $this->tpl->setCurrentBlock("table_row"); $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(); } }
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 2053 of file class.ilObjSurveyGUI.php.
References $_GET, $_POST, 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"); }
ilObjSurveyGUI::confirmRemoveHeadingForm | ( | ) |
Displays a confirmation form to delete a survey heading.
Displays a confirmation form to delete a survey heading
public
Definition at line 2156 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(); }
ilObjSurveyGUI::confirmRemoveHeadingObject | ( | ) |
Remove a survey heading after confirmation.
Remove a survey heading after confirmation
public
Definition at line 2131 of file class.ilObjSurveyGUI.php.
References $_POST.
{ $this->object->saveHeading("", $_POST["removeheading"]); $this->ctrl->redirect($this, "questions"); }
ilObjSurveyGUI::constraintsForm | ( | $ | checked_questions, | |
$ | checked_questionblocks | |||
) |
Creates the form to edit the question/questionblock constraints.
Creates the form to edit the question/questionblock constraints
array | $checked_questions An array with the id's of the questions checked for editing | |
array | $checked_questionblocks An array with the id's of the questionblocks checked for editing public |
Definition at line 1626 of file class.ilObjSurveyGUI.php.
References $_POST, $counter, ilObjectGUI::$data, $id, $rbacsystem, $row, getAddParameter(), getCallingScript(), and sendInfo().
Referenced by questionsObject().
{ global $rbacsystem; sendInfo(); $pages =& $this->object->getSurveyPages(); $all_questions =& $this->object->getSurveyQuestions(); $add_constraint = 0; $delete_constraint = 0; $constraint_question = -1; foreach ($_POST as $key => $value) { if (preg_match("/add_constraint_(\d+)/", $key, $matches)) { $add_constraint = 1; $constraint_question = $matches[1]; } } if ($_POST["cmd"]["save_constraint"]) { foreach ($checked_questions as $id) { foreach ($pages as $question_array) { foreach ($question_array as $question_data) { if ($question_data["question_id"] == $id) { $this->object->addConstraint($question_data["question_id"], $_POST["q"], $_POST["r"], $_POST["v"]); } } } } foreach ($checked_questionblocks as $id) { foreach ($pages as $question_array) { if ($question_array[0]["questionblock_id"] == $id) { foreach ($question_array as $question_data) { $this->object->addConstraint($question_data["question_id"], $_POST["q"], $_POST["r"], $_POST["v"]); } } } } $add_constraint = 0; } else if ($_POST["cmd"]["cancel_add_constraint"]) { // do nothing, just cancel the form $add_constraint = 0; } else { } if ($add_constraint) { $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_add_constraint.html", true); $found = 0; if ($_POST["cmd"]["select_relation"] or $_POST["cmd"]["select_value"]) { $this->tpl->setCurrentBlock("option_q"); $this->tpl->setVariable("OPTION_VALUE", $_POST["q"]); $this->tpl->setVariable("OPTION_TEXT", $all_questions[$_POST["q"]]["title"] . " (" . $this->lng->txt($all_questions[$_POST["q"]]["type_tag"]) . ")"); $this->tpl->parseCurrentBlock(); } else { foreach ($pages as $question_array) { if (!$found) { foreach ($question_array as $question) { if ($question["question_id"] == $constraint_question) { $found = 1; } } if (!$found) { foreach ($question_array 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(); } } } } } foreach ($_POST as $key => $value) { if (preg_match("/add_constraint_(\d+)/", $key, $matches)) { $this->tpl->setCurrentBlock("hidden"); $this->tpl->setVariable("HIDDEN_NAME", $key); $this->tpl->setVariable("HIDDEN_VALUE", $value); $this->tpl->parseCurrentBlock(); foreach ($checked_questions as $id) { $this->tpl->setCurrentBlock("hidden"); $this->tpl->setVariable("HIDDEN_NAME", "cb_$id"); $this->tpl->setVariable("HIDDEN_VALUE", "$id"); $this->tpl->parseCurrentBlock(); } foreach ($checked_questionblocks as $id) { $this->tpl->setCurrentBlock("hidden"); $this->tpl->setVariable("HIDDEN_NAME", "cb_qb_$id"); $this->tpl->setVariable("HIDDEN_VALUE", "$id"); $this->tpl->parseCurrentBlock(); } } } $continue_command = "select_relation"; $back_command = "cancel_add_constraint"; if ($_POST["cmd"]["select_relation"] or $_POST["cmd"]["select_value"]) { $relations = $this->object->getAllRelations(); switch ($all_questions[$_POST["q"]]["type_tag"]) { case "qt_nominal": 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 "qt_ordinal": case "qt_metric": 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("select_relation")); $this->tpl->parseCurrentBlock(); $continue_command = "select_value"; $back_command = "begin_add_constraint"; } if ($_POST["cmd"]["select_value"]) { $variables =& $this->object->getVariables($_POST["q"]); switch ($all_questions[$_POST["q"]]["type_tag"]) { case "qt_nominal": case "qt_ordinal": 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 "qt_metric": $this->tpl->setCurrentBlock("textfield"); $this->tpl->setVariable("TEXTFIELD_VALUE", ""); $this->tpl->parseCurrentBlock(); break; } $this->tpl->setCurrentBlock("select_value"); if (strcmp($all_questions[$_POST["q"]]["type_tag"], "qt_metric") == 0) { $this->tpl->setVariable("SELECT_VALUE", $this->lng->txt("enter_value")); } else { $this->tpl->setVariable("SELECT_VALUE", $this->lng->txt("select_value")); } $this->tpl->parseCurrentBlock(); $continue_command = "save_constraint"; $back_command = "select_relation"; } $this->tpl->setCurrentBlock("buttons"); $this->tpl->setVariable("BTN_CONTINUE", $this->lng->txt("continue")); $this->tpl->setVariable("COMMAND", "$continue_command"); $this->tpl->setVariable("BTN_BACK", $this->lng->txt("back")); $this->tpl->setVariable("COMMAND_BACK", "$back_command"); $this->tpl->parseCurrentBlock(); $this->tpl->setCurrentBlock("adm_content"); $textoutput = ""; foreach ($checked_questions as $id) { foreach ($pages as $question_array) { foreach ($question_array as $question_data) { if ($question_data["question_id"] == $id) { if ($textoutput) { $textoutput .= "<br>"; } $textoutput .= $question_data["title"] . ": " . $question_data["questiontext"]; } } } } foreach ($checked_questionblocks as $id) { foreach ($pages as $question_array) { if ($question_array[0]["questionblock_id"] == $id) { if ($textoutput) { $textoutput .= "<br>"; } $textoutput .= $this->lng->txt("questionblock") . ": " . $question_array[0]["questionblock_title"]; } } } $this->tpl->setVariable("CONSTRAINT_QUESTION_TEXT", "$textoutput"); $this->tpl->setVariable("SELECT_PRIOR_QUESTION", $this->lng->txt("select_prior_question")); $this->tpl->setVariable("FORM_ACTION", $this->getCallingScript() . $this->getAddParameter()); $this->tpl->parseCurrentBlock(); } else { foreach ($_POST as $key => $value) { if (preg_match("/delete_constraint_(\d+)_(\d+)/", $key, $matches)) { foreach ($pages as $question_array) { $found = 0; foreach ($question_array as $question_data) { if ($question_data["question_id"] == $matches[2]) { $found = 1; } } if ($found) { foreach ($question_array as $question_id => $question_data) { $this->object->deleteConstraint($matches[1], $question_data["question_id"]); } } } } } $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_constraints.html", true); $colors = array("tblrow1", "tblrow2"); $counter = 0; foreach ($pages as $question_array) { if (count($question_array) > 1) { // question block $data = $question_array[0]; } else { // question $data = $question_array[0]; } if (in_array($data["questionblock_id"], $checked_questionblocks) or (in_array($data["question_id"], $checked_questions))) { $counter = 0; $constraints = $this->object->getConstraints($data["question_id"]); if (count($constraints)) { foreach ($constraints as $constraint) { $value = ""; $variables =& $this->object->getVariables($constraint["question"]); switch ($all_questions[$constraint["question"]]["type_tag"]) { case "qt_metric": $value = $constraint["value"]; break; case "qt_nominal": case "qt_ordinal": $value = sprintf("%d", $constraint["value"]+1) . " - " . $variables[$constraint["value"]]->title; break; } $this->tpl->setCurrentBlock("constraint"); $this->tpl->setVariable("CONSTRAINT_TEXT", $all_questions[$constraint["question"]]["title"] . " " . $constraint["short"] . " $value"); if ($rbacsystem->checkAccess("write", $this->ref_id) and ($this->object->isOffline())) { $this->tpl->setVariable("CONSTRAINT_ID", $constraint["id"]); $this->tpl->setVariable("CONSTRAINT_QUESTION_ID", $constraint["question"]); $this->tpl->setVariable("BTN_DELETE", $this->lng->txt("delete")); } $this->tpl->parseCurrentBlock(); } } else { $this->tpl->setCurrentBlock("empty_row"); $this->tpl->setVariable("EMPTY_TEXT", $this->lng->txt("no_available_constraints")); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("question"); if ($data["questionblock_id"]) { $this->tpl->setVariable("QUESTION_IDENTIFIER", $this->lng->txt("questionblock") . ": " . $data["questionblock_title"]); } else { $this->tpl->setVariable("QUESTION_IDENTIFIER", $this->lng->txt($data["type_tag"]) . ": " . $data["title"]); } if ($rbacsystem->checkAccess("write", $this->ref_id) and ($this->object->isOffline())) { $this->tpl->setVariable("ADD_QUESTION_ID", $data["question_id"]); $this->tpl->setVariable("BTN_ADD", $this->lng->txt("add")); } $this->tpl->setVariable("QUESTION_ID", $data["question_id"]); $this->tpl->setVariable("BTN_BACK", $this->lng->txt("back")); $this->tpl->parseCurrentBlock(); } } foreach ($checked_questions as $id) { $this->tpl->setCurrentBlock("hidden"); $this->tpl->setVariable("HIDDEN_NAME", "cb_$id"); $this->tpl->setVariable("HIDDEN_VALUE", "$id"); $this->tpl->parseCurrentBlock(); } foreach ($checked_questionblocks as $id) { $this->tpl->setCurrentBlock("hidden"); $this->tpl->setVariable("HIDDEN_NAME", "cb_qb_$id"); $this->tpl->setVariable("HIDDEN_VALUE", "$id"); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("adm_content"); if ($rbacsystem->checkAccess("write", $this->ref_id) and ($this->object->isOffline())) { $this->tpl->setVariable("TEXT_EDIT_CONSTRAINTS", $this->lng->txt("edit_constraints_introduction")); } else { $this->tpl->setVariable("TEXT_EDIT_CONSTRAINTS", $this->lng->txt("view_constraints_introduction")); } $this->tpl->setVariable("FORM_ACTION", $this->getCallingScript() . $this->getAddParameter()); $this->tpl->parseCurrentBlock(); } }
ilObjSurveyGUI::createExportFileObject | ( | ) |
create export file
Definition at line 4484 of file class.ilObjSurveyGUI.php.
References $_GET, $rbacsystem, ilUtil::redirect(), and sendInfo().
{ global $rbacsystem; if ($rbacsystem->checkAccess("write", $this->ref_id)) { require_once("./survey/classes/class.ilSurveyExport.php"); $survey_exp = new ilSurveyExport($this->object); $survey_exp->buildExportFile(); ilUtil::redirect("survey.php?cmd=export&ref_id=".$_GET["ref_id"]); } else { sendInfo("cannot_export_survey"); } }
ilObjSurveyGUI::createObject | ( | ) |
form for new content object creation
Reimplemented from ilObjectGUI.
Definition at line 4592 of file class.ilObjSurveyGUI.php.
References $_GET, $_POST, $_SESSION, ilObjectGUI::$data, $rbacsystem, ilObjSurvey::_getAvailableSurveys(), ilObjectGUI::getFormAction(), ilObjectGUI::getTargetFrame(), 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); require_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(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(); $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->tpl->setVariable("FORMACTION", $this->getFormAction("save","adm_object.php?cmd=gateway&ref_id=". $_GET["ref_id"]."&new_type=".$new_type)); $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", $this->getTargetFrame("save")); $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")); } }
ilObjSurveyGUI::createSurveyCodesObject | ( | ) |
Definition at line 4894 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"); }
ilObjSurveyGUI::defineQuestionblock | ( | $ | questionblock_id = "" |
) |
Displays the definition form for a question block.
Displays the definition form for a question block
integer | $questionblock_id The database id of the questionblock to edit an existing questionblock public |
Definition at line 1539 of file class.ilObjSurveyGUI.php.
References $_POST, getAddParameter(), getCallingScript(), and sendInfo().
Referenced by 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->getCallingScript() . $this->getAddParameter()); $this->tpl->parseCurrentBlock(); }
ilObjSurveyGUI::deleteAllUserDataObject | ( | ) |
Creates a confirmation form for delete all user data.
Creates a confirmation form for delete all user data
public
Definition at line 4051 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(); }
ilObjSurveyGUI::deleteExportFileObject | ( | ) |
delete export files
Definition at line 4798 of file class.ilObjSurveyGUI.php.
References $_GET, $_SESSION, $file, ilUtil::delDir(), and ilUtil::redirect().
{ $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)) { ilUtil::delDir($exp_dir); } } ilUtil::redirect("survey.php?cmd=export&ref_id=".$_GET["ref_id"]); }
ilObjSurveyGUI::deleteMeta | ( | ) |
Definition at line 4342 of file class.ilObjSurveyGUI.php.
References deleteMetaObject(), and ilObjectGUI::getTabTargetScript().
{ $this->deleteMetaObject($this->getTabTargetScript()."?ref_id=". $this->object->getRefId()); }
ilObjSurveyGUI::deleteMetaObject | ( | $ | a_script = "" , |
|
$ | a_templ_var = "ADM_CONTENT" , |
|||
$ | a_templ_block = "adm_content" | |||
) |
Definition at line 4328 of file class.ilObjSurveyGUI.php.
References $_GET, $_POST, and ilObjectGUI::getTabTargetScript().
Referenced by deleteMeta().
{ if ($a_script == "") { $a_script = $this->getTabTargetScript()."?ref_id=".$_GET["ref_id"]; } $meta_gui =& new ilMetaDataGUI(); $meta_gui->setObject($this->object); $meta_index = $_POST["meta_index"] ? $_POST["meta_index"] : $_GET["meta_index"]; $meta_gui->meta_obj->delete($_GET["meta_name"], $_GET["meta_path"], $meta_index); $meta_gui->edit($a_templ_var, $a_templ_block, $a_script, $_GET["meta_section"]); }
ilObjSurveyGUI::downloadExportFileObject | ( | ) |
download export file
Definition at line 4717 of file class.ilObjSurveyGUI.php.
References $_POST, and ilUtil::deliverFile().
{ if(!isset($_POST["file"])) { $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE); } if (count($_POST["file"]) > 1) { $this->ilias->raiseError($this->lng->txt("select_max_one_item"),$this->ilias->error_obj->MESSAGE); } $export_dir = $this->object->getExportDirectory(); ilUtil::deliverFile($export_dir."/".$_POST["file"][0], $_POST["file"][0]); }
ilObjSurveyGUI::editMetaObject | ( | ) |
Definition at line 4254 of file class.ilObjSurveyGUI.php.
References $_GET, and ilObjectGUI::getTabTargetScript().
{ $meta_gui =& new ilMetaDataGUI(); $meta_gui->setObject($this->object); $meta_gui->edit("ADM_CONTENT", "adm_content", $this->getTabTargetScript()."?ref_id=".$_GET["ref_id"]."&cmd=saveMeta"); }
ilObjSurveyGUI::evaluationdetailsObject | ( | ) |
Definition at line 3144 of file class.ilObjSurveyGUI.php.
References evaluationObject().
{ $this->evaluationObject(1); }
ilObjSurveyGUI::evaluationObject | ( | $ | details = 0 , |
|
$ | print = 0 | |||
) |
Creates the evaluation form.
Creates the evaluation form
public
Definition at line 3156 of file class.ilObjSurveyGUI.php.
References $_GET, $_POST, $_SESSION, $counter, ilObjectGUI::$data, $ilUser, $result, $separator, ilExcelUtils::_convert_text(), ilUtil::deliverData(), exit, getCallingScript(), ilUtil::getImagePath(), sendInfo(), and setEvalTabs().
Referenced by evaluationdetailsObject(), and printEvaluationObject().
{ global $ilUser; $result = @include_once 'Spreadsheet/Excel/Writer.php'; if (!$result) { include_once './classes/Spreadsheet/Excel/Writer.php'; } $format_bold = ""; $format_percent = ""; $format_datetime = ""; $format_title = ""; if ($print) { unset($_POST["export_format"]); } $object_title = preg_replace("/[^a-zA-Z0-9\s]/", "", $this->object->getTitle()); $surveyname = preg_replace("/\s/", "_", $object_title); if (!$_POST["export_format"]) { $_POST["export_format"] = TYPE_PRINT; } switch ($_POST["export_format"]) { case TYPE_XLS: case TYPE_XLS_MAC: // Creating a workbook $workbook = new Spreadsheet_Excel_Writer(); // sending HTTP headers $workbook->send("$surveyname.xls"); // Creating a worksheet $format_bold =& $workbook->addFormat(); $format_bold->setBold(); $format_percent =& $workbook->addFormat(); $format_percent->setNumFormat("0.00%"); $format_datetime =& $workbook->addFormat(); $format_datetime->setNumFormat("DD/MM/YYYY hh:mm:ss"); $format_title =& $workbook->addFormat(); $format_title->setBold(); $format_title->setColor('black'); $format_title->setPattern(1); $format_title->setFgColor('silver'); // Creating a worksheet include_once ("./classes/class.ilExcelUtils.php"); $mainworksheet =& $workbook->addWorksheet(); $mainworksheet->writeString(0, 0, ilExcelUtils::_convert_text($this->lng->txt("title"), $_POST["export_format"]), $format_bold); $mainworksheet->writeString(0, 1, ilExcelUtils::_convert_text($this->lng->txt("question"), $_POST["export_format"]), $format_bold); $mainworksheet->writeString(0, 2, ilExcelUtils::_convert_text($this->lng->txt("question_type"), $_POST["export_format"]), $format_bold); $mainworksheet->writeString(0, 3, ilExcelUtils::_convert_text($this->lng->txt("users_answered"), $_POST["export_format"]), $format_bold); $mainworksheet->writeString(0, 4, ilExcelUtils::_convert_text($this->lng->txt("users_skipped"), $_POST["export_format"]), $format_bold); $mainworksheet->writeString(0, 5, ilExcelUtils::_convert_text($this->lng->txt("mode"), $_POST["export_format"]), $format_bold); $mainworksheet->writeString(0, 6, ilExcelUtils::_convert_text($this->lng->txt("mode_text"), $_POST["export_format"]), $format_bold); $mainworksheet->writeString(0, 7, ilExcelUtils::_convert_text($this->lng->txt("mode_nr_of_selections"), $_POST["export_format"]), $format_bold); $mainworksheet->writeString(0, 8, ilExcelUtils::_convert_text($this->lng->txt("median"), $_POST["export_format"]), $format_bold); $mainworksheet->writeString(0, 9, ilExcelUtils::_convert_text($this->lng->txt("arithmetic_mean"), $_POST["export_format"]), $format_bold); break; case (TYPE_SPSS || TYPE_PRINT): $csvfile = array(); $csvrow = array(); array_push($csvrow, $this->lng->txt("title")); array_push($csvrow, $this->lng->txt("question")); array_push($csvrow, $this->lng->txt("question_type")); array_push($csvrow, $this->lng->txt("users_answered")); array_push($csvrow, $this->lng->txt("users_skipped")); array_push($csvrow, $this->lng->txt("mode")); //array_push($csvrow, $this->lng->txt("mode_text")); array_push($csvrow, $this->lng->txt("mode_nr_of_selections")); array_push($csvrow, $this->lng->txt("median")); array_push($csvrow, $this->lng->txt("arithmetic_mean")); array_push($csvfile, $csvrow); break; } if (!$print) { $this->setEvalTabs(); sendInfo(); $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_evaluation.html", true); } else { $this->tpl = new ilTemplate("./survey/templates/default/tpl.il_svy_svy_evaluation_preview.html", true, true); } $counter = 0; $classes = array("tblrow1", "tblrow2"); $questions =& $this->object->getSurveyQuestions(); foreach ($questions as $data) { $eval = $this->object->getEvaluation($data["question_id"], $ilUser->id); $this->tpl->setCurrentBlock("row"); $this->tpl->setVariable("QUESTION_TITLE", ($counter+1) . ". " . $data["title"]); $maxlen = 37; if (strlen($data["questiontext"]) > $maxlen + 3) { $questiontext = substr($data["questiontext"], 0, $maxlen) . "..."; } else { $questiontext = $data["questiontext"]; } $this->tpl->setVariable("QUESTION_TEXT", $questiontext); $this->tpl->setVariable("USERS_ANSWERED", $eval["USERS_ANSWERED"]); $this->tpl->setVariable("USERS_SKIPPED", $eval["USERS_SKIPPED"]); $this->tpl->setVariable("QUESTION_TYPE", $this->lng->txt($eval["QUESTION_TYPE"])); $this->tpl->setVariable("MODE", $eval["MODE"]); $this->tpl->setVariable("MODE_NR_OF_SELECTIONS", $eval["MODE_NR_OF_SELECTIONS"]); $this->tpl->setVariable("MEDIAN", $eval["MEDIAN"]); $this->tpl->setVariable("ARITHMETIC_MEAN", $eval["ARITHMETIC_MEAN"]); $this->tpl->setVariable("COLOR_CLASS", $classes[$counter % 2]); switch ($_POST["export_format"]) { case TYPE_XLS: case TYPE_XLS_MAC: include_once ("./classes/class.ilExcelUtils.php"); $mainworksheet->writeString($counter+1, 0, ilExcelUtils::_convert_text($data["title"], $_POST["export_format"])); $mainworksheet->writeString($counter+1, 1, ilExcelUtils::_convert_text($data["questiontext"], $_POST["export_format"])); $mainworksheet->writeString($counter+1, 2, ilExcelUtils::_convert_text($this->lng->txt($eval["QUESTION_TYPE"]), $_POST["export_format"])); $mainworksheet->write($counter+1, 3, $eval["USERS_ANSWERED"]); $mainworksheet->write($counter+1, 4, $eval["USERS_SKIPPED"]); preg_match("/(.*?)\s+-\s+(.*)/", $eval["MODE"], $matches); switch ($eval["QUESTION_TYPE"]) { case "qt_metric": $mainworksheet->write($counter+1, 5, $eval["MODE"]); $mainworksheet->write($counter+1, 6, $eval["MODE"]); break; default: $mainworksheet->write($counter+1, 5, $matches[1]); $mainworksheet->write($counter+1, 6, $matches[2]); break; } $mainworksheet->write($counter+1, 7, $eval["MODE_NR_OF_SELECTIONS"]); $mainworksheet->write($counter+1, 8, $eval["MEDIAN"]); $mainworksheet->write($counter+1, 9, $eval["ARITHMETIC_MEAN"]); break; case (TYPE_SPSS || TYPE_PRINT): $csvrow = array(); array_push($csvrow, $data["title"]); array_push($csvrow, $data["questiontext"]); array_push($csvrow, $this->lng->txt($eval["QUESTION_TYPE"])); array_push($csvrow, $eval["USERS_ANSWERED"]); array_push($csvrow, $eval["USERS_SKIPPED"]); array_push($csvrow, $eval["MODE"]); array_push($csvrow, $eval["MODE_NR_OF_SELECTIONS"]); array_push($csvrow, $eval["MEDIAN"]); array_push($csvrow, $eval["ARITHMETIC_MEAN"]); array_push($csvfile, $csvrow); break; } $this->tpl->parseCurrentBlock(); if ($details) { $printDetail = array(); switch ($_POST["export_format"]) { case TYPE_XLS: case TYPE_XLS_MAC: include_once ("./classes/class.ilExcelUtils.php"); $worksheet =& $workbook->addWorksheet(); $worksheet->writeString(0, 0, ilExcelUtils::_convert_text($this->lng->txt("title"), $_POST["export_format"]), $format_bold); $worksheet->writeString(0, 1, ilExcelUtils::_convert_text($data["title"], $_POST["export_format"])); $worksheet->writeString(1, 0, ilExcelUtils::_convert_text($this->lng->txt("question"), $_POST["export_format"]), $format_bold); $worksheet->writeString(1, 1, ilExcelUtils::_convert_text($data["questiontext"], $_POST["export_format"])); $worksheet->writeString(2, 0, ilExcelUtils::_convert_text($this->lng->txt("question_type"), $_POST["export_format"]), $format_bold); $worksheet->writeString(2, 1, ilExcelUtils::_convert_text($this->lng->txt($eval["QUESTION_TYPE"]), $_POST["export_format"])); $worksheet->writeString(3, 0, ilExcelUtils::_convert_text($this->lng->txt("users_answered"), $_POST["export_format"]), $format_bold); $worksheet->write(3, 1, $eval["USERS_ANSWERED"]); $worksheet->writeString(4, 0, ilExcelUtils::_convert_text($this->lng->txt("users_skipped"), $_POST["export_format"]), $format_bold); $worksheet->write(4, 1, $eval["USERS_SKIPPED"]); $rowcounter = 5; break; case TYPE_PRINT: array_push($printDetail, $this->lng->txt("title")); array_push($printDetail, $data["title"]); array_push($printDetail, $this->lng->txt("question")); array_push($printDetail, $data["questiontext"]); array_push($printDetail, $this->lng->txt("question_type")); array_push($printDetail, $this->lng->txt($eval["QUESTION_TYPE"])); array_push($printDetail, $this->lng->txt("users_answered")); array_push($printDetail, $eval["USERS_ANSWERED"]); array_push($printDetail, $this->lng->txt("users_skipped")); array_push($printDetail, $eval["USERS_SKIPPED"]); break; } $this->tpl->setCurrentBlock("detail"); $this->tpl->setVariable("QUESTION_TITLE", $data["title"]); $this->tpl->setVariable("TEXT_QUESTION_TEXT", $this->lng->txt("question")); $this->tpl->setVariable("QUESTION_TEXT", $data["questiontext"]); $this->tpl->setVariable("TEXT_QUESTION_TYPE", $this->lng->txt("question_type")); $this->tpl->setVariable("QUESTION_TYPE", $this->lng->txt($eval["QUESTION_TYPE"])); $this->tpl->setVariable("TEXT_USERS_ANSWERED", $this->lng->txt("users_answered")); $this->tpl->setVariable("USERS_ANSWERED", $eval["USERS_ANSWERED"]); $this->tpl->setVariable("TEXT_USERS_SKIPPED", $this->lng->txt("users_skipped")); $this->tpl->setVariable("USERS_SKIPPED", $eval["USERS_SKIPPED"]); switch ($eval["QUESTION_TYPE"]) { case "qt_ordinal": switch ($_POST["export_format"]) { case TYPE_XLS: case TYPE_XLS_MAC: preg_match("/(.*?)\s+-\s+(.*)/", $eval["MODE"], $matches); $worksheet->write($rowcounter, 0, $this->lng->txt("mode"), $format_bold); $worksheet->write($rowcounter++, 1, $matches[1]); $worksheet->write($rowcounter, 0, $this->lng->txt("mode_text"), $format_bold); $worksheet->write($rowcounter++, 1, $matches[2]); $worksheet->write($rowcounter, 0, $this->lng->txt("mode_nr_of_selections"), $format_bold); $worksheet->write($rowcounter++, 1, $eval["MODE_NR_OF_SELECTIONS"]); $worksheet->write($rowcounter, 0, $this->lng->txt("median"), $format_bold); $worksheet->write($rowcounter++, 1, $eval["MEDIAN"]); $worksheet->write($rowcounter, 0, $this->lng->txt("categories"), $format_bold); $worksheet->write($rowcounter, 1, $this->lng->txt("title"), $format_title); $worksheet->write($rowcounter, 2, $this->lng->txt("value"), $format_title); $worksheet->write($rowcounter, 3, $this->lng->txt("category_nr_selected"), $format_title); $worksheet->write($rowcounter++, 4, $this->lng->txt("percentage_of_selections"), $format_title); break; } $this->tpl->setVariable("TEXT_MODE", $this->lng->txt("mode")); $this->tpl->setVariable("MODE", $eval["MODE"]); $this->tpl->setVariable("TEXT_MODE_NR_OF_SELECTIONS", $this->lng->txt("mode_nr_of_selections")); $this->tpl->setVariable("MODE_NR_OF_SELECTIONS", $eval["MODE_NR_OF_SELECTIONS"]); $this->tpl->setVariable("TEXT_MEDIAN", $this->lng->txt("median")); $this->tpl->setVariable("MEDIAN", $eval["MEDIAN"]); $this->tpl->setVariable("TEXT_CATEGORIES", $this->lng->txt("categories")); $categories = ""; foreach ($eval["variables"] as $key => $value) { $categories .= "<li>" . $this->lng->txt("title") . ":" . "<span class=\"bold\">" . $value["title"] . "</span><br />" . $this->lng->txt("category_nr_selected") . ": " . "<span class=\"bold\">" . $value["selected"] . "</span><br />" . $this->lng->txt("percentage_of_selections") . ": " . "<span class=\"bold\">" . sprintf("%.2f", 100*$value["percentage"]) . "</span></li>"; switch ($_POST["export_format"]) { case TYPE_XLS: case TYPE_XLS_MAC: $worksheet->write($rowcounter, 1, $value["title"]); $worksheet->write($rowcounter, 2, $key+1); $worksheet->write($rowcounter, 3, $value["selected"]); $worksheet->write($rowcounter++, 4, $value["percentage"], $format_percent); break; } } $categories = "<ol>$categories</ol>"; $this->tpl->setVariable("VALUE_CATEGORIES", $categories); // display chart for ordinal question for array $eval["variables"] $this->tpl->setVariable("TEXT_CHART", $this->lng->txt("chart")); $this->tpl->setVariable("ALT_CHART", $data["title"] . "( " . $this->lng->txt("chart") . ")"); $this->tpl->setVariable("CHART","displaychart.php?grName=" . urlencode($data["title"]) . "&type=bars" . "&x=" . urlencode($this->lng->txt("answers")) . "&y=" . urlencode($this->lng->txt("users_answered")) . "&arr=".base64_encode(serialize($eval["variables"]))); switch ($_POST["export_format"]) { case TYPE_PRINT: array_push($printDetail, $this->lng->txt("mode")); array_push($printDetail, $eval["MODE"]); array_push($printDetail, $this->lng->txt("mode_nr_of_selections")); array_push($printDetail, $eval["MODE_NR_OF_SELECTIONS"]); array_push($printDetail, $this->lng->txt("median")); array_push($printDetail, $eval["MEDIAN"]); array_push($printDetail, $this->lng->txt("categories")); array_push($printDetail, $categories); break; } break; case "qt_nominal": switch ($_POST["export_format"]) { case TYPE_XLS: case TYPE_XLS_MAC: preg_match("/(.*?)\s+-\s+(.*)/", $eval["MODE"], $matches); $worksheet->write($rowcounter, 0, $this->lng->txt("mode"), $format_bold); $worksheet->write($rowcounter++, 1, $matches[1]); $worksheet->write($rowcounter, 0, $this->lng->txt("mode_text"), $format_bold); $worksheet->write($rowcounter++, 1, $matches[2]); $worksheet->write($rowcounter, 0, $this->lng->txt("mode_nr_of_selections"), $format_bold); $worksheet->write($rowcounter++, 1, $eval["MODE_NR_OF_SELECTIONS"]); $worksheet->write($rowcounter, 0, $this->lng->txt("categories"), $format_bold); $worksheet->write($rowcounter, 1, $this->lng->txt("title"), $format_title); $worksheet->write($rowcounter, 2, $this->lng->txt("value"), $format_title); $worksheet->write($rowcounter, 3, $this->lng->txt("category_nr_selected"), $format_title); $worksheet->write($rowcounter++, 4, $this->lng->txt("percentage_of_selections"), $format_title); break; } array_push($printDetail, $this->lng->txt("subtype")); $this->tpl->setVariable("TEXT_QUESTION_SUBTYPE", $this->lng->txt("subtype")); $charttype = "bars"; switch ($data["subtype"]) { case SUBTYPE_MCSR: $this->tpl->setVariable("QUESTION_SUBTYPE", $this->lng->txt("multiple_choice_single_response")); array_push($printDetail, $this->lng->txt("multiple_choice_single_response")); break; case SUBTYPE_MCMR: $charttype = "pie"; $this->tpl->setVariable("QUESTION_SUBTYPE", $this->lng->txt("multiple_choice_multiple_response")); array_push($printDetail, $this->lng->txt("multiple_choice_multiple_response")); break; } $this->tpl->setVariable("TEXT_MODE", $this->lng->txt("mode")); $this->tpl->setVariable("MODE", $eval["MODE"]); $this->tpl->setVariable("TEXT_MODE_NR_OF_SELECTIONS", $this->lng->txt("mode_nr_of_selections")); $this->tpl->setVariable("MODE_NR_OF_SELECTIONS", $eval["MODE_NR_OF_SELECTIONS"]); $this->tpl->setVariable("TEXT_CATEGORIES", $this->lng->txt("categories")); $categories = ""; foreach ($eval["variables"] as $key => $value) { $categories .= "<li>" . $this->lng->txt("title") . ":" . "<span class=\"bold\">" . $value["title"] . "</span><br />" . $this->lng->txt("category_nr_selected") . ": " . "<span class=\"bold\">" . $value["selected"] . "</span><br />" . $this->lng->txt("percentage_of_selections") . ": " . "<span class=\"bold\">" . sprintf("%.2f", 100*$value["percentage"]) . "</span></li>"; switch ($_POST["export_format"]) { case TYPE_XLS: case TYPE_XLS_MAC: $worksheet->write($rowcounter, 1, $value["title"]); $worksheet->write($rowcounter, 2, $key+1); $worksheet->write($rowcounter, 3, $value["selected"]); $worksheet->write($rowcounter++, 4, $value["percentage"], $format_percent); break; } } $categories = "<ol>$categories</ol>"; $this->tpl->setVariable("VALUE_CATEGORIES", $categories); // display chart for nominal question for array $eval["variables"] $this->tpl->setVariable("TEXT_CHART", $this->lng->txt("chart")); $this->tpl->setVariable("ALT_CHART", $data["title"] . "( " . $this->lng->txt("chart") . ")"); $this->tpl->setVariable("CHART","displaychart.php?grName=" . urlencode($data["title"]) . "&type=$charttype" . "&x=" . urlencode($this->lng->txt("answers")) . "&y=" . urlencode($this->lng->txt("users_answered")) . "&arr=".base64_encode(serialize($eval["variables"]))); switch ($_POST["export_format"]) { case TYPE_PRINT: array_push($printDetail, $this->lng->txt("mode")); array_push($printDetail, $eval["MODE"]); array_push($printDetail, $this->lng->txt("mode_nr_of_selections")); array_push($printDetail, $eval["MODE_NR_OF_SELECTIONS"]); array_push($printDetail, $this->lng->txt("categories")); array_push($printDetail, $categories); break; } break; case "qt_metric": switch ($_POST["export_format"]) { case TYPE_XLS: case TYPE_XLS_MAC: $worksheet->write($rowcounter, 0, $this->lng->txt("subtype"), $format_bold); switch ($data["subtype"]) { case SUBTYPE_NON_RATIO: $worksheet->write($rowcounter++, 1, $this->lng->txt("non_ratio"), $format_bold); break; case SUBTYPE_RATIO_NON_ABSOLUTE: $worksheet->write($rowcounter++, 1, $this->lng->txt("ratio_non_absolute"), $format_bold); break; case SUBTYPE_RATIO_ABSOLUTE: $worksheet->write($rowcounter++, 1, $this->lng->txt("ratio_absolute"), $format_bold); break; } $worksheet->write($rowcounter, 0, $this->lng->txt("mode"), $format_bold); $worksheet->write($rowcounter++, 1, $eval["MODE"]); $worksheet->write($rowcounter, 0, $this->lng->txt("mode_text"), $format_bold); $worksheet->write($rowcounter++, 1, $eval["MODE"]); $worksheet->write($rowcounter, 0, $this->lng->txt("mode_nr_of_selections"), $format_bold); $worksheet->write($rowcounter++, 1, $eval["MODE_NR_OF_SELECTIONS"]); $worksheet->write($rowcounter, 0, $this->lng->txt("median"), $format_bold); $worksheet->write($rowcounter++, 1, $eval["MEDIAN"]); $worksheet->write($rowcounter, 0, $this->lng->txt("arithmetic_mean"), $format_bold); $worksheet->write($rowcounter++, 1, $eval["ARITHMETIC_MEAN"]); $worksheet->write($rowcounter, 0, $this->lng->txt("values"), $format_bold); $worksheet->write($rowcounter, 1, $this->lng->txt("value"), $format_title); $worksheet->write($rowcounter, 2, $this->lng->txt("category_nr_selected"), $format_title); $worksheet->write($rowcounter++, 3, $this->lng->txt("percentage_of_selections"), $format_title); break; } $this->tpl->setVariable("TEXT_QUESTION_SUBTYPE", $this->lng->txt("subtype")); array_push($printDetail, $this->lng->txt("subtype")); switch ($data["subtype"]) { case SUBTYPE_NON_RATIO: $this->tpl->setVariable("QUESTION_SUBTYPE", $this->lng->txt("non_ratio")); array_push($printDetail, $this->lng->txt("non_ratio")); break; case SUBTYPE_RATIO_NON_ABSOLUTE: $this->tpl->setVariable("QUESTION_SUBTYPE", $this->lng->txt("ratio_non_absolute")); array_push($printDetail, $this->lng->txt("ratio_non_absolute")); break; case SUBTYPE_RATIO_ABSOLUTE: $this->tpl->setVariable("QUESTION_SUBTYPE", $this->lng->txt("ratio_absolute")); array_push($printDetail, $this->lng->txt("ratio_absolute")); break; } $this->tpl->setVariable("TEXT_MODE", $this->lng->txt("mode")); $this->tpl->setVariable("MODE", $eval["MODE"]); $this->tpl->setVariable("TEXT_MODE_NR_OF_SELECTIONS", $this->lng->txt("mode_nr_of_selections")); $this->tpl->setVariable("MODE_NR_OF_SELECTIONS", $eval["MODE_NR_OF_SELECTIONS"]); $this->tpl->setVariable("TEXT_MEDIAN", $this->lng->txt("median")); $this->tpl->setVariable("MEDIAN", $eval["MEDIAN"]); $this->tpl->setVariable("TEXT_ARITHMETIC_MEAN", $this->lng->txt("arithmetic_mean")); $this->tpl->setVariable("ARITHMETIC_MEAN", $eval["ARITHMETIC_MEAN"]); $this->tpl->setVariable("TEXT_VALUES", $this->lng->txt("values")); $values = ""; foreach ($eval["values"] as $key => $value) { $values .= "<li>" . $this->lng->txt("value") . ": " . "<span class=\"bold\">" . $value["value"] . "</span><br />" . $this->lng->txt("value_nr_entered") . ": " . "<span class=\"bold\">" . $value["selected"] . "</span><br />" . $this->lng->txt("percentage_of_entered_values") . ": " . "<span class=\"bold\">" . sprintf("%.2f", 100*$value["percentage"]) . "</span></li>"; switch ($_POST["export_format"]) { case TYPE_XLS: case TYPE_XLS_MAC: $worksheet->write($rowcounter, 1, $value["value"]); $worksheet->write($rowcounter, 2, $value["selected"]); $worksheet->write($rowcounter++, 3, $value["percentage"], $format_percent); break; } } $values = "<ol>$values</ol>"; $this->tpl->setVariable("VALUE_VALUES", $values); // display chart for metric question for array $eval["values"] $this->tpl->setVariable("TEXT_CHART", $this->lng->txt("chart")); $this->tpl->setVariable("ALT_CHART", $data["title"] . "( " . $this->lng->txt("chart") . ")"); $this->tpl->setVariable("CHART","displaychart.php?grName=" . urlencode($data["title"]) . "&type=bars" . "&x=" . urlencode($this->lng->txt("answers")) . "&y=" . urlencode($this->lng->txt("users_answered")) . "&arr=".base64_encode(serialize($eval["values"]))); switch ($_POST["export_format"]) { case TYPE_PRINT: array_push($printDetail, $this->lng->txt("mode")); array_push($printDetail, $eval["MODE"]); array_push($printDetail, $this->lng->txt("mode_nr_of_selections")); array_push($printDetail, $eval["MODE_NR_OF_SELECTIONS"]); array_push($printDetail, $this->lng->txt("median")); array_push($printDetail, $eval["MEDIAN"]); array_push($printDetail, $this->lng->txt("values")); array_push($printDetail, $values); break; } break; case "qt_text": switch ($_POST["export_format"]) { case TYPE_XLS: case TYPE_XLS_MAC: $worksheet->write($rowcounter, 0, $this->lng->txt("given_answers"), $format_bold); break; } $this->tpl->setVariable("TEXT_TEXTVALUES", $this->lng->txt("given_answers")); $textvalues = ""; foreach ($eval["textvalues"] as $textvalue) { $textvalues .= "<li>" . preg_replace("/\n/", "<br>", $textvalue) . "</li>"; switch ($_POST["export_format"]) { case TYPE_XLS: case TYPE_XLS_MAC: $worksheet->write($rowcounter++, 1, $textvalue); break; } } $textvalues = "<ul>$textvalues</ul>"; $this->tpl->setVariable("VALUE_TEXTVALUES", $textvalues); switch ($_POST["export_format"]) { case TYPE_PRINT: array_push($printDetail, $this->lng->txt("given_answers")); array_push($printDetail, $textvalues); break; } break; } if ($_POST["export_format"]==TYPE_PRINT) { $printdetail_file = array(); array_push($printdetail_file, $printDetail); $s_question = $counter+1; $_SESSION[$this->lng->txt("question").$s_question] = $printdetail_file; $this->tpl->setVariable("PRINT_ACTION", $this->getCallingScript() . "?ref_id=" . $_GET["ref_id"] . "&cmd=printEvaluation&".$this->lng->txt("question")."=".$s_question); $this->tpl->setVariable("PRINT_TEXT", $this->lng->txt("print")); $this->tpl->setVariable("PRINT_IMAGE", ilUtil::getImagePath("icon_print.gif")); } $this->tpl->parseCurrentBlock(); } $counter++; } if ($_POST["export_format"]==TYPE_PRINT) { $_SESSION["print_eval"] = $csvfile; } switch ($_POST["export_format"]) { case TYPE_XLS: case TYPE_XLS_MAC: // Let's send the file $workbook->close(); exit(); break; case TYPE_SPSS: $csv = ""; $separator = ";"; foreach ($csvfile as $csvrow) { $csvrow =& $this->object->processCSVRow($csvrow, TRUE, $separator); $csv .= join($csvrow, $separator) . "\n"; } ilUtil::deliverData($csv, "$surveyname.csv"); exit(); break; } if (!$print) { $this->tpl->setCurrentBlock("adm_content"); } else { $this->tpl->setCurrentBlock("__global__"); $this->tpl->setVariable("TXT_STATISTICAL_EVALUATION", $this->lng->txt("svy_statistical_evaluation") . " " . $this->lng->txt("of") . " " . $this->object->getTitle()); $this->tpl->setVariable("PRINT_CSS", "./templates/default/print.css"); $this->tpl->setVariable("PRINT_TYPE", "summary"); } $this->tpl->setVariable("QUESTION_TITLE", $this->lng->txt("title")); $this->tpl->setVariable("QUESTION_TEXT", $this->lng->txt("question")); $this->tpl->setVariable("QUESTION_TYPE", $this->lng->txt("question_type")); $this->tpl->setVariable("USERS_ANSWERED", $this->lng->txt("users_answered")); $this->tpl->setVariable("USERS_SKIPPED", $this->lng->txt("users_skipped")); $this->tpl->setVariable("MODE", $this->lng->txt("mode")); $this->tpl->setVariable("MODE_NR_OF_SELECTIONS", $this->lng->txt("mode_nr_of_selections")); $this->tpl->setVariable("MEDIAN", $this->lng->txt("median")); $this->tpl->setVariable("ARITHMETIC_MEAN", $this->lng->txt("arithmetic_mean")); $this->tpl->setVariable("EXPORT_DATA", $this->lng->txt("export_data_as")); $this->tpl->setVariable("TEXT_EXCEL", $this->lng->txt("exp_type_excel")); $this->tpl->setVariable("TEXT_EXCEL_MAC", $this->lng->txt("exp_type_excel_mac")); $this->tpl->setVariable("TEXT_CSV", $this->lng->txt("exp_type_csv")); $this->tpl->setVariable("VALUE_DETAIL", $details); $this->tpl->setVariable("BTN_EXPORT", $this->lng->txt("export")); $this->tpl->setVariable("BTN_PRINT", $this->lng->txt("print")); $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this)); $this->tpl->setVariable("PRINT_ACTION", $this->ctrl->getFormAction($this)); if ($details) { $this->tpl->setVariable("CMD_EXPORT", "evaluationdetails"); } else { $this->tpl->setVariable("CMD_EXPORT", "evaluation"); } $this->tpl->parseCurrentBlock(); if ($print) { $this->tpl->show(); } }
ilObjSurveyGUI::evaluationuserObject | ( | $ | print = 0 |
) |
Definition at line 2808 of file class.ilObjSurveyGUI.php.
References $_POST, $counter, $result, $row, $separator, $user_id, ilExcelUtils::_convert_text(), ilUtil::deliverData(), exit, ilUtil::prepareFormOutput(), sendInfo(), and setEvalTabs().
Referenced by printEvaluationObject().
{ if (!is_array($_POST)) { $_POST = array(); } $result = @include_once 'Spreadsheet/Excel/Writer.php'; if (!$result) { include_once './classes/Spreadsheet/Excel/Writer.php'; } $format_bold = ""; $format_percent = ""; $format_datetime = ""; $format_title = ""; $format_title_plain = ""; if ($print) { unset($_POST["export_format"]); } $object_title = preg_replace("/[^a-zA-Z0-9\s]/", "", $this->object->getTitle()); $surveyname = preg_replace("/\s/", "_", $object_title); if (!$_POST["export_format"]) { $_POST["export_format"] = TYPE_PRINT; } $eval =& $this->object->getEvaluationForAllUsers(); if (!$print) { $this->setEvalTabs(); sendInfo(); $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_evaluation_user.html", true); } else { $this->tpl = new ilTemplate("./survey/templates/default/tpl.il_svy_svy_evaluationuser_preview.html", true, true); } $counter = 0; $classes = array("tblrow1top", "tblrow2top"); $csvrow = array(); $questions =& $this->object->getSurveyQuestions(true); $this->tpl->setCurrentBlock("headercell"); $this->tpl->setVariable("TEXT_HEADER_CELL", $this->lng->txt("username")); $this->tpl->parseCurrentBlock(); if (array_key_exists("export_format", $_POST)) { array_push($csvrow, $this->lng->txt("username")); } $char = "A"; $cellcounter = 1; foreach ($questions as $question_id => $question_data) { $this->tpl->setCurrentBlock("headercell"); $this->tpl->setVariable("TEXT_HEADER_CELL", $char); $this->tpl->parseCurrentBlock(); $this->tpl->setCurrentBlock("legendrow"); $this->tpl->setVariable("TEXT_KEY", $char++); $this->tpl->setVariable("TEXT_VALUE", $question_data["title"]); if (array_key_exists("export_format", $_POST)) { array_push($csvrow, $question_data["title"]); switch ($question_data["questiontype_fi"]) { case 1: if ($question_data["subtype"] == SUBTYPE_MCMR) { foreach ($question_data["answers"] as $cat => $cattext) { array_push($csvrow, ($cat+1) . " - $cattext"); } } break; case 2: case 3: case 4: break; } } $this->tpl->parseCurrentBlock(); } $csvfile = array(); array_push($csvfile, $csvrow); foreach ($eval as $user_id => $resultset) { $csvrow = array(); $this->tpl->setCurrentBlock("bodycell"); $this->tpl->setVariable("COLOR_CLASS", $classes[$counter % 2]); $this->tpl->setVariable("TEXT_BODY_CELL", $resultset["name"]); array_push($csvrow, $resultset["name"]); $this->tpl->parseCurrentBlock(); foreach ($questions as $question_id => $question_data) { // csv output if (array_key_exists("export_format", $_POST)) { switch ($question_data["questiontype_fi"]) { case 1: // nominal question if (count($resultset["answers"][$question_id])) { if ($question_data["subtype"] == SUBTYPE_MCMR) { array_push($csvrow, ""); foreach ($question_data["answers"] as $cat => $cattext) { $found = 0; foreach ($resultset["answers"][$question_id] as $answerdata) { if (strcmp($cat, $answerdata["value"]) == 0) { $found = 1; } } if ($found) { array_push($csvrow, "1"); } else { array_push($csvrow, "0"); } } } else { array_push($csvrow, $resultset["answers"][$question_id][0]["value"]); } } else { array_push($csvrow, $this->lng->txt("skipped")); if ($question_data["subtype"] == SUBTYPE_MCMR) { foreach ($question_data["answers"] as $cat => $cattext) { array_push($csvrow, ""); } } } break; case 2: // ordinal question if (count($resultset["answers"][$question_id])) { foreach ($resultset["answers"][$question_id] as $key => $answer) { array_push($csvrow, $answer["value"]); } } else { array_push($csvrow, $this->lng->txt("skipped")); } break; case 3: // metric question if (count($resultset["answers"][$question_id])) { foreach ($resultset["answers"][$question_id] as $key => $answer) { array_push($csvrow, $answer["value"]); } } else { array_push($csvrow, $this->lng->txt("skipped")); } break; case 4: // text question if (count($resultset["answers"][$question_id])) { foreach ($resultset["answers"][$question_id] as $key => $answer) { array_push($csvrow, $answer["textanswer"]); } } else { array_push($csvrow, $this->lng->txt("skipped")); } break; } } // html output if (count($resultset["answers"][$question_id])) { $answervalues = array(); foreach ($resultset["answers"][$question_id] as $key => $answer) { switch ($question_data["questiontype_fi"]) { case 1: // nominal question if (strcmp($answer["value"], "") != 0) { array_push($answervalues, ($answer["value"]+1) . " - " . ilUtil::prepareFormOutput($questions[$question_id]["answers"][$answer["value"]])); } break; case 2: // ordinal question array_push($answervalues, ($answer["value"]+1) . " - " . ilUtil::prepareFormOutput($questions[$question_id]["answers"][$answer["value"]])); break; case 3: // metric question array_push($answervalues, $answer["value"]); break; case 4: // text question array_push($answervalues, $answer["textanswer"]); break; } } $this->tpl->setCurrentBlock("bodycell"); $this->tpl->setVariable("COLOR_CLASS", $classes[$counter % 2]); $this->tpl->setVariable("TEXT_BODY_CELL", join($answervalues, "<br />")); $this->tpl->parseCurrentBlock(); } else { $this->tpl->setCurrentBlock("bodycell"); $this->tpl->setVariable("COLOR_CLASS", $classes[$counter % 2]); $this->tpl->setVariable("TEXT_BODY_CELL", $this->lng->txt("skipped")); $this->tpl->parseCurrentBlock(); } } $this->tpl->setCurrentBlock("row"); $this->tpl->parse("row"); $counter++; array_push($csvfile, $csvrow); } if (!$print) { $this->tpl->setCurrentBlock("adm_content"); } else { $this->tpl->setCurrentBlock("__global__"); $this->tpl->setVariable("TXT_STATISTICAL_EVALUATION", $this->lng->txt("svy_statistical_evaluation") . " " . $this->lng->txt("of") . " " . $this->object->getTitle()); $this->tpl->setVariable("PRINT_CSS", "./templates/default/print.css"); $this->tpl->setVariable("PRINT_TYPE", "summary"); } $this->tpl->setVariable("EXPORT_DATA", $this->lng->txt("export_data_as")); $this->tpl->setVariable("TEXT_EXCEL", $this->lng->txt("exp_type_excel")); $this->tpl->setVariable("TEXT_EXCEL_MAC", $this->lng->txt("exp_type_excel_mac")); $this->tpl->setVariable("TEXT_CSV", $this->lng->txt("exp_type_csv")); $this->tpl->setVariable("BTN_EXPORT", $this->lng->txt("export")); $this->tpl->setVariable("BTN_PRINT", $this->lng->txt("print")); $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this)); $this->tpl->setVariable("PRINT_ACTION", $this->ctrl->getFormAction($this)); $this->tpl->setVariable("TEXT_LEGEND", $this->lng->txt("legend")); $this->tpl->setVariable("TEXT_LEGEND_LINK", $this->lng->txt("eval_legend_link")); $this->tpl->setVariable("CMD_EXPORT", "evaluationuser"); $this->tpl->parseCurrentBlock(); switch ($_POST["export_format"]) { case TYPE_XLS: case TYPE_XLS_MAC: // Let's send the file // Creating a workbook include_once ("./classes/class.ilExcelUtils.php"); $workbook = new Spreadsheet_Excel_Writer(); // sending HTTP headers $workbook->send("$surveyname.xls"); // Creating a worksheet $format_bold =& $workbook->addFormat(); $format_bold->setBold(); $format_percent =& $workbook->addFormat(); $format_percent->setNumFormat("0.00%"); $format_datetime =& $workbook->addFormat(); $format_datetime->setNumFormat("DD/MM/YYYY hh:mm:ss"); $format_title =& $workbook->addFormat(); $format_title->setBold(); $format_title->setColor('black'); $format_title->setPattern(1); $format_title->setFgColor('silver'); $format_title_plain =& $workbook->addFormat(); $format_title_plain->setColor('black'); $format_title_plain->setPattern(1); $format_title_plain->setFgColor('silver'); // Creating a worksheet $mainworksheet =& $workbook->addWorksheet(); $row = 0; foreach ($csvfile as $csvrow) { $col = 0; if ($row == 0) { foreach ($csvrow as $text) { $mainworksheet->writeString($row, $col++, ilExcelUtils::_convert_text($text, $_POST["export_format"]), $format_title); } } else { foreach ($csvrow as $text) { if (is_numeric($text)) { $mainworksheet->writeNumber($row, $col++, $text); } else { $mainworksheet->writeString($row, $col++, ilExcelUtils::_convert_text($text, $_POST["export_format"])); } } } $row++; } $workbook->close(); exit(); break; case TYPE_SPSS: $csv = ""; $separator = ";"; foreach ($csvfile as $csvrow) { $csvrow =& $this->object->processCSVRow($csvrow, TRUE, $separator); $csv .= join($csvrow, $separator) . "\n"; } ilUtil::deliverData($csv, "$surveyname.csv"); exit(); break; } if ($print) { $this->tpl->show(); } }
& ilObjSurveyGUI::executeCommand | ( | ) |
execute command
Reimplemented from ilObjectGUI.
Definition at line 91 of file class.ilObjSurveyGUI.php.
References $cmd, and ilObjectGUI::setAdminTabs().
{ $cmd = $this->ctrl->getCmd("properties"); $next_class = $this->ctrl->getNextClass($this); $this->ctrl->setReturn($this, "properties"); //echo "<br>nextclass:$next_class:cmd:$cmd:qtype=$q_type"; switch($next_class) { default: if (($cmd != "run") and ($cmd != "evaluation") and ($cmd != "evaluationdetails") and ($cmd != "evaluationuser")) { $this->setAdminTabs(); } $cmd.= "Object"; $ret =& $this->$cmd(); break; } }
ilObjSurveyGUI::exportObject | ( | ) |
Definition at line 4371 of file class.ilObjSurveyGUI.php.
References $_GET, $num, $path, $rbacsystem, $tbl, ilObjectGUI::$tree, ilUtil::getImagePath(), ilObjectGUI::getReturnLocation(), ilUtil::redirect(), sendInfo(), and ilUtil::switchColor().
{ global $tree; 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()); ilUtil::redirect($this->getReturnLocation("cancel","../repository.php?ref_id=" . $path[count($path) - 2]["child"])); return; } //$this->setTabs(); //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", "survey.php?ref_id=".$_GET["ref_id"]."&cmd=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 require_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("<input type=\"checkbox\" name=\"chb_check_all\" value=\"1\" onclick=\"setCheckboxes('ObjectItems', 'file', document.ObjectItems.chb_check_all.checked);\" />", $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); // ??? $this->tpl->setVariable("COLUMN_COUNTS", 4); // 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(); // 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) { $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(); } } //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(); }
ilObjSurveyGUI::getAddParameter | ( | ) |
Returns the GET parameters for the survey object URLs.
Returns the GET parameters for the survey object URLs
public
Definition at line 150 of file class.ilObjSurveyGUI.php.
References $_GET.
Referenced by addHeadingObject(), constraintsForm(), defineQuestionblock(), propertiesObject(), questionBrowser(), questionpoolSelectForm(), questionsObject(), removeQuestionsForm(), runObject(), runShowFinishedPage(), runShowIntroductionPage(), and searchQuestionsForm().
ilObjSurveyGUI::getCallingScript | ( | ) |
Returns the calling script of the GUI class.
public
Definition at line 83 of file class.ilObjSurveyGUI.php.
Referenced by constraintsForm(), defineQuestionblock(), evaluationObject(), propertiesObject(), questionBrowser(), questionpoolSelectForm(), questionsObject(), removeQuestionsForm(), runObject(), runShowFinishedPage(), runShowIntroductionPage(), and searchQuestionsForm().
{ return "survey.php"; }
ilObjSurveyGUI::ilObjSurveyGUI | ( | $ | a_data, | |
$ | a_id, | |||
$ | a_call_by_reference = true , |
|||
$ | a_prepare_output = true | |||
) |
Constructor public.
Definition at line 56 of file class.ilObjSurveyGUI.php.
References $ilCtrl, ilObjectGUI::$lng, ilObjectGUI::ilObjectGUI(), prepareOutput(), and ilObjectGUI::setTabTargetScript().
{ global $lng, $ilCtrl; $this->type = "svy"; $lng->loadLanguageModule("survey"); $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference, false); if (!defined("ILIAS_MODULE")) { $this->setTabTargetScript("adm_object.php"); } else { $this->setTabTargetScript("survey.php"); } if ($a_prepare_output) { $this->prepareOutput(); } $this->ctrl =& $ilCtrl; $this->ctrl->saveParameter($this, "ref_id"); }
ilObjSurveyGUI::importFileObject | ( | ) |
form for new survey object import
Definition at line 4696 of file class.ilObjSurveyGUI.php.
References $_POST, createObject(), ilObjectGUI::getReturnLocation(), 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->uploadObject(false); ilUtil::redirect($this->getReturnLocation("importFile",$this->ctrl->getTargetScript()."?".$this->link_params)); }
ilObjSurveyGUI::importObject | ( | ) |
display dialogue for importing tests
public
Reimplemented from ilObjectGUI.
Definition at line 4506 of file class.ilObjSurveyGUI.php.
References $_GET, and ilObjectGUI::getTemplateFile().
Referenced by uploadObject().
{ $this->getTemplateFile("import", "svy"); $this->tpl->setCurrentBlock("option_qpl"); require_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", "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")); }
ilObjSurveyGUI::insertQuestionsForm | ( | $ | checked_questions | ) |
Creates a confirmation form to insert questions into the survey.
Creates a confirmation form to insert questions into the survey
public
Definition at line 1397 of file class.ilObjSurveyGUI.php.
References $_GET, $counter, ilObjectGUI::$data, $id, and sendInfo().
Referenced by questionsObject().
{ sendInfo(); $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_insert_questions.html", true); $colors = array("tblrow1", "tblrow2"); $counter = 0; if ($_GET["browsetype"] == 1) { $questions = &$this->object->getQuestions($checked_questions); if (count($questions)) { foreach ($questions as $data) { if (in_array($data["question_id"], $checked_questions)) { $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->parseCurrentBlock(); $counter++; } } } } else { $questionblocks = &$this->object->getQuestionblocks($checked_questions); if (count($questionblocks)) { foreach ($questionblocks as $questionblock_id => $data) { if (in_array($questionblock_id, $checked_questions)) { $this->tpl->setCurrentBlock("row"); $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]); $this->tpl->setVariable("TEXT_TITLE", $data[key($data)]["title"]); $this->tpl->setVariable("TEXT_TYPE", $data[key($data)]["surveytitle"]); $contains = array(); foreach ($data as $key => $value) { array_push($contains, $value["sequence"] . ". " . $value["questiontitle"]); } $this->tpl->setVariable("TEXT_DESCRIPTION", join($contains, ", ")); $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", "1"); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("adm_content"); $this->tpl->setVariable("TEXT_TITLE", $this->lng->txt("title")); if ($_GET["browsetype"] == 1) { $this->tpl->setVariable("TEXT_DESCRIPTION", $this->lng->txt("description")); $this->tpl->setVariable("TEXT_TYPE", $this->lng->txt("question_type")); } else { $this->tpl->setVariable("TEXT_DESCRIPTION", $this->lng->txt("contains")); $this->tpl->setVariable("TEXT_TYPE", $this->lng->txt("obj_svy")); } $this->tpl->setVariable("BTN_CONFIRM", $this->lng->txt("confirm")); $this->tpl->setVariable("BTN_CANCEL", $this->lng->txt("cancel")); $this->ctrl->setParameterByClass(get_class($this), "browsetype", $_GET["browsetype"]); $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this)); $this->tpl->parseCurrentBlock(); }
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 3922 of file class.ilObjSurveyGUI.php.
References $_POST, $path, $rbacsystem, exit, ilObjectGUI::getReturnLocation(), outUserGroupTable(), ilUtil::redirect(), ilUtil::removeTrailingPathSeparators(), sendInfo(), and writeInviteFormData().
{ 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()); 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; } if ($_POST["cmd"]["cancel"]) { $path = $this->tree->getPathFull($this->object->getRefID()); ilUtil::redirect($this->getReturnLocation("cancel",ilUtil::removeTrailingPathSeparators(ILIAS_HTTP_PATH)."/repository.php?cmd=frameset&ref_id=" . $path[count($path) - 2]["child"])); exit(); } if (count($_POST)) { $this->writeInviteFormData(); } if ($_POST["cmd"]["save"]) { $this->object->saveToDb(); } 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("search_users")); $this->tpl->setVariable("SEARCH_GROUPS", $this->lng->txt("search_groups")); $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($_POST["search_for"])) { if (in_array("usr", $_POST["search_for"])) { $this->tpl->setVariable("CHECKED_USERS", " checked=\"checked\""); } if (in_array("grp", $_POST["search_for"])) { $this->tpl->setVariable("CHECKED_GROUPS", " checked=\"checked\""); } } if (strcmp($_POST["concatenation"], "and") == 0) { $this->tpl->setVariable("CHECKED_AND", " checked=\"checked\""); } else if (strcmp($_POST["concatenation"], "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(); $invited_groups = $this->object->getInvitedGroups(); $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 (count($invited_groups)) { $this->outUserGroupTable("grp", $invited_groups, "invited_group_result", "invited_group_row", $this->lng->txt("invited_groups"), $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("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(); }
ilObjSurveyGUI::maintenanceObject | ( | ) |
Creates the maintenance form for a survey.
Creates the maintenance form for a survey
public
Definition at line 4097 of file class.ilObjSurveyGUI.php.
References $path, $rbacsystem, ilObjectGUI::getReturnLocation(), ilUtil::redirect(), and sendInfo().
{ 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()); 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_maintenance.html", true); if ($rbacsystem->checkAccess("write", $this->ref_id)) { $this->tpl->setCurrentBlock("delete_button"); $this->tpl->setVariable("BTN_DELETE_ALL", $this->lng->txt("svy_delete_all_user_data")); $this->tpl->parseCurrentBlock(); $this->tpl->setCurrentBlock("adm_content"); $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this)); $this->tpl->parseCurrentBlock(); } else { sendInfo($this->lng->txt("cannot_maintain_survey")); } }
ilObjSurveyGUI::outNavigationButtons | ( | $ | navigationblock = "top" , |
|
$ | page | |||
) |
Creates the navigation buttons for a survey.
Creates the navigation buttons for a survey. Runs twice to generate a top and a bottom navigation to ease the use of long forms.
public
Definition at line 533 of file class.ilObjSurveyGUI.php.
Referenced by runObject().
{ $prevpage = $this->object->getNextPage($page[0]["question_id"], -1); $this->tpl->setCurrentBlock($navigationblock . "_prev"); if ($prevpage === 0) { $this->tpl->setVariable("BTN_PREV", $this->lng->txt("survey_start")); } else { $this->tpl->setVariable("BTN_PREV", $this->lng->txt("survey_previous")); } $this->tpl->parseCurrentBlock(); $nextpage = $this->object->getNextPage($page[0]["question_id"], 1); $this->tpl->setCurrentBlock($navigationblock . "_next"); if ($nextpage === 1) { $this->tpl->setVariable("BTN_NEXT", $this->lng->txt("survey_finish")); } else { $this->tpl->setVariable("BTN_NEXT", $this->lng->txt("survey_next")); } $this->tpl->parseCurrentBlock(); }
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 3849 of file class.ilObjSurveyGUI.php.
References $counter, $rbacsystem, $user, $user_id, and ilUtil::getImagePath().
Referenced by inviteObject(), and writeInviteFormData().
{ global $rbacsystem; $rowclass = array("tblrow1", "tblrow2"); switch($a_type) { case "usr": foreach ($id_array as $user_id) { $counter = 0; $user = new ilObjUser($user_id); $this->tpl->setCurrentBlock($block_row); $this->tpl->setVariable("COLOR_CLASS", $rowclass[$counter % 2]); $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()); $counter++; $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock($block_result); $this->tpl->setVariable("TEXT_USER_TITLE", "<img src=\"" . ilUtil::getImagePath("icon_usr_b.gif") . "\" alt=\"\" /> " . $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->tpl->parseCurrentBlock(); break; case "grp": foreach ($id_array as $group_id) { $counter = 0; $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(); } $this->tpl->setCurrentBlock($block_result); $this->tpl->setVariable("TEXT_GROUP_TITLE", "<img src=\"" . ilUtil::getImagePath("icon_grp_b.gif") . "\" alt=\"\" /> " . $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->tpl->parseCurrentBlock(); break; } }
ilObjSurveyGUI::prepareOutput | ( | ) |
Reimplemented from ilObjectGUI.
Definition at line 4348 of file class.ilObjSurveyGUI.php.
References $_POST, sendInfo(), ilObjectGUI::setAdminTabs(), and setLocator().
Referenced by ilObjSurveyGUI().
{ $this->tpl->addBlockFile("CONTENT", "content", "tpl.adm_content.html"); $this->tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html"); $title = $this->object->getTitle(); // catch feedback message sendInfo(); if (!empty($title)) { $this->tpl->setVariable("HEADER", $title); } if (!defined("ILIAS_MODULE")) { $this->setAdminTabs($_POST["new_type"]); } $this->setLocator(); }
ilObjSurveyGUI::printEvaluationObject | ( | ) |
Definition at line 2795 of file class.ilObjSurveyGUI.php.
References $_POST, evaluationObject(), evaluationuserObject(), and exit.
{ if (strcmp($_POST["evaltype"], "user") == 0) { $this->evaluationuserObject(1); } else { $this->evaluationObject($_POST["detail"], 1); } exit; }
ilObjSurveyGUI::propertiesObject | ( | ) |
Creates the properties form for the survey object.
Creates the properties form for the survey object
public
Definition at line 711 of file class.ilObjSurveyGUI.php.
References $_POST, $path, $rbacsystem, exit, getAddParameter(), getCallingScript(), ilUtil::getImagePath(), ilUtil::getJSPath(), ilObjectGUI::getReturnLocation(), ilUtil::makeDateSelect(), ilUtil::prepareFormOutput(), ilUtil::redirect(), ilUtil::removeTrailingPathSeparators(), sendInfo(), updateObject(), and writePropertiesFormData().
{ global $rbacsystem; $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", ilUtil::getJSPath("calendar.js")); $this->tpl->setVariable("LOCATION_JAVASCRIPT_CALENDAR_SETUP", ilUtil::getJSPath("calendar-setup.js")); $this->tpl->setVariable("LOCATION_JAVASCRIPT_CALENDAR_STYLESHEET", ilUtil::getJSPath("calendar.css")); $this->tpl->parseCurrentBlock(); 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()); ilUtil::redirect($this->getReturnLocation("cancel","../repository.php?cmd=frameset&ref_id=" . $path[count($path) - 2]["child"])); return; } $add_parameter = $this->getAddParameter(); if ($_POST["cmd"]["save"]) { $this->writePropertiesFormData(); } if ($_POST["cmd"]["save"]) { $this->updateObject(); } if ($_POST["cmd"]["cancel"]) { sendInfo($this->lng->txt("msg_cancel"), true); $path = $this->tree->getPathFull($this->object->getRefID()); ilUtil::redirect($this->getReturnLocation("cancel",ilUtil::removeTrailingPathSeparators(ILIAS_HTTP_PATH)."/repository.php?cmd=frameset&ref_id=" . $path[count($path) - 2]["child"])); exit(); } $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->getCallingScript() . $add_parameter); $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->getIntroduction())); $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_ON", $this->lng->txt("on")); $this->tpl->setVariable("TEXT_ANONYMIZATION", $this->lng->txt("anonymize_survey")); $this->tpl->setVariable("TEXT_ANONYMIZATION_EXPLANATION", $this->lng->txt("anonymize_survey_explanation")); $this->tpl->setVariable("ANON_VALUE_OFF", $this->lng->txt("off")); $this->tpl->setVariable("ANON_VALUE_ON", $this->lng->txt("on")); if ($this->object->getAnonymize()) { $this->tpl->setVariable("ANON_SELECTED_ON", " selected=\"selected\""); } else { $this->tpl->setVariable("ANON_SELECTED_OFF", " selected=\"selected\""); } if ($this->object->getEndDateEnabled()) { $this->tpl->setVariable("CHECKED_END_DATE", " checked=\"checked\""); } if ($this->object->getStartDateEnabled()) { $this->tpl->setVariable("CHECKED_START_DATE", " checked=\"checked\""); } if ($this->object->getEvaluationAccess() == EVALUATION_ACCESS_ON) { $this->tpl->setVariable("SELECTED_ON", " selected=\"selected\""); } else { $this->tpl->setVariable("SELECTED_OFF", " selected=\"selected\""); } 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")); if ($rbacsystem->checkAccess("write", $this->ref_id)) { $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(); }
ilObjSurveyGUI::questionBrowser | ( | ) |
Creates the questionbrowser to select questions from question pools.
Creates the questionbrowser to select questions from question pools
public
Definition at line 891 of file class.ilObjSurveyGUI.php.
References $_GET, $_POST, $counter, ilObjectGUI::$data, $rbacsystem, ilFormat::formatDate(), ilFormat::ftimestamp2dateDB(), getAddParameter(), getCallingScript(), and ilUtil::getImagePath().
Referenced by questionsObject().
{ global $rbacsystem; $add_parameter = $this->getAddParameter() . "&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_qpl_action_buttons.html", true); $this->tpl->addBlockFile("FILTER_QUESTION_MANAGER", "filter_questions", "tpl.il_svy_svy_filter_questions.html", true); $questionpools =& $this->object->getQuestionpoolTitles(); $filter_type = $_GET["sel_filter_type"]; if (!$filter_type) { $filter_type = $_POST["sel_filter_type"]; } if (strcmp($_POST["cmd"]["resetFilter"], "") != 0) { $filter_type = ""; } $add_parameter .= "&sel_filter_type=$filter_type"; $filter_text = $_GET["filter_text"]; if (!$filter_text) { $filter_text = $_POST["filter_text"]; } if (strcmp($_POST["cmd"]["resetFilter"], "") != 0) { $filter_text = ""; } $add_parameter .= "&filter_text=$filter_text"; $browsequestions = 1; if (strcmp($_POST["cmd"]["datatype"], "") != 0) { $browsequestions = $_POST["datatype"]; } else { if (strcmp($_GET["browsetype"], "") != 0) { $browsequestions = $_GET["browsetype"]; } } $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 (strcmp($_POST["cmd"]["resetFilter"], "") == 0) { 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 (strcmp($_POST["cmd"]["resetFilter"], "") != 0) { $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 ($_POST["cmd"]["filter"]) { $filter_questionpool = $_POST["sel_questionpool"]; } else { $filter_questionpool = $_GET["sel_questionpool"]; } if (strcmp($_POST["cmd"]["resetFilter"], "") != 0) { $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) { 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=\"" . "questionpool.php?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->getCallingScript() . $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->getCallingScript() . $add_parameter . "$sort&prevrow=" . $table["prevrow"]); $this->tpl->setVariable("HREF_NEXT_ROWS", $this->getCallingScript() . $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->getCallingScript() . $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->getCallingScript() . $add_parameter . "$sort&prevrow=" . $table["prevrow"]); $this->tpl->setVariable("HREF_NEXT_ROWS", $this->getCallingScript() . $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 { // create edit buttons & table footer $this->tpl->setCurrentBlock("selection"); $this->tpl->setVariable("INSERT", $this->lng->txt("insert")); $this->tpl->parseCurrentBlock(); $this->tpl->setCurrentBlock("Footer"); $this->tpl->setVariable("ARROW", "<img src=\"" . ilUtil::getImagePath("arrow_downright.gif") . "\" alt=\"\">"); $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->getCallingScript() . "$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->getCallingScript() . "$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->getCallingScript() . "$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->getCallingScript() . "$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->getCallingScript() . "$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->getCallingScript() . "$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->getCallingScript() . "$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->getCallingScript() . "$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->getCallingScript() . "$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("BUTTON_BACK", $this->lng->txt("back")); $this->tpl->setVariable("FORM_ACTION", $this->getCallingScript() . $add_parameter); $this->tpl->parseCurrentBlock(); }
ilObjSurveyGUI::questionpoolSelectForm | ( | ) |
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 1585 of file class.ilObjSurveyGUI.php.
References $_POST, $ilUser, getAddParameter(), getCallingScript(), and sendInfo().
Referenced by questionsObject().
{ global $ilUser; $add_parameter = $this->getAddParameter(); $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->getCallingScript() . $add_parameter); $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(); }
ilObjSurveyGUI::questionsObject | ( | ) |
Creates the questions form for the survey object.
Creates the questions form for the survey object
public
Definition at line 2176 of file class.ilObjSurveyGUI.php.
References $_GET, $_POST, $_SESSION, $counter, ilObjectGUI::$data, $path, $query, $rbacsystem, ilObjectGUI::$ref_id, SurveyQuestion::_getRefIdFromObjId(), addHeadingObject(), confirmRemoveHeadingForm(), constraintsForm(), defineQuestionblock(), exit, getAddParameter(), getCallingScript(), ilUtil::getImagePath(), ilObjectGUI::getReturnLocation(), insertQuestionsForm(), questionBrowser(), questionpoolSelectForm(), ilUtil::redirect(), removeQuestionsForm(), searchQuestionsForm(), sendInfo(), and ilUtil::stripSlashes().
{ 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()); ilUtil::redirect($this->getReturnLocation("cancel","../repository.php?cmd=frameset&ref_id=" . $path[count($path) - 2]["child"])); return; } if ($_GET["new_id"] > 0) { // add a question to the survey previous created in a questionpool $this->object->insertQuestion($_GET["new_id"]); } if ($_GET["eqid"] and $_GET["eqpl"]) { ilUtil::redirect("questionpool.php?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"]); $add_parameter = $this->getAddParameter(); 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 ($_POST["cmd"]["addHeading"]) { $this->addHeadingObject(); return; } if ($_POST["cmd"]["saveObligatory"]) { $obligatory = array(); foreach ($_POST as $key => $value) { if (preg_match("/obligatory_(\d+)/", $key, $matches)) { $obligatory[$matches[1]] = 1; } } $this->object->setObligatoryStates($obligatory); } if ($_POST["cmd"]["insert_before"] or $_POST["cmd"]["insert_after"]) { // get all questions to move $move_questions = array(); foreach ($_POST as $key => $value) { if (preg_match("/^move_(\d+)$/", $key, $matches)) { array_push($move_questions, $value); } } // 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 ($_POST["cmd"]["insert_before"]) { $insert_id = $ids[0]; } else if ($_POST["cmd"]["insert_after"]) { $insert_id = $ids[count($ids)-1]; } } } } } if ($insert_id <= 0) { sendInfo($this->lng->txt("no_target_selected_for_move")); } else { $insert_mode = 1; if ($_POST["cmd"]["insert_before"]) { $insert_mode = 0; } $this->object->moveQuestions($move_questions, $insert_id, $insert_mode); } } if ($_GET["removeheading"]) { $this->confirmRemoveHeadingForm(); return; } if ($_GET["editblock"]) { $this->defineQuestionblock($_GET["editblock"]); return; } if ($_POST["cmd"]["questionblock"]) { $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")); } else { $this->defineQuestionblock(); return; } } if ($_POST["cmd"]["unfold"]) { $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")); } } if ($_POST["cmd"]["save_questionblock"]) { if ($_POST["title"]) { if ($_POST["questionblock_id"]) { $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); } } $this->object->createQuestionblock(ilUtil::stripSlashes($_POST["title"]), $questionblock); } } else { sendInfo($this->lng->txt("enter_questionblock_title")); $this->defineQuestionblock(); return; } } $add_constraint = 0; $delete_constraint = 0; foreach ($_POST as $key => $value) { if (preg_match("/add_constraint_(\d+)/", $key, $matches)) { $add_constraint = 1; } } foreach ($_POST as $key => $value) { if (preg_match("/delete_constraint_(\d+)_(\d+)/", $key, $matches)) { $delete_constraint = 1; } } if ($_POST["cmd"]["constraints"] or $add_constraint or $delete_constraint or $_GET["constraints"]) { $checked_questions = array(); $checked_questionblocks = array(); if ($_GET["constraints"]) { $survey_questions =& $this->object->getSurveyQuestions(); if (strcmp($survey_questions[$_GET["constraints"]]["questionblock_id"], "") == 0) { array_push($checked_questions, $_GET["constraints"]); } else { array_push($checked_questionblocks, $survey_questions[$_GET["constraints"]]["questionblock_id"]); } } 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 ($_POST["cmd"]["constraints"] and (count($checked_questions)+count($checked_questionblocks) == 0)) { sendInfo($this->lng->txt("no_constraints_checked")); } else { $this->constraintsForm($checked_questions, $checked_questionblocks); return; } } if ($_POST["cmd"]["create_question"]) { $this->questionpoolSelectForm(); return; } if ($_POST["cmd"]["create_question_execute"]) { ilUtil::redirect("questionpool.php?ref_id=" . $_POST["sel_spl"] . "&cmd=createQuestionForSurvey&new_for_survey=".$_GET["ref_id"]."&sel_question_types=".$_POST["sel_question_types"]); exit(); } if ($_GET["add"]) { // called after a new question was created from a questionpool $selected_array = array(); array_push($selected_array, $_GET["add"]); // $total = $this->object->evalTotalPersons(); // if ($total) { // the test was executed previously // sendInfo(sprintf($this->lng->txt("tst_insert_questions_and_results"), $total)); // } else { sendInfo($this->lng->txt("ask_insert_questions")); // } $this->insertQuestionsForm($selected_array); return; } if (($_POST["cmd"]["search_question"]) or ($_GET["search_question"]) and (!$_POST["cmd"]["insert"])) { $this->searchQuestionsForm(); return; } if (($_POST["cmd"]["insert_question"]) or ($_GET["insert_question"])) { $show_questionbrowser = true; if ($_POST["cmd"]["insert"]) { // insert selected questions into test $selected_array = array(); foreach ($_POST as $key => $value) { if (preg_match("/cb_(\d+)/", $key, $matches)) { array_push($selected_array, $matches[1]); } } if (!count($selected_array)) { if ($_GET["browsetype"] == 1) { sendInfo($this->lng->txt("insert_missing_question")); } else { sendInfo($this->lng->txt("insert_missing_questionblock")); } } else { // $total = $this->object->evalTotalPersons(); // if ($total) { // the test was executed previously // sendInfo(sprintf($this->lng->txt("tst_insert_questions_and_results"), $total)); // } else { if ($_GET["browsetype"] == 1) { sendInfo($this->lng->txt("ask_insert_questions")); } else { sendInfo($this->lng->txt("ask_insert_questionblocks")); } // } $this->insertQuestionsForm($selected_array); return; } } if ($_POST["cmd"]["back"]) { $show_questionbrowser = false; } if ($show_questionbrowser) { $this->questionBrowser(); return; } } if (strlen($_POST["cmd"]["confirm_remove"]) > 0) { // remove questions from test after confirmation sendInfo($this->lng->txt("questions_removed")); $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(); } if (strlen($_POST["cmd"]["remove"]) > 0) { $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")); } } $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; $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 (($data["questionblock_id"] > 0) and ($data["questionblock_id"] != $last_questionblock_id)) { if (($data["questionblock_id"] != $last_questionblock_id) and (strcmp($last_questionblock_id, "") != 0)) { $counter++; } $this->tpl->setCurrentBlock("block"); $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 ($this->object->isOffline())) { if ($data["question_id"] != $this->object->questions[0]) { $this->tpl->setVariable("BUTTON_UP", "<a href=\"" . $this->getCallingScript() . "$add_parameter&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->getCallingScript() . "$add_parameter&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", "<img src=\"" . ilUtil::getImagePath("icon_pencil.gif") . "\" alt=\"" . $this->lng->txt("edit") . "\" title=\"" . $this->lng->txt("edit") . "\" border=\"0\" />"); $this->tpl->setVariable("HREF_EDIT", $this->getCallingScript() . "$add_parameter&editblock=" . $data["questionblock_id"]); } if (count($data["constraints"])) { $this->tpl->setVariable("QUESTION_CONSTRAINTS", "<a href=\"" . $this->getCallingScript() . "$add_parameter&constraints=" . $data["question_id"] . "\">" . $this->lng->txt("questionblock_has_constraints") . "</a>"); } $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(); $counter++; } if ($data["heading"]) { $this->tpl->setCurrentBlock("heading"); $this->tpl->setVariable("TEXT_HEADING", $data["heading"]); $this->tpl->setVariable("COLOR_CLASS", "std"); if ($rbacsystem->checkAccess("write", $this->ref_id) and ($this->object->isOffline())) { $this->tpl->setVariable("TEXT_EDIT", "<img src=\"" . ilUtil::getImagePath("icon_pencil.gif") . "\" alt=\"" . $this->lng->txt("edit") . "\" title=\"" . $this->lng->txt("edit") . "\" border=\"0\" />"); $this->tpl->setVariable("HREF_EDIT", $this->getCallingScript() . "$add_parameter&editheading=" . $data["question_id"]); $this->tpl->setVariable("TEXT_DELETE", "<img src=\"" . ilUtil::getImagePath("delete.gif") . "\" alt=\"" . $this->lng->txt("remove") . "\" title=\"" . $this->lng->txt("remove") . "\" border=\"0\" />"); $this->tpl->setVariable("HREF_DELETE", $this->getCallingScript() . "$add_parameter&removeheading=" . $data["question_id"]); } $this->tpl->parseCurrentBlock(); $this->tpl->setCurrentBlock("QTab"); // $this->tpl->setVariable("QUESTION_ID", "qb_" . $data["questionblock_id"]); $this->tpl->setVariable("COLOR_CLASS", "std"); $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"); $ref_id = SurveyQuestion::_getRefIdFromObjId($data["obj_fi"]); if ($rbacsystem->checkAccess("write", $this->ref_id) and ($this->object->isOffline())) { $q_id = $data["question_id"]; $qpl_ref_id = $this->object->_getRefIdFromObjId($data["obj_fi"]); $this->tpl->setVariable("QUESTION_TITLE", "$title_counter. <a href=\"" . $this->getCallingScript() . $add_parameter . "&eqid=$q_id&eqpl=$qpl_ref_id" . "\">" . $data["title"] . "</a>"); // $this->tpl->setVariable("QUESTION_TITLE", "$title_counter. <a href=\"questionpool.php?ref_id=" . $ref_id . "&cmd=questions&edit=" . $data["question_id"] . "\">" . $data["title"] . "</a>"); } else { $this->tpl->setVariable("QUESTION_TITLE", "$title_counter. ". $data["title"]); } if ($rbacsystem->checkAccess("write", $this->ref_id) and ($this->object->isOffline())) { $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 ($this->object->isOffline())) { 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->getCallingScript() . "$add_parameter&up=" . $data["question_id"] . "\"><img src=\"" . ilUtil::getImagePath("a_up.gif") . "\" alt=\"Up\" border=\"0\" /></a>"); } if ($data["question_id"] != $this->object->questions[count($this->object->questions)-1]) { $this->tpl->setVariable("BUTTON_DOWN", "<a href=\"" . $this->getCallingScript() . "$add_parameter&down=" . $data["question_id"] . "\"><img src=\"" . ilUtil::getImagePath("a_down.gif") . "\" alt=\"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->getCallingScript() . "$add_parameter&up=" . $data["question_id"] . "\"><img src=\"" . ilUtil::getImagePath("a_up.gif") . "\" alt=\"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->getCallingScript() . "$add_parameter&down=" . $data["question_id"] . "\"><img src=\"" . ilUtil::getImagePath("a_down.gif") . "\" alt=\"Down\" border=\"0\" /></a>"); } } } } $this->tpl->setVariable("QUESTION_TYPE", $this->lng->txt($data["type_tag"])); $this->tpl->setVariable("QUESTION_AUTHOR", $data["author"]); if (count($data["constraints"]) and (strcmp($data["questionblock_id"], "") == 0)) { $this->tpl->setVariable("QUESTION_CONSTRAINTS", "<a href=\"" . $this->getCallingScript() . "$add_parameter&constraints=" . $data["question_id"] . "\">" . $this->lng->txt("question_has_constraints") . "</a>"); } $this->tpl->setVariable("COLOR_CLASS", $colors[$counter % 2]); if (!$data["questionblock_id"]) { $counter++; } $this->tpl->parseCurrentBlock(); $last_questionblock_id = $data["questionblock_id"]; } } $checked_move = 0; if ($_POST["cmd"]["move"]) { foreach ($_POST as $key => $value) { if (preg_match("/cb_(\d+)/", $key, $matches)) { $checked_move++; $this->tpl->setCurrentBlock("move"); $this->tpl->setVariable("MOVE_COUNTER", $matches[1]); $this->tpl->setVariable("MOVE_VALUE", $matches[1]); $this->tpl->parseCurrentBlock(); } if (preg_match("/cb_qb_(\d+)/", $key, $matches)) { $checked_move++; $ids = $this->object->getQuestionblockQuestionIds($matches[1]); foreach ($ids as $qkey => $qid) { $this->tpl->setCurrentBlock("move"); $this->tpl->setVariable("MOVE_COUNTER", $qid); $this->tpl->setVariable("MOVE_VALUE", $qid); $this->tpl->parseCurrentBlock(); } } } if ($checked_move) { sendInfo($this->lng->txt("select_target_position_for_move_question")); $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(); } else { sendInfo($this->lng->txt("no_question_selected_for_move")); } } if ($counter == 0) { $this->tpl->setCurrentBlock("Emptytable"); $this->tpl->setVariable("TEXT_EMPTYTABLE", $this->lng->txt("no_questions_available")); $this->tpl->parseCurrentBlock(); } else { if ($rbacsystem->checkAccess("write", $this->ref_id) and (!$this->object->getStatus() == STATUS_ONLINE)) { $this->tpl->setCurrentBlock("QFooter"); $this->tpl->setVariable("ARROW", "<img src=\"" . ilUtil::getImagePath("arrow_downright.gif") . "\" alt=\"\">"); $this->tpl->setVariable("REMOVE", $this->lng->txt("remove_question")); $this->tpl->setVariable("MOVE", $this->lng->txt("move")); $this->tpl->setVariable("SAVE", $this->lng->txt("save_obligatory_state")); $this->tpl->setVariable("QUESTIONBLOCK", $this->lng->txt("define_questionblock")); $this->tpl->setVariable("UNFOLD", $this->lng->txt("unfold")); $this->tpl->setVariable("CONSTRAINTS", $this->lng->txt("constraints")); $this->tpl->setVariable("HEADING", $this->lng->txt("add_heading")); $this->tpl->parseCurrentBlock(); } } if ($rbacsystem->checkAccess("write", $this->ref_id) and (!$this->object->getStatus() == STATUS_ONLINE)) { $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->getCallingScript() . $add_parameter); $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_CONSTRAINTS", $this->lng->txt("constraints")); $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")); $this->tpl->setVariable("TEXT_EDIT", $this->lng->txt("edit")); if ($rbacsystem->checkAccess("write", $this->ref_id) and (!$this->object->getStatus() == STATUS_ONLINE)) { $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 ($this->object->getStatus() == STATUS_ONLINE) { sendInfo($this->lng->txt("survey_online_warning")); } $this->tpl->parseCurrentBlock(); }
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
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 1484 of file class.ilObjSurveyGUI.php.
References $counter, ilObjectGUI::$data, $id, getAddParameter(), getCallingScript(), and sendInfo().
Referenced by questionsObject().
{ 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->getCallingScript() . $this->getAddParameter()); $this->tpl->parseCurrentBlock(); }
ilObjSurveyGUI::runObject | ( | ) |
Creates the form output for running the survey.
Creates the form output for running the survey
public
Definition at line 189 of file class.ilObjSurveyGUI.php.
References $_GET, $_POST, $_SESSION, ilObjectGUI::$data, $ilUser, $path, $rbacsystem, SurveyTextQuestion::_getMaxChars(), exit, getAddParameter(), getCallingScript(), ilObjectGUI::getReturnLocation(), outNavigationButtons(), ilUtil::redirect(), ilUtil::removeTrailingPathSeparators(), runShowFinishedPage(), runShowIntroductionPage(), sendInfo(), setLocator(), and ilUtil::stripSlashes().
{ global $ilUser; global $rbacsystem; if (!$rbacsystem->checkAccess("read", $this->ref_id)) { // only with read access it is possible to run the test $this->ilias->raiseError($this->lng->txt("cannot_read_survey"),$this->ilias->error_obj->MESSAGE); } if ($_POST["cmd"]["exit"]) { $path = $this->tree->getPathFull($this->object->getRefID()); ilUtil::redirect($this->getReturnLocation("cancel",ilUtil::removeTrailingPathSeparators(ILIAS_HTTP_PATH)."/repository.php?cmd=frameset&ref_id=" . $path[count($path) - 2]["child"])); exit(); } $add_parameter = $this->getAddParameter(); $this->tpl->addBlockFile("CONTENT", "content", "tpl.il_svy_svy_content.html", true); $this->tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html"); $title = $this->object->getTitle(); // catch feedback message sendInfo(); $this->setLocator(); if (!empty($title)) { $this->tpl->setVariable("HEADER", $title); } if ($this->object->getAnonymize()) { if ($_POST["cmd"]["resume"]) { $anonymize_key = $this->object->getAnonymousId($_POST["anonymous_id"]); if ($anonymize_key) { $_SESSION["anonymous_id"] = $anonymize_key; } else { unset($_POST["cmd"]["resume"]); sendInfo(sprintf($this->lng->txt("error_retrieving_anonymous_survey"), $_POST["anonymous_id"])); } } } $direction = 0; $page_error = 0; $error_messages = array(); if ($_POST["cmd"]["start"] or $_POST["cmd"]["previous"] or $_POST["cmd"]["next"] or $_POST["cmd"]["resume"]) { if (($_POST["cmd"]["start"]) || ($_POST["cmd"]["resume"])) { if ($this->object->getAnonymize()) { if ($this->object->checkSurveyCode($_POST["anonymous_id"])) { $_SESSION["anonymous_id"] = $_POST["anonymous_id"]; } else { sendInfo(sprintf($this->lng->txt("error_retrieving_anonymous_survey"), $_POST["anonymous_id"]), true); $this->ctrl->redirect($this, "run"); } } } $activepage = ""; $direction = 0; if ($_POST["cmd"]["resume"]) { $activepage = $this->object->getLastActivePage($ilUser->id); $direction = 0; } if ($_POST["cmd"]["previous"] or $_POST["cmd"]["next"]) { // check users input when it is a metric question $page = $this->object->getNextPage($_GET["qid"], 0); foreach ($page as $data) { $save_answer = 0; $error = 0; if (strcmp($data["type_tag"], "qt_metric") == 0) { // there is a metric question -> check input $variables =& $this->object->getVariables($data["question_id"]); $entered_value = $_POST[$data["question_id"] . "_metric_question"]; // replace german notation with international notation $entered_value = str_replace(",", ".", $entered_value); $_POST[$data["question_id"] . "_metric_question"] = $entered_value; if (((($entered_value < $variables[0]->value1) or (($entered_value > $variables[0]->value2) and ($variables[0]->value2 > 0)))) && $data["obligatory"]) { // there is an error: value is not in bounds $error_messages[$data["question_id"]] = $this->lng->txt("metric_question_out_of_bounds"); $error = 1; } if (!is_numeric($entered_value) && ($data["obligatory"])) { $error_messages[$data["question_id"]] = $this->lng->txt("metric_question_not_a_value"); $error = 1; } if ((strcmp($entered_value, "") == 0) && ($data["obligatory"])) { // there is an error: value is not in bounds $error_messages[$data["question_id"]] = $this->lng->txt("metric_question_out_of_bounds"); $error = 1; } if (($data["subtype"] == SUBTYPE_RATIO_ABSOLUTE) && (intval($entered_value) != doubleval($entered_value)) && ($data["obligatory"])) { $error_messages[$data["question_id"]] = $this->lng->txt("metric_question_floating_point"); $error = 1; } if (($error == 0) && (strcmp($entered_value, "") != 0)) { $save_answer = 1; } } if (strcmp($data["type_tag"], "qt_nominal") == 0) { $variables =& $this->object->getVariables($data["question_id"]); $save_answer = 1; $entered_value = $_POST[$data["question_id"] . "_value"]; if ($data["subtype"] == SUBTYPE_MCSR) { if ($data["obligatory"]) { if (strcmp($entered_value, "") == 0) { $error_messages[$data["question_id"]] = $this->lng->txt("nominal_question_not_checked"); $error = 1; $save_answer = 0; } } } else { if ($data["obligatory"]) { if (!is_array($entered_value)) { $error_messages[$data["question_id"]] = $this->lng->txt("nominal_question_mr_not_checked"); $error = 1; $save_answer = 0; } } } } if (strcmp($data["type_tag"], "qt_ordinal") == 0) { $variables =& $this->object->getVariables($data["question_id"]); if ((strcmp($_POST[$data["question_id"] . "_value"], "") == 0) && ($data["obligatory"])) { // none of the radio buttons was checked $error_messages[$data["question_id"]] = $this->lng->txt("ordinal_question_not_checked"); $error = 1; } if ((strcmp($_POST[$data["question_id"] . "_value"], "") == 0) && !$error) { $save_answer = 0; } else { $save_answer = 1; } } if (strcmp($data["type_tag"], "qt_text") == 0) { $variables =& $this->object->getVariables($data["question_id"]); if ((strcmp($_POST[$data["question_id"] . "_text_question"], "") == 0) && ($data["obligatory"])) { // none of the radio buttons was checked $error_messages[$data["question_id"]] = $this->lng->txt("text_question_not_filled_out"); $error = 1; } if ((strcmp($_POST[$data["question_id"] . "_text_question"], "") == 0) && (!$data["obligatory"])) { $save_answer = 0; } else { $save_answer = 1; $maxchars = SurveyTextQuestion::_getMaxChars($data["question_id"]); if ($maxchars) { $_POST[$data["question_id"] . "_text_question"] = substr($_POST[$data["question_id"] . "_text_question"], 0, $maxchars); } } } $page_error += $error; if ((!$error) && ($save_answer)) { // save user input $this->object->deleteWorkingData($data["question_id"], $ilUser->id); switch ($data["type_tag"]) { case "qt_nominal": if ($data["subtype"] == SUBTYPE_MCSR) { $this->object->saveWorkingData($data["question_id"], $ilUser->id, $_SESSION["anonymous_id"], $_POST[$data["question_id"] . "_value"]); } else { if (is_array($_POST[$data["question_id"] . "_value"])) { foreach ($_POST[$data["question_id"] . "_value"] as $value) { $this->object->saveWorkingData($data["question_id"], $ilUser->id, $_SESSION["anonymous_id"], $value); } } else { $this->object->saveWorkingData($data["question_id"], $ilUser->id, $_SESSION["anonymous_id"]); } } break; case "qt_ordinal": $this->object->saveWorkingData($data["question_id"], $ilUser->id, $_SESSION["anonymous_id"], $_POST[$data["question_id"] . "_value"]); break; case "qt_metric": $this->object->saveWorkingData($data["question_id"], $ilUser->id, $_SESSION["anonymous_id"], $_POST[$data["question_id"] . "_metric_question"]); break; case "qt_text": $this->object->saveWorkingData($data["question_id"], $ilUser->id, $_SESSION["anonymous_id"], 0, ilUtil::stripSlashes($_POST[$data["question_id"] . "_text_question"])); break; } } } } if ($page_error) { if ($page_error == 1) { sendInfo($this->lng->txt("svy_page_error")); } else { sendInfo($this->lng->txt("svy_page_errors")); } } if ($_POST["cmd"]["previous"]) { $activepage = $_GET["qid"]; if (!$page_error) { $direction = -1; } } else if ($_POST["cmd"]["next"]) { $activepage = $_GET["qid"]; if (!$page_error) { $direction = 1; } } $page = $this->object->getNextPage($activepage, $direction); $constraint_true = 0; // check for constraints if (count($page[0]["constraints"])) { while (is_array($page) and ($constraint_true == 0) and (count($page[0]["constraints"]))) { $constraint_true = 1; foreach ($page[0]["constraints"] as $constraint) { $working_data = $this->object->loadWorkingData($constraint["question"], $ilUser->id); $constraint_true = $constraint_true & $this->object->checkConstraint($constraint, $working_data); } if ($constraint_true == 0) { $page = $this->object->getNextPage($page[0]["question_id"], $direction); } } } $qid = ""; if ($page === 0) { $this->runShowIntroductionPage(); return; } else if ($page === 1) { $this->object->finishSurvey($ilUser->id, $_SESSION["anonymous_id"]); $this->runShowFinishedPage(); return; } else { $this->outNavigationButtons("top", $page); $this->tpl->addBlockFile("NOMINAL_QUESTION", "nominal_question", "tpl.il_svy_out_nominal.html", true); $this->tpl->addBlockFile("ORDINAL_QUESTION", "ordinal_question", "tpl.il_svy_out_ordinal.html", true); $this->tpl->addBlockFile("METRIC_QUESTION", "metric_question", "tpl.il_svy_out_metric.html", true); $this->tpl->addBlockFile("TEXT_QUESTION", "text_question", "tpl.il_svy_out_text.html", true); $this->tpl->setCurrentBlock("percentage"); $this->tpl->setVariable("PERCENTAGE", (int)(($page[0]["position"])*200)); $this->tpl->setVariable("PERCENTAGE_VALUE", (int)(($page[0]["position"])*100)); $this->tpl->setVariable("HUNDRED_PERCENT", "200"); $this->tpl->setVariable("TEXT_COMPLETED", $this->lng->txt("completed") . ": "); $this->tpl->parseCurrentBlock(); if (count($page) > 1) { $this->tpl->setCurrentBlock("questionblock_title"); $this->tpl->setVariable("TEXT_QUESTIONBLOCK_TITLE", $this->lng->txt("questionblock") . ": " . $page[0]["questionblock_title"]); $this->tpl->parseCurrentBlock(); } foreach ($page as $data) { $this->tpl->setCurrentBlock("survey_content"); if ($data["heading"]) { $this->tpl->setVariable("QUESTION_HEADING", $data["heading"]); } $question_gui = $this->object->getQuestionGUI($data["type_tag"], $data["question_id"]); $working_data = $this->object->loadWorkingData($data["question_id"], $ilUser->id); $question_gui->object->setObligatory($data["obligatory"]); $question_gui->outWorkingForm($working_data, $this->object->getShowQuestionTitles(), $error_messages[$data["question_id"]]); $qid = "&qid=" . $data["question_id"]; $this->tpl->parse("survey_content"); } $this->outNavigationButtons("bottom", $page); } $this->tpl->setCurrentBlock("content"); $this->tpl->setVariable("FORM_ACTION", $this->getCallingScript() . "$add_parameter$qid"); $this->tpl->parseCurrentBlock(); } else { $this->runShowIntroductionPage(); } }
ilObjSurveyGUI::runShowFinishedPage | ( | ) |
Creates the finished page for a running survey.
Creates the finished page for a running survey
public
Definition at line 692 of file class.ilObjSurveyGUI.php.
References $_SESSION, getAddParameter(), and getCallingScript().
Referenced by runObject().
{ // show introduction page unset($_SESSION["anonymous_id"]); $add_parameter = $this->getAddParameter(); $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_finished.html", true); $this->tpl->setVariable("TEXT_FINISHED", $this->lng->txt("survey_finished")); $this->tpl->setVariable("BTN_EXIT", $this->lng->txt("exit")); $this->tpl->setVariable("FORM_ACTION", $this->getCallingScript() . "$add_parameter"); $this->tpl->parseCurrentBlock(); }
ilObjSurveyGUI::runShowIntroductionPage | ( | ) |
Creates the introduction page for a running survey.
Creates the introduction page for a running survey
public
Definition at line 566 of file class.ilObjSurveyGUI.php.
References $_GET, $_POST, $ilUser, $path, $rbacsystem, ilFormat::ftimestamp2dateDB(), getAddParameter(), getCallingScript(), ilObjectGUI::getReturnLocation(), ilUtil::redirect(), and sendInfo().
Referenced by runObject().
{ global $ilUser; global $rbacsystem; if (($this->object->getAnonymize()) && (strcmp($ilUser->login, "anonymous") == 0)) { $survey_started = false; } else { $survey_started = $this->object->isSurveyStarted($ilUser->id, $this->object->getUserSurveyCode()); } // show introduction page $add_parameter = $this->getAddParameter(); $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_introduction.html", true); if ((strcmp($ilUser->login, "anonymous") == 0) && (!$this->object->getAnonymize())) { if ($_POST["cmd"]["cancel"]) { $path = $this->tree->getPathFull($this->object->getRefID()); ilUtil::redirect($this->getReturnLocation("cancel","../repository.php?cmd=frameset&ref_id=" . $path[count($path) - 2]["child"])); return; } $this->tpl->setCurrentBlock("back"); $this->tpl->setVariable("BTN_BACK", $this->lng->txt("back")); $this->tpl->parseCurrentBlock(); $this->tpl->setCurrentBlock("adm_content"); $this->tpl->setVariable("TEXT_INTRODUCTION", $this->lng->txt("anonymous_with_personalized_survey")); $this->tpl->parseCurrentBlock(); return; } if ($this->object->getAnonymize()) { $this->tpl->setCurrentBlock("start"); $anonymize_key = $this->object->getUserSurveyCode(); if (strcmp($ilUser->login, "anonymous") == 0) { $this->tpl->setVariable("TEXT_ANONYMIZE", $this->lng->txt("anonymize_anonymous_introduction")); } else if ($survey_started === 0) { $this->tpl->setVariable("TEXT_ANONYMIZE", $this->lng->txt("anonymize_resume_introduction")); } elseif ($survey_started === false) { $this->tpl->setVariable("TEXT_ANONYMIZE", sprintf($this->lng->txt("anonymize_key_introduction"), $anonymize_key)); } $this->tpl->setVariable("ENTER_ANONYMOUS_ID", $this->lng->txt("enter_anonymous_id")); $this->tpl->setVariable("ANONYMOUS_ID_VALUE", $_GET["accesscode"]); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("start"); $canStart = $this->object->canStartSurvey(); if ($survey_started === 1) { sendInfo($this->lng->txt("already_completed_survey")); $this->tpl->setCurrentBlock("start"); $this->tpl->setVariable("BTN_START", $this->lng->txt("start_survey")); $this->tpl->setVariable("DISABLED", " disabled=\"disabled\""); $this->tpl->parseCurrentBlock(); } if ($survey_started === 0) { $this->tpl->setCurrentBlock("resume"); $this->tpl->setVariable("BTN_RESUME", $this->lng->txt("resume_survey")); switch ($canStart) { case SURVEY_START_START_DATE_NOT_REACHED: sendInfo($this->lng->txt("start_date_not_reached") . " (".ilFormat::formatDate(ilFormat::ftimestamp2dateDB($this->object->getStartYear().$this->object->getStartMonth().$this->object->getStartDay()."000000"), "date") . ")"); $this->tpl->setVariable("DISABLED", " disabled=\"disabled\""); break; case SURVEY_START_END_DATE_REACHED: sendInfo($this->lng->txt("end_date_reached") . " (".ilFormat::formatDate(ilFormat::ftimestamp2dateDB($this->object->getEndYear().$this->object->getEndMonth().$this->object->getEndDay()."000000"), "date") . ")"); $this->tpl->setVariable("DISABLED", " disabled=\"disabled\""); break; case SURVEY_START_OFFLINE: sendInfo($this->lng->txt("survey_is_offline")); $this->tpl->setVariable("DISABLED", " disabled=\"disabled\""); break; } $this->tpl->parseCurrentBlock(); } if ($survey_started === false) { $this->tpl->setCurrentBlock("start"); $this->tpl->setVariable("BTN_START", $this->lng->txt("start_survey")); if (!$rbacsystem->checkAccess('participate', $this->object->getRefId())) { sendInfo($this->lng->txt("cannot_participate_survey")); $this->tpl->setVariable("DISABLED", " disabled=\"disabled\""); } switch ($canStart) { case SURVEY_START_START_DATE_NOT_REACHED: sendInfo($this->lng->txt("start_date_not_reached") . " (".ilFormat::formatDate(ilFormat::ftimestamp2dateDB($this->object->getStartYear().$this->object->getStartMonth().$this->object->getStartDay()."000000"), "date") . ")"); $this->tpl->setVariable("DISABLED", " disabled=\"disabled\""); break; case SURVEY_START_END_DATE_REACHED: sendInfo($this->lng->txt("end_date_reached") . " (".ilFormat::formatDate(ilFormat::ftimestamp2dateDB($this->object->getEndYear().$this->object->getEndMonth().$this->object->getEndDay()."000000"), "date") . ")"); $this->tpl->setVariable("DISABLED", " disabled=\"disabled\""); break; case SURVEY_START_OFFLINE: sendInfo($this->lng->txt("survey_is_offline")); $this->tpl->setVariable("DISABLED", " disabled=\"disabled\""); break; } $this->tpl->parseCurrentBlock(); } $this->tpl->parseCurrentBlock(); $this->tpl->setCurrentBlock("adm_content"); $introduction = $this->object->getIntroduction(); $introduction = preg_replace("/\n/i", "<br />", $introduction); $this->tpl->setVariable("TEXT_INTRODUCTION", $introduction); $this->tpl->setVariable("FORM_ACTION", $this->getCallingScript() . "$add_parameter"); $this->tpl->parseCurrentBlock(); }
ilObjSurveyGUI::saveHeadingObject | ( | ) |
Saves an edited heading in the survey questions list.
Saves an edited heading in the survey questions list
public
Definition at line 2092 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; } }
ilObjSurveyGUI::saveMetaObject | ( | ) |
Definition at line 4262 of file class.ilObjSurveyGUI.php.
References $_GET, $_POST, ilObjectGUI::getTabTargetScript(), ilUtil::redirect(), and ilUtil::stripSlashes().
{ $meta_gui =& new ilMetaDataGUI(); $meta_gui->setObject($this->object); $meta_gui->save($_POST["meta_section"]); if (!strcmp($_POST["meta_section"], "General")) { $meta = $_POST["meta"]; $this->object->setTitle(ilUtil::stripSlashes($meta["Title"]["Value"])); $this->object->setDescription(ilUtil::stripSlashes($meta["Description"][0]["Value"])); $this->object->update(); } ilUtil::redirect($this->getTabTargetScript()."?ref_id=".$_GET["ref_id"]."&cmd=editMeta"); }
ilObjSurveyGUI::saveObject | ( | ) |
save object public
Reimplemented from ilObjectGUI.
Definition at line 115 of file class.ilObjSurveyGUI.php.
References $rbacadmin, exit, ilObjectGUI::getReturnLocation(), 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($this->getReturnLocation("save",$this->ctrl->getTargetScript()."?".$this->link_params)); exit(); }
ilObjSurveyGUI::searchQuestionsForm | ( | ) |
Creates a form to search questions for inserting.
Creates a form to search questions for inserting
public
Definition at line 1282 of file class.ilObjSurveyGUI.php.
References $_POST, $counter, ilObjectGUI::$data, getAddParameter(), getCallingScript(), ilUtil::getImagePath(), sendInfo(), and ilUtil::stripSlashes().
Referenced by questionsObject().
{ $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_search_questions.html", true); if ($_POST["cmd"]["search"]) { $search = new SurveySearch(ilUtil::stripSlashes($_POST["search_term"]), $_POST["concat"], $_POST["search_field"], $_POST["search_type"]); $search->search(); if (count($search->search_results)) { $classes = array("tblrow1", "tblrow2"); $counter = 0; $titles = $this->object->getQuestionpoolTitles(); $forbidden_pools =& $this->object->getForbiddenQuestionpools(); $existing_questions =& $this->object->getExistingQuestions(); foreach ($search->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["ref_id"]]); $this->tpl->parseCurrentBlock(); $counter++; } } $this->tpl->setCurrentBlock("search_results"); $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->tpl->setVariable("FOUND_QUESTIONS", $this->lng->txt("found_questions")); $this->tpl->parseCurrentBlock(); } else { sendInfo($this->lng->txt("no_search_results")); } } sendInfo(); $add_parameter = $this->getAddParameter(); $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->getCallingScript() . $add_parameter . "&search_question=1&browsetype=1&insert_question=1"); $this->tpl->parseCurrentBlock(); }
ilObjSurveyGUI::setEvalTabs | ( | ) |
Definition at line 4817 of file class.ilObjSurveyGUI.php.
References $rbacsystem.
Referenced by evaluationObject(), and evaluationuserObject().
{ global $rbacsystem; include_once "./classes/class.ilTabsGUI.php"; $tabs_gui =& new ilTabsGUI(); $tabs_gui->addTarget("svy_eval_cumulated", $this->ctrl->getLinkTargetByClass(get_class($this), "evaluation"), "evaluation", "ilobjsurveygui"); $tabs_gui->addTarget("svy_eval_detail", $this->ctrl->getLinkTargetByClass(get_class($this), "evaluationdetails"), "evaluationdetails", "ilobjsurveygui"); $tabs_gui->addTarget("svy_eval_user", $this->ctrl->getLinkTargetByClass(get_class($this), "evaluationuser"), "evaluationuser", "ilobjsurveygui"); $this->tpl->setVariable("TABS", $tabs_gui->getHTML()); }
ilObjSurveyGUI::setLocator | ( | $ | a_tree = "" , |
|
$ | a_id = "" , |
|||
$ | scriptname = "repository.php" | |||
) |
set Locator
object | tree object | |
integer | reference id | |
scriptanme | that is used for linking; if not set adm_object.php is used public |
Definition at line 4183 of file class.ilObjSurveyGUI.php.
References $_GET, $ilias_locator, $path, $row, and ilUtil::removeTrailingPathSeparators().
Referenced by prepareOutput(), and runObject().
{ // global $ilias_locator; $ilias_locator = new ilLocatorGUI(false); if (!is_object($a_tree)) { $a_tree =& $this->tree; } if (!($a_id)) { $a_id = $_GET["ref_id"]; } //$this->tpl->addBlockFile("LOCATOR", "locator", "tpl.locator.html"); $path = $a_tree->getPathFull($a_id); //check if object isn't in tree, this is the case if parent_parent is set // TODO: parent_parent no longer exist. need another marker if ($a_parent_parent) { //$subObj = getObject($a_ref_id); $subObj =& $this->ilias->obj_factory->getInstanceByRefId($a_ref_id); $path[] = array( "id" => $a_ref_id, "title" => $this->lng->txt($subObj->getTitle()) ); } // this is a stupid workaround for a bug in PEAR:IT $modifier = 1; if (isset($_GET["obj_id"])) { $modifier = 0; } // ### AA 03.11.10 added new locator GUI class ### $i = 1; if (!defined("ILIAS_MODULE")) { foreach ($path as $key => $row) { $ilias_locator->navigate($i++, $row["title"], ilUtil::removeTrailingPathSeparators(ILIAS_HTTP_PATH) . "/adm_object.php?ref_id=".$row["child"],""); } } else { foreach ($path as $key => $row) { if (strcmp($row["title"], "ILIAS") == 0) { $row["title"] = $this->lng->txt("repository"); } if ($this->ref_id == $row["child"]) { if ($_GET["cmd"]) { $param = "&cmd=" . $_GET["cmd"]; } else { $param = ""; } $ilias_locator->navigate($i++, $row["title"], ilUtil::removeTrailingPathSeparators(ILIAS_HTTP_PATH) . "/survey/survey.php" . "?ref_id=".$row["child"] . $param,"target=\"bottom\""); } else { $ilias_locator->navigate($i++, $row["title"], ilUtil::removeTrailingPathSeparators(ILIAS_HTTP_PATH) . "/" . $scriptname."?cmd=frameset&ref_id=".$row["child"],"target=\"bottom\""); } } if (isset($_GET["obj_id"])) { $obj_data =& $this->ilias->obj_factory->getInstanceByObjId($_GET["obj_id"]); $ilias_locator->navigate($i++,$obj_data->getTitle(),$scriptname."?cmd=frameset&ref_id=".$_GET["ref_id"]."&obj_id=".$_GET["obj_id"],"target=\"bottom\""); } } $ilias_locator->output(); }
ilObjSurveyGUI::statusObject | ( | ) |
Creates the status output for a test.
Creates the status output for a test
public
Definition at line 4134 of file class.ilObjSurveyGUI.php.
{ $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(); }
ilObjSurveyGUI::updateObject | ( | ) |
updates object entry in object_data
public
Reimplemented from ilObjectGUI.
Definition at line 128 of file class.ilObjSurveyGUI.php.
References $_SESSION, ilObjectGUI::getReturnLocation(), ilUtil::redirect(), and sendInfo().
Referenced by propertiesObject().
{ $this->object->updateTitleAndDescription(); $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); } ilUtil::redirect($this->getReturnLocation("update",$this->ctrl->getTargetScript()."?".$this->link_params)); }
ilObjSurveyGUI::uploadObject | ( | $ | redirect = true |
) |
display status information or report errors messages in case of error
public
Definition at line 4543 of file class.ilObjSurveyGUI.php.
References $_GET, $_POST, ilObject::_writeDescription(), ilObject::_writeTitle(), 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"]); /* update title and description in object data */ if (is_object($newObj->meta_data)) { $newObj->meta_data->read(); $newObj->meta_data->setTitle($newObj->getTitle()); $newObj->meta_data->setDescription($newObj->getDescription()); ilObject::_writeTitle($newObj->getID(), $newObj->getTitle()); ilObject::_writeDescription($newObj->getID(), $newObj->getDescription()); } $newObj->update(); $newObj->saveToDb(); if ($redirect) { ilUtil::redirect($this->getReturnLocation("upload",$this->ctrl->getTargetScript()."?".$this->link_params)); } }
ilObjSurveyGUI::writeInviteFormData | ( | ) |
Extracts the results of a posted invitation form.
Extracts the results of a posted invitation form
public
Definition at line 3735 of file class.ilObjSurveyGUI.php.
References $_POST, $ilUser, $user_id, $users, outUserGroupTable(), and sendInfo().
Referenced by inviteObject().
{ global $ilUser; $message = ""; $this->object->setInvitationAndMode($_POST["invitation"], $_POST["mode"]); if ($_POST["cmd"]["disinvite"]) { // disinvite users if (is_array($_POST["invited_users"])) { foreach ($_POST["invited_users"] as $user_id) { $this->object->disinviteUser($user_id); } } // disinvite groups if (is_array($_POST["invited_groups"])) { foreach ($_POST["invited_groups"] as $group_id) { $this->object->disinviteGroup($group_id); } } } if ($_POST["cmd"]["add"]) { // 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); } } } if ($_POST["cmd"]["search"]) { if (is_array($_POST["search_for"])) { if (in_array("usr", $_POST["search_for"]) or in_array("grp", $_POST["search_for"])) { $search =& new ilSearch($ilUser->id); $search->setSearchString($_POST["search_term"]); $search->setCombination($_POST["concatenation"]); $search->setSearchFor($_POST["search_for"]); $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")); return; } $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_user"), $buttons); } $searchresult = array(); $invited_groups = $this->object->getInvitedGroups(); if ($searchresult = $search->getResultByType("grp")) { $groups = array(); foreach ($searchresult as $result_array) { if (!in_array($result_array["id"], $invited_groups)) { array_push($groups, $result_array["id"]); } } $this->outUserGroupTable("grp", $groups, "group_result", "group_row", $this->lng->txt("search_group"), $buttons); } } } else { sendInfo($this->lng->txt("no_user_or_group_selected")); } } }
ilObjSurveyGUI::writePropertiesFormData | ( | ) |
Definition at line 155 of file class.ilObjSurveyGUI.php.
References $_POST, $result, sendInfo(), and ilUtil::stripSlashes().
Referenced by propertiesObject().
{ $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"]); $this->object->setIntroduction(ilUtil::stripSlashes($_POST["introduction"])); $this->object->setAnonymize($_POST["anonymize"]); if ($_POST["showQuestionTitles"]) { $this->object->showQuestionTitles(); } else { $this->object->hideQuestionTitles(); } }