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 @@ + + + + + + + + + + + + + + + + diff --git a/modules/page/tpl/page_info.html b/modules/page/tpl/page_info.html index fab4f42e6..82d32248e 100644 --- a/modules/page/tpl/page_info.html +++ b/modules/page/tpl/page_info.html @@ -101,6 +101,13 @@ + + + +
{$lang->skin_fix} + +

{$lang->about_skin_fix}

+
{$lang->skin}