72 lines
2.3 KiB
PHP
72 lines
2.3 KiB
PHP
<?php
|
|
$_shared = $_SERVER["DOCUMENT_ROOT"]."/templates";
|
|
require "$_shared/lib.php";
|
|
switch ($_SERVER["REQUEST_METHOD"]) {
|
|
case "GET":
|
|
$name = $_GET["name"] ?? "";
|
|
$file = __DIR__."/files/$name";
|
|
$is_file = !is_dir($file);
|
|
if (isset($_GET["delete"])) {
|
|
$is_file ? unlink($file) : rmdir($file);
|
|
header("Location: .?name=".dirname($name));
|
|
exit;
|
|
}
|
|
$title = $is_file ? basename($file) : "";
|
|
$note = $is_file ? file_get_contents($file) : "";
|
|
$date = $is_file ? date("Y-m-d\TH:i", filemtime($file)) : null;
|
|
break;
|
|
case "POST":
|
|
$name = $_POST["name"];
|
|
$file = __DIR__."/files/$name";
|
|
$is_file = !is_dir($file);
|
|
if ($is_file) {
|
|
$oldFile = $file;
|
|
$file = dirname($file);
|
|
$name = dirname($name);
|
|
}
|
|
$file .= "/".$_POST["title"];
|
|
switch ($_POST["type"]) {
|
|
case "note":
|
|
if ($is_file) unlink($oldFile);
|
|
file_put_contents($file, $_POST["note"]);
|
|
break;
|
|
case "file":
|
|
if ($is_file) rename($oldFile, $file);
|
|
else move_uploaded_file($_FILES["file"]["tmp_name"], $file);
|
|
break;
|
|
case "dir":
|
|
mkdir($file);
|
|
break;
|
|
}
|
|
$date = $_POST["date"];
|
|
if ($date == "") $date = null;
|
|
else $date = strtotime($date);
|
|
touch($file, $date);
|
|
header("Location: .?name=$name");
|
|
exit;
|
|
}
|
|
$_title = "Notes";
|
|
require "$_shared/header.php";
|
|
?>
|
|
<form method="post" enctype="multipart/form-data">
|
|
<input name="name" value="<?=$name?>" hidden>
|
|
<input name="date" type="datetime-local" value="<?=$date?>">
|
|
<input name="type" type="radio" value="note" checked>note
|
|
<input name="type" type="radio" value="file">file<br>
|
|
<input name="title" placeholder="title" value="<?=$title?>" required>
|
|
<input name="type" type="radio" value="dir">dir
|
|
<button type="submit">Save</button><br>
|
|
<input name="file" type="file" hidden>
|
|
<textarea name="note" class="note"><?=$note?></textarea>
|
|
</form>
|
|
<script>
|
|
document.querySelectorAll("[name='type']").forEach(function(radio) {
|
|
radio.addEventListener("change", () => {
|
|
document.querySelector("[name='note']").hidden = radio.value !== "note";
|
|
document.querySelector("[name='file']").hidden = radio.value !== "file";
|
|
});
|
|
});
|
|
</script>
|
|
<?php
|
|
require "$_shared/footer.php";
|
|
?>
|