diff --git a/layouts/sample_blog/conf/info.xml b/layouts/sample_blog/conf/info.xml index 191fcb9c3..1882f272e 100644 --- a/layouts/sample_blog/conf/info.xml +++ b/layouts/sample_blog/conf/info.xml @@ -9,22 +9,22 @@ - + 상단 제목 text 레이아웃의 상단에 표시할 제목을 입력하세요. - + 메인 메뉴 명 text 트리메뉴의 가장 상위에 표시될 이름을 입력하세요. - + 홈 url text home이나 상단 제목 클릭시 이동할 홈 url을 입력해주세요. - + 컬러셋 select 원하시는 컬러셋을 선택해주세요. diff --git a/layouts/sample_layout_js_menu/conf/info.xml b/layouts/sample_layout_js_menu/conf/info.xml index eaab5a308..8fa3378ec 100644 --- a/layouts/sample_layout_js_menu/conf/info.xml +++ b/layouts/sample_layout_js_menu/conf/info.xml @@ -10,17 +10,17 @@ - + 상단 제목 text 레이아웃의 상단에 표시할 제목을 입력하세요. - + 메인 메뉴 명 text 트리메뉴의 가장 상위에 표시될 이름을 입력하세요. - + 컬러셋 select 원하시는 컬러셋을 선택해주세요. diff --git a/layouts/sample_layout_php_menu/conf/info.xml b/layouts/sample_layout_php_menu/conf/info.xml index 47e3b14fd..11896643e 100644 --- a/layouts/sample_layout_php_menu/conf/info.xml +++ b/layouts/sample_layout_php_menu/conf/info.xml @@ -10,17 +10,17 @@ - + 상단 제목 text 레이아웃의 상단에 표시할 제목을 입력하세요. - + 메인 메뉴 명 text 트리메뉴의 가장 상위에 표시될 이름을 입력하세요. - + 컬러셋 select 원하시는 컬러셋을 선택해주세요. diff --git a/modules/blog/blog.view.php b/modules/blog/blog.view.php index b73c15a6c..9222657d0 100644 --- a/modules/blog/blog.view.php +++ b/modules/blog/blog.view.php @@ -69,11 +69,17 @@ Context::set('module_info',$this->module_info); // 기본 모듈 정보들 설정 - $this->list_count = $this->module_info->list_count?$this->module_info->list_count:20; + $this->list_count = $this->module_info->list_count?$this->module_info->list_count:1; $this->page_count = $this->module_info->page_count?$this->module_info->page_count:10; - // 스킨 템플릿 경로 지정 + // 스킨 경로 구함 $template_path = sprintf("%sskins/%s/",$this->module_path, $this->skin); + + // 레이아웃 지정 + $this->setLayoutPath($template_path); + $this->setLayoutFile("layout"); + + // 템플릿 지정 $this->setTemplatePath($template_path); // rss url diff --git a/modules/blog/skins/default/css/layout.css b/modules/blog/skins/default/css/layout.css new file mode 100644 index 000000000..bcae51220 --- /dev/null +++ b/modules/blog/skins/default/css/layout.css @@ -0,0 +1,194 @@ +@charset "utf-8"; + +body { + margin:0px; + padding:0px; +} + +/** + * 레이아웃 style + **/ + +/** + * 상단 로고 및 메인 1차 메뉴 + **/ +.layout_top { + margin:10px 10px 0px 10px; + width:890px; +} + +/* 상단 로고 부분 */ +.layout_logo A { + font-weight:bold; + font-size:16pt; + color:#888888; + text-decoration:none; +} + +/* 상단 1차 메뉴 */ +.layout_first_menu { + border-bottom:2px solid #DDDDDD; + width:100%; + text-align:right; + padding:3px 0px 3px 0px; +} + +/** + * 좌측 메뉴 및 메인 2차 메뉴, 로그인 플러그인 및 기타 + **/ +.layout_left { + width:220px; + float:left; + margin-top:10px; + position:absolute; + left:10px; + z-index:10; +} + +/* 좌측 2차 메뉴 */ +.layout_second_menu { +} + +/* 좌측 관리자 메뉴 */ +.layout_admin { + margin-top:10px; + border:3px solid #EEEEEE; + padding:5px; + text-align:center; +} + +.layout_admin A { + color:#AAAAAA; + text-decoration:none; +} + +/* 컨텐츠 */ +.layout_content { + position:absolute; + left:0px; + padding:10px 10px 0px 240px; + z-index:1; + width:660px; +} + +#content { +} + +/** + * 하단 메뉴 영역 + **/ +.layout_bottom { + clear:both; + margin-top:20px; +} + +/* 하단 메뉴 */ +.layout_bottom_menu { + width:100%; + text-align:center; +} + +/** + * 메뉴 style, main_menu:1~3차, bottom_menu로 구성 + **/ + +/* 1차 메뉴 */ +.first_menu { + background-color:#999999; + padding:3px 10px 3px 10px; + margin-left:5px; +} + +.first_menu A { + font-weight:normal; + color:#FFFFFF; + text-decoration:none; +} + +.first_menu_selected { + background-color:#000000; + padding:3px 10px 3px 10px; + margin-left:5px; +} + +.first_menu_selected A { + color:#FFFFFF; + font-weight:bold; + text-decoration:none; +} + +/* 2차 메뉴 */ +.second_menu { + padding:5px 0px 5px 5px; + background-color:#AAAAAA; + display:block; + border-bottom:1px solid #999999; +} + +.second_menu A { + color:#FFFFFF; + text-decoration:none; + font-weight:normal; +} + +.second_menu_selected { + padding:5px 0px 5px 5px; + background-color:#666666; + display:block; + border-bottom:1px solid #444444; +} + +.second_menu_selected A { + color:#FFFFFF; + font-weight:bold; + text-decoration:none; +} + +/* 3차 메뉴 */ +.third_menu { + padding:5px 0px 5px 20px; + border-bottom:1px solid #EEEEEE; + display:block; +} + +.third_menu A { + color:#000000; + text-decoration:none; +} + +.third_menu_selected { + padding:5px 0px 5px 20px; + border-bottom:1px solid #EEEEEE; + font-weight:bold; + display:block; + background-color:#EFEFEF; +} + +.third_menu_selected A { + color:#000000; + font-weight:bold; + text-decoration:none; +} + +/* 하단 메뉴 */ +.bottom_menu { + margin-right:5px; + font-weight:normal; +} + +.bottom_menu A { + color:#000000; + text-decoration:none; +} + +.bottom_menu_selected { + margin-right:5px; + font-weight:bold; +} + +.bottom_menu_selected A { + color:#000000; + font-weight:bold; + text-decoration:none; +} + diff --git a/modules/blog/skins/default/layout.html b/modules/blog/skins/default/layout.html new file mode 100644 index 000000000..515e07bc9 --- /dev/null +++ b/modules/blog/skins/default/layout.html @@ -0,0 +1,60 @@ + + + + + + + + +
+ + +
+ + + + + + {@ $class_name = 'first_menu_selected'} + + {@ $class_name = 'first_menu'} + + + + {$val['text']} + + + + + +
+
+ + +
+ + + + + + + + + + + + + +
+ + +
+
{$content}
+
+ diff --git a/modules/blog/skins/default/skin.xml b/modules/blog/skins/default/skin.xml index 9406c2ff0..7a52e7cd1 100644 --- a/modules/blog/skins/default/skin.xml +++ b/modules/blog/skins/default/skin.xml @@ -14,40 +14,35 @@ - - 제목 - 그냥 테스트용입니다 - - - 제목 2 - haha - - - 내용 - 내용의 기본값 - - - 선택1 - 1 - 2 - 3 - 4 - 5 - - - 다중선택 - a - b - c - - - 하나선택 - A - B - C + + 상단 제목 + text + 레이아웃의 상단에 표시할 제목을 입력하세요. 로고이미지 + + 홈 url + text + home이나 상단 제목(로고이미지) 클릭시 이동할 홈 url을 입력해주세요. + + + 컬러셋 + select + 원하시는 컬러셋을 선택해주세요. + + 적색 + red + + + 청색 + blue + + + + 프로필 + 간단한 프로필을 입력해주세요 + - + diff --git a/modules/board/skins/default/header.html b/modules/board/skins/default/header.html index 68ffc0dae..1fa5d8fdd 100644 --- a/modules/board/skins/default/header.html +++ b/modules/board/skins/default/header.html @@ -1,6 +1,19 @@ {$module_info->header_text} + + +
+ + {$module_info->title}
+ + + + {nl2br($module_info->memo)} + +
+ +
diff --git a/modules/board/skins/default/skin.xml b/modules/board/skins/default/skin.xml index 89ae20ddc..14dbf4e42 100644 --- a/modules/board/skins/default/skin.xml +++ b/modules/board/skins/default/skin.xml @@ -16,38 +16,11 @@ 제목 - 그냥 테스트용입니다 - - - 제목 2 - haha + 게시판의 제목을 적어주세요. - 내용 + 게시판 설명 내용의 기본값 - - 선택1 - 1 - 2 - 3 - 4 - 5 - - - 다중선택 - a - b - c - - - 하나선택 - A - B - C - - - 로고이미지 - - + diff --git a/modules/layout/layout.controller.php b/modules/layout/layout.controller.php index 5bd55f0dd..c6a06f05a 100644 --- a/modules/layout/layout.controller.php +++ b/modules/layout/layout.controller.php @@ -94,6 +94,7 @@ } // 레이아웃 삭제 + $args->layout_srl = $layout_srl; $output = executeQuery("layout.deleteLayout", $args); if(!$output->toBool()) return $output; diff --git a/modules/layout/layout.model.php b/modules/layout/layout.model.php index 5559c0aab..11d44a846 100644 --- a/modules/layout/layout.model.php +++ b/modules/layout/layout.model.php @@ -131,10 +131,10 @@ unset($options); $var = $extra_vars[$i]; - $buff .= sprintf('$layout_info->extra_var->%s->name = "%s";', $var->attrs->id, $var->name->body); - $buff .= sprintf('$layout_info->extra_var->%s->type = "%s";', $var->attrs->id, $var->type->body); - $buff .= sprintf('$layout_info->extra_var->%s->value = $vars->%s;', $var->attrs->id, $var->attrs->id); - $buff .= sprintf('$layout_info->extra_var->%s->description = "%s";', $var->attrs->id, str_replace('"','\"',$var->description->body)); + $buff .= sprintf('$layout_info->extra_var->%s->name = "%s";', $var->attrs->name, $var->name->body); + $buff .= sprintf('$layout_info->extra_var->%s->type = "%s";', $var->attrs->name, $var->type->body); + $buff .= sprintf('$layout_info->extra_var->%s->value = $vars->%s;', $var->attrs->name, $var->attrs->name); + $buff .= sprintf('$layout_info->extra_var->%s->description = "%s";', $var->attrs->name, str_replace('"','\"',$var->description->body)); $options = $var->options; if(!$options) continue; @@ -142,7 +142,7 @@ if(!is_array($options)) $options = array($options); $options_count = count($options); for($j=0;$j<$options_count;$j++) { - $buff .= sprintf('$layout_info->extra_var->%s->options["%s"] = "%s";', $var->attrs->id, $options[$j]->value->body, $options[$j]->name->body); + $buff .= sprintf('$layout_info->extra_var->%s->options["%s"] = "%s";', $var->attrs->name, $options[$j]->value->body, $options[$j]->name->body); } } diff --git a/modules/member/skins/default/skin.xml b/modules/member/skins/default/skin.xml index e8e4d2059..90d7aa5a3 100644 --- a/modules/member/skins/default/skin.xml +++ b/modules/member/skins/default/skin.xml @@ -13,4 +13,4 @@ 이상한거 - + diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 5d62a758b..f5e242f23 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -152,8 +152,6 @@ $list = FileHandler::readDir($skin_path); if(!count($list)) return; - $oXmlParser = new XmlParser(); - foreach($list as $skin_name) { unset($skin_info); $skin_info = $this->loadSkinInfo($path, $skin_name); @@ -177,10 +175,11 @@ // XmlParser 객체 생성 $oXmlParser = new XmlParser(); - $xml_obj = $oXmlParser->loadXmlFile($skin_xml_file); + $_xml_obj = $oXmlParser->loadXmlFile($skin_xml_file); // 스킨 정보가 없으면 return - if(!$xml_obj) return; + if(!$_xml_obj->skin) return; + $xml_obj = $_xml_obj->skin; // 스킨이름 $skin_info->title = $xml_obj->title->body; @@ -193,10 +192,10 @@ $skin_info->maker->description = $xml_obj->maker->description->body; // colorset - if(!is_array($xml_obj->colorset->color)) $colorset[] = $xml_obj->colorset->color; - else $colorset = $xml_obj->colorset->color; + $colorset = $xml_obj->colorset->color; + if($colorset) { + if(!is_array($colorset)) $colorset = array($colorset); - if($colorset[0]->attrs->name) { foreach($colorset as $color) { $name = $color->attrs->name; $title = $color->title->body; @@ -213,21 +212,22 @@ } // 스킨에서 사용되는 변수들 - if(!is_array($xml_obj->extra_vars->var)) $extra_vars[] = $xml_obj->extra_vars->var; - else $extra_vars = $xml_obj->extra_vars->var; + $extra_vars = $xml_obj->extra_vars->var; + if($extra_vars) { + + if(!is_array($extra_vars)) $extra_vars = array($extra_vars); - if($extra_vars[0]->attrs->name) { foreach($extra_vars as $var) { - $name = $var->attrs->name; - $type = $var->attrs->type; - $title = $var->title->body; - $description = $var->description->body; - if($var->default) { - unset($default); - if(is_array($var->default)) { - for($i=0;$idefault);$i++) $default[] = $var->default[$i]->body; - } else { - $default = $var->default->body; + $name = $var->attrs->name; + $type = $var->attrs->type; + $title = $var->title->body; + $description = $var->description->body; + if($var->default) { + unset($default); + if(is_array($var->default)) { + for($i=0;$idefault);$i++) $default[] = $var->default[$i]->body; + } else { + $default = $var->default->body; } } diff --git a/modules/poll/skins/default/skin.xml b/modules/poll/skins/default/skin.xml index d6b050f9a..b116b7fbd 100644 --- a/modules/poll/skins/default/skin.xml +++ b/modules/poll/skins/default/skin.xml @@ -10,4 +10,4 @@ 기본 - + diff --git a/plugins/counter_status/skins/default/skin.xml b/plugins/counter_status/skins/default/skin.xml index 6b5410a67..76285883e 100644 --- a/plugins/counter_status/skins/default/skin.xml +++ b/plugins/counter_status/skins/default/skin.xml @@ -10,4 +10,4 @@ 기본 - + diff --git a/plugins/login_info/skins/default/skin.xml b/plugins/login_info/skins/default/skin.xml index 01d2e4c74..ac5b2fe26 100644 --- a/plugins/login_info/skins/default/skin.xml +++ b/plugins/login_info/skins/default/skin.xml @@ -10,4 +10,4 @@ 기본 - + diff --git a/plugins/newest_document/skins/default/skin.xml b/plugins/newest_document/skins/default/skin.xml index 373d92c27..b2c903779 100644 --- a/plugins/newest_document/skins/default/skin.xml +++ b/plugins/newest_document/skins/default/skin.xml @@ -13,4 +13,4 @@ 푸른계통의 컬러 - +