File size: 4.63Kb
<?PHP
require(__DIR__ . '/../start.php');
/*
Проверка валидности
*/
IsValidActions();
/*
Проверка на авторизацию
*/
if(empty($_SESSION['id'])) {
AlertError(getLang('backstage_auth'));
}
$Messages = new Messages;
/*
Отправка сообщения
*/
if(isset($_POST['Send'])) {
if(isset($_POST['first_message'])) {
$Dialog = dialogs()->findPeer($_POST['userid']);
if(empty($Dialog)) {
$_POST['peerid'] = dialogs()->Create([
$_SESSION['id'],
$_POST['userid']
]);
}
else {
$_POST['peerid'] = $Dialog->id;
}
}
if(empty($_POST['peerid']) || !dialogs()->IsUserPeer($_POST['peerid'])) {
AlertError(getLang('backstage_clip_no_user'));
}
try {
$Messages->Send($_POST['peerid'], $_POST['message']);
Result([
'Alert' => 'Success',
'Content' => $Messages->GetMessageRange($_POST['peerid'], $_POST['lastid']),
'LastId' => $Messages->GetLastId($_POST['peerid']),
'PeerId' => $_POST['peerid'],
'Dialogs' => dialogs()->GetDialogs(),
'Clear' => isset($_POST['first_message'])
]);
}
catch(Exception $e) {
AlertError($e->getMessage());
}
}
/*
Массовая рассылка
*/
if(isset($_POST['massMailing'])) {
if(empty($_POST['recipient'])) {
AlertError('Выберите получателей');
}
$Uploads = new Uploads;
$peerids = [];
foreach($_POST['recipient'] as $key => $userid) {
if($userid == $_SESSION['id']) {
continue;
}
$Dialog = dialogs()->findPeer($userid);
if(empty($Dialog)) {
$_POST['peerid'] = dialogs()->Create([$_SESSION['id'], $userid]);
}
else {
$_POST['peerid'] = $Dialog->id;
}
if(empty($_POST['peerid']) || !dialogs()->IsUserPeer($_POST['peerid'])) {
continue;
}
$peerids[] = $_POST['peerid'];
try {
if(mb_strlen($_POST['message']) >= 1) {
$Messages->Send($_POST['peerid'], $_POST['message']);
}
}
catch(Exception $e) {
continue;
}
}
try {
$Uploads->Start($_FILES, $peerids);
}
catch(Exception $e) {}
Result(['Alert' => 'Success']);
}
/*
Диапазон сообщений
*/
if(isset($_POST['GetMessageRange'])) {
if(empty($_POST['peerid']) || !dialogs()->IsUserPeer($_POST['peerid'])) {
Result([
'Alert' => 'Info',
'Dialogs' => dialogs()->GetDialogs()
]);
}
if(!$Messages->GetLastId($_POST['peerid']) && (empty($_POST['lastid']) || $_POST['lastid'] == 0)) {
return;
}
try {
Result([
'Alert' => 'Success',
'Content' => $Messages->GetMessageRange($_POST['peerid'], $_POST['lastid']),
'LastId' => $Messages->GetLastId($_POST['peerid']),
'Dialogs' => dialogs()->GetDialogs()
]);
}
catch(Exception $e) {
Result([
'Alert' => 'Info',
'Dialogs' => dialogs()->GetDialogs()
]);
}
}
/*
Получение сообщений
*/
if(isset($_POST['GetMessages'])) {
if(!dialogs()->IsUserPeer($_POST['peerid'])) {
AlertError(getLang('system_no_dialog'));
}
try {
$MessagesList = $Messages->GetMessagesGUI($_POST['peerid']);
}
catch(Exception $e) {
$MessagesList = $e->getMessage();
}
$Dialog = dialogs()->GetDialog($_POST['peerid']);
Result([
'Content' => $MessagesList,
'peerImage' => $Dialog['image'],
'peerName' => $Dialog['title'],
'LastId' => $Messages->GetLastId($_POST['peerid']),
'Dialogs' => dialogs()->GetDialogs()
]);
}
/*
Удаление сообщения (визуально)
*/
if(isset($_POST['Trash'])) {
$dataMessages = $Messages->Get($_POST['msgid']);
if(!dialogs()->IsUserPeer($dataMessages->peerid)) {
AlertError(getLang('system_no_dialog'));
}
try {
$Messages->addHidden($_POST['msgid'], $_SESSION['id']);
Result([
'Alert' => 'Success'
]);
}
catch(Exception $e) {
AlertError($e->getMessage());
}
}
/*
Подгрузка старых сообщений
*/
if(isset($_POST['GetMessageRangeOld'])) {
if(empty($_POST['peerid']) || !dialogs()->IsUserPeer($_POST['peerid'])) {
Result([
'Alert' => 'Info',
'Dialogs' => dialogs()->GetDialogs()
]);
}
if(!$Messages->GetLastId($_POST['peerid']) && (empty($_POST['lastid']) || $_POST['lastid'] == 0)) {
return;
}
try {
Result([
'Alert' => 'Success',
'Content' => $Messages->GetMessageRangeOld($_POST['peerid'], $_POST['firstid'])
]);
}
catch(Exception $e) {
Result([
'Alert' => 'Info'
]);
}
}