Support different rewrite levels for XE compatibility

This commit is contained in:
Kijin Sung 2020-06-12 13:24:01 +09:00
parent f01fb9ae42
commit 1cd3cfc7d9
7 changed files with 42 additions and 5 deletions

View file

@ -50,6 +50,7 @@ return array(
'http_port' => null,
'https_port' => null,
'ssl' => 'none',
'rewrite' => 1,
),
'session' => array(
'delay' => false,

View file

@ -0,0 +1,28 @@
<?php
namespace Rhymix\Framework;
/**
* The router class.
*/
class Router
{
/**
* Return the currently configured rewrite level.
*
* 0 = None
* 1 = XE-compatible rewrite rules only
* 2 = Full rewrite support
*
* @return int
*/
public static function getRewriteLevel(): int
{
$level = Config::get('url.rewrite');
if ($level === null)
{
$level = Config::get('use_rewrite') ? 1 : 0;
}
return intval($level);
}
}

View file

@ -791,7 +791,8 @@ class adminAdminController extends admin
Rhymix\Framework\Config::set('locale.default_timezone', $vars->default_timezone);
// Other settings
Rhymix\Framework\Config::set('use_rewrite', $vars->use_rewrite === 'Y');
Rhymix\Framework\Config::set('url.rewrite', intval($vars->use_rewrite));
Rhymix\Framework\Config::set('use_rewrite', $vars->use_rewrite > 0);
Rhymix\Framework\Config::set('session.delay', $vars->delay_session === 'Y');
Rhymix\Framework\Config::set('session.use_db', $vars->use_db_session === 'Y');
Rhymix\Framework\Config::set('view.manager_layout', $vars->manager_layout ?: 'module');

View file

@ -544,7 +544,7 @@ class adminAdminView extends admin
Context::set('selected_timezone', Rhymix\Framework\Config::get('locale.default_timezone'));
// Other settings
Context::set('use_rewrite', Rhymix\Framework\Config::get('use_rewrite'));
Context::set('use_rewrite', Rhymix\Framework\Router::getRewriteLevel());
Context::set('use_mobile_view', (config('mobile.enabled') !== null ? config('mobile.enabled') : config('use_mobile_view')) ? true : false);
Context::set('tablets_as_mobile', config('mobile.tablets') ? true : false);
Context::set('mobile_viewport', config('mobile.viewport') ?: 'width=device-width, initial-scale=1.0, user-scalable=yes');

View file

@ -264,7 +264,10 @@ $lang->trash = 'Recycle Bin';
$lang->accusation = 'Report';
$lang->status = 'Status';
$lang->action = 'Execute';
$lang->use_rewrite = 'Use Rewrite Mode';
$lang->use_rewrite = 'Use Short URLs';
$lang->use_rewrite_0 = 'None';
$lang->use_rewrite_1 = 'XE-compatible URLs only';
$lang->use_rewrite_2 = 'All supported URLs';
$lang->timezone = 'Time Zone';
$lang->use_mobile_view = 'Enable Mobile View';
$lang->about_use_mobile_view = 'Show mobile page when visitors access with mobile devices.';

View file

@ -261,6 +261,9 @@ $lang->accusation = '신고';
$lang->status = '상태';
$lang->action = '실행';
$lang->use_rewrite = '짧은 주소 사용';
$lang->use_rewrite_0 = '사용하지 않음';
$lang->use_rewrite_1 = 'XE와 호환되는 주소 형태만 사용';
$lang->use_rewrite_2 = '모든 주소 형태를 사용';
$lang->timezone = '표준 시간대';
$lang->use_mobile_view = '모바일 뷰 사용';
$lang->about_use_mobile_view = '모바일 기기로 접속시 모바일 페이지를 보여줍니다.';

View file

@ -13,8 +13,9 @@
<div class="x_control-group">
<label class="x_control-label">{$lang->use_rewrite}</label>
<div class="x_controls">
<label for="use_rewrite_y" class="x_inline"><input type="radio" name="use_rewrite" id="use_rewrite_y" value="Y" checked="checked"|cond="$use_rewrite" /> {$lang->cmd_yes}</label>
<label for="use_rewrite_n" class="x_inline"><input type="radio" name="use_rewrite" id="use_rewrite_n" value="N" checked="checked"|cond="!$use_rewrite" /> {$lang->cmd_no}</label>
<label for="use_rewrite_0" class="x_inline"><input type="radio" name="use_rewrite" id="use_rewrite_0" value="0" checked="checked"|cond="$use_rewrite == 0" /> {$lang->use_rewrite_0}</label>
<label for="use_rewrite_1" class="x_inline"><input type="radio" name="use_rewrite" id="use_rewrite_1" value="1" checked="checked"|cond="$use_rewrite == 1" /> {$lang->use_rewrite_1}</label>
<label for="use_rewrite_2" class="x_inline"><input type="radio" name="use_rewrite" id="use_rewrite_2" value="2" checked="checked"|cond="$use_rewrite == 2" /> {$lang->use_rewrite_2}</label>
</div>
</div>
<div class="x_control-group">