new feature: webring
This commit is contained in:
40
webring/index.php
Normal file
40
webring/index.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
$members = require 'members.php';
|
||||
$count = count($members);
|
||||
|
||||
$action = $_GET['action'] ?? '';
|
||||
$ref = $_SERVER['HTTP_REFERER'];
|
||||
if (preg_match('/https\:\/\/tylda\.org\/\~[a-zA-Z0-9\-\_]+.*/', $ref)) {
|
||||
$site = substr(explode('/', $ref)[3], 1);
|
||||
} else {
|
||||
$site = $_GET['site'] ?? '';
|
||||
}
|
||||
|
||||
$index = array_search($site, array_column($members, 'name'));
|
||||
|
||||
if ($index === false) {
|
||||
http_response_code(404);
|
||||
die('Nieznana strona!');
|
||||
}
|
||||
|
||||
switch ($action) {
|
||||
case 'prev':
|
||||
$target = $members[($index - 1 + $count) % $count];
|
||||
break;
|
||||
case 'next':
|
||||
$target = $members[($index + 1) % $count];
|
||||
break;
|
||||
case 'random':
|
||||
$r = rand(0, $count - 1);
|
||||
$target = $members[$r];
|
||||
break;
|
||||
default:
|
||||
http_response_code(400);
|
||||
die('Brak akcji (prev/next/random)');
|
||||
}
|
||||
|
||||
header('Location: ' . $target['url']);
|
||||
exit;
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user