mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 01:01:41 +09:00
issue 2625 add about setting of default layout/skin.
git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@11898 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
afd6f9b5ae
commit
1c3e69f91f
15 changed files with 176 additions and 80 deletions
|
|
@ -152,35 +152,23 @@
|
|||
$this->module_info = $module_info;
|
||||
Context::setBrowserTitle($module_info->browser_title);
|
||||
|
||||
if($module_info->use_mobile && Mobile::isFromMobilePhone())
|
||||
$viewType = (Mobile::isFromMobilePhone())? 'M' : 'P';
|
||||
$targetSrl = (Mobile::isFromMobilePhone())? 'mlayout_srl' : 'layout_srl';
|
||||
|
||||
// use the site default layout.
|
||||
if($module_info->{$targetSrl} == -1)
|
||||
{
|
||||
$layoutSrl = $module_info->mlayout_srl;
|
||||
$oLayoutAdminModel = getAdminModel('layout');
|
||||
$layoutSrl = $oLayoutAdminModel->getSiteDefaultLayout($viewType, $module_info->site_srl);
|
||||
}
|
||||
else
|
||||
{
|
||||
// use the site default layout.
|
||||
if($module_info->layout_srl == -1)
|
||||
{
|
||||
$designInfoFile = sprintf(_XE_PATH_.'/files/site_design/design_%s.php', $module_info->site_srl);
|
||||
@include($designInfoFile);
|
||||
if(!$designInfo->layout_srl)
|
||||
{
|
||||
$layoutSrl = $site_module_info->layout_srl;
|
||||
}
|
||||
else
|
||||
{
|
||||
$layoutSrl = $designInfo->layout_srl;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$layoutSrl = $module_info->layout_srl;
|
||||
}
|
||||
|
||||
// reset a layout_srl in module_info.
|
||||
$module_info->layout_srl = $layoutSrl;
|
||||
$layoutSrl = $module_info->{$targetSrl};
|
||||
}
|
||||
|
||||
// reset a layout_srl in module_info.
|
||||
$module_info->{$targetSrl} = $layoutSrl;
|
||||
|
||||
$part_config= $oModuleModel->getModulePartConfig('layout',$layoutSrl);
|
||||
Context::addHtmlHeader($part_config->header_script);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -340,30 +340,16 @@
|
|||
}
|
||||
|
||||
// integrate skin information of the module(change to sync skin info with the target module only by seperating its table)
|
||||
if($this->module_info->is_skin_fix == 'N' && $this->module != 'admin' && strpos($this->act, 'Admin') === false)
|
||||
$is_default_skin = ((!Mobile::isFromMobilePhone() && $this->module_info->is_skin_fix == 'N') || (Mobile::isFromMobilePhone() && $this->module_info->is_mskin_fix == 'N'));
|
||||
if($is_default_skin && $this->module != 'admin' && strpos($this->act, 'Admin') === false)
|
||||
{
|
||||
$designInfoFile = sprintf(_XE_PATH_.'files/site_design/design_%s.php', $this->module_info->site_srl);
|
||||
if(is_readable($designInfoFile))
|
||||
$dir = (Mobile::isFromMobilePhone()) ? 'm.skins' : 'skins';
|
||||
$oModuleModel = getModel('module');
|
||||
$skinType = (Mobile::isFromMobilePhone()) ? 'M' : 'P';
|
||||
$skinName = $oModuleModel->getModuleDefaultSkin($this->module, $skinType);
|
||||
if($skinName)
|
||||
{
|
||||
@include($designInfoFile);
|
||||
|
||||
$skinName = $designInfo->module->{$this->module_info->module}->skin;
|
||||
|
||||
if($skinName)
|
||||
{
|
||||
$this->setTemplatePath(sprintf('%sskins/%s/', $this->module_path, $skinName));
|
||||
}
|
||||
|
||||
$skinVars = $designInfo->module->{$this->module_info->module}->skin_vars;
|
||||
|
||||
if($skinVars)
|
||||
{
|
||||
$skinVars = unserialize($skinVars);
|
||||
foreach($skinVars as $key => $val)
|
||||
{
|
||||
$this->module_info->{$key} = $val;
|
||||
}
|
||||
}
|
||||
$this->setTemplatePath(sprintf('%s%s/%s/', $this->module_path, $dir, $skinName));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -117,7 +117,6 @@
|
|||
$vars->site_srl = 0;
|
||||
}
|
||||
|
||||
|
||||
// create a DesignInfo file
|
||||
$output = $this->updateDefaultDesignInfo($vars);
|
||||
return $this->setRedirectUrl(Context::get('error_return_url'), $output);
|
||||
|
|
@ -170,6 +169,13 @@
|
|||
}
|
||||
}
|
||||
|
||||
$this->makeDefaultDesignFile($designInfo, $vars->site_srl);
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
function makeDefaultDesignFile($designInfo, $site_srl = 0)
|
||||
{
|
||||
if($designInfo->layout_srl)
|
||||
{
|
||||
$buff .= sprintf('$designInfo->layout_srl = %s; ', $designInfo->layout_srl)."\n";
|
||||
|
|
@ -193,9 +199,8 @@
|
|||
|
||||
$buff = sprintf('<?php if(!defined("__ZBXE__")) exit();' . "\n" . 'if(!defined("__XE__")) exit();' ."\n" . '$designInfo = new stdClass();' . "\n" . '%s ?>', $buff);
|
||||
|
||||
$siteDesignFile = _XE_PATH_.'files/site_design/design_'.$site_srl.'.php';
|
||||
FileHandler::writeFile($siteDesignFile, $buff);
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@
|
|||
|
||||
if(!$db_info->default_url) $db_info->default_url = Context::getRequestUri();
|
||||
$db_info->lang_type = Context::getLangType();
|
||||
$db_info->use_mobile_view = 'Y';
|
||||
|
||||
// Set DB type and information
|
||||
Context::setDBInfo($db_info);
|
||||
|
|
|
|||
|
|
@ -61,12 +61,27 @@
|
|||
$output = $oLayoutAdminController->updateLayout($args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
//create mobile layout
|
||||
$mlayout_srl = $args->layout_srl = getNextSequence();
|
||||
$args->layout = 'default';
|
||||
$args->title = 'welcome_mobile_layout';
|
||||
$args->layout_type = 'M';
|
||||
|
||||
$output = $oLayoutAdminController->insertLayout($args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// update Layout
|
||||
$args->extra_vars = serialize($extra_vars);
|
||||
$output = $oLayoutAdminController->updateLayout($args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$siteDesignPath = _XE_PATH_.'files/site_design/';
|
||||
FileHandler::makeDir($siteDesignPath);
|
||||
$siteDesignFile = _XE_PATH_.'files/site_design/design_0.php';
|
||||
$buff = sprintf('$designInfo->layout_srl = %s;', $layout_srl);
|
||||
|
||||
// after trigger
|
||||
$designInfo = new stdClass();
|
||||
$designInfo->layout_srl = $layout_srl;
|
||||
$designInfo->mlayout_srl = $mlayout_srl;
|
||||
|
||||
$moduleList = array('page');
|
||||
$moutput = ModuleHandler::triggerCall('menu.getModuleListInSitemap', 'after', $moduleList);
|
||||
if($moutput->toBool())
|
||||
|
|
@ -76,6 +91,8 @@
|
|||
|
||||
$skinTypes = array('skin'=>'skins/', 'mskin'=>'m.skins/');
|
||||
|
||||
$designInfo->module = new stdClass();
|
||||
|
||||
foreach($skinTypes as $key => $dir)
|
||||
{
|
||||
foreach($moduleList as $moduleName)
|
||||
|
|
@ -100,17 +117,17 @@
|
|||
|
||||
if($skinName)
|
||||
{
|
||||
$buff .= sprintf('$designInfo->module->%s->%s = \'%s\';', $moduleName, $key, $skinName);
|
||||
$designInfo->module->{$moduleName}->{$key} = $skinName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$buff = sprintf('<?php if(!defined("__ZBXE__")) exit(); if(!defined("__XE__")) exit(); %s ?>', $buff);
|
||||
FileHandler::writeFile($siteDesignFile, $buff);
|
||||
|
||||
|
||||
$oAdminController = getAdminController('admin');
|
||||
$oAdminController->makeDefaultDesignFile($designInfo, 0);
|
||||
|
||||
// insertPageModule
|
||||
$page_args->layout_srl = $layout_srl;
|
||||
$page_args->mlayout_srl = $mlayout_srl;
|
||||
$page_args->menu_srl = $menu_srl;
|
||||
$page_args->browser_title = 'welcome_page';
|
||||
$page_args->module = 'page';
|
||||
|
|
@ -119,6 +136,7 @@
|
|||
$page_args->page_caching_interval = 0;
|
||||
$page_args->page_type = 'ARTICLE';
|
||||
$page_args->skin = 'default';
|
||||
$page_args->use_mobile = 'Y';
|
||||
|
||||
$oModuleController = &getController('module');
|
||||
$output = $oModuleController->insertModule($page_args);
|
||||
|
|
@ -144,10 +162,16 @@
|
|||
|
||||
$document_srl = $output->get('document_srl');
|
||||
|
||||
unset($obj->document_srl);
|
||||
$output = $oDocumentController->insertDocument($obj);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$mdocument_srl = $output->get('document_srl');
|
||||
// save PageWidget
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
$module_info->document_srl = $document_srl;
|
||||
$module_info->mdocument_srl = $mdocument_srl;
|
||||
$output = $oModuleController->updateModule($module_info);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
|
|
|
|||
|
|
@ -136,21 +136,27 @@ class layoutAdminModel extends layout {
|
|||
$this->add('html', $script.$html);
|
||||
}
|
||||
|
||||
function getLayoutAdminSiteDefaultLayout()
|
||||
public function getLayoutAdminSiteDefaultLayout()
|
||||
{
|
||||
$siteSrl = Context::get('site_srl');
|
||||
$type = Context::get('type');
|
||||
|
||||
//TODO remove mock
|
||||
if($type == 'M')
|
||||
{
|
||||
$layoutSrl = 278;
|
||||
}
|
||||
else
|
||||
{
|
||||
$layoutSrl = 62;
|
||||
}
|
||||
$layoutSrl = $this->getSiteDefaultLayout($type, $siteSrl);
|
||||
|
||||
$this->add('layout_srl', $layoutSrl);
|
||||
}
|
||||
|
||||
public function getSiteDefaultLayout($viewType = 'P', $siteSrl = 0)
|
||||
{
|
||||
$target = ($viewType == 'M') ? 'mlayout_srl' : 'layout_srl';
|
||||
$designInfoFile = sprintf(_XE_PATH_.'/files/site_design/design_%s.php', $siteSrl);
|
||||
@include($designInfoFile);
|
||||
|
||||
if(!$designInfo || !$designInfo->{$target})
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return $designInfo->{$target};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,6 +95,8 @@
|
|||
$output = executeQueryArray('module.getNotLinkedModuleGroupSiteSrl');
|
||||
if($output->toBool() && $output->data && count($output->data) > 0) return true;
|
||||
|
||||
// check fix mskin
|
||||
if(!$oDB->isColumnExists("modules", "is_mskin_fix")) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -382,6 +384,22 @@
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
if(!$oDB->isColumnExists("modules", "is_mskin_fix"))
|
||||
{
|
||||
$oDB->addColumn('modules', 'is_mskin_fix', 'char', 1, 'N');
|
||||
$output = executeQueryArray('module.getAllMobileSkinSetModule');
|
||||
if ($output->toBool() && $output->data){
|
||||
$module_srls = array();
|
||||
foreach($output->data as $val){
|
||||
$module_srls[] = $val->module_srl;
|
||||
}
|
||||
unset($args);
|
||||
$args->module_srls = implode(',', $module_srls);
|
||||
$args->is_mskin_fix = 'Y';
|
||||
$output = executeQuery('module.updateMobileSkinFixModules', $args);
|
||||
}
|
||||
}
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -291,6 +291,7 @@
|
|||
unset($extra_vars->mid);
|
||||
unset($extra_vars->is_skin_fix);
|
||||
unset($extra_vars->skin);
|
||||
unset($extra_vars->is_mskin_fix);
|
||||
unset($extra_vars->mskin);
|
||||
unset($extra_vars->browser_title);
|
||||
unset($extra_vars->description);
|
||||
|
|
@ -327,7 +328,8 @@
|
|||
if(!$args->module_srl) $args->module_srl = getNextSequence();
|
||||
|
||||
// default value
|
||||
$args->is_skin_fix = (!$args->is_skin_fix) ? 'N' : 'Y';
|
||||
$args->is_skin_fix = ($args->is_skin_fix != 'Y') ? 'N' : 'Y';
|
||||
$args->is_mskin_fix = ($args->is_mskin_fix != 'Y') ? 'N' : 'Y';
|
||||
|
||||
// Insert a module
|
||||
$output = executeQuery('module.insertModule', $args);
|
||||
|
|
@ -373,13 +375,15 @@
|
|||
}
|
||||
|
||||
// default value
|
||||
$args->is_skin_fix = (!$args->is_skin_fix) ? 'N' : 'Y';
|
||||
$args->is_skin_fix = ($args->is_skin_fix != 'Y') ? 'N' : 'Y';
|
||||
$args->is_mskin_fix = ($args->is_mskin_fix != 'Y') ? 'N' : 'Y';
|
||||
|
||||
$output = executeQuery('module.updateModule', $args);
|
||||
if(!$output->toBool()) {
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
|
||||
// Insert module extra vars
|
||||
$this->insertModuleExtraVars($args->module_srl, $extra_vars);
|
||||
|
||||
|
|
|
|||
|
|
@ -239,7 +239,8 @@
|
|||
}
|
||||
|
||||
$moduleInfo->is_layout_fix = ($moduleInfo->layout_srl == -1) ? 'N' : 'Y';
|
||||
if($moduleInfo->is_layout_fix == 'N' || $moduleInfo->is_skin_fix == 'N')
|
||||
$moduleInfo->is_mlayout_fix = ($moduleInfo->mlayout_srl == -1) ? 'N' : 'Y';
|
||||
if($moduleInfo->is_layout_fix == 'N' || $moduleInfo->is_skin_fix == 'N' || $moduleInfo->is_mlayout_fix == 'N' || $moduleInfo->is_mskin_fix == 'N')
|
||||
{
|
||||
$designInfoFile = sprintf(_XE_PATH_.'/files/site_design/design_%s.php', $moduleInfo->site_srl);
|
||||
@include($designInfoFile);
|
||||
|
|
@ -253,17 +254,16 @@
|
|||
if($moduleInfo->is_skin_fix == 'N')
|
||||
{
|
||||
$moduleInfo->skin = $designInfo->module->{$moduleInfo->module}->skin;
|
||||
}
|
||||
|
||||
$skinVars = $designInfo->module->{$moduleInfo->module}->skin_vars;
|
||||
if($moduleInfo->is_mlayout_fix == 'N')
|
||||
{
|
||||
$moduleInfo->mlayout_srl = $designInfo->mlayout_srl;
|
||||
}
|
||||
|
||||
if($skinVars)
|
||||
{
|
||||
$skinVars = unserialize($skinVars);
|
||||
foreach($skinVars as $key => $val)
|
||||
{
|
||||
$moduleInfo->{$key} = $val;
|
||||
}
|
||||
}
|
||||
if($moduleInfo->is_mskin_fix == 'N')
|
||||
{
|
||||
$moduleInfo->mskin = $designInfo->module->{$moduleInfo->module}->mskin;
|
||||
}
|
||||
|
||||
$moduleInfo = $this->addModuleExtraVars($moduleInfo);
|
||||
|
|
@ -1424,6 +1424,43 @@
|
|||
return $skin_vars;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get default skin name
|
||||
**/
|
||||
function getModuleDefaultSkin($module_name, $skin_type = 'P', $site_srl = 0)
|
||||
{
|
||||
$target = ($skin_type == 'M') ? 'mskin' : 'skin';
|
||||
|
||||
$designInfoFile = sprintf(_XE_PATH_.'files/site_design/design_%s.php', $site_srl);
|
||||
if(is_readable($designInfoFile))
|
||||
{
|
||||
@include($designInfoFile);
|
||||
|
||||
$skinName = $designInfo->module->{$module_name}->{$target};
|
||||
}
|
||||
|
||||
if(!$skinName)
|
||||
{
|
||||
$dir = ($skin_type == 'M') ? 'm.skins/' : 'skins';
|
||||
$moduleSkinPath = ModuleHandler::getModulePath($module_name).$dir;
|
||||
$skins = FileHandler::readDir($moduleSkinPath);
|
||||
if(count($skins) > 0)
|
||||
{
|
||||
$skinName = $skins[0];
|
||||
$designInfo->module->{$module_name}->{$target} = $skinName;
|
||||
|
||||
$oAdminController = getAdminController('admin');
|
||||
$oAdminController->makeDefaultDesignFile($designInfo, $site_srl);
|
||||
}
|
||||
else
|
||||
{
|
||||
$skinName = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return $skinName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Combine skin information with module information
|
||||
**/
|
||||
|
|
|
|||
11
modules/module/queries/getAllMobileSkinSetModule.xml
Normal file
11
modules/module/queries/getAllMobileSkinSetModule.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<query id="getAllMobileSkinSetModule" action="select">
|
||||
<tables>
|
||||
<table name="modules" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="module_srl" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="notequal" column="mskin" default=" " />
|
||||
</conditions>
|
||||
</query>
|
||||
|
|
@ -17,7 +17,9 @@
|
|||
<column name="modules.use_mobile" alias="use_mobile" />
|
||||
<column name="modules.menu_srl" alias="menu_srl" />
|
||||
<column name="modules.mid" alias="mid" />
|
||||
<column name="modules.is_skin_fix" alias="is_skin_fix" />
|
||||
<column name="modules.skin" alias="skin" />
|
||||
<column name="modules.is_mskin_fix" alias="is_mskin_fix" />
|
||||
<column name="modules.mskin" alias="mskin" />
|
||||
<column name="modules.browser_title" alias="browser_title" />
|
||||
<column name="modules.description" alias="description" />
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
<column name="module_category_srl" var="module_category_srl" default="0" />
|
||||
<column name="mid" var="mid" notnull="notnull" minlength="1" maxlength="40" />
|
||||
<column name="skin" var="skin" minlength="1" maxlength="250" />
|
||||
<column name="is_skin_fix" var="is_skin_fix" default="Y" />
|
||||
<column name="is_skin_fix" var="is_skin_fix" default="N" />
|
||||
<column name="is_mskin_fix" var="is_mskin_fix" default="N" />
|
||||
<column name="mskin" var="mskin" />
|
||||
<column name="browser_title" var="browser_title" notnull="notnull" minlength="1" maxlength="250" />
|
||||
<column name="layout_srl" var="layout_srl" />
|
||||
|
|
|
|||
11
modules/module/queries/updateMobileSkinFixModules.xml
Normal file
11
modules/module/queries/updateMobileSkinFixModules.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<query id="updateMobileSkinFixModules" action="update">
|
||||
<tables>
|
||||
<table name="modules" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="is_mskin_fix" var="is_mskin_fix" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="in" column="module_srl" var="module_srls" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
|
|
@ -7,8 +7,9 @@
|
|||
<column name="module_category_srl" var="module_category_srl" />
|
||||
<column name="layout_srl" var="layout_srl" />
|
||||
<column name="skin" var="skin" minlength="0" maxlength="250" />
|
||||
<column name="is_skin_fix" var="is_skin_fix" default="Y" />
|
||||
<column name="is_skin_fix" var="is_skin_fix" default="N" />
|
||||
<column name="mskin" var="mskin" />
|
||||
<column name="is_mskin_fix" var="is_mskin_fix" default="N" />
|
||||
<column name="menu_srl" var="menu_srl" filter="number" />
|
||||
<column name="mid" var="mid" notnull="notnull" minlength="1" maxlength="40" />
|
||||
<column name="browser_title" var="browser_title" notnull="notnull" minlength="1" maxlength="250" />
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
<column name="mid" type="varchar" size="40" notnull="notnull" />
|
||||
<column name="is_skin_fix" type="char" size="1" notnull="notnull" default="Y" />
|
||||
<column name="skin" type="varchar" size="250" />
|
||||
<column name="is_mskin_fix" type="char" size="1" notnull="notnull" default="Y" />
|
||||
<column name="mskin" type="varchar" size="250" />
|
||||
<column name="browser_title" type="varchar" size="250" notnull="notnull" />
|
||||
<column name="description" type="text" />
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue