//check for error if (trim($_POST["text"]) == "") { $error = "error_no_text"; } else { //update text if ($action == "edit" && isset($question_id)) { //add_description $geo = new questionary_geo(); $geo->add_description($_POST["text"]); } else { if ($action == "insert") { //create new element in questions $question = steam_factory::create_container($steam, time() . "", $question_folder); $question_id = $question->get_id(); //add_description $geo = new questionary_geo(); $geo->add_description($_POST["text"], $question_id); } } //save geometry in questionary $result = $question->set_attribute("bid:question:geometry", $geo->get_last_element()); } } //Disconnect $steam->disconnect(); //redirect to edit page again if (isset($result) && $result) { header("Location: {$config_webserver_ip}/modules/questionary/edit.php?questionary=" . $questionary->get_id()); exit; } //******************************************************
$questionary_display_name = $attributes[OBJ_NAME]; if (isset($attributes[OBJ_DESC]) && $attributes[OBJ_DESC] != "") { $questionary_display_name = $attributes[OBJ_DESC]; } $question_number = $attributes["bid:questionary:number"]; $edit_time = $attributes["bid:questionary:edittime"]; $edit_answer = $attributes["bid:questionary:editanswer"]; $edit_own_answer = $attributes["bid:questionary:editownanswer"]; $att_enabled = $attributes["bid:questionary:enabled"]; //to avoid that user can change answers from other users if (isset($answer) && !$is_answer_creator && $is_author && !$edit_answer || isset($answer) && !$is_answer_creator && !$is_author) { $no_write_access = true; } //get questionary geometry $questions = $question_folder->get_inventory(); $geo = new questionary_geo(); foreach ($questions as $question) { $question = $question->get_attribute("bid:question:geometry", 1); } $buffer = $steam->buffer_flush(); foreach ($buffer as $question) { $geo->insert($question); } //check if the user can fill out (another) questionary $forbidden = false; if ($fillout == 1 && !isset($answer)) { //get creators of all items in inventory $creators_obj = array(); $answers = $answer_folder->get_inventory(); foreach ($answers as $each_answer) { $creators_obj[] = $each_answer->get_creator(1);
if ($action == "delete" && isset($question)) { $question->delete(); $steam->disconnect(); header("Location: {$config_webserver_ip}/modules/questionary/edit.php?questionary=" . $questionary->get_id()); exit; } //disable enable questionary to fill out if ($action == "enable") { $questionary->set_attribute("bid:questionary:enabled", true); } if ($action == "disable") { $questionary->set_attribute("bid:questionary:enabled", false); } //get questionary geometry $questions = $question_folder->get_inventory(); $geo = new questionary_geo(); $ids = array(); foreach ($questions as $question) { $ids[] = $question->get_id(); $question = $question->get_attribute("bid:question:geometry", 1); } $buffer = $steam->buffer_flush(); foreach ($buffer as $question) { $question["question_id"] = array_shift($ids); $geo->insert($question); } //load Attributes $attributes = $questionary->get_attributes(array(OBJ_NAME, "bid:questionary:number", "bid:questionary:enabled", "bid:questionary:edittime")); $questionary_name = $attributes[OBJ_NAME]; $number = $attributes["bid:questionary:number"]; $enabled = $attributes["bid:questionary:enabled"];
$errors[] = "error_no_text"; } //check if columns is a number if (!ereg('^[[:digit:]]*$', $check["columns"])) { $errors[] = "error_no_number_col"; } //check if there is at least 1 option if (count($check["options"]) <= 0) { $errors[] = "error_no_options"; } if (!isset($errors)) { //create new element in questions if (!isset($question)) { $question = steam_factory::create_container($steam, time() . "", $question_folder); } $geo = new questionary_geo(); $geo->add_input_checkbox($check["question"], $check["question_position"], $check["columns"], $check["options"], $check["checked"], $check["must"], $check["output"]); //save $result = $question->set_attribute("bid:question:geometry", $geo->get_last_element()); } } //Disconnect $steam->disconnect(); //redirect to edit page again if (isset($result) && $result) { header("Location: {$config_webserver_ip}/modules/questionary/edit.php?questionary=" . $questionary->get_id()); exit; } //****************************************************** //** Display Stuff //******************************************************
} else { header("Location: {$config_webserver_ip}/index.php"); } //create new RIGHTS object $rights = new rights($steam, $questionary, $question_folder, $answer_folder); //check author permission $login_user = $steam->get_login_user(); $login_user_id = $login_user->get_id(); $login_user_groups = $login_user->get_groups(); foreach ($login_user_groups as $login_user_group) { $login_user_group_ids[] = $login_user_group->get_id(); } $is_author = $rights->check_access_edit($login_user, $login_user_group_ids); if (!$is_author || count($answer_folder->get_inventory()) > 0) { //Disconnect & close $steam->disconnect(); die("<html>\n<body onload='javascript:window.close();'>\n</body>\n</html>"); } //create new element in questions $question = steam_factory::create_container($steam, time() . "", $question_folder); $question_id = $question->get_id(); //add_full_line $geo = new questionary_geo(); $geo->add_full_line(); //save geometry in questionary $question->set_attribute("bid:question:geometry", $geo->get_last_element()); //Disconnect $steam->disconnect(); //redirect to edit page again header("Location: {$config_webserver_ip}/modules/questionary/edit.php?questionary=" . $questionary->get_id()); exit;
$errors[] = "error_no_text"; } //check if identifier is empty if (trim($tendency["tendency_steps"]) == "" || !ereg('^[[:digit:]]*$', $tendency["tendency_steps"]) || $tendency["tendency_steps"] < 2 || $tendency["tendency_steps"] > 20) { $errors[] = "error_no_number_steps"; } //check if there is at least 1 option if (count($tendency["tendency_elements"]) <= 0) { $errors[] = "error_no_options"; } if (!isset($errors)) { //create new element in questions if (!isset($question)) { $question = steam_factory::create_container($steam, time() . "", $question_folder); } $geo = new questionary_geo(); $geo->add_input_tendency($tendency["description"], $tendency["tendency_elements"], $tendency["tendency_steps"], $tendency["must"], $tendency["output"]); //save $result = $question->set_attribute("bid:question:geometry", $geo->get_last_element()); } } //Disconnect $steam->disconnect(); //redirect to edit page again if (isset($result) && $result) { header("Location: {$config_webserver_ip}/modules/questionary/edit.php?questionary=" . $questionary->get_id()); exit; } //****************************************************** //** Display Stuff //******************************************************
die("<html><body>no access rights</body></html>"); } //get questionary attributes $creator = $questionary->get_creator(); $attributes = $questionary->get_attributes(array(OBJ_NAME, OBJ_LAST_CHANGED, "bid:questionary:number", "bid:questionary:editanswer", "bid:questionary:resultcreator", "bid:questionary:resultcreationtime")); $questionary_last_changed = $attributes[OBJ_LAST_CHANGED]; $questionary_name = $attributes[OBJ_NAME]; $numbering = $attributes["bid:questionary:number"]; $editanswer = $attributes["bid:questionary:editanswer"]; $resultcreator = $attributes["bid:questionary:resultcreator"]; $resultcreationtime = $attributes["bid:questionary:resultcreationtime"]; //check rights $forbidden = !($is_author || $is_analyst); //get questionary geometry $questions = $question_folder->get_inventory(); $geo = new questionary_geo(); foreach ($questions as $question) { $question = $question->get_attribute("bid:question:geometry", 1); } $buffer = $steam->buffer_flush(); foreach ($buffer as $question) { $geo->insert($question); } $entities = $geo->get_all(); //action delete if ($mission == "delete" && $answer && $is_author) { $answer->delete(); $steam->disconnect(); header("Location: {$config_webserver_ip}/modules/questionary/result.php?object=" . $questionary->get_id()); exit; }
} else { header("Location: {$config_webserver_ip}/index.php"); } //create new RIGHTS object $rights = new rights($steam, $questionary, $question_folder, $answer_folder); //check author permission $login_user = $steam->get_login_user(); $login_user_id = $login_user->get_id(); $login_user_groups = $login_user->get_groups(); foreach ($login_user_groups as $login_user_group) { $login_user_group_ids[] = $login_user_group->get_id(); } $is_author = $rights->check_access_edit($login_user, $login_user_group_ids); if (!$is_author || count($answer_folder->get_inventory()) > 0) { //Disconnect & close $steam->disconnect(); die("<html>\n<body onload='javascript:window.close();'>\n</body>\n</html>"); } //create new element in questions $question = steam_factory::create_container($steam, time() . "", $question_folder); $question_id = $question->get_id(); //add_new_page $geo = new questionary_geo(); $geo->add_new_page(); //save geometry in questionary $question->set_attribute("bid:question:geometry", $geo->get_last_element()); //Disconnect $steam->disconnect(); //redirect to edit page again header("Location: {$config_webserver_ip}/modules/questionary/edit.php?questionary=" . $questionary->get_id()); exit;
//Disconnect & close $steam->disconnect(); die("<html>\n<body onload='javascript:window.close();'>\n</body>\n</html>"); } //action save in new order if ($action == "save") { //get new order and all segments in old order $order = split(" ", trim($_POST["list"])); foreach ($order as $position => $object_id) { $object = steam_factory::get_object($steam, $object_id); $result = $question_folder->swap_inventory($object, $position); } } //get questionary geometry $questions = $question_folder->get_inventory(); $geo = new questionary_geo(); $ids = array(); foreach ($questions as $question) { $ids[] = $question->get_id(); $question = $question->get_attribute("bid:question:geometry", 1); } $buffer = $steam->buffer_flush(); foreach ($buffer as $question) { $question["question_id"] = array_shift($ids); $geo->insert($question); } //load attribute number $question_number = $questionary->get_attribute("bid:questionary:number"); //redirect to edit_layout page again if (isset($result) && $result) { header("Location: {$config_webserver_ip}/modules/questionary/edit.php?questionary=" . $questionary->get_id());
} //check if number of row is a number if (!ereg('^[[:digit:]]*$', $_POST["rows"])) { $errors[] = "error_no_number_rows"; } if ($_POST["rows"] <= 0) { $errors[] = "error_bigger_zero_rows"; } //update according description if (!isset($errors)) { if ($action == "insert") { //create new element in question folder $question = steam_factory::create_container($steam, time() . "", $question_folder); $question_id = $question->get_id(); } $geo = new questionary_geo(); if ($_POST["rows"] > 1) { $geo->add_input_textarea(norm_post("question"), $_POST["question_position"], norm_post("width") == " " ? 400 : norm_post("width"), norm_post("rows"), norm_post("value"), isset($_POST["must"]), isset($_POST["output"])); } else { $geo->add_input_text(norm_post("question"), $_POST["question_position"], norm_post("width") == " " ? 400 : norm_post("width"), norm_post("maxlength"), norm_post("value"), isset($_POST["must"]), isset($_POST["output"])); } //save geometry in question $result = $question->set_attribute("bid:question:geometry", $geo->get_last_element()); } } //Disconnect $steam->disconnect(); //redirect to edit page again if (isset($result) && $result) { header("Location: {$config_webserver_ip}/modules/questionary/edit.php?questionary=" . $questionary->get_id()); exit;
if ($action == "save" && isset($_POST["description"])) { //check if identifier is empty if (trim($grading["description"]) == "") { $errors[] = "error_no_text"; } //check if there is at least 1 option if (count($grading["grading_options"]) <= 0) { $errors[] = "error_no_options"; } if (!isset($errors)) { //create new element in questions if (!isset($question)) { $question = steam_factory::create_container($steam, time() . "", $question_folder); } //set grading $geo = new questionary_geo(); $geo->add_input_grading($grading["description"], $grading["grading_options"], $grading["must"], $grading["output"]); //save $result = $question->set_attribute("bid:question:geometry", $geo->get_last_element()); } } //Disconnect $steam->disconnect(); //redirect to edit page again if (isset($result) && $result) { header("Location: {$config_webserver_ip}/modules/questionary/edit.php?questionary=" . $questionary->get_id()); exit; } //****************************************************** //** Display Stuff //******************************************************
$errors[] = "error_no_number_width"; } //check if rows is a number if (!ereg('^[[:digit:]]*$', $select["rows"])) { $errors[] = "error_no_number_rows"; } //check if there is at least 1 option if (count($select["options"]) <= 0) { $errors[] = "error_no_options"; } if (!isset($errors)) { //create new element in questions if (!isset($question)) { $question = steam_factory::create_container($steam, time() . "", $question_folder); } $geo = new questionary_geo(); $geo->add_input_selectbox($select["question"], $select["question_position"], $select["width"], $select["rows"], $select["options"], $select["selected"], $select["must"], $select["output"]); //save $result = $question->set_attribute("bid:question:geometry", $geo->get_last_element()); } } //Disconnect $steam->disconnect(); //redirect to edit page again if (isset($result) && $result) { header("Location: {$config_webserver_ip}/modules/questionary/edit.php?questionary=" . $questionary->get_id()); exit; } //****************************************************** //** Display Stuff //******************************************************