-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathWorldlangDictUtils.php
More file actions
40 lines (36 loc) · 1.54 KB
/
WorldlangDictUtils.php
File metadata and controls
40 lines (36 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
namespace WorldlangDict;
class WorldlangDictUtils
{
public static function makeUri(WorldlangDictConfig $config, Request $request, string $controller, ?string $arg=null): string
{
if (isset($config->routes[$controller])) $controller = $config->routes[$controller];
return $config->siteUri.$config->lang.'/'.$controller.(!empty($arg) ? '/'.$arg : '').$request->linkQuery;
}
public static function changeLangUri(WorldlangDictConfig $config, Request $request, string $lang): string
{
if (is_null($request->arguments)) {
$args = '';
} elseif (sizeof($request->arguments) == 1) {
$args = $request->arguments[0];
} else {
$args = implode('/', $request->arguments);
}
return $config->siteUri.$lang.'/'
.$request->controller.'/'
.$args
.$request->linkQuery;
}
public static function redirect(WorldlangDictConfig $config, Request $request, string $controller="", ?string $arg=null): void
{
header('Location: '.WorldlangDictUtils::makeUri(config:$config, controller:$controller, arg:$arg, request:$request));
exit(0);
}
public static function makeLink(WorldlangDictConfig $config, Request $request, string $controller, ?string $arg=null, ?string $text=null): string
{
if ($text == null) $text = $controller;
return '<a href="'.
WorldlangDictUtils::makeUri(config:$config, controller:$controller, arg:$arg, request:$request).
'">'.$text.'</a>';
}
}