Also allow selecting a PC layout for mobile view

This commit is contained in:
Kijin Sung 2017-07-01 21:03:10 +09:00
parent 27e2106c96
commit 2cd6140a89
4 changed files with 31 additions and 8 deletions

View file

@ -313,7 +313,7 @@ class ModuleHandler extends Handler
} }
$viewType = (Mobile::isFromMobilePhone()) ? 'M' : 'P'; $viewType = (Mobile::isFromMobilePhone()) ? 'M' : 'P';
$targetSrl = (Mobile::isFromMobilePhone()) ? 'mlayout_srl' : 'layout_srl'; $targetSrl = $viewType === 'M' ? 'mlayout_srl' : 'layout_srl';
// use the site default layout. // use the site default layout.
if($module_info->{$targetSrl} == -1) if($module_info->{$targetSrl} == -1)
@ -321,6 +321,16 @@ class ModuleHandler extends Handler
$oLayoutAdminModel = getAdminModel('layout'); $oLayoutAdminModel = getAdminModel('layout');
$layoutSrl = $oLayoutAdminModel->getSiteDefaultLayout($viewType, $module_info->site_srl); $layoutSrl = $oLayoutAdminModel->getSiteDefaultLayout($viewType, $module_info->site_srl);
} }
elseif($module_info->{$targetSrl} == -2 && $viewType === 'M')
{
$layoutSrl = $module_info->layout_srl;
if($layoutSrl == -1)
{
$viewType = 'P';
$oLayoutAdminModel = getAdminModel('layout');
$layoutSrl = $oLayoutAdminModel->getSiteDefaultLayout($viewType, $module_info->site_srl);
}
}
else else
{ {
$layoutSrl = $module_info->{$targetSrl}; $layoutSrl = $module_info->{$targetSrl};
@ -960,9 +970,15 @@ class ModuleHandler extends Handler
} }
// Check if layout_srl exists for the module // Check if layout_srl exists for the module
if(Mobile::isFromMobilePhone()) $viewType = (Mobile::isFromMobilePhone()) ? 'M' : 'P';
if($viewType === 'M')
{ {
$layout_srl = $oModule->module_info->mlayout_srl; $layout_srl = $oModule->module_info->mlayout_srl;
if($layout_srl == -2)
{
$layout_srl = $oModule->module_info->layout_srl;
$viewType = 'P';
}
} }
else else
{ {
@ -972,7 +988,6 @@ class ModuleHandler extends Handler
// if layout_srl is rollback by module, set default layout // if layout_srl is rollback by module, set default layout
if($layout_srl == -1) if($layout_srl == -1)
{ {
$viewType = (Mobile::isFromMobilePhone()) ? 'M' : 'P';
$oLayoutAdminModel = getAdminModel('layout'); $oLayoutAdminModel = getAdminModel('layout');
$layout_srl = $oLayoutAdminModel->getSiteDefaultLayout($viewType, $oModule->module_info->site_srl); $layout_srl = $oLayoutAdminModel->getSiteDefaultLayout($viewType, $oModule->module_info->site_srl);
} }

View file

@ -109,7 +109,7 @@
<div class="x_controls"> <div class="x_controls">
<select name="mlayout_srl" id="mlayout_srl"> <select name="mlayout_srl" id="mlayout_srl">
<option value="0">{$lang->notuse}</option> <option value="0">{$lang->notuse}</option>
<option loop="$mlayout_list => $key, $val" value="{$val->layout_srl}" selected="selected"|cond="$module_info->mlayout_srl== $val->layout_srl">{$val->title} ({$val->layout})</option> <option loop="$mlayout_list => $key, $val" value="{$val->layout_srl}" selected="selected"|cond="$module_info->mlayout_srl== $val->layout_srl">{$val->title} <block cond="$val->layout">({$val->layout})</block></option>
</select> </select>
<a href="#mobile_layout_help" class="x_icon-question-sign" data-toggle>{$lang->help}</a> <a href="#mobile_layout_help" class="x_icon-question-sign" data-toggle>{$lang->help}</a>
<p id="mobile_layout_help" class="x_help-block" hidden>{$lang->about_layout}</p> <p id="mobile_layout_help" class="x_help-block" hidden>{$lang->about_layout}</p>

View file

@ -111,6 +111,7 @@ $lang->msg_empty_origin_layout = '원본 Layout이 없습니다.';
$lang->msg_empty_target_layout = '복사할 Layout이 지정되어 있지 않습니다.'; $lang->msg_empty_target_layout = '복사할 Layout이 지정되어 있지 않습니다.';
$lang->msg_at_least_one_layout = '해당 레이아웃의 마지막 한개 레이아웃은 삭제할 수 없습니다.'; $lang->msg_at_least_one_layout = '해당 레이아웃의 마지막 한개 레이아웃은 삭제할 수 없습니다.';
$lang->use_site_default_layout = '사이트 기본 레이아웃 사용'; $lang->use_site_default_layout = '사이트 기본 레이아웃 사용';
$lang->use_responsive_pc_layout = 'PC와 동일한 반응형 레이아웃 사용';
$lang->msg_unabled_preview = '해당 메뉴 타입의 페이지가 하나도 없어 미리보기가 불가능합니다.'; $lang->msg_unabled_preview = '해당 메뉴 타입의 페이지가 하나도 없어 미리보기가 불가능합니다.';
$lang->article_preview_title = '문서의 제목입니다.'; $lang->article_preview_title = '문서의 제목입니다.';
$lang->article_preview_content = '무궁화 꽃이 피었습니다.'; $lang->article_preview_content = '무궁화 꽃이 피었습니다.';

View file

@ -56,13 +56,20 @@ class layoutModel extends layout
if($siteDefaultLayoutSrl) if($siteDefaultLayoutSrl)
{ {
$siteDefaultLayoutInfo = $this->getlayout($siteDefaultLayoutSrl); $siteDefaultLayoutInfo = $this->getlayout($siteDefaultLayoutSrl);
$newLayout = sprintf('%s, %s', $siteDefaultLayoutInfo->title, $siteDefaultLayoutInfo->layout);
$siteDefaultLayoutInfo->layout_srl = -1; $siteDefaultLayoutInfo->layout_srl = -1;
$siteDefaultLayoutInfo->layout = $siteDefaultLayoutInfo->title;
$siteDefaultLayoutInfo->title = lang('use_site_default_layout'); $siteDefaultLayoutInfo->title = lang('use_site_default_layout');
$siteDefaultLayoutInfo->layout = $newLayout;
array_unshift($output->data, $siteDefaultLayoutInfo); array_unshift($output->data, $siteDefaultLayoutInfo);
} }
if ($layout_type === 'M')
{
$responsiveLayoutInfo = new stdClass();
$responsiveLayoutInfo->layout_srl = -2;
$responsiveLayoutInfo->layout = '';
$responsiveLayoutInfo->title = lang('use_responsive_pc_layout');
array_unshift($output->data, $responsiveLayoutInfo);
}
return $output->data; return $output->data;
} }