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')) { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //get number of messages to load $number = preg_replace('{[\D]}', '', $_GET['number']); //set refresh flag $refresh = $_GET['refresh'] == 'true' ? true : false; //get messages $since = date("Y-m-d H:i:s", strtotime("-24 hours")); $sql = "select * from v_messages "; $sql .= "where user_uuid = '".$_SESSION['user_uuid']."' "; $sql .= "and (domain_uuid = '".$domain_uuid."' or domain_uuid is null) "; //$sql .= "and message_date >= '".$since."' "; $sql .= "and (message_from like '%".$number."' or message_to like '%".$number."') "; $sql .= "order by message_date asc "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $messages = $prep_statement->fetchAll(PDO::FETCH_NAMED); unset ($prep_statement, $sql); //get media (if any) $sql = "select message_uuid, message_media_uuid, message_media_type, length(message_media_content) as message_media_size from v_message_media "; $sql .= "where user_uuid = '".$_SESSION['user_uuid']."' "; $sql .= "and (domain_uuid = '".$domain_uuid."' or domain_uuid is null) "; $sql .= "and message_uuid in ( "; foreach ($messages as $message) { $message_uuids[] = "'".$message['message_uuid']."'"; } $sql .= implode(',', $message_uuids); $sql .= ") "; $sql .= "and message_media_type <> 'txt' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $rows = $prep_statement->fetchAll(PDO::FETCH_NAMED); unset ($prep_statement, $sql); //prep media array if (is_array($rows) && sizeof($rows) != 0) { $x = 0; foreach ($rows as $row) { $message_media[$row['message_uuid']][$x]['uuid'] = $row['message_media_uuid']; $message_media[$row['message_uuid']][$x]['type'] = $row['message_media_type']; $message_media[$row['message_uuid']][$x]['size'] = $row['message_media_size']; $x++; } } //css styles echo "\n"; if (!$refresh) { echo "
\n"; } //output messages if (is_array($messages) && sizeof($messages) != 0) { foreach ($messages as $message) { //parse from message if ($message['message_direction'] == 'inbound') { $message_from = $message['message_to']; $media_source = format_phone($message['message_from']); } if ($message['message_direction'] == 'outbound') { $media_source = format_phone($message['message_to']); } //message bubble echo ""; if ($message['message_text'] != '') { echo str_replace("\n",'
',$message['message_text'])."
\n"; } if (is_array($message_media[$message['message_uuid']]) && sizeof($message_media[$message['message_uuid']]) != 0) { foreach ($message_media[$message['message_uuid']] as $media) { if ($media['type'] != 'txt') { if ($media['type'] == 'jpg' || $media['type'] == 'jpeg' || $media['type'] == 'gif' || $media['type'] == 'png') { echo ""; } else { echo ""; } echo ""; echo "".strtoupper($media['type']).' · '.strtoupper(byte_convert($media['size'])).""; echo "\n"; } } } echo "".format_when_local($message['message_date'])."\n"; echo "
\n"; } echo " \n"; } if (!$refresh) { echo "
\n"; if (permission_exists('message_add')) { //output input form echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo ""; echo "\n"; echo "
\n"; echo " \n"; echo " \"".$text['label-refresh_pause']."\" "; echo " \n"; echo "
\n"; echo "
\n"; echo "
\n"; //js to load messages for clicked number echo "\n"; } } ?>