You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
147 lines
5.4 KiB
147 lines
5.4 KiB
<?php
|
|
|
|
header("Cache-Control: no-cache, must-revalidate");
|
|
header("Expires: Sat, 6 May 1998 03:10:00 GMT");
|
|
|
|
/*===============================================*\
|
|
|| ############################################# ||
|
|
|| # JAKWEB.CH / Version 2.0.2 # ||
|
|
|| # ----------------------------------------- # ||
|
|
|| # Copyright 2021 JAKWEB All Rights Reserved # ||
|
|
|| ############################################# ||
|
|
\*===============================================*/
|
|
|
|
if (!file_exists('../../config.php')) die('ajax/[available.php] config.php not exist');
|
|
require_once '../../config.php';
|
|
|
|
// Import the user or standard language file
|
|
if (isset($_SESSION['jak_lcp_lang']) && file_exists(APP_PATH.JAK_OPERATOR_LOC.'/lang/'.$_SESSION['jak_lcp_lang'].'.php')) {
|
|
include_once(APP_PATH.JAK_OPERATOR_LOC.'/lang/'.$_SESSION['jak_lcp_lang'].'.php');
|
|
$lang = $_SESSION['jak_lcp_lang'];
|
|
} else {
|
|
include_once(APP_PATH.JAK_OPERATOR_LOC.'/lang/'.JAK_LANG.'.php');
|
|
$lang = JAK_LANG;
|
|
}
|
|
|
|
if (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !isset($_SESSION['jak_lcp_idhash'])) die(json_encode(array('status' => 0, "html" => $jkl['g79'])));
|
|
|
|
if ($_POST['conv'] == "open" || (!is_numeric($_POST['id']) && !is_numeric($_POST['uid']))) die(json_encode(array('status' => 0, "html" => $jkl['g79'])));
|
|
|
|
// We sanitize the input
|
|
$message = strip_tags($_POST['msg']);
|
|
$message = filter_var($message, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
|
$message = trim($message);
|
|
|
|
// Check for empty message
|
|
if (empty($message)) die(json_encode(array('status' => 0, "html" => $jkl['e1'])));
|
|
|
|
// Check for duplicate messages
|
|
if (isset($_SESSION["oplastmsg"]) && $_SESSION["oplastmsg"] == $message) die(json_encode(array("status" => 0, "html" => $jkl['e45'])));
|
|
|
|
$row = $jakdb->get("checkstatus", ["convid", "hide"], ["convid" => $_POST['id']]);
|
|
|
|
if (isset($row) && !empty($row)) {
|
|
|
|
define('BASE_URL_IMG', str_replace(JAK_OPERATOR_LOC.'/ajax/', '', BASE_URL));
|
|
|
|
if (!$row['hide']) {
|
|
|
|
if (isset($_POST['msgedit']) && !empty($_POST['msgedit']) && is_numeric($_POST['msgedit'])) {
|
|
|
|
// include the PHP library (if not autoloaded)
|
|
require('../../class/class.emoji.php');
|
|
|
|
// update the message
|
|
$jakdb->update("transcript", ["message" => $message, "editoid" => $_POST['userid'], "edited" => $jakdb->raw("NOW()")], ["AND" => ["id" => $_POST['msgedit'], "convid" => $row['convid']]]);
|
|
|
|
// send to client
|
|
$jakdb->update("checkstatus", ["msgedit" => $_POST['msgedit'], "typeo" => 0], ["convid" => $row['convid']]);
|
|
|
|
// Show the edited symbol with the date
|
|
$showedit = ' | <i class="fa fa-edit"></i> '.JAK_base::jakTimesince(time(), "", JAK_TIMEFORMAT);
|
|
|
|
// We convert the urls/br
|
|
$messageemoji = nl2br(replace_urls($message), false);
|
|
|
|
$messageemoji = Emojione\Emojione::toImage($messageemoji);
|
|
|
|
die(json_encode(array('status' => 1, 'edit' => $messageemoji, 'editblank' => $message, 'editid' => $_POST['msgedit'], 'showedit' => $showedit)));
|
|
|
|
} else {
|
|
|
|
// Check if we have to quote
|
|
$msgquote = 0;
|
|
if (isset($_POST['msgquote']) && !empty($_POST['msgquote']) && is_numeric($_POST['msgquote'])) $msgquote = $_POST['msgquote'];
|
|
|
|
// Check if we have a short code for the message.
|
|
if (!empty($HD_RESPONSES) && is_array($HD_RESPONSES)) foreach ($HD_RESPONSES as $r) {
|
|
|
|
if ($message == $r["short_code"]) {
|
|
$message = $r["message"];
|
|
break;
|
|
}
|
|
}
|
|
|
|
// the last message in a session
|
|
$_SESSION["oplastmsg"] = $message;
|
|
|
|
$jakdb->insert("transcript", [
|
|
"name" => $_POST['oname'],
|
|
"message" => $message,
|
|
"user" => $_POST['userid'].'::'.$_POST['uname'],
|
|
"operatorid" => $_POST['userid'],
|
|
"convid" => $row['convid'],
|
|
"quoted" => $msgquote,
|
|
"class" => "admin",
|
|
"time" => $jakdb->raw("NOW()")]);
|
|
|
|
if (!empty($_POST['url'])) {
|
|
|
|
$jakdb->insert("transcript", [
|
|
"name" => $_POST['oname'],
|
|
"message" => $_POST['url'],
|
|
"user" => $_POST['userid'].'::'.$_POST['uname'],
|
|
"operatorid" => $_POST['userid'],
|
|
"convid" => $row['convid'],
|
|
"class" => "url",
|
|
"plevel" => 1,
|
|
"time" => $jakdb->raw("NOW()")]);
|
|
|
|
}
|
|
|
|
// Update the status after answer
|
|
$jakdb->update("checkstatus", ["newc" => 1, "typeo" => 0, "newo" => 0, "statuso" => time()], ["convid" => $row['convid']]);
|
|
|
|
}
|
|
|
|
die(json_encode(array('status' => 1, 'edit' => false)));
|
|
|
|
} elseif ($row['hide']) {
|
|
|
|
if (!empty($HD_ANSWERS) && is_array($HD_ANSWERS)) foreach ($HD_ANSWERS as $v) {
|
|
|
|
if ($v["msgtype"] == 4 && $v["lang"] == $lang) {
|
|
|
|
$phold = array("%operator%","%client%","%email%");
|
|
$replace = array($_POST['oname'], $_POST['uname'], JAK_EMAIL);
|
|
$message = str_replace($phold, $replace, $v["message"]);
|
|
|
|
$jakdb->insert("transcript", [
|
|
"name" => $_POST['oname'],
|
|
"message" => $message,
|
|
"convid" => $row['convid'],
|
|
"class" => "notice",
|
|
"time" => $jakdb->raw("NOW()")]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
die(json_encode(array('status' => 1, 'edit' => false)));
|
|
|
|
} else {
|
|
|
|
die(json_encode(array('status' => 0, "html" => $jkl['e1'])));
|
|
}
|
|
}
|
|
?>
|
|
|