41 lines
832 B
PHP
41 lines
832 B
PHP
<?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;
|
|
|
|
?>
|