git-svn-id: http://xe-core.googlecode.com/svn/trunk@1261 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-04-20 09:23:33 +00:00
parent 45f679a9ad
commit e5db303dea
11 changed files with 132 additions and 56 deletions

View file

@ -302,6 +302,30 @@
}
}
// 메뉴 관리
$menus = get_object_vars($skin_info->menu);
if(count($menus)) {
foreach($menus as $menu_id => $val) {
$menu_srl = Context::get($menu_id);
if($menu_srl) {
$obj->menu->{$menu_id} = $menu_srl;
$obj->{$menu_id} = $menu_srl;
$menu_srl_list[] = $menu_srl;
}
}
// 정해진 메뉴가 있으면 모듈 및 메뉴에 대한 레이아웃 연동
if(count($menu_srl_list)) {
// 해당 메뉴와 레이아웃 값을 매핑
$oMenuController = &getController('menu');
$oMenuController->updateMenuLayout($module_srl, $menu_srl_list);
// 해당 메뉴에 속한 mid의 layout값을 모두 변경
$oModuleController = &getController('module');
$oModuleController->updateModuleLayout($module_srl, $menu_srl_list);
}
}
// serialize하여 저장
$obj->category_xml_file = sprintf("./files/cache/blog_category/%s.xml.php", $module_srl);
$skin_vars = serialize($obj);

View file

@ -90,6 +90,15 @@
// 레이아웃의 정보를 속이기 위해서 layout_srl을 현 블로그의 module_srl로 입력
$this->module_info->layout_srl = $this->module_info->module_srl;
// 메뉴 등록시 메뉴 정보를 구해옴
if($this->module_info->menu) {
foreach($this->module_info->menu as $menu_id => $menu_srl) {
$menu_php_file = sprintf("./files/cache/menu/%s.php", $menu_srl);
if(file_exists($menu_php_file)) include($menu_php_file);
Context::set($menu_id, $menu);
}
}
// 모듈정보와 레이아웃에서 사용하기 위한 레이아웃 정보를 세팅
Context::set('module_info',$this->module_info);
Context::set('layout_info',$this->module_info);
@ -529,6 +538,18 @@
}
}
// skin_info에 menu값을 지정
if(count($skin_info->menu)) {
foreach($skin_info->menu as $key => $val) {
if($module_info->{$key}) $skin_info->menu->{$key}->menu_srl = $module_info->{$key};
}
}
// 메뉴를 가져옴
$oMenuModel = &getModel('menu');
$menu_list = $oMenuModel->getMenus();
Context::set('menu_list', $menu_list);
Context::set('skin_info', $skin_info);
$this->setTemplateFile('skin_info');
}
@ -549,16 +570,6 @@
$this->setTemplateFile('category_list');
}
/**
* @brief 메뉴 정보
**/
function dispBlogAdminMenuInfo() {
// module_srl을 구함
$module_srl = $this->module_info->module_srl;
$this->setTemplateFile('category_list');
}
/**
* @brief 권한 목록 출력
**/

View file

@ -56,7 +56,6 @@
<action name="dispBlogAdminInsertBlog" type="view" standalone="true" />
<action name="dispBlogAdminDeleteBlog" type="view" standalone="true" />
<action name="dispBlogAdminCategoryInfo" type="view" standalone="true" />
<action name="dispBlogAdminMenuInfo" type="view" standalone="true" />
<action name="dispBlogAdminSkinInfo" type="view" standalone="true" />
<action name="dispBlogAdminGrantInfo" type="view" standalone="true" />
<action name="dispBlogAdminManageDocument" type="view" />

View file

@ -31,6 +31,7 @@
<div class="layout_first_menu">
<!-- top_menu 시작 -->
<!--@foreach($top_menu->list as $key => $val)--><!--@if($val['text'])-->
<!--@if($val['selected'])-->

View file

