From 32b3ce5f900cf0d378f77a6675b989ee0e641f13 Mon Sep 17 00:00:00 2001 From: Philip Häusler Date: Fri, 3 Jun 2011 00:22:11 +0200 Subject: admin questions --- includes/pages/admin_questions.php | 76 ++++++++++++++++++++++++++++++++++++++ includes/pages/user_messages.php | 10 +++-- includes/pages/user_questions.php | 17 +++++++-- includes/sys_menu.php | 7 +++- 4 files changed, 101 insertions(+), 9 deletions(-) create mode 100644 includes/pages/admin_questions.php (limited to 'includes') diff --git a/includes/pages/admin_questions.php b/includes/pages/admin_questions.php new file mode 100644 index 00000000..5355dd86 --- /dev/null +++ b/includes/pages/admin_questions.php @@ -0,0 +1,76 @@ + 0) + return '

There are unanswered questions!


'; + } + + return ""; +} + +function admin_questions() { + global $user; + + if (!isset ($_REQUEST['action'])) { + $open_questions = ""; + $questions = sql_select("SELECT * FROM `Questions` WHERE `AID`=0"); + foreach ($questions as $question) { + $open_questions .= '' . UID2Nick($question['UID']) . '' . str_replace("\n", '
', $question['Question']) . ''; + $open_questions .= '

'; + $open_questions .= 'Delete'; + } + + $answered_questions = ""; + $questions = sql_select("SELECT * FROM `Questions` WHERE `AID`>0"); + foreach ($questions as $question) { + $answered_questions .= '' . UID2Nick($question['UID']) . '' . str_replace("\n", '
', $question['Question']) . ''; + $answered_questions .= '' . UID2Nick($question['AID']) . '' . str_replace("\n", '
', $question['Answer']) . ''; + $answered_questions .= 'Delete'; + } + + return template_render('../templates/admin_questions.html', array ( + 'link' => page_link_to("admin_questions"), + 'open_questions' => $open_questions, + 'answered_questions' => $answered_questions + )); + } else { + switch ($_REQUEST['action']) { + case 'answer' : + if (isset ($_REQUEST['id']) && preg_match("/^[0-9]{1,11}$/", $_REQUEST['id'])) + $id = $_REQUEST['id']; + else + return error("Incomplete call, missing Question ID."); + + $question = sql_select("SELECT * FROM `Questions` WHERE `QID`=" . sql_escape($id) . " LIMIT 1"); + if (count($question) > 0 && $question[0]['AID'] == "0") { + $answer = trim(preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}\n]{1,})/ui", '', strip_tags($_REQUEST['answer']))); + + if ($answer != "") { + sql_query("UPDATE `Questions` SET `AID`=" . sql_escape($user['UID']) . ", `Answer`='" . sql_escape($answer) . "' WHERE `QID`=" . sql_escape($id) . " LIMIT 1"); + header("Location: " . page_link_to("admin_questions")); + } else + return error("Please enter an answer!"); + } else + return error("No question found."); + break; + case 'delete' : + if (isset ($_REQUEST['id']) && preg_match("/^[0-9]{1,11}$/", $_REQUEST['id'])) + $id = $_REQUEST['id']; + else + return error("Incomplete call, missing Question ID."); + + $question = sql_select("SELECT * FROM `Questions` WHERE `QID`=" . sql_escape($id) . " LIMIT 1"); + if (count($question) > 0) { + sql_query("DELETE FROM `Questions` WHERE `QID`=" . sql_escape($id) . " LIMIT 1"); + header("Location: " . page_link_to("admin_questions")); + } else + return error("No question found."); + break; + } + } +} +?> \ No newline at end of file diff --git a/includes/pages/user_messages.php b/includes/pages/user_messages.php index e3e9a469..30871d9d 100644 --- a/includes/pages/user_messages.php +++ b/includes/pages/user_messages.php @@ -1,11 +1,13 @@ 0) - return '

' . Get_Text("pub_messages_new1") . " " . $new_messages . " " . Get_Text("pub_messages_new2") . '


'; + if ($new_messages > 0) + return '

' . Get_Text("pub_messages_new1") . " " . $new_messages . " " . Get_Text("pub_messages_new2") . '


'; + } return ""; } diff --git a/includes/pages/user_questions.php b/includes/pages/user_questions.php index 8201c6d6..4e9daa5a 100644 --- a/includes/pages/user_questions.php +++ b/includes/pages/user_questions.php @@ -6,11 +6,20 @@ function user_questions() { $open_questions = ""; $questions = sql_select("SELECT * FROM `Questions` WHERE `AID`=0 AND `UID`=" . sql_escape($user['UID'])); foreach ($questions as $question) - $open_questions .= '' . $question['Question'] . 'Delete'; + $open_questions .= '' . str_replace("\n", '
', $question['Question']) . 'Delete'; + + $answered_questions = ""; + $questions = sql_select("SELECT * FROM `Questions` WHERE `AID`>0 AND `UID`=" . sql_escape($user['UID'])); + foreach ($questions as $question) { + $answered_questions .= '' . str_replace("\n", '
', $question['Question']) . ''; + $answered_questions .= '' . UID2Nick($question['AID']) . '' . str_replace("\n", '
', $question['Answer']) . ''; + $answered_questions .= 'Delete'; + } return template_render('../templates/user_questions.html', array ( 'link' => page_link_to("user_questions"), - 'open_questions' => $open_questions + 'open_questions' => $open_questions, + 'answered_questions' => $answered_questions )); } else { switch ($_REQUEST['action']) { @@ -20,7 +29,7 @@ function user_questions() { sql_query("INSERT INTO `Questions` SET `UID`=" . sql_escape($user['UID']) . ", `Question`='" . sql_escape($question) . "'"); header("Location: " . page_link_to("user_questions")); } else - return error("Please enter a Question!"); + return error("Please enter a question!"); break; case 'delete' : if (isset ($_REQUEST['id']) && preg_match("/^[0-9]{1,11}$/", $_REQUEST['id'])) @@ -33,7 +42,7 @@ function user_questions() { sql_query("DELETE FROM `Questions` WHERE `QID`=" . sql_escape($id) . " LIMIT 1"); header("Location: " . page_link_to("user_questions")); } else - return error("No Question found."); + return error("No question found."); break; } } diff --git a/includes/sys_menu.php b/includes/sys_menu.php index 6cddf66a..c3dfa041 100644 --- a/includes/sys_menu.php +++ b/includes/sys_menu.php @@ -29,6 +29,7 @@ function make_navigation() { // Admin Navigation $menu .= make_navigation_for(Get_Text('admin/'), array ( + "admin_questions", "admin_angel_types", "admin_rooms", "admin_groups" @@ -39,9 +40,13 @@ function make_navigation() { function make_navigation_for($name, $pages) { global $privileges, $p; + $specials = array ( + "faq" + ); + $menu = ""; foreach ($pages as $page) - if (in_array($page, $privileges)) + if (in_array($page, $privileges) || in_array($page, $specials)) $menu .= '' . Get_Text($page) . ''; if ($menu != "") -- cgit v1.2.3-54-g00ecf