diff options
| author | Syndamia <kamen@syndamia.com> | 2025-02-02 12:50:39 +0200 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2025-02-02 12:50:39 +0200 |
| commit | e409c1c7123dce3838d6dd1a72b4b0c2f00fba10 (patch) | |
| tree | 08e01d990782d91233296346592c04e52da35d7f /views | |
| parent | c83d7e03b607447cb203c0a17edaca9baf1d087f (diff) | |
| download | nowayforward_human-e409c1c7123dce3838d6dd1a72b4b0c2f00fba10.tar nowayforward_human-e409c1c7123dce3838d6dd1a72b4b0c2f00fba10.tar.gz nowayforward_human-e409c1c7123dce3838d6dd1a72b4b0c2f00fba10.zip | |
feat(views): Separate archive creation to it's own view
Diffstat (limited to 'views')
| -rw-r--r-- | views/archive/create/index.php | 1 | ||||
| -rw-r--r-- | views/archive/create/meta.php | 5 | ||||
| -rw-r--r-- | views/archive/index.php | 12 | ||||
| -rw-r--r-- | views/archive/meta.php | 50 | ||||
| -rw-r--r-- | views/global/router.php | 2 |
5 files changed, 63 insertions, 7 deletions
diff --git a/views/archive/create/index.php b/views/archive/create/index.php new file mode 100644 index 0000000..378d2de --- /dev/null +++ b/views/archive/create/index.php @@ -0,0 +1 @@ +<h2>Archiving <?= $url ?>...</h2> diff --git a/views/archive/create/meta.php b/views/archive/create/meta.php new file mode 100644 index 0000000..b5ad130 --- /dev/null +++ b/views/archive/create/meta.php @@ -0,0 +1,5 @@ +<?php + +$url = $_POST['url']; +$title = "Archiving $url..."; +$controller = 'archive'; diff --git a/views/archive/index.php b/views/archive/index.php index f7c427f..73e1017 100644 --- a/views/archive/index.php +++ b/views/archive/index.php @@ -3,8 +3,8 @@ $page = null; try { - list($exists, $url) = Controller\doesWebsiteExist($url); - Controller\normalizeUrl($url); + list($exists, $url) = doesWebsiteExist($url); + normalizeUrl($url); $page = Database\Webpage::fromDB($url); $page->incrementVisits(); @@ -16,8 +16,8 @@ <?php if ($page !== null): ?> <iframe src="<?= "/archives/{$page->WID}/index.php" ?>" scrolling="no"></iframe> - <form action="#" method="POST"> - <input type="hidden" name="page_url" value="<?= $url ?>"> + <form action="/archive/create" method="POST"> + <input type="hidden" name="url" value="<?= $url ?>"> <input type="submit" value="Archive Now!"> </form> <!-- Button to add to list --> @@ -39,8 +39,8 @@ <?php else: ?> <h2>"<?= $url ?>" hasn't been archived yet!</h2> - <form action="#" method="POST"> - <input type="hidden" name="page_url" value="<?= $url ?>"> + <form action="/archive/create" method="POST"> + <input type="hidden" name="url" value="<?= $url ?>"> <input type="submit" value="Archive Now!"> </form> diff --git a/views/archive/meta.php b/views/archive/meta.php index 001d07c..3c37565 100644 --- a/views/archive/meta.php +++ b/views/archive/meta.php @@ -2,4 +2,52 @@ $url = $_GET['url']; $title = $url . ' archive'; -$controller = 'archive'; + +function normalizeUrl(string &$url) : void { + $count_slashes = substr_count($url, "/"); + if (str_ends_with($url, "/index.html")) { + $url = substr($url, 0, strlen($url) - strlen("/index.html")); + } + elseif (str_ends_with($url, "/index")) { + $url = substr($url, 0, strlen($url) - strlen("/index")); + } + elseif (str_ends_with($url, "/")) { + $url = substr($url, 0, -1); + } +} + +function applyCorrectProtocol($url, $protocol) : string { + if (str_contains($url, $protocol)) { + return $url; + } + return $protocol . $url; +} + +function doesWebsiteExist($url) : array { + // Check if the site exists with https + $https_url = applyCorrectProtocol($url, "https://"); + if ($https_url != $url) { + $url_headers = @get_headers($https_url); + if ($url_headers && $url_headers[0] != 'HTTP/1.1 404 Not Found') { + return array(true, $https_url); + } + } + + // Check if the site exists with http + $http_url = applyCorrectProtocol($url, "http://"); + if ($http_url != $url) { + $url_headers = @get_headers($http_url); + if ($url_headers && $url_headers[0] != 'HTTP/1.1 404 Not Found') { + return array(true, $http_url); + } + } + + // Check if the site exists as is + // Will take effect when the user has entered the https/http protocol with the site + $url_headers = @get_headers($url); + if ($url_headers && $url_headers[0] != 'HTTP/1.1 404 Not Found') { + return array(true, $url); + } + + return array(false, $url); +} diff --git a/views/global/router.php b/views/global/router.php index b668f33..16e143e 100644 --- a/views/global/router.php +++ b/views/global/router.php @@ -31,6 +31,8 @@ function route_view() { case '/list/new': return '/list/new'; case '/list/add': return '/list/add'; case '/list/delete': return '/list/delete'; + + case '/archive/create': return '/archive/create'; } switch ($root) { |
