summaryrefslogtreecommitdiff
path: root/admin/approve/index.php
blob: 010aba44420fb7c5786604461933ad35d4bf6f12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php

require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/functions.php";

$id = $_GET['id'] ?? null;

if (isset($id)) {
    if (!preg_match("/[a-zA-Z0-6]/m", $id)) {
        die();
    }

    if (!file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/requests/" . $id . ".json")) {
        die();
    }
} else {
    die();
}

$request = json_decode(pf_utf8_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/requests/" . $id . ".json")), true);

if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles/" . $request["author"] . ".json")) {
    while (trim(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles/" . $request["author"] . ".json")) === "") {}

    $profile = json_decode(pf_utf8_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles/" . $request["author"] . ".json")), true);
    loadLang(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/lang/" . $profile["language"] . ".json"), true), "lang", $profile["language"]);

    $index = array_search($id, $profile["requests"]);

    if ($index !== false) {
        unset($profile["requests"][$index]);
    }

    $profile["alerts"][] = [
        "title" => l("lang_notifications_approve_title"),
        "message" => str_replace("%3", date('H:i', strtotime($request["date"])), str_replace("%2", formatDate($request["date"]), str_replace("%1", l("lang_request_types_" . $request["type"]), l("lang_notifications_approve_message")))),
        "date" => date('c'),
        "read" => false
    ];

    file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles/" . $request["author"] . ".json", pf_utf8_encode(json_encode($profile, JSON_PRETTY_PRINT)));
}

if ($request["type"] === "galleryupload" && !isset($_GET['mark'])) {
    if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gallery/" . $request["id"] . ".json")) {
        $gallery = json_decode(pf_utf8_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gallery/" . $request["id"] . ".json")), true);
        $gallery["images"][] = [
            "id" => $id,
            "author" => $request["author"],
            "date" => $request["date"]
        ];
        $gallery["update"] = date('c');
        $gallery["update_user"] = $request["author"];

        file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gallery/" . $request["id"] . ".json", pf_utf8_encode(json_encode($gallery)));
    }
}

if (($request["type"] === "gallerymeta" || $request["type"] === "article" || $request["type"] === "userpage") && !isset($_GET['mark'])) {
    $file = "/";
    if ($request["type"] === "gallerymeta") $file = $_SERVER['DOCUMENT_ROOT'] . "/includes/data/gallery/" . $request["id"] . ".json";
    if ($request["type"] === "article") $file = $_SERVER['DOCUMENT_ROOT'] . "/includes/data/articles/" . $request["id"] . ".json";
    if ($request["type"] === "userpage") $file = $_SERVER['DOCUMENT_ROOT'] . "/includes/data/people/" . $request["id"] . ".json";

    $d = json_decode(pf_utf8_decode(file_get_contents($file)), true);
    $d["contents"] = $request["contents"];
    $d["update"] = date('c');
    $d["update_user"] = $request["author"];

    file_put_contents($file, pf_utf8_encode(json_encode($d)));
}

rename($_SERVER['DOCUMENT_ROOT'] . "/includes/data/requests/" . $id . ".json", $_SERVER['DOCUMENT_ROOT'] . "/includes/data/archive/" . $id . ".json");

header("Location: /admin/requests");
die();