use anonymous function
This commit is contained in:
parent
870bcb024b
commit
a374e6d918
1 changed files with 21 additions and 31 deletions
52
_public.php
52
_public.php
|
@ -14,39 +14,29 @@ if (!defined('DC_RC_PATH')) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
dcCore::app()->url->register('alias', '', '^(.*)$', ['urlAlias','alias']);
|
dcCore::app()->url->register('alias', '', '^(.*)$', function ($args) {
|
||||||
|
$o = new dcAliases();
|
||||||
|
$aliases = $o->getAliases();
|
||||||
|
$part = $args;
|
||||||
|
|
||||||
class urlAlias extends dcUrlHandlers
|
foreach ($aliases as $v) {
|
||||||
{
|
if (@preg_match('#^/.*/$#', $v['alias_url']) && @preg_match($v['alias_url'], $args)) {
|
||||||
public static function alias($args)
|
$part = preg_replace($v['alias_url'], $v['alias_destination'], $args);
|
||||||
{
|
|
||||||
$o = new dcAliases();
|
|
||||||
$aliases = $o->getAliases();
|
|
||||||
|
|
||||||
foreach ($aliases as $v) {
|
break;
|
||||||
if (@preg_match('#^/.*/$#', $v['alias_url']) && @preg_match($v['alias_url'], $args)) {
|
} elseif ($v['alias_url'] == $args) {
|
||||||
self::callAliasHandler(preg_replace($v['alias_url'], $v['alias_destination'], $args));
|
$part = $v['alias_destination'];
|
||||||
|
|
||||||
return;
|
break;
|
||||||
} elseif ($v['alias_url'] == $args) {
|
|
||||||
self::callAliasHandler($v['alias_destination']);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
self::callAliasHandler($args);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function callAliasHandler($part)
|
|
||||||
{
|
|
||||||
dcCore::app()->url->unregister('alias');
|
|
||||||
dcCore::app()->url->getArgs($part, $type, $args);
|
|
||||||
|
|
||||||
if (!$type) {
|
|
||||||
dcCore::app()->url->callDefaultHandler($args);
|
|
||||||
} else {
|
|
||||||
dcCore::app()->url->callHandler($type, $args);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
dcCore::app()->url->unregister('alias');
|
||||||
|
dcCore::app()->url->getArgs($part, $type, $args);
|
||||||
|
|
||||||
|
if (!$type) {
|
||||||
|
dcCore::app()->url->callDefaultHandler($args);
|
||||||
|
} else {
|
||||||
|
dcCore::app()->url->callHandler($type, $args);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
Loading…
Reference in a new issue