@ -1,44 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<skin>
<title xml:lang="ko">블로그 기본 스킨</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<description xml:lang="ko">blog 모듈의 default스킨</description>
</maker>
<colorset>
<color name="normal" src="screenshot/normal.gif">
<title xml:lang="ko">기본</title>
</color>
<color name="deep" src="screenshot/blue.gif">
<title xml:lang="ko">이상한거</title>
</color>
</colorset>
<extra_vars>
<var name="top_title" type="text">
<title xml:lang="ko">상단 제목</title>
<description xml:lang="ko">레이아웃의 상단에 표시할 제목을 입력하세요.</description>
</var>
<var name="logo_image" type="image" width="60" height="60">
<title xml:lang="ko">로고이미지</title>
<description xml:lang="ko">레이아웃의 상단에 표시될 로고이미지를 입력하세요.</description>
</var>
<var name="profile_image" type="image" width="60" height="60">
<title xml:lang="ko">프로필 이미지</title>
<description xml:lang="ko">프로필 이미지를 입력해 주세요 (가로 사이즈는 200px이 가장 보기 좋습니다)</description>
</var>
<var name="profile" type="textarea">
<title xml:lang="ko">프로필</title>
<description lang="ko">간단한 프로필을 입력해주세요</description>
</var>
<var name="category_name" type="text">
<title xml:lang="ko">카테고리명</title>
<description lang="ko">카테고리의 이름을 입력해주세요.</description>
</var>
<var name="display_writer" type="select">
<title xml:lang="ko">글쓴이 표시</title>
<description lang="ko">다수가 블로그를 함께 운영시에 글쓴이의 이름을 표시할 수 있습니다.</description>
<default>off</default>
<default>on</default>
</var>
</extra_vars>
<title xml:lang="ko">블로그 기본 스킨</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<description xml:lang="ko">blog 모듈의 default스킨</description>
</maker>
<colorset>
<color name="normal" src="screenshot/normal.gif">
<title xml:lang="ko">기본</title>
</color>
<color name="deep" src="screenshot/blue.gif">
<title xml:lang="ko">이상한거</title>
</color>
</colorset>
<extra_vars>
<var name="top_title" type="text">
<title xml:lang="ko">상단 제목</title>
<description xml:lang="ko">레이아웃의 상단에 표시할 제목을 입력하세요.</description>
</var>
<var name="logo_image" type="image" width="60" height="60">
<title xml:lang="ko">로고이미지</title>
<description xml:lang="ko">레이아웃의 상단에 표시될 로고이미지를 입력하세요.</description>
</var>
<var name="profile_image" type="image" width="60" height="60">
<title xml:lang="ko">프로필 이미지</title>
<description xml:lang="ko">프로필 이미지를 입력해 주세요 (가로 사이즈는 200px이 가장 보기 좋습니다)</description>
</var>
<var name="profile" type="textarea">
<title xml:lang="ko">프로필</title>
<description lang="ko">간단한 프로필을 입력해주세요</description>
</var>
<var name="category_name" type="text">
<title xml:lang="ko">카테고리명</title>
<description lang="ko">카테고리의 이름을 입력해주세요.</description>
</var>
<var name="display_writer" type="select">
<title xml:lang="ko">글쓴이 표시</title>
<description lang="ko">다수가 블로그를 함께 운영시에 글쓴이의 이름을 표시할 수 있습니다.</description>
<default>off</default>
<default>on</default>
</var>
</extra_vars>
<menus>
<menu name="top_menu" default="true">
<title xml:lang="ko">상단 메뉴</title>
<maxdepth>1</maxdepth>
</menu>
</menus>
</skin>

View file

@ -10,7 +10,6 @@
<!--@end-->
<span <!--@if($act=='dispBlogAdminBlogInfo')-->style="font-weight:bold"<!--@end-->>[<a href="{getUrl('act','dispBlogAdminBlogInfo')}">{$lang->cmd_view_info}</a>]</span>
<span <!--@if($act=='dispBlogAdminCategoryInfo')-->style="font-weight:bold"<!--@end-->>[<a href="{getUrl('act','dispBlogAdminCategoryInfo')}">{$lang->cmd_manage_category}</a>]</span>
<span <!--@if($act=='dispBlogAdminMenuInfo')-->style="font-weight:bold"<!--@end-->>[<a href="{getUrl('act','dispBlogAdminMenuInfo')}">{$lang->cmd_manage_menu}</a>]</span>
<span <!--@if($act=='dispBlogAdminGrantInfo')-->style="font-weight:bold"<!--@end-->>[<a href="{getUrl('act','dispBlogAdminGrantInfo')}">{$lang->cmd_manage_grant}</a>]</span>
<span <!--@if($act=='dispBlogAdminSkinInfo')-->style="font-weight:bold"<!--@end-->>[<a href="{getUrl('act','dispBlogAdminSkinInfo')}">{$lang->cmd_manage_skin}</a>]</span>
</div>

View file

@ -48,6 +48,22 @@
</td>
</tr>
<!--@if($skin_info->menu)-->
<!--@foreach($skin_info->menu as $menu_name => $menu_info)-->
<tr>
<th>{$menu_info->title}<br />({$menu_name})</th>
<td>
<select name="{$menu_name}">
<option value="0">------------------------</option>
<!--@foreach($menu_list as $key => $val)-->
<option value="{$val->menu_srl}" <!--@if($val->menu_srl == $menu_info->menu_srl)-->selected="true"<!--@end-->>{$val->title}</option>
<!--@end-->
</select>
</td>
</tr>
<!--@end-->
<!--@end-->
</table>
</div>

View file

@ -164,7 +164,7 @@
// 메뉴
if($xml_obj->menus->menu) {
$menus = $xml_obj->menus->menu;
if(!is_array($menus)) $menus[] = $menus;
if(!is_array($menus)) $menus = array($menus);
$menu_count = count($menus);
$buff .= sprintf('$layout_info->menu_count = "%s";', $menu_count);

View file

@ -65,7 +65,7 @@
<!--@end-->
<!--@foreach($layout_info->menu as $menu_name => $menu_info)-->
<tr>
<th>{$menu_info->name} ({$menu_name})</th>
<th>{$menu_info->title}<br />({$menu_name})</th>
<td>
<select name="{$menu_name}">
<option value="0">------------------------</option>

View file

@ -377,7 +377,7 @@
// 속성을 생성한다 ( url_list를 이용해서 선택된 메뉴의 노드에 속하는지를 검사한다. 꽁수지만 빠르고 강력하다고 생각;;)
$attribute = sprintf(
'"node_srl"=>"%s","text"=>(%s?"%s":""),"href"=>(%s?"%s":""),"url"=>(%s?"%s":""),"open_window"=>"%s","normal_btn"=>"%s","hover_btn"=>"%s","active_btn"=>"%s","selected"=>(in_array(Context::get("zbxe_url"),array(%s))?1:0),"list"=>array(%s)',
'"node_srl"=>"%s","text"=>(%s?"%s":""),"href"=>(%s?"%s":""),"url"=>(%s?"%s":""),"open_window"=>"%s","normal_btn"=>"%s","hover_btn"=>"%s","active_btn"=>"%s","selected"=>(%s&&in_array(Context::get("zbxe_url"),array(%s))?1:0),"list"=>array(%s)',
$node->menu_item_srl,
$group_check_code,
$name,
@ -390,6 +390,7 @@
$hover_btn,
$active_btn,
$selected,
$selected,
$child_buff
);

View file

@ -247,6 +247,25 @@
}
}
// 메뉴 종류 (레이아웃을 위한 설정)
if($xml_obj->menus->menu) {
$menus = $xml_obj->menus->menu;
if(!is_array($menus)) $menus = array($menus);
$menu_count = count($menus);
$skin_info->menu_count = $menu_count;
for($i=0;$i<$menu_count;$i++) {
unset($obj);
$obj->name = $menus[$i]->attrs->name;
if($menus[$i]->attrs->default == "true") $obj->default = true;
$obj->title = $menus[$i]->title->body;
$obj->maxdepth = $menus[$i]->maxdepth->body;
$skin_info->menu->{$obj->name} = $obj;
}
}
return $skin_info;
}