From 7dae097481cdac72dee955dda6c2ac31f43ad05e Mon Sep 17 00:00:00 2001 From: markjcrane Date: Thu, 30 Aug 2018 16:18:34 +0000 Subject: [PATCH] Add app/messages --- app/messages/app_config.php | 111 ++++ app/messages/app_languages.php | 580 +++++++++++++++++++ app/messages/app_menu.php | 19 + app/messages/index.php | 172 ++++++ app/messages/message_delete.php | 57 ++ app/messages/message_edit.php | 386 ++++++++++++ app/messages/messages.php | 273 +++++++++ app/messages/resources/classes/messages2.php | 75 +++ app/messages/root.php | 90 +++ 9 files changed, 1763 insertions(+) create mode 100644 app/messages/app_config.php create mode 100644 app/messages/app_languages.php create mode 100644 app/messages/app_menu.php create mode 100644 app/messages/index.php create mode 100644 app/messages/message_delete.php create mode 100644 app/messages/message_edit.php create mode 100644 app/messages/messages.php create mode 100644 app/messages/resources/classes/messages2.php create mode 100644 app/messages/root.php diff --git a/app/messages/app_config.php b/app/messages/app_config.php new file mode 100644 index 0000000000..d21a823aab --- /dev/null +++ b/app/messages/app_config.php @@ -0,0 +1,111 @@ + \ No newline at end of file diff --git a/app/messages/app_languages.php b/app/messages/app_languages.php new file mode 100644 index 0000000000..f701aabdb8 --- /dev/null +++ b/app/messages/app_languages.php @@ -0,0 +1,580 @@ + \ No newline at end of file diff --git a/app/messages/app_menu.php b/app/messages/app_menu.php new file mode 100644 index 0000000000..85146d116a --- /dev/null +++ b/app/messages/app_menu.php @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/app/messages/index.php b/app/messages/index.php new file mode 100644 index 0000000000..41c49190f0 --- /dev/null +++ b/app/messages/index.php @@ -0,0 +1,172 @@ + + Portions created by the Initial Developer are Copyright (C) 2016-2018 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +//includes + require_once "root.php"; + require_once "resources/require.php"; + +//get the user settings + $sql = "select user_uuid, domain_uuid from v_user_settings "; + $sql .= "where user_setting_category = 'message' "; + $sql .= "and user_setting_subcategory = 'key' "; + $sql .= "and user_setting_value = :key "; + $sql .= "and user_setting_enabled = 'true' "; + $prep_statement = $db->prepare($sql); + $prep_statement->bindParam(':key', $_GET['key']); + if ($prep_statement) { + $prep_statement->execute(); + $row = $prep_statement->fetch(PDO::FETCH_NAMED); + } + +//default authorized to false + $authorized = 'false'; + +//get the user + if (isset($row['user_uuid']) && strlen($row['user_uuid']) > 0) { + $domain_uuid = $row['domain_uuid']; + $user_uuid = $row['user_uuid']; + $authorized = 'true'; + } + +//authorization failed + if ($authorized == 'false') { + //log the failed auth attempt to the system, to be available for fail2ban. + openlog('FusionPBX', LOG_NDELAY, LOG_AUTH); + syslog(LOG_WARNING, '['.$_SERVER['REMOTE_ADDR']."] authentication failed for ".$_GET['key']); + closelog(); + + //send http 404 + header("HTTP/1.0 404 Not Found"); + echo "\n"; + echo "404 Not Found\n"; + echo "\n"; + echo "

404 Not Found

\n"; + echo "
nginx/1.12.1
\n"; + echo "\n"; + echo "\n"; + exit(); + } + +//get the data + $json = file_get_contents('php://input'); + +//decode the json + $message = json_decode($json, true); + +//get a unique id + $message_uuid = uuid(); + +//get the source phone number + $phone_number = $message["from"]; + $phone_number = preg_replace('{[\D]}', '', $phone_number); + +//get the contact uuid + //$sql = "SELECT trim(c.contact_name_given || ' ' || c.contact_name_family || ' (' || c.contact_organization || ')') AS name, p.phone_number AS number "; + $sql = "SELECT c.contact_uuid "; + $sql .= "FROM v_contacts as c, v_contact_phones as p "; + $sql .= "WHERE p.contact_uuid = c.contact_uuid "; + //$sql .= "and p.phone_number = :phone_number "; + $sql .= "and p.phone_number = '".$phone_number."' "; + $sql .= "and c.domain_uuid = '".$domain_uuid."' "; + $prep_statement = $db->prepare($sql); + //$prep_statement->bindParam(':phone_number', $phone_number); + $prep_statement->execute(); + $row = $prep_statement->fetch(PDO::FETCH_NAMED); + $contact_uuid = $row['contact_uuid']; + +//build the array + $array['messages'][0]["domain_uuid"] = $domain_uuid; + $array['messages'][0]["user_uuid"] = $user_uuid; + $array['messages'][0]["contact_uuid"] = $contact_uuid; + $array['messages'][0]['message_uuid'] = $message_uuid; + $array['messages'][0]['message_json'] = $json; + $array['messages'][0]['message_direction'] = 'inbound'; + $array['messages'][0]['message_date'] = 'now()'; + $array['messages'][0]['message_type'] = 'sms'; + $array['messages'][0]['message_from'] = $message["from"]; + $array['messages'][0]['message_to'] = $message["to"]; + $array['messages'][0]['message_text'] = $message["text"]; + +//get the media + if (is_array($message["media"])) { + foreach($message["media"] as $media) { + $media_extension = pathinfo($media, PATHINFO_EXTENSION); + if ($media_extension !== "xml") { + $array['messages'][0]['message_media_type'] = $media_extension; + $array['messages'][0]['message_media_url'] = $media; + $array['messages'][0]['message_media_content'] = base64_encode(file_get_contents($media)); + } + } + } + +//convert the array to json + $array_json = json_encode($array); + +//add the dialplan permission + $p = new permissions; + $p->add("message_add", "temp"); + +//save to the data + $database = new database; + $database->app_name = 'messages'; + $database->app_uuid = '4a20815d-042c-47c8-85df-085333e79b87'; + $database->uuid($message_uuid); + $database->save($array); + $result = $database->message; + +//remove the temporary permission + $p->delete("message_add", "temp"); + +//get the list of extensions using the user_uuid + //$user_uuid + +//forward the messages over SIP + // + +//create the event socket connection + //$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); + //if ($fp) { + //prepare the command + // $command = ""; + //send the command + // $response = event_socket_request($fp, "api ".$command); + // $response = event_socket_request($fp, "api log notice ".$command); + //close the connection + // fclose($fp); + //} + + +//set the file + //$file = '/tmp/sms.txt'; + +//save the file + //file_put_contents($file, $json); + +//save the data to the file system + //file_put_contents($file, $json."\n"); + //file_put_contents($file, $array_json."\nfrom: ".$message["from"]." to: ".$message["to"]." text: ".$message["text"]."\n$sql_test\njson: ".$json."\n".$saved_result."\n"); + +?> \ No newline at end of file diff --git a/app/messages/message_delete.php b/app/messages/message_delete.php new file mode 100644 index 0000000000..a39e992eb1 --- /dev/null +++ b/app/messages/message_delete.php @@ -0,0 +1,57 @@ + + Portions created by the Initial Developer are Copyright (C) 2016-2018 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +//includes + require_once "root.php"; + require_once "resources/require.php"; + +//add multi-lingual support + $language = new text; + $text = $language->get(); + +//delete the message + messages::add($text['message-delete']); + +//delete the data + if (isset($_GET["id"]) && is_uuid($_GET["id"]) && permission_exists('message_delete')) { + + //get the id + $id = check_str($_GET["id"]); + + //delete message + $sql = "delete from v_messages "; + $sql .= "where message_uuid = '$id' "; + $sql .= "and domain_uuid = '$domain_uuid' "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + unset($sql); + + //redirect the user + header('Location: messages.php'); + } + + +?> \ No newline at end of file diff --git a/app/messages/message_edit.php b/app/messages/message_edit.php new file mode 100644 index 0000000000..33370dc448 --- /dev/null +++ b/app/messages/message_edit.php @@ -0,0 +1,386 @@ + + Portions created by the Initial Developer are Copyright (C) 2016-2018 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +//includes + require_once "root.php"; + require_once "resources/require.php"; + +//check permissions + require_once "resources/check_auth.php"; + if (permission_exists('message_add') || permission_exists('message_edit')) { + //access granted + } + else { + echo "access denied"; + exit; + } + +//add multi-lingual support + $language = new text; + $text = $language->get(); + +//action add or update + if (isset($_REQUEST["id"])) { + $action = "update"; + $message_uuid = check_str($_REQUEST["id"]); + $id = check_str($_REQUEST["id"]); + } + else { + $action = "add"; + } + +//get http post variables and set them to php variables + if (is_array($_POST)) { + $message_uuid = check_str($_POST["message_uuid"]); + //$user_uuid = check_str($_POST["user_uuid"]); + $message_type = check_str($_POST["message_type"]); + $message_direction = check_str($_POST["message_direction"]); + $message_date = check_str($_POST["message_date"]); + $message_from = check_str($_POST["message_from"]); + $message_to = check_str($_POST["message_to"]); + $message_text = check_str($_POST["message_text"]); + $message_media_type = check_str($_POST["message_media_type"]); + $message_media_url = check_str($_POST["message_media_url"]); + $message_media_content = check_str($_POST["message_media_content"]); + $message_json = check_str($_POST["message_json"]); + } + +//process the user data and save it to the database + if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { + + //get the uuid from the POST + if ($action == "update") { + $message_uuid = check_str($_POST["message_uuid"]); + } + + //check for all required data + $msg = ''; + //if (strlen($user_uuid) == 0) { $msg .= $text['message-required']." ".$text['label-user_uuid']."
\n"; } + if (strlen($message_type) == 0) { $msg .= $text['message-required']." ".$text['label-message_type']."
\n"; } + if (strlen($message_direction) == 0) { $msg .= $text['message-required']." ".$text['label-message_direction']."
\n"; } + if (strlen($message_date) == 0) { $msg .= $text['message-required']." ".$text['label-message_date']."
\n"; } + if (strlen($message_from) == 0) { $msg .= $text['message-required']." ".$text['label-message_from']."
\n"; } + if (strlen($message_to) == 0) { $msg .= $text['message-required']." ".$text['label-message_to']."
\n"; } + //if (strlen($message_text) == 0) { $msg .= $text['message-required']." ".$text['label-message_text']."
\n"; } + //if (strlen($message_media_type) == 0) { $msg .= $text['message-required']." ".$text['label-message_media_type']."
\n"; } + //if (strlen($message_media_url) == 0) { $msg .= $text['message-required']." ".$text['label-message_media_url']."
\n"; } + //if (strlen($message_media_content) == 0) { $msg .= $text['message-required']." ".$text['label-message_media_content']."
\n"; } + //if (strlen($message_json) == 0) { $msg .= $text['message-required']." ".$text['label-message_json']."
\n"; } + if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { + require_once "resources/header.php"; + require_once "resources/persist_form_var.php"; + echo "
\n"; + echo "
\n"; + echo $msg."
"; + echo "
\n"; + persistformvar($_POST); + echo "
\n"; + require_once "resources/footer.php"; + return; + } + + //set the domain_uuid + $_POST["domain_uuid"] = $_SESSION["domain_uuid"]; + + //add the message_uuid + if (strlen($_POST["message_uuid"]) == 0) { + $message_uuid = uuid(); + $_POST["message_uuid"] = $message_uuid; + } + + //prepare the array + $array['messages'][0] = $_POST; + + //save to the data + $database = new database; + $database->app_name = 'messages'; + $database->app_uuid = null; + if (strlen($message_uuid) > 0) { + $database->uuid($message_uuid); + } + $database->save($array); + $message = $database->message; + + //debug info + //echo "
";
+			//print_r($message);
+			//echo "
"; + //exit; + + //redirect the user + if (isset($action)) { + if ($action == "add") { + $_SESSION["message"] = $text['message-add']; + } + if ($action == "update") { + $_SESSION["message"] = $text['message-update']; + } + header('Location: message_edit.php?id='.$message_uuid); + return; + } + } //(is_array($_POST) && strlen($_POST["persistformvar"]) == 0) + +//pre-populate the form + if (is_array($_GET) && $_POST["persistformvar"] != "true") { + $message_uuid = check_str($_GET["id"]); + $sql = "select * from v_messages "; + $sql .= "where message_uuid = '$message_uuid' "; + //$sql .= "and domain_uuid = '$domain_uuid' "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); + foreach ($result as &$row) { + $user_uuid = $row["user_uuid"]; + $message_type = $row["message_type"]; + $message_direction = $row["message_direction"]; + $message_date = $row["message_date"]; + $message_from = $row["message_from"]; + $message_to = $row["message_to"]; + $message_text = $row["message_text"]; + $message_media_type = $row["message_media_type"]; + $message_media_url = $row["message_media_url"]; + $message_media_content = $row["message_media_content"]; + $message_json = $row["message_json"]; + } + unset ($prep_statement); + } + +//show the header + require_once "resources/header.php"; + +//get the extensions + $sql = "select * from v_users "; + $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; + $sql .= "and user_enabled = 'true' "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $users = $prep_statement->fetchAll(PDO::FETCH_NAMED); + unset ($prep_statement, $sql); + +//get the users + $sql = "SELECT user_uuid, username FROM v_users "; + $sql .= "WHERE domain_uuid = '".$_SESSION['domain_uuid']."' "; + $sql .= "ORDER by username asc "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $users = $prep_statement->fetchAll(PDO::FETCH_NAMED); + +//show the content + echo "
\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if (strlen($message_media_type) > 0) { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + if ($_GET['debug'] == 'true') { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo " \n"; + echo " \n"; + echo " "; + echo "
".$text['title-message']."

\n"; + echo " "; + echo " "; + echo "
\n"; + echo " ".$text['label-username']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-username']."\n"; + echo "
\n"; + echo " ".$text['label-message_type']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-message_type']."\n"; + echo "
\n"; + echo " ".$text['label-message_direction']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-message_direction']."\n"; + echo "
\n"; + echo " ".$text['label-message_date']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-message_date']."\n"; + echo "
\n"; + echo " ".$text['label-message_from']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-message_from']."\n"; + echo "
\n"; + echo " ".$text['label-message_to']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-message_to']."\n"; + echo "
\n"; + echo " ".$text['label-message_text']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-message_text']."\n"; + echo "
\n"; + echo "  \n"; + echo "\n"; + $image_source = 'data: '.mime_content_type($message_media_type).';base64,'.$message_media_content; + echo ""; + echo "
\n"; + echo "
\n"; + echo " ".$text['label-message_media_type']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-message_media_type']."\n"; + echo "
\n"; + echo " ".$text['label-message_media_url']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-message_media_url']."\n"; + echo "
\n"; + echo " ".$text['label-message_media_content']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-message_media_content']."\n"; + echo "
\n"; + echo " ".$text['label-message_json']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-message_json']."\n"; + echo "
\n"; + echo " \n"; + echo " \n"; + echo "
"; + echo "
"; + echo "

"; + +//include the footer + require_once "resources/footer.php"; + +?> \ No newline at end of file diff --git a/app/messages/messages.php b/app/messages/messages.php new file mode 100644 index 0000000000..37f39f800e --- /dev/null +++ b/app/messages/messages.php @@ -0,0 +1,273 @@ + + Portions created by the Initial Developer are Copyright (C) 2016-2018 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +//includes + require_once "root.php"; + require_once "resources/require.php"; + require_once "resources/check_auth.php"; + +//check permissions + if (permission_exists('message_view')) { + //access granted + } + else { + echo "access denied"; + exit; + } + +//add multi-lingual support + $language = new text; + $text = $language->get(); + +//get the action + if (is_array($_POST["messages"])) { + $messages = $_POST["messages"]; + foreach($messages as $row) { + if ($row['action'] == 'delete') { + $action = 'delete'; + break; + } + } + } + +//delete the messages + if (permission_exists('message_delete')) { + if ($action == "delete") { + //download + $obj = new messages; + $obj->delete($messages); + //delete message + messages::add($text['message-delete']); + } + } + +//get variables used to control the order + $order_by = check_str($_GET["order_by"]); + $order = check_str($_GET["order"]); + +//add the search term + $search = strtolower(check_str($_GET["search"])); + if (strlen($search) > 0) { + $sql_search = " ("; + $sql_search .= "lower(message_type) like '%".$search."%' "; + $sql_search .= "or lower(message_direction) like '%".$search."%' "; + $sql_search .= "or lower(message_date) like '%".$search."%' "; + $sql_search .= "or lower(message_from) like '%".$search."%' "; + $sql_search .= "or lower(message_to) like '%".$search."%' "; + $sql_search .= "or lower(message_text) like '%".$search."%' "; + $sql_search .= "or lower(message_media_type) like '%".$search."%' "; + $sql_search .= ") "; + } + +//additional includes + require_once "resources/header.php"; + require_once "resources/paging.php"; + +//prepare to page the results + $sql = "select count(message_uuid) as num_rows from v_messages "; + if ($_GET['show'] == "all" && permission_exists('message_all')) { + if (isset($sql_search)) { + $sql .= "where ".$sql_search; + } + } else { + $sql .= "where (domain_uuid = '".$domain_uuid."' or domain_uuid is null) "; + if (isset($sql_search)) { + $sql .= "and ".$sql_search; + } + } + $prep_statement = $db->prepare($sql); + if ($prep_statement) { + $prep_statement->execute(); + $row = $prep_statement->fetch(PDO::FETCH_ASSOC); + if ($row['num_rows'] > 0) { + $num_rows = $row['num_rows']; + } + else { + $num_rows = '0'; + } + } + +//prepare to page the results + $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; + $param = "&search=".$search; + if ($_GET['show'] == "all" && permission_exists('message_all')) { + $param .= "&show=all"; + } + $page = $_GET['page']; + if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; } + list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page); + $offset = $rows_per_page * $page; + +//get the list + $sql = "select * from v_messages "; + if ($_GET['show'] == "all" && permission_exists('message_all')) { + if (isset($sql_search)) { + $sql .= "where ".$sql_search; + } + } else { + $sql .= "where (domain_uuid = '".$domain_uuid."' or domain_uuid is null) "; + if (isset($sql_search)) { + $sql .= "and ".$sql_search; + } + } + $sql .= "order by message_date desc "; + $sql .= "limit $rows_per_page offset $offset "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $messages = $prep_statement->fetchAll(PDO::FETCH_NAMED); + unset ($prep_statement, $sql); + +//alternate the row style + $c = 0; + $row_style["0"] = "row_style0"; + $row_style["1"] = "row_style1"; + +//define the checkbox_toggle function + echo "\n"; + +//show the content + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "
".$text['title-messages']."
\n"; + + if (permission_exists('message_all')) { + if ($_GET['show'] == 'all') { + echo " "; + } + else { + echo " \n"; + } + } + + echo " \n"; + echo " \n"; + echo "
\n"; + + echo "
\n"; + echo "\n"; + if (is_array($messages)) { + $x = 0; + foreach($messages as $row) { + if ($x == 0) { + echo " \n"; + echo th_order_by('message_type', $text['label-message_type'], $order_by, $order); + echo th_order_by('message_direction', $text['label-message_direction'], $order_by, $order); + echo th_order_by('message_date', $text['label-message_date'], $order_by, $order); + echo th_order_by('message_from', $text['label-message_from'], $order_by, $order); + echo th_order_by('message_to', $text['label-message_to'], $order_by, $order); + echo th_order_by('message_text', $text['label-message_text'], $order_by, $order); + echo " \n"; + echo "\n"; + + } + if (permission_exists('message_edit')) { + $tr_link = "href='message_edit.php?id=".escape($row['message_uuid'])."'"; + } + echo "\n"; + //echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + //echo " \n"; + //echo " \n"; + //echo " \n"; + //echo " \n"; + echo " \n"; + echo "\n"; + $x++; + if ($c==0) { $c=1; } else { $c=0; } + } //end foreach + unset($sql, $messages); + } //end if results + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo " \n"; + echo " "; + if (permission_exists('message_add')) { + echo " $v_link_label_add"; + } + else { + echo " \n"; + } + echo "
".escape($row['user_uuid'])." ".escape($row['message_type'])." ".escape($row['message_direction'])." ".escape($row['message_date'])." ".escape($row['message_from'])." ".escape($row['message_to'])." ".escape($row['message_text'])." ".escape($row['message_media_type'])." ".escape($row['message_media_url'])." ".escape($row['message_media_content'])." ".escape($row['message_json'])." "; + if (permission_exists('message_edit')) { + echo "$v_link_label_edit"; + } + if (permission_exists('message_delete')) { + echo ""; + } + echo "
\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "
 $paging_controls"; + if (permission_exists('message_add')) { + echo "$v_link_label_add"; + } + else { + echo " "; + } + echo "
\n"; + echo "
"; + echo "
\n"; + echo "

"; + +//include the footer + require_once "resources/footer.php"; + +?> \ No newline at end of file diff --git a/app/messages/resources/classes/messages2.php b/app/messages/resources/classes/messages2.php new file mode 100644 index 0000000000..c3ffef85fc --- /dev/null +++ b/app/messages/resources/classes/messages2.php @@ -0,0 +1,75 @@ +db) { + require_once "resources/classes/database.php"; + $database = new database; + $database->connect(); + $this->db = $database->db; + } + } + + /** + * Called when there are no references to a particular object + * unset the variables used in the class + */ + public function __destruct() { + foreach ($this as $key => $value) { + unset($this->$key); + } + } + + /** + * delete messages + */ + public function delete($messages) { + if (permission_exists('message_delete')) { + + //delete multiple messages + if (is_array($messages)) { + //get the action + foreach($messages as $row) { + if ($row['action'] == 'delete') { + $action = 'delete'; + break; + } + } + //delete the checked rows + if ($action == 'delete') { + foreach($messages as $row) { + if ($row['action'] == 'delete' or $row['checked'] == 'true') { + $sql = "delete from v_messages "; + $sql .= "where message_uuid = '".$row['message_uuid']."'; "; + $this->db->query($sql); + unset($sql); + } + } + unset($messages); + } + } + } + } //end the delete function + + } //end the class +} + +/* +$obj = new messages; +$obj->delete(); +*/ + +?> \ No newline at end of file diff --git a/app/messages/root.php b/app/messages/root.php new file mode 100644 index 0000000000..6fdf32f37b --- /dev/null +++ b/app/messages/root.php @@ -0,0 +1,90 @@ + + Portions created by the Initial Developer are Copyright (C) 2008-2012 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +// make sure the PATH_SEPARATOR is defined + umask(2); + if (!defined("PATH_SEPARATOR")) { + if (strpos($_ENV["OS"], "Win") !== false) { + define("PATH_SEPARATOR", ";"); + } else { + define("PATH_SEPARATOR", ":"); + } + } + + if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html'; + + // make sure the document_root is set + $_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]); + if(PHP_SAPI == 'cli'){ + chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME)); + $script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]); + $dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME)); + if (file_exists('/project_root.php')) { + $path = '/'; + } else { + $i = 1; + $path = ''; + while ($i < count($dirs)) { + $path .= '/' . $dirs[$i]; + if (file_exists($path. '/project_root.php')) { + break; + } + $i++; + } + } + $_SERVER["DOCUMENT_ROOT"] = $path; + }else{ + $_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]); + } + $_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]); +// try to detect if a project path is being used + if (!defined('PROJECT_PATH')) { + if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) { + define('PROJECT_PATH', '/fusionpbx'); + } elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) { + define('PROJECT_PATH', ''); + } else { + $dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME))); + $i = 1; + $path = $_SERVER["DOCUMENT_ROOT"]; + while ($i < count($dirs)) { + $path .= '/' . $dirs[$i]; + if (file_exists($path. '/project_root.php')) { + break; + } + $i++; + } + if(!file_exists($path. '/project_root.php')){ + die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance"); + } + $project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path); + define('PROJECT_PATH', $project_path); + } + $_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH); + set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]); + } + +?> \ No newline at end of file