mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-05 09:41:40 +09:00
Add R\F\URL::getCurrentDomain()
This commit is contained in:
parent
5f47ddeb53
commit
8a012a5847
3 changed files with 38 additions and 3 deletions
|
|
@ -33,6 +33,23 @@ class URL
|
|||
/**
|
||||
* Get the current domain.
|
||||
*
|
||||
* @param bool $preserve_port
|
||||
* @return string
|
||||
*/
|
||||
public static function getCurrentDomain(bool $preserve_port = false): string
|
||||
{
|
||||
// Get current domain.
|
||||
$domain = strtolower($_SERVER['HTTP_HOST'] ?? '');
|
||||
if (!$preserve_port)
|
||||
{
|
||||
$domain = preg_replace('/:\d+$/', '', $domain);
|
||||
}
|
||||
return self::decodeIdna($domain);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a URL using the current domain and the path.
|
||||
*
|
||||
* @param string $path
|
||||
* @return string
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -198,8 +198,7 @@ class ModuleModel extends Module
|
|||
public static function getDefaultMid($domain = null)
|
||||
{
|
||||
// Get current domain.
|
||||
$domain = $domain ?: strtolower(preg_replace('/:\d+$/', '', $_SERVER['HTTP_HOST']));
|
||||
$domain = Rhymix\Framework\URL::decodeIdna($domain);
|
||||
$domain = $domain ? Rhymix\Framework\URL::decodeIdna($domain) : Rhymix\Framework\URL::getCurrentDomain();
|
||||
|
||||
// Find the domain information.
|
||||
$domain_info = self::getSiteInfoByDomain($domain);
|
||||
|
|
@ -208,7 +207,7 @@ class ModuleModel extends Module
|
|||
$domain_info = self::getDefaultDomainInfo();
|
||||
if (!$domain_info)
|
||||
{
|
||||
$domain_info = getClass('module')->migrateDomains();
|
||||
$domain_info = Module::getInstance()->migrateDomains();
|
||||
}
|
||||
$domain_info->is_default_replaced = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,6 +41,25 @@ class URLTest extends \Codeception\Test\Unit
|
|||
$_SERVER['REQUEST_URI'] = $old_request_uri;
|
||||
}
|
||||
|
||||
public function testGetCurrentDomain()
|
||||
{
|
||||
$original_host = $_SERVER['HTTP_HOST'];
|
||||
|
||||
$_SERVER['HTTP_HOST'] = 'rhymix.org';
|
||||
$this->assertEquals('rhymix.org', Rhymix\Framework\URL::getCurrentDomain());
|
||||
$this->assertEquals('rhymix.org', Rhymix\Framework\URL::getCurrentDomain(true));
|
||||
|
||||
$_SERVER['HTTP_HOST'] = 'xn--oi2b48fl0g0pf.RHYMIX.ORG:443';
|
||||
$this->assertEquals('라이믹스.rhymix.org', Rhymix\Framework\URL::getCurrentDomain());
|
||||
$this->assertEquals('라이믹스.rhymix.org:443', Rhymix\Framework\URL::getCurrentDomain(true));
|
||||
|
||||
$_SERVER['HTTP_HOST'] = 'rhymix.org:8080';
|
||||
$this->assertEquals('rhymix.org', Rhymix\Framework\URL::getCurrentDomain());
|
||||
$this->assertEquals('rhymix.org:8080', Rhymix\Framework\URL::getCurrentDomain(true));
|
||||
|
||||
$_SERVER['HTTP_HOST'] = $original_host;
|
||||
}
|
||||
|
||||
public function testGetCurrentDomainURL()
|
||||
{
|
||||
$this->assertEquals('https://www.rhymix.org/', Rhymix\Framework\URL::getCurrentDomainURL());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue