diff --git a/modules/admin/admin.admin.model.php b/modules/admin/admin.admin.model.php
index 2e8a3706d..fb9abdf11 100644
--- a/modules/admin/admin.admin.model.php
+++ b/modules/admin/admin.admin.model.php
@@ -215,10 +215,9 @@
$oXmlParser = new XmlParser();
$_xml_obj = $oXmlParser->loadXmlFile($info_file);
+ if(!$_xml_obj->theme) return;
- if(!$_xml_obj->theme) return;
$xml_obj = $_xml_obj->theme;
- if(!$_xml_obj->theme) return;
// 스킨이름
$theme_info->name = $theme_name;
@@ -247,7 +246,7 @@
$layout_parse = explode('/',$layout_path);
switch($layout_parse[1]){
case 'themes' : {
- $layout_info->name = $theme_name.'.'.$layout_parse[count($layout_parse)-1];
+ $layout_info->name = $theme_name.'|@|'.$layout_parse[count($layout_parse)-1];
break;
}
case 'layouts' : {
@@ -255,6 +254,7 @@
break;
}
}
+ $layout_info->title = $layout_parse[count($layout_parse)-1];
$layout_info->path = $layout_path;
$site_info = Context::get('site_module_info');
@@ -278,7 +278,7 @@
$args->site_srl = (int)$site_module_info->site_srl;
$args->layout_srl = getNextSequence();
$args->layout = $layout_info->name;
- $args->title = $layout_info->name;
+ $args->title = $layout_info->title;
$args->layout_type = "P";
// Insert into the DB
$oLayoutAdminController = &getAdminController('layout');
diff --git a/modules/layout/layout.admin.controller.php b/modules/layout/layout.admin.controller.php
index eb2616197..f77287207 100644
--- a/modules/layout/layout.admin.controller.php
+++ b/modules/layout/layout.admin.controller.php
@@ -188,8 +188,7 @@
$output = $this->updateLayout($args);
if(!$output->toBool()) return $output;
- $this->setRedirectUrl(Context::get('error_return_url'));
- return $output;
+ return $this->setRedirectUrl(Context::get('error_return_url'), $output);
}
/**
diff --git a/modules/layout/layout.class.php b/modules/layout/layout.class.php
index e7e0ff13d..8b78af662 100644
--- a/modules/layout/layout.class.php
+++ b/modules/layout/layout.class.php
@@ -35,6 +35,18 @@
if(!$oDB->isColumnExists('layouts', 'layout_type')) return true;
+ $args->layout = '.';
+ $output = executeQueryArray('layout.getLayoutDotList', $args);
+ if($output->data && count($output->data) > 0)
+ {
+ foreach($output->data as $layout)
+ {
+ $layout_path = explode('.', $layout->layout);
+ if(count($layout_path) != 2) continue;
+ if(is_dir(sprintf(_XE_PATH_ . 'themes/%s/layouts/%s', $layout_path[0], $layout_path[1]))) return true;
+ }
+ }
+
return false;
}
@@ -66,6 +78,21 @@
$oDB->addColumn('layouts','layout_type','char',1,'P',true);
}
+ $output = executeQueryArray('layout.getLayoutDotList', $args);
+ if($output->data && count($output->data) > 0)
+ {
+ foreach($output->data as $layout)
+ {
+ $layout_path = explode('.', $layout->layout);
+ if(count($layout_path) != 2) continue;
+ if(is_dir(sprintf(_XE_PATH_ . 'themes/%s/layouts/%s', $layout_path[0], $layout_path[1])))
+ {
+ $args->layout = implode('|@|', $layout_path);
+ $args->layout_srl = $layout->layout_srl;
+ $output = executeQuery('layout.updateLayout', $args);
+ }
+ }
+ }
return new Object(0, 'success_updated');
}
diff --git a/modules/layout/layout.model.php b/modules/layout/layout.model.php
index 3d2e92016..aff35a78f 100644
--- a/modules/layout/layout.model.php
+++ b/modules/layout/layout.model.php
@@ -104,7 +104,7 @@
* @return string path of layout
**/
function getLayoutPath($layout_name, $layout_type = "P") {
- $layout_parse = explode('.', $layout_name);
+ $layout_parse = explode('|@|', $layout_name);
if (count($layout_parse) > 1){
$class_path = './themes/'.$layout_parse[0].'/layouts/'.$layout_parse[1].'/';
}else if($layout_name == 'faceoff'){
diff --git a/modules/layout/queries/getLayoutDotList.xml b/modules/layout/queries/getLayoutDotList.xml
new file mode 100644
index 000000000..d26bcbe15
--- /dev/null
+++ b/modules/layout/queries/getLayoutDotList.xml
@@ -0,0 +1,16 @@
+
+
{$lang->about_skin_fix}
+