@', $html)) { showError('PHP not allowed!'); } } } if (isset($_POST['file'])) { $file = sanitizeFileName($_POST['file']); } if (isset($_GET['action'])) { $action = htmlspecialchars(strip_tags($_GET['action'])); } if ($action) { //file manager actions, delete and rename switch ($action) { case 'rename': $newfile = sanitizeFileName($_POST['newfile']); if ($file && $newfile) { if (rename($file, $newfile)) { echo "File '$file' renamed to '$newfile'"; } else { showError("Error renaming file '$file' renamed to '$newfile'"); } } break; case 'delete': if ($file) { if (unlink($file)) { echo "File '$file' deleted"; } else { showError("Error deleting file '$file'"); } } break; case 'saveReusable': //block or section $type = $_POST['type'] ?? false; $name = $_POST['name'] ?? false; $html = $_POST['html'] ?? false; if ($type && $name && $html) { $file = sanitizeFileName("$type/$name"); if ($file) { $dir = dirname($file); if (!is_dir($dir)) { echo "$dir folder does not exist\n"; if (mkdir($dir, 0777, true)) { echo "$dir folder was created\n"; } else { showError("Error creating folder '$dir'\n"); } } if (file_put_contents($file, $html)) { echo "File saved '$file'"; } else { showError("Error saving file '$file'\nPossible causes are missing write permission or incorrect file path!"); } } else { showError('Invalid filename!'); } } else { showError("Missing reusable element data!\n"); } break; case 'oembedProxy': $url = $_GET['url'] ?? ''; if (validOembedUrl($url)) { $options = array( 'http'=>array( 'method'=>"GET", 'header'=> 'User-Agent: ' . $_SERVER['HTTP_USER_AGENT'] . "\r\n" ) ); $context = stream_context_create($options); header('Content-Type: application/json'); echo file_get_contents($url, false, $context ); } else { showError('Invalid url!'); } break; default: showError("Invalid action '$action'!"); } } else { //save page if ($html) { if ($file) { $dir = dirname($file); if (!is_dir($dir)) { echo "$dir folder does not exist\n"; if (mkdir($dir, 0777, true)) { echo "$dir folder was created\n"; } else { showError("Error creating folder '$dir'\n"); } } if (file_put_contents($file, $html)) { echo "File saved '$file'"; } else { showError("Error saving file '$file'\nPossible causes are missing write permission or incorrect file path!"); } } else { showError('Filename is empty!'); } } else { showError('Html content is empty!'); } }