Joywork/ajax/addVkPost.php

231 lines
7.4 KiB
PHP
Raw Normal View History

2026-05-22 20:21:54 +02:00
<?php
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
//ini_set('display_errors', 1);
//error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);
if($_SESSION['id'] && isset($_POST['objId']) && is_numeric($_POST['objId']) && isset($_POST['text'])) {
$sql3="SELECT * FROM objects WHERE objects.id = $_POST[objId]";
$rez_obj=mysql_query($sql3);
$obj=mysql_fetch_assoc($rez_obj);
if ($obj) {
$sqlPhotoInfo = "SELECT oop.sort_order, p.photo FROM objects_object_photo oop, object_photo p WHERE p.id = oop.object_photo_id AND oop.object_id = $obj[id] ORDER BY oop.sort_order";
$rezPhotoInfo = mysql_query($sqlPhotoInfo);
if (mysql_num_rows($rezPhotoInfo) > 0) {
while ($photoInfo = mysql_fetch_assoc($rezPhotoInfo)) {
$obj['photo' . $photoInfo['sort_order']] = $photoInfo['photo'];
}
}
$sqlUser = "SELECT * FROM users WHERE id = $_SESSION[id]";
$rez_user = mysql_query($sqlUser);
$user = mysql_fetch_assoc($rez_user);
if (isset($user['vk_token'])) {
$config['access_token'] = $user['vk_token'];
require_once("../vk.php");
$v = new Vk($config);
$files = array();
if( !is_dir( $_SERVER['DOCUMENT_ROOT'] . "/photos" ) ) {
@mkdir( $_SERVER['DOCUMENT_ROOT'] . "/photos", 0777 );
@chmod( $_SERVER['DOCUMENT_ROOT'] . "/photos", 0777 );
}
if( !is_dir( $_SERVER['DOCUMENT_ROOT'] . "/photos/vk_temp" ) ) {
@mkdir( $_SERVER['DOCUMENT_ROOT'] . "/photos/vk_temp", 0777 );
@CHMOD( $_SERVER['DOCUMENT_ROOT'] . "/photos/vk_temp", 0777 );
}
if( !is_dir( $_SERVER['DOCUMENT_ROOT'] . "/photos/vk_temp/" . $obj['id'] ) ) {
@mkdir( $_SERVER['DOCUMENT_ROOT'] . "/photos/vk_temp/" . $obj['id'], 0777 );
@CHMOD( $_SERVER['DOCUMENT_ROOT'] . "/photos/vk_temp/" . $obj['id'], 0777 );
}
for ($num = 1; $num <= 20; $num++) {
if (isset($obj['photo' . $num]) && $obj['photo' . $num]) {
if (stripos($obj['photo' . $num], "http://") === false && stripos($obj['photo' . $num], "https://") === false) {
if (substr($obj['photo' . $num], -1) == '.') {
$pathInfo = pathinfo($obj['photo' . $num]);
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/photos/vk_temp/" . $obj['id'] . "/" . $pathInfo['basename'] . 'jpg', file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/photos/' . $obj['photo' . $num]));
$obj['photo' . $num] = $_SERVER['DOCUMENT_ROOT'] . '/photos/vk_temp/' . $obj['id'] . "/" . $pathInfo['basename'] . 'jpg';
} else {
$obj['photo' . $num] = $_SERVER['DOCUMENT_ROOT'] . '/photos/' . $obj['photo' . $num];
}
} else {
$pathInfo = pathinfo($obj['photo' . $num]);
$filename = $pathInfo['basename'];
$lastPos = strrpos($filename, '.');
if ($lastPos) {
$filename = substr($filename, $lastPos);
}
if (mb_strlen($filename) > 5) {
$filename = ".jpg";
}
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/photos/vk_temp/" . $obj['id'] . "/" . $num . $filename, file_get_contents($obj['photo' . $num]));
$obj['photo' . $num] = $_SERVER['DOCUMENT_ROOT'] . '/photos/vk_temp/' . $obj['id'] . "/" . $num . $filename;
}
$files[] = $obj['photo' . $num];
if (count($files) == 5) {
break;
}
}
}
$vkGroupIds = explode(",", trim($user['vk_group_id'], ","));
$error = "";
if($_POST['toGroup'] == '1') {
foreach($vkGroupIds as $vkGroupId){
if (in_array(trim($vkGroupId), $_POST['groupIds'])) {
$method = 'wall.post';
$params = array(); //в этом массиве - параметры, которые мы отправляем
$params['message'] = $_POST['text']; //в данном случае - только само сообщение
$params['owner_id'] = '-' . trim($vkGroupId); //Ид группы
if (isset($user['vk_post_as_group']) && $user['vk_post_as_group'] == 1) {
$params['from_group'] = '1'; //От имени группы
}
if ($files && count($files) > 0) {
$responseImg = $v->upload_photo(trim($vkGroupId), $user['vk_user_id'], $files); //выполняем
}
if (isset($responseImg) && count($responseImg) > 0) {
$params['attachments'] = implode(",", $responseImg); //картинки
}
$response = $v->api($method, $params); //выполняем
if (isset($response['error'])) {
$error .= 'error:Ошибка добавления поста в группу: ' . $response['error']['error_msg'];
//var_dump($response); //печатаем ответ, который приходит в формате JSON, но в виде массива
}
}
}
}
if($_POST['toUser'] == '1') {
$method = 'wall.post';
$params = array(); //в этом массиве - параметры, которые мы отправляем
$params['message'] = $_POST['text']; //в данном случае - только само сообщение
$params['owner_id'] = $user['vk_user_id']; //Ид пользователя
if ($files && count($files) > 0) {
$responseImg = $v->upload_photo("", $user['vk_user_id'], $files); //выполняем
}
if (isset($responseImg) && count($responseImg) > 0) {
$params['attachments'] = implode(",", $responseImg); //картинки
}
$response = $v->api($method, $params); //выполняем
if (isset($response['error'])) {
$error .= 'error:Ошибка добавления поста на стену пользователя: ' . $response['error']['error_msg'];
//var_dump($response); //печатаем ответ, который приходит в формате JSON, но в виде массива
}
}
if (strlen($error) > 0) {
echo $error;
} else {
echo 'success';
}
// удаляем файлы
foreach ($files as $name) {
if (stripos($name, "vk_temp") !== false) {
unlink($name);
}
}
}
}
}