You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
3.1 KiB
PHP

<?php
include('config.inc.php');
$db = new PDO('mysql:host=' . $config['host'] . ';dbname=' . $config['database'], $config['dbuser'], $config['password'], [
\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
\PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8mb4'"
]);
$result = array('res' => 0, 'data' => array());
$body = @file_get_contents('php://input');
$reqData = $_SERVER['REQUEST_METHOD'] == 'POST' ? $_POST : $_GET;
$id = empty($reqData['id']) ? 0 : intval($reqData['id']);
$action = empty($reqData['act']) ? '' : $reqData['act'];
if ($action == 'del')
{
$values = array('id' => $id);
$sql = "DELETE FROM mntn_activity_terminals WHERE `activity_id`=:id";
$stmt = $db->prepare($sql);
$stmt->execute($values);
$stmt = null;
$sql = "DELETE FROM mntn_activities WHERE `id`=:id LIMIT 1";
$stmt = $db->prepare($sql);
$stmt->execute(array('id' => $id));
}
else if ($action == 'edt')
{
$title = empty($reqData['title']) ? '' : $reqData['title'];
$id = empty($reqData['id']) ? 0 : intval($reqData['id']);
$cmdids = empty($_POST['cmdids']) ? array() : $reqData['cmdids'];
$contents = str_replace("\r\n", "\n", $cmdids);
$contents = str_replace("\n\r", "\n", $contents);
$contents = str_replace("\r", "\n", $contents);
$cmdids = explode("\n", $contents);
$cmdids = str_replace("'", "''", $cmdids);
$values = array('id' => $id, 'title' => $title);
$sql = "UPDATE mntn_activities SET `title`=:title,`term_count`=:termCount WHERE `id`=:id LIMIT 1";
$stmt = $db->prepare($sql);
$stmt->execute(array('id' => $id, 'title' => $title, 'termCount' => count($cmdids)));
$sql = "DELETE FROM mntn_activity_terminals WHERE `activity_id`=:id";
$stmt = $db->prepare($sql);
$stmt->execute(array('id' => $id));
$sql = "INSERT INTO mntn_activity_terminals(`activity_id`,`term_id`) SELECT :id AS activity_id,`id` FROM terminals WHERE `cmdid` IN('" . implode("','", $cmdids) . "')";
$stmt = $db->prepare($sql);
$stmt->execute(array('id' => $id));
$result['data'][] = $id;
}
else if ($action == 'new')
{
$title = empty($_POST['title']) ? '' : $_POST['title'];
// $id = empty($_POST['id']) ? 0 : intval($_POST['id']);
$cmdids = isset($_POST['cmdids']) ? trim($_POST['cmdids']) : '';
$contents = str_replace("\r\n", "\n", $cmdids);
$contents = str_replace("\n\r", "\n", $contents);
$contents = str_replace("\r", "\n", $contents);
$cmdids = explode("\n", $contents);
$cmdids = str_replace("'", "''", $cmdids);
$sql = "INSERT INTO mntn_activities(`title`,`term_count`) VALUES(:title,:termCount)";
$stmt = $db->prepare($sql);
$stmt->execute(array('title' => $title, 'termCount' => count($cmdids)));
$id = $db->lastInsertId();
if (!empty($cmdids))
{
$sql = "INSERT INTO mntn_activity_terminals(`activity_id`,`term_id`) SELECT :id AS activity_id,`id` FROM terminals WHERE `cmdid` IN('" . implode("','", $cmdids) . "')";
$stmt = $db->prepare($sql);
$stmt->execute(array('id' => $id));
header ('Sql: ' . $sql . ' ' . $id);
}
$result['data'][] = $id;
}
header ('Access-Control-Allow-Origin: *');
header ('Content-type: application/json; charset=utf-8');
echo json_encode($result, JSON_UNESCAPED_UNICODE);