cafeXE 개선

1. 게시판/페이지 외에 최고관리자가 지정한 서비스 모듈을 생성/관리 가능하도록 개선
2. 최고관리자는 기본 레이아웃/ 레이아웃 변경 기능 제한/ 카페별 서비스 모듈 생성 개수를 지정하는 기능 추가
3. 생성된 카페의 도메인/vid 등을 수정할 수 있는 기능 추가
4. 카페 관리자가 메뉴 추가시에 메뉴명과 서비스 모듈 종류만 지정하면 모듈이 생성되도록 개선
5. 가상사이트와 기본 사이트간의 모듈을 옮길 수 있는 기능 추가


git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6171 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2009-04-22 10:38:47 +00:00
parent b2e0e09529
commit 5bb5fa23a8
68 changed files with 721 additions and 617 deletions

View file

@ -15,8 +15,7 @@
<action name="dispSpringnoteContent" type="view" index="true" />
<action name="dispSpringnoteAdminContent" type="view" standalone="true" admin_index="true" />
<action name="dispSpringnoteAdminSpringnoteInfo" type="view" standalone="true" />
<action name="dispSpringnoteAdminInsertSpringnote" type="view" standalone="true" />
<action name="dispSpringnoteAdminInsertSpringnote" type="view" standalone="true" setup_index="true"/>
<action name="dispSpringnoteAdminDeleteSpringnote" type="view" standalone="true" />
<action name="dispSpringnoteAdminGrantInfo" type="view" standalone="true" />
<action name="dispSpringnoteAdminSkinInfo" type="view" standalone="true" />

View file

@ -40,7 +40,7 @@
<!--// 관리자이면 설정 버튼 출력 -->
<!--@if($grant->is_admin)-->
<li class="setup"><a href="{getUrl('act','dispSpringnoteAdminSpringnoteInfo')}">{$lang->cmd_setup}</a></li>
<li class="setup"><a href="{getUrl('act','dispSpringnoteAdminInsertSpringnote')}">{$lang->cmd_setup}</a></li>
<!--@end-->
<!--// 최고관리자이면 관리자 페이지 버튼 출력 -->

View file

@ -3,21 +3,21 @@
* @class springnoteAdminView
* @author zero (zero@nzeo.com)
* @brief springnote 모듈의 admin view class
* 방명록 관리자 기능은 생성된 모듈 목록, 신규 등록 수정, 권한의 설정으로 이루어진다.
* 스프링노트 관리자 기능은 생성된 모듈 목록, 신규 등록 수정, 권한의 설정으로 이루어진다.
**/
class springnoteAdminView extends springnote {
/**
* @brief 초기화
* 손쉬운 사용을 위해서 module_srl이 넘어올 경우 해당 방명록모듈 정보를 미리 구해서 세팅해 놓도록 한다.
* 손쉬운 사용을 위해서 module_srl이 넘어올 경우 해당 스프링노트모듈 정보를 미리 구해서 세팅해 놓도록 한다.
* method에서 하거나 별도의 method를 만들어서 호출하면 되지만 코드의 양을 줄이고 직관성을 높이기 위해서 설정한 코드이다.
**/
function init() {
// module_srl값을 구해온다.
$module_srl = Context::get('module_srl');
// 요청된 module_srl값이 없는데 현재 모듈의 module_srl값이 있다는 것은 방명록의 서비스 부분에서 설정링크를 통해서 바로 설정을 하는 경우이다.
// 요청된 module_srl값이 없는데 현재 모듈의 module_srl값이 있다는 것은 스프링노트의 서비스 부분에서 설정링크를 통해서 바로 설정을 하는 경우이다.
if(!$module_srl && $this->module_srl) {
$module_srl = $this->module_srl;
Context::set('module_srl', $module_srl);
@ -48,7 +48,7 @@
}
/**
* @brief 생성된 방명록들의 목록을 보여줌
* @brief 생성된 스프링노트들의 목록을 보여줌
* springnote이라는 module명으로 등록된 모듈을 구하기 위해서 몇가지 설정을 후에 쿼리를 수행한다.
* 쿼리수행은 executeQuery(모듈명.쿼리아이디, 인자변수) 하게 되며 쿼리아이디에 해당하는 xml파일은 모듈의 queries디렉토리에 지정이 되어 있다.
*
@ -77,34 +77,9 @@
$this->setTemplateFile('index');
}
/**
* @brief 선택된 방명록의 정보 출력
**/
function dispSpringnoteAdminSpringnoteInfo() {
// module_srl 값이 없다면 그냥 index 페이지를 보여줌
if(!Context::get('module_srl')) return $this->dispSpringnoteAdminContent();
// 레이아웃이 정해져 있다면 레이아웃 정보를 추가해줌(layout_title, layout)
if($this->module_info->layout_srl) {
$oLayoutModel = &getModel('layout');
$layout_info = $oLayoutModel->getLayout($this->module_info->layout_srl);
$this->module_info->layout = $layout_info->layout;
$this->module_info->layout_title = $layout_info->layout_title;
}
// 정해진 스킨이 있으면 해당 스킨의 정보를 구함
if($this->module_info->skin) {
$oModuleModel = &getModel('module');
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $this->module_info->skin);
$this->module_info->skin_title = $skin_info->title;
}
// 템플릿 파일 지정
$this->setTemplateFile('springnote_info');
}
/**
* @brief 방명록 설정 출력
* @brief 스프링노트 설정 출력
**/
function dispSpringnoteAdminInsertSpringnote() {
// 스킨 목록을 구해옴
@ -122,7 +97,7 @@
}
/**
* @brief 방명록 삭제 화면 출력
* @brief 스프링노트 삭제 화면 출력
**/
function dispSpringnoteAdminDeleteSpringnote() {
if(!Context::get('module_srl')) return $this->dispSpringnoteAdminContent();

View file

@ -27,6 +27,10 @@
* $this->module_path는 ./modules/guestbook/ 값을 가지고 있다
**/
$template_path = sprintf("%sskins/%s/",$this->module_path, $this->module_info->skin);
if(!is_dir($template_path)||!$this->module_info->skin) {
$this->module_info->skin = 'xe_official';
$template_path = sprintf("%sskins/%s/",$this->module_path, $this->module_info->skin);
}
$this->setTemplatePath($template_path);
}

View file

@ -15,7 +15,7 @@
<!--@else-->
<li><a href="{getUrl('act','')}">{$lang->cmd_back}</a></li>
<!--@end-->
<li <!--@if(in_array($act,array('dispSpringnoteAdminSpringnoteInfo','dispSpringnoteAdminInsertSpringnote')))-->class="on"<!--@end-->><a href="{getUrl('act','dispSpringnoteAdminSpringnoteInfo')}">{$lang->cmd_view_info}</a></li>
<li <!--@if($act=='dispSpringnoteAdminInsertSpringnote')-->class="on"<!--@end-->><a href="{getUrl('act','dispSpringnoteAdminInsertSpringnote')}">{$lang->cmd_view_info}</a></li>
<li <!--@if($act=='dispSpringnoteAdminGrantInfo')-->class="on"<!--@end-->><a href="{getUrl('act','dispSpringnoteAdminGrantInfo')}">{$lang->cmd_manage_grant}</a></li>
<li <!--@if($act=='dispSpringnoteAdminSkinInfo')-->class="on"<!--@end-->><a href="{getUrl('act','dispSpringnoteAdminSkinInfo')}">{$lang->cmd_manage_skin}</a></li>
</ul>

View file

@ -45,7 +45,7 @@
<td>{htmlspecialchars($val->mid)}</td>
<td><a href="{getUrl('','mid',$val->mid)}" onclick="window.open(this.href); return false;">{htmlspecialchars($val->browser_title)}</a></td>
<td>{zdate($val->regdate,"Y-m-d")}</td>
<td><a href="{getUrl('act','dispSpringnoteAdminSpringnoteInfo','module_srl',$val->module_srl)}" class="buttonSet buttonSetting"><span>{$lang->cmd_setup}</span></a></td>
<td><a href="{getUrl('act','dispSpringnoteAdminInsertSpringnote','module_srl',$val->module_srl)}" class="buttonSet buttonSetting"><span>{$lang->cmd_setup}</span></a></td>
<td><a href="{getUrl('act','dispSpringnoteAdminDeleteSpringnote','module_srl', $val->module_srl)}" class="buttonSet buttonDelete"><span>{$lang->cmd_delete}</a></td>
</tr>
<!--@end-->

View file

@ -14,7 +14,7 @@ function completeInsertSpringnote(ret_obj) {
alert(message);
var url = current_url.setQuery('act','dispSpringnoteAdminSpringnoteInfo');
var url = current_url.setQuery('act','dispSpringnoteAdminInsertSpringnote');
if(module_srl) url = url.setQuery('module_srl',module_srl);
if(page) url.setQuery('page',page);
location.href = url;

View file

@ -1,85 +0,0 @@
<!--#include("header.html")-->
<table cellspacing="0" class="rowTable">
<tr>
<th scope="row"><div>{$lang->module_category}</div></th>
<td class="wide">
<!--@if(!$module_info->module_category_srl)-->
{$lang->not_exists}
<!--@else-->
{$module_category[$module_info->module_category_srl]->title}
<!--@end-->
</td>
</tr>
<tr class="row2">
<th scope="row"><div>{$lang->springnote_openid}</div></th>
<td>http://{$module_info->openid}/</td>
</tr>
<tr>
<th scope="row"><div>{$lang->springnote_userkey}</div></th>
<td>{$module_info->userkey}&nbsp;</td>
</tr>
<tr class="row2">
<th scope="row"><div>{$lang->springnote_pageid}</div></th>
<td>{$module_info->pageid}&nbsp;</td>
</tr>
<tr>
<th scope="row"><div>{$lang->springnote_pageid_setup}</div></th>
<td><!--@if($module_info->pageid_option!='list')-->{$lang->springnote_pageid_option_only}<!--@else-->{$lang->springnote_pageid_option_list}<!--@end--></td>
</tr>
<tr class="row2">
<th scope="row"><div>{$lang->springnote_domain}</div></th>
<td>{$module_info->domain}&nbsp;</td>
</tr>
<tr>
<th scope="row"><div>{$lang->layout}</div></th>
<td>
<!--@if($module_info->layout_srl)-->
{$module_info->layout_title} ({$module_info->layout})
<!--@else-->
{$lang->not_exists}
<!--@end-->
&nbsp;
</td>
</tr>
<tr class="row2">
<th scope="row"><div>{$lang->skin}</div></th>
<td>{$module_info->skin_title} ({$module_info->skin})</td>
</tr>
<tr>
<th scope="row"><div>{$lang->browser_title}</div></th>
<td>{htmlspecialchars($module_info->browser_title)}</td>
</tr>
<tr class="row2">
<th scope="row"><div>{$lang->use_category}</div></th>
<td><!--@if($module_info->use_category=='Y')-->{$lang->use}<!--@else-->{$lang->notuse}<!--@end--></td>
</tr>
<tr>
<th scope="row"><div>{$lang->list_count}</div></th>
<td>{$module_info->list_count?$module_info->list_count:20}</td>
</tr>
<tr class="row2">
<th scope="row"><div>{$lang->page_count}</div></th>
<td>{$module_info->page_count?$module_info->page_count:10}</td>
</tr>
<tr>
<th scope="row"><div>{$lang->description}</div></th>
<td>{nl2br(htmlspecialchars($module_info->description))}&nbsp;</td>
</tr>
<tr class="row2">
<th scope="row"><div>{$lang->header_text}</div></th>
<td>{htmlspecialchars($module_info->header_text)}&nbsp;</td>
</tr>
<tr>
<th scope="row"><div>{$lang->footer_text}</div></th>
<td>{htmlspecialchars($module_info->footer_text)}&nbsp;</td>
</tr>
<tr>
<th colspan="2" class="button">
<a href="{getUrl('act','dispSpringnoteAdminInsertSpringnote')}" class="button black strong"><span>{$lang->cmd_modify}</span></a>
<!--@if($module=="admin")-->
<a href="{getUrl('act','dispSpringnoteAdminContent','module_srl','')}" class="button"><span>{$lang->cmd_springnote_list}</span></a>
<!--@end-->
</th>
</tr>
</table>

View file

@ -10,6 +10,9 @@
<table cellspacing="0" class="rowTable">
<!--@if($logged_info->is_admin!='Y')-->
<input type="hidden" name="mid" value="{$module_info->mid}" />
<!--@else-->
<tr class="row2">
<th scope="row"><div>{$lang->mid}</div></th>
<td class="wide">
@ -17,6 +20,7 @@
<p>{$lang->about_mid}</p>
</td>
</tr>
<!--@end-->
<tr class="row2">
<th scope="row"><div>{$lang->module_category}</div></th>
<td>