Fix #1389 improve handling of viewport meta tag

- viewport 설정에 빈 값을 저장한 경우 메타 태그를 출력하지 않음
- 단, 아예 설정이 없는 경우(XE 또는 구버전에서 업그레이드한 경우)에는 예외
This commit is contained in:
Kijin Sung 2020-08-27 21:15:11 +09:00
parent 28d71acffd
commit 82bf017f01
6 changed files with 18 additions and 3 deletions

View file

@ -9,6 +9,11 @@ class HTMLDisplayHandler
const JQUERY_V1 = '1.12.4';
const JQUERY_V2 = '2.2.4';
/**
* Default viewport setting
*/
const DEFAULT_VIEWPORT = 'width=device-width, initial-scale=1.0, user-scalable=yes';
/**
* Reserved scripts
*/

View file

@ -5,7 +5,9 @@
<!-- META -->
<meta charset="utf-8">
<meta name="generator" content="Rhymix">
<meta name="viewport" content="{config('mobile.viewport') ?: 'width=device-width, initial-scale=1.0, user-scalable=yes'}" cond="$m" />
<!--@if(Mobile::isFromMobilePhone() && $__mv = config('mobile.viewport') ?? HTMLDisplayHandler::DEFAULT_VIEWPORT)-->
<meta name="viewport" content="{$__mv}" />
<!--@endif-->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<block loop="Context::getMetaTag() => $no, $val">
<meta http-equiv="{$val['name']}"|cond="$val['is_http_equiv']" name="{$val['name']}"|cond="!$val['is_http_equiv']" content="{$val['content']}" />

View file

@ -549,7 +549,7 @@ class adminAdminView extends admin
Context::set('use_rewrite', Rhymix\Framework\Config::get('use_rewrite'));
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');
Context::set('mobile_viewport', config('mobile.viewport') ?? HTMLDisplayHandler::DEFAULT_VIEWPORT);
Context::set('use_ssl', Rhymix\Framework\Config::get('url.ssl'));
Context::set('delay_session', Rhymix\Framework\Config::get('session.delay'));
Context::set('use_db_session', Rhymix\Framework\Config::get('session.use_db'));

View file

@ -271,6 +271,7 @@ $lang->about_use_mobile_view = 'Show mobile page when visitors access with mobil
$lang->tablets_as_mobile = 'Treat Tablets as Mobile';
$lang->mobile_viewport = 'Mobile viewport Setting';
$lang->about_mobile_viewport = 'The settings entered above will be output in a &lt;meta name=&quot;viewport&quot;&gt; tag for mobile visitors.';
$lang->restore_default_viewport = 'Restore Default';
$lang->thumbnail_target = 'Extract Thumbnail From';
$lang->thumbnail_target_all = 'All images';
$lang->thumbnail_target_attachment = 'Attached images only';

View file

@ -267,6 +267,7 @@ $lang->about_use_mobile_view = '모바일 기기로 접속시 모바일 페이
$lang->tablets_as_mobile = '태블릿도 모바일 취급';
$lang->mobile_viewport = '모바일 viewport 설정';
$lang->about_mobile_viewport = '모바일 접속시 여기 입력한 내용이 &lt;meta name=&quot;viewport&quot;&gt; 태그로 출력됩니다.';
$lang->restore_default_viewport = '기본값 복원';
$lang->thumbnail_target = '썸네일 생성 대상';
$lang->thumbnail_target_all = '모든 이미지 (외부 이미지 포함)';
$lang->thumbnail_target_attachment = '첨부된 이미지';

View file

@ -87,7 +87,7 @@
<label class="x_control-label" for="mobile_viewport">{$lang->mobile_viewport}</label>
<div class="x_controls">
<input type="text" name="mobile_viewport" id="mobile_viewport" value="{$mobile_viewport}" style="min-width: 80%" />
<p class="x_help-block">{$lang->about_mobile_viewport}</p>
<p class="x_help-block">{$lang->about_mobile_viewport} <a href="javascript:restoreDefaultViewport()">{$lang->restore_default_viewport}</a></p>
</div>
</div>
<div class="x_control-group">
@ -222,3 +222,9 @@
</div>
</form>
</section>
<script>
function restoreDefaultViewport() {
$('#mobile_viewport').val({\HTMLDisplayHandler::DEFAULT_VIEWPORT|json|noescape});
}
</script>