css 및 js 호출순서 조정기능 추가

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5785 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ngleader 2009-03-06 05:33:56 +00:00
parent 4f380d9c48
commit 61851f1dfe
2149 changed files with 109090 additions and 18689 deletions

View file

@ -20,17 +20,19 @@
function procAddonAdminToggleActivate() {
$oAddonModel = &getAdminModel('addon');
$site_module_info = Context::get('site_module_info');
// addon값을 받아옴
$addon = Context::get('addon');
if($addon) {
// 활성화 되어 있으면 비활성화 시킴
if($oAddonModel->isActivatedAddon($addon)) $this->doDeactivate($addon);
if($oAddonModel->isActivatedAddon($addon, $site_module_info->site_srl)) $this->doDeactivate($addon, $site_module_info->site_srl);
// 비활성화 되어 있으면 활성화 시킴
else $this->doActivate($addon);
else $this->doActivate($addon, $site_module_info->site_srl);
}
$this->makeCacheFile();
$this->makeCacheFile($site_module_info->site_srl);
}
/**
@ -44,9 +46,11 @@
unset($args->addon_name);
unset($args->body);
$this->doSetup($addon_name, $args);
$site_module_info = Context::get('site_module_info');
$this->makeCacheFile();
$this->doSetup($addon_name, $args, $site_module_info->site_srl);
$this->makeCacheFile($site_module_info->site_srl);
}
@ -55,20 +59,24 @@
* @brief 애드온 추가
* DB에 애드온을 추가함
**/
function doInsert($addon) {
function doInsert($addon, $site_srl = 0) {
$args->addon = $addon;
$args->is_used = 'N';
return executeQuery('addon.insertAddon', $args);
if(!$site_srl) return executeQuery('addon.insertAddon', $args);
$args->site_srl = $site_srl;
return executeQuery('addon.insertSiteAddon', $args);
}
/**
* @brief 애드온 활성화
* addons라는 테이블에 애드온의 활성화 상태를 on 시켜줌
**/
function doActivate($addon) {
function doActivate($addon, $site_srl = 0) {
$args->addon = $addon;
$args->is_used = 'Y';
return executeQuery('addon.updateAddon', $args);
if(!$site_srl) return executeQuery('addon.updateAddon', $args);
$args->site_srl = $site_srl;
return executeQuery('addon.updateSiteAddon', $args);
}
/**
@ -76,10 +84,12 @@
*
* addons라는 테이블에 애드온의 이름을 제거하는 것으로 비활성화를 시키게 된다
**/
function doDeactivate($addon) {
function doDeactivate($addon, $site_srl = 0) {
$args->addon = $addon;
$args->is_used = 'N';
return executeQuery('addon.updateAddon', $args);
if(!$site_srl) return executeQuery('addon.updateAddon', $args);
$args->site_srl = $site_srl;
return executeQuery('addon.updateSiteAddon', $args);
}

View file

@ -25,9 +25,9 @@
/**
* @brief 애드온의 종류와 정보를 구함
**/
function getAddonList() {
function getAddonList($site_srl = 0) {
// activated된 애드온 목록을 구함
$inserted_addons = $this->getInsertedAddons();
$inserted_addons = $this->getInsertedAddons($site_srl);
// 다운받은 애드온과 설치된 애드온의 목록을 구함
$searched_list = FileHandler::readDir('./addons');
@ -44,7 +44,7 @@
// 해당 애드온의 정보를 구함
unset($info);
$info = $this->getAddonInfoXml($addon_name);
$info = $this->getAddonInfoXml($addon_name, $site_srl);
$info->addon = $addon_name;
$info->path = $path;
@ -54,7 +54,7 @@
if(!in_array($addon_name, array_keys($inserted_addons))) {
// DB에 입력되어 있지 않으면 입력 (model에서 이런짓 하는거 싫지만 귀찮아서.. ㅡ.ㅜ)
$oAddonAdminController = &getAdminController('addon');
$oAddonAdminController->doInsert($addon_name);
$oAddonAdminController->doInsert($addon_name, $site_srl);
// 활성화 되어 있는지 확인
} else {
@ -69,7 +69,7 @@
/**
* @brief 모듈의 conf/info.xml 읽어서 정보를 구함
**/
function getAddonInfoXml($addon) {
function getAddonInfoXml($addon, $site_srl = 0) {
// 요청된 모듈의 경로를 구한다. 없으면 return
$addon_path = $this->getAddonPath($addon);
if(!$addon_path) return;
@ -87,7 +87,11 @@
// DB에 설정된 내역을 가져온다
$db_args->addon = $addon;
$output = executeQuery('addon.getAddonInfo',$db_args);
if(!$site_srl) $output = executeQuery('addon.getAddonInfo',$db_args);
else {
$db_args->site_srl = $site_srl;
$output = executeQuery('addon.getSiteAddonInfo',$db_args);
}
$extra_vals = unserialize($output->data->extra_vars);
if($extra_vals->mid_list) {
@ -266,9 +270,13 @@
/**
* @brief 활성화된 애드온 목록을 구해옴
**/
function getInsertedAddons() {
function getInsertedAddons($site_srl = 0) {
$args->list_order = 'addon';
$output = executeQuery('addon.getAddons', $args);
if(!$site_srl) $output = executeQuery('addon.getAddons', $args);
else {
$args->site_srl = $site_srl;
$output = executeQuery('addon.getSiteAddons', $args);
}
if(!$output->data) return array();
if(!is_array($output->data)) $output->data = array($output->data);
@ -283,9 +291,13 @@
/**
* @brief 애드온이 활성화 되어 있는지 체크
**/
function isActivatedAddon($addon) {
function isActivatedAddon($addon, $site_srl = 0) {
$args->addon = $addon;
$output = executeQuery('addon.getAddonIsActivated', $args);
if(!$site_srl) $output = executeQuery('addon.getAddonIsActivated', $args);
else {
$args->site_srl = $site_srl;
$output = executeQuery('addon.getSiteAddonIsActivated', $args);
}
if($output->data->count>0) return true;
return false;
}

View file

@ -18,9 +18,11 @@
* @brief 애드온 관리 메인 페이지 (목록 보여줌)
**/
function dispAddonAdminIndex() {
$site_module_info = Context::get('site_module_info');
// 애드온 목록을 세팅
$oAddonModel = &getAdminModel('addon');
$addon_list = $oAddonModel->getAddonList();
$addon_list = $oAddonModel->getAddonList($site_module_info->site_srl);
Context::set('addon_list', $addon_list);
// 템플릿 패스 및 파일을 지정
@ -31,24 +33,27 @@
* @biref 애드온 세부 설정 팝업 출력
**/
function dispAddonAdminSetup() {
$site_module_info = Context::get('site_module_info');
// 요청된 애드온을 구함
$selected_addon = Context::get('selected_addon');
// 요청된 애드온의 정보를 구함
$oAddonModel = &getAdminModel('addon');
$addon_info = $oAddonModel->getAddonInfoXml($selected_addon);
$addon_info = $oAddonModel->getAddonInfoXml($selected_addon, $site_module_info->site_srl);
Context::set('addon_info', $addon_info);
// mid 목록을 가져옴
$oModuleModel = &getModel('module');
// 모듈 카테고리 목록을 구함
$module_categories = $oModuleModel->getModuleCategories();
$mid_list = $oModuleModel->getMidList();
if($site_module_info->site_srl) $args->site_srl = $site_module_info->site_srl;
$mid_list = $oModuleModel->getMidList($args);
// module_category와 module의 조합
if($module_categories) {
if(!$site_module_info->site_srl) {
// 모듈 카테고리 목록을 구함
$module_categories = $oModuleModel->getModuleCategories();
foreach($mid_list as $module_srl => $module) {
$module_categories[$module->module_category_srl]->list[$module_srl] = $module;
}
@ -69,12 +74,14 @@
* @brief 애드온의 상세 정보(conf/info.xml) 팝업 출력
**/
function dispAddonAdminInfo() {
$site_module_info = Context::get('site_module_info');
// 요청된 애드온을 구함
$selected_addon = Context::get('selected_addon');
// 요청된 애드온의 정보를 구함
$oAddonModel = &getAdminModel('addon');
$addon_info = $oAddonModel->getAddonInfoXml($selected_addon);
$addon_info = $oAddonModel->getAddonInfoXml($selected_addon, $site_module_info->site_srl);
Context::set('addon_info', $addon_info);
// 레이아웃을 팝업으로 지정

View file

@ -13,10 +13,6 @@
* @brief 설치시 추가 작업이 필요할시 구현
**/
function moduleInstall() {
// action forward에 등록 (관리자 모드에서 사용하기 위함)
$oModuleController = &getController('module');
$oModuleController->insertActionForward('addon', 'view', 'dispAddonAdminIndex');
// 몇가지 애드온을 등록
$oAddonController = &getAdminController('addon');
$oAddonController->doInsert('autolink');
@ -39,7 +35,7 @@
$oAddonController->doActivate('mobile');
$oAddonController->doActivate('referer');
$oAddonController->doActivate('resize_image');
$oAddonController->procAddonAdminToggleActivate();
$oAddonController->makeCacheFile(0);
return new Object();
}
@ -47,6 +43,7 @@
* @brief 설치가 이상이 없는지 체크하는 method
**/
function checkUpdate() {
if(file_exists($this->cache_file)) FileHandler::removeFile($this->cache_file);
return false;
}
@ -61,8 +58,7 @@
* @brief 캐시 파일 재생성
**/
function recompileCache() {
$oAddonController = &getAdminController('addon');
$oAddonController->makeCacheFile();
FileHandler::removeFilesInDir('./files/cache/addons');
}
}

View file

@ -14,14 +14,31 @@
function init() {
}
/**
* @brief 메인/ 가상 사이트별 애드온 캐시 파일의 위치를 구함
**/
function getCacheFilePath() {
$site_module_info = Context::get('site_module_info');
$site_srl = $site_module_info->site_srl;
$addon_path = _XE_PATH_.'files/cache/addons/';
if(!is_dir($addon_path)) FileHandler::makeDir($addon_path);
if($site_srl) $addon_file = $addon_path.$site_srl.'.acivated_addons.cache.php';
else $addon_file = $addon_path.'acivated_addons.cache.php';
if(!file_exists($addon_file)) $this->makeCacheFile($site_srl);
return $addon_file;
}
/**
* @brief 애드온 mid 추가 설정
**/
function _getMidList($selected_addon) {
function _getMidList($selected_addon, $site_srl = 0) {
$oAddonAdminModel = &getAdminModel('addon');
$addon_info = $oAddonAdminModel->getAddonInfoXml($selected_addon);
$addon_info = $oAddonAdminModel->getAddonInfoXml($selected_addon, $site_srl);
return $addon_info->mid_list;
}
@ -30,24 +47,24 @@
/**
* @brief 애드온 mid 추가 설정
**/
function _setAddMid($selected_addon,$mid) {
function _setAddMid($selected_addon,$mid, $site_srl=0) {
// 요청된 애드온의 정보를 구함
$mid_list = $this->_getMidList($selected_addon);
$mid_list = $this->_getMidList($selected_addon, $site_srl);
$mid_list[] = $mid;
$new_mid_list = array_unique($mid_list);
$this->_setMid($selected_addon,$new_mid_list);
$this->_setMid($selected_addon,$new_mid_list, $site_srl);
}
/**
* @brief 애드온 mid 추가 설정
**/
function _setDelMid($selected_addon,$mid) {
function _setDelMid($selected_addon,$mid,$site_srl=0) {
// 요청된 애드온의 정보를 구함
$mid_list = $this->_getMidList($selected_addon);
$mid_list = $this->_getMidList($selected_addon,$site_srl);
$new_mid_list = array();
if(is_array($mid_list)){
@ -59,16 +76,16 @@
}
$this->_setMid($selected_addon,$new_mid_list);
$this->_setMid($selected_addon,$new_mid_list,$site_srl);
}
/**
* @brief 애드온 mid 추가 설정
**/
function _setMid($selected_addon,$mid_list) {
function _setMid($selected_addon,$mid_list,$site_srl=0) {
$args->mid_list = join('|@|',$mid_list);
$this->doSetup($selected_addon, $args);
$this->makeCacheFile();
$this->doSetup($selected_addon, $args,$site_srl);
$this->makeCacheFile($site_srl);
}
@ -76,37 +93,35 @@
* @brief 애드온 mid 추가
**/
function procAddonSetupAddonAddMid() {
$site_module_info = Context::get('site_module_info');
$args = Context::getRequestVars();
$addon_name = $args->addon_name;
$mid = $args->mid;
$this->_setAddMid($addon_name,$mid);
$this->_setAddMid($addon_name,$mid,$site_module_info->site_srl);
}
/**
* @brief 애드온 mid 삭제
**/
function procAddonSetupAddonDelMid() {
$site_module_info = Context::get('site_module_info');
$args = Context::getRequestVars();
$addon_name = $args->addon_name;
$mid = $args->mid;
$this->_setDelMid($addon_name,$mid);
$this->_setDelMid($addon_name,$mid,$site_module_info->site_srl);
}
/**
* @brief 캐시 파일 생성
**/
function makeCacheFile() {
function makeCacheFile($site_srl = 0) {
// 모듈에서 애드온을 사용하기 위한 캐시 파일 생성
$buff = "";
$oAddonModel = &getAdminModel('addon');
$addon_list = $oAddonModel->getInsertedAddons();
$addon_list = $oAddonModel->getInsertedAddons($site_srl);
foreach($addon_list as $addon => $val) {
if($val->is_used != 'Y' || !is_dir(_XE_PATH_.'addons/'.$addon) ) continue;
@ -125,19 +140,39 @@
$buff = sprintf('<?php if(!defined("__ZBXE__")) exit(); $_m = Context::get(\'mid\'); %s ?>', $buff);
FileHandler::writeFile($this->cache_file, $buff);
$addon_path = _XE_PATH_.'files/cache/addons/';
if(!is_dir($addon_path)) FileHandler::makeDir($addon_path);
if($site_srl) $addon_file = $addon_path.$site_srl.'.acivated_addons.cache.php';
else $addon_file = $addon_path.'acivated_addons.cache.php';
FileHandler::writeFile($addon_file, $buff);
}
/**
* @brief 애드온 설정
**/
function doSetup($addon, $extra_vars) {
function doSetup($addon, $extra_vars,$site_srl=0) {
if($extra_vars->mid_list) $extra_vars->mid_list = explode('|@|', $extra_vars->mid_list);
$args->addon = $addon;
$args->extra_vars = serialize($extra_vars);
return executeQuery('addon.updateAddon', $args);
if(!$site_srl) return executeQuery('addon.updateAddon', $args);
$args->site_srl = $site_srl;
return executeQuery('addon.updateSiteAddon', $args);
}
/**
* @brief 가상 사이트에서의 애드온 정보 제거
**/
function removeAddonConfig($site_srl) {
$addon_path = _XE_PATH_.'files/cache/addons/';
$addon_file = $addon_path.$site_srl.'.acivated_addons.cache.php';
if(file_exists($addon_file)) FileHandler::removeFile($addon_file);
$args->site_srl = $site_srl;
executeQuery('addon.deleteSiteAddons', $args);
}

View file

@ -3,7 +3,7 @@
<title xml:lang="ko">애드온</title>
<title xml:lang="en">Addon</title>
<title xml:lang="es">Addon</title>
<title xml:lang="zh-CN">插件</title>
<title xml:lang="zh-CN">插件管理</title>
<title xml:lang="jp">アドオン</title>
<title xml:lang="fr">Additions</title>
<title xml:lang="ru">Аддоны</title>
@ -18,7 +18,7 @@
<description xml:lang="zh-TW">設定附加元件「登錄、啟用、禁用」的管理模組。</description>
<version>0.1</version>
<date>2007-02-28</date>
<category>manager</category>
<category>utility</category>
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
<name xml:lang="ko">zero</name>

View file

@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<module>
<grants />
<permissions />
<actions>
<action name="dispAddonAdminIndex" type="view" standalone="true" admin_index="true" />
<action name="dispAddonAdminInfo" type="view" standalone="true" />

View file

@ -12,6 +12,6 @@
$lang->addon_license = '라이선스';
$lang->addon_history = '변경 이력';
$lang->about_addon_mid = "애드온이 사용될 대상을 지정할 수 있습니다.<br />(모두 해제시 모든 대상에서 사용 가능합니다)";
$lang->about_addon_mid = '애드온이 사용될 대상을 지정할 수 있습니다.<br />(모두 해제시 모든 대상에서 사용 가능합니다)';
$lang->about_addon = '애드온은 html결과물을 출력하기 보다 동작을 제어하는 역할을 합니다.<br />원하시는 애드온을 on/ off하시는 것만으로 사이트 운영에 유용한 기능을 연동할 수 있습니다.';
?>

View file

@ -13,5 +13,5 @@
$lang->addon_history = '更新紀錄';
$lang->about_addon_mid = "可以指定使用附加元件的目標。<br />(全部不選取表示可用在所有目標。)";
$lang->about_addon = '附加元件可擴展程式功能而不是顯示輸出HTML結果。<br />『啟用/禁用』附加元件,增強網站的功能。';
$lang->about_addon = '附加元件可擴展程式功能而不是顯示輸出HTML結果。<br />『啟用/禁用』附加元件,增強網站的功能。';
?>

View file

@ -0,0 +1,9 @@
<query id="deleteSiteAddon" action="delete">
<tables>
<table name="addons_site" />
</tables>
<conditions>
<condition operation="equal" column="site_srl" var="site_srl" notnull="notnull" />
<condition operation="equal" column="addon" var="addon" notnull="notnull" pipe="and" />
</conditions>
</query>

View file

@ -0,0 +1,8 @@
<query id="deleteSiteAddons" action="delete">
<tables>
<table name="addons_site" />
</tables>
<conditions>
<condition operation="equal" column="site_srl" var="site_srl" notnull="notnull" />
</conditions>
</query>

View file

@ -0,0 +1,10 @@
<query id="getSiteAddonInfo" action="select">
<tables>
<table name="addons_site" />
</tables>
<columns />
<conditions>
<condition operation="equal" column="site_srl" var="site_srl" notnull="notnull" />
<condition operation="equal" column="addon" var="addon" notnull="notnull" pipe="and" />
</conditions>
</query>

View file

@ -0,0 +1,13 @@
<query id="getAddonIsActivated" action="select">
<tables>
<table name="addons_site" />
</tables>
<columns>
<column name="count(*)" alias="count" />
</columns>
<conditions>
<condition operation="equal" column="site_srl" var="site_srl" notnull="notnull" />
<condition operation="equal" column="addon" var="addon" notnull="notnull" pipe="and" />
<condition operation="equal" column="is_used" default="Y" notnull="notnull" pipe="and" />
</conditions>
</query>

View file

@ -0,0 +1,11 @@
<query id="getSiteAddons" action="select">
<tables>
<table name="addons_site" />
</tables>
<conditions>
<condition operation="equal" column="site_srl" var="site_srl" notnull="notnull" />
</conditions>
<navigation>
<index var="list_order" default="addon" order="asc" />
</navigation>
</query>

View file

@ -0,0 +1,11 @@
<query id="insertSiteAddon" action="insert">
<tables>
<table name="addons_site" />
</tables>
<columns>
<column name="site_srl" var="site_srl" notnull="notnull" />
<column name="addon" var="addon" notnull="notnull" />
<column name="is_used" var="is_used" default="N" notnull="notnull" />
<column name="regdate" var="regdate" default="curdate()" />
</columns>
</query>

View file

@ -0,0 +1,13 @@
<query id="updateSiteAddon" action="update">
<tables>
<table name="addons_site" />
</tables>
<columns>
<column name="is_used" var="is_used" />
<column name="extra_vars" var="extra_vars" />
</columns>
<conditions>
<condition operation="equal" column="site_srl" var="site_srl" notnull="notnull" />
<condition operation="equal" column="addon" var="addon" notnull="notnull" pipe="and" />
</conditions>
</query>

View file

@ -0,0 +1,7 @@
<table name="addons_site">
<column name="site_srl" type="number" size="11" notnull="notnull" default="0" unique="unique_addon_site"/>
<column name="addon" type="varchar" size="250" notnull="notnull" unique="unique_addon_site" />
<column name="is_used" type="char" size="1" default="Y" notnull="notnull" />
<column name="extra_vars" type="text"/>
<column name="regdate" type="date" index="idx_regdate" />
</table>

View file

@ -1,9 +1,9 @@
<div id="popHeadder">
<h3>{$lang->addon_maker}</h3>
<div id="popHeader" class="wide">
<h3 class="xeAdmin">{$lang->addon_maker}</h3>
</div>
<div id="popBody">
<table cellspacing="0" class="adminTable">
<table cellspacing="0" class="rowTable">
<tr>
<th scope="row"><div>{$lang->title}</div></th>
<td>{$addon_info->title} ver. {$addon_info->version}</td>
@ -45,12 +45,12 @@
</div>
<!--@if($addon_info->history)-->
<div id="popHistoryHeadder">
<h3>{$lang->addon_history}</h3>
<div id="popHistoryHeader">
<h3 class="xeAdmin">{$lang->addon_history}</h3>
</div>
<div id="popHistoryBody">
<table cellspacing="0" class="adminTable">
<table cellspacing="0" class="rowTable">
<col width="100" />
<col />
@ -84,7 +84,3 @@
</table>
</div>
<!--@endif-->
<div id="popFooter" class="tCenter">
<a href="#" onclick="window.close(); return false;" class="button"><span>{$lang->cmd_close}</span></a>
</div>

View file

@ -1,7 +1,7 @@
<!--%import("filter/toggle_activate_addon.xml")-->
<!--%import("js/addon.js")-->
<h3>{$lang->addon} <span class="gray">{$lang->cmd_management}</span></h3>
<h3 class="xeAdmin">{$lang->addon} <span class="gray">{$lang->cmd_management}</span></h3>
<div class="infoText">{nl2br($lang->about_addon)}</div>
<!-- xml js filter를 이용하기 위한 데이터 전달용 form -->
@ -10,7 +10,7 @@
</form>
<!-- 애드온의 목록 -->
<table cellspacing="0" class="adminTable">
<table cellspacing="0" class="crossTable">
<thead>
<tr>
<th scope="col"><div>{$lang->addon_name}</div></th>
@ -31,20 +31,20 @@
({$val->addon})
</div>
</th>
<td class="number center">{$val->version}</td>
<td class="center nowrap">
<td>{$val->version}</td>
<td>
<!--@foreach($val->author as $author)-->
<a href="{$author->homepage}" onclick="window.open(this.href);return false;">{$author->name}</a>
<!--@endforeach-->
</td>
<td class="date center nowrap">{zdate($val->date, 'Y-m-d')}</td>
<td class="number nowrap">{$val->path}</td>
<td class="nowrap center setup"><a href="{getUrl('','module','addon','act','dispAddonAdminSetup','selected_addon',$val->addon)}" onclick="popopen(this.href,'addon_info');return false">{$lang->cmd_setup}</a></td>
<td class="nowrap center <!--@if($val->activated)-->activated<!--@else-->deactivated<!--@end-->">
<td>{zdate($val->date, 'Y-m-d')}</td>
<td>{$val->path}</td>
<td><a href="{getUrl('','module','addon','act','dispAddonAdminSetup','selected_addon',$val->addon)}" onclick="popopen(this.href,'addon_info');return false" title="{htmlspecialchars($lang->cmd_setup)}" class="buttonSet buttonSetting"><span>{$lang->cmd_setup}</span></a></td>
<td>
<!--@if($val->activated)-->
<a href="#" onclick="doToggleAddon('{$val->addon}');return false;">{$lang->use}</a>
<a href="#" onclick="doToggleAddon('{$val->addon}');return false;" title="{htmlspecialchars($lang->use)}" class="buttonSet buttonActive"><span>{$lang->use}</span></a>
<!--@else-->
<a href="#" onclick="doToggleAddon('{$val->addon}');return false;">{$lang->notuse}</a>
<a href="#" onclick="doToggleAddon('{$val->addon}');return false;" title="{htmlspecialchars($lang->notuse)}" class="buttonSet buttonDisable"><span>{$lang->notuse}</span></a>
<!--@end-->
</td>
</tr>

View file

@ -7,3 +7,10 @@ function doToggleAddon(addon) {
fo_obj.addon.value = addon;
procFilter(fo_obj, toggle_activate_addon);
}
// 관리자 제어판 페이지용
function doToggleAddonInAdmin(obj, addon) {
var params = new Array();
params['addon'] = addon;
exec_xml('addon','procAddonAdminToggleActivate',params,function() { if(/Active/.test(obj.className)) obj.className = "buttonSet buttonDisable"; else obj.className = "buttonSet buttonActive"; } );
}

View file

@ -2,15 +2,15 @@
<!--%import("css/addon.css")-->
<!--%import("js/addon.js")-->
<div id="popHeadder">
<h3>{$lang->cmd_setup}</h3>
<div id="popHeader" class="wide">
<h3 class="xeAdmin">{$lang->cmd_setup}</h3>
</div>
<form action="./" method="get" onsubmit="return procFilter(this, setup_addon);">
<input type="hidden" name="addon_name" value="{$addon_info->addon_name}" />
<div id="popBody">
<table cellspacing="0" class="adminTable">
<table cellspacing="0" class="rowTable">
<tr>
<th scope="row"><div><label for="textfield1">{$lang->title}</label></div></th>
<td>{$addon_info->title} ver. {$addon_info->version} ({zdate($addon_info->date, 'Y-m-d')})</td>
@ -33,10 +33,11 @@
<!--@if($var->group && ((!$group) || $group != $var->group))-->
{@$group = $var->group}
</table>
<table cellspacing="0" class="adminTable">
<h4 class="xeAdmin">{$group}</h4>
<table cellspacing="0" class="rowTable">
<col width="100" />
<col width="*" />
<caption>{$group}</caption>
<!--@end-->
<tr class="row{$cycle_idx}">
@ -62,7 +63,7 @@
<!--@if($group)-->
</table>
<table cellspacing="0" class="adminTable">
<table cellspacing="0" class="rowTable">
<!--@end-->
<tr>
@ -97,9 +98,6 @@
</div>
<div id="popFooter">
<div class="tCenter gap1">
<span class="button"><input type="submit" value="{$lang->cmd_apply}" class="editor_button" /></span>
<a href="#" onclick="window.close(); return false;" class="button"><span>{$lang->cmd_close}</span></a>
</div>
<span class="button black strong"><input type="submit" value="{$lang->cmd_apply}" /></span>
</div>
</form>

View file

@ -10,6 +10,12 @@
* @brief 초기화
**/
function init() {
// 접속 사용자에 대한 체크
$oMemberModel = &getModel('member');
$logged_info = $oMemberModel->getLoggedInfo();
// 관리자가 아니면 금지
if($logged_info->is_admin!='Y') return $this->stop("msg_is_not_administrator");
}
/**
@ -33,5 +39,13 @@
$this->setMessage('success_updated');
}
/**
* @brief 관리자 로그아웃
**/
function procAdminLogout() {
$oMemberController = &getController('member');
$oMemberController->procMemberLogout();
}
}
?>

View file

@ -1,17 +0,0 @@
<?php
/**
* @class adminAdminModel
* @author zero (zero@nzeo.com)
* @brief admin 모듈의 admin model class
**/
class adminAdminModel extends admin {
/**
* @brief 초기화
**/
function init() {
}
}
?>

View file

@ -11,8 +11,6 @@
* @brief 초기화
**/
function init() {
if(!$this->grant->is_admin) return;
// template path 지정
$this->setTemplatePath($this->module_path.'tpl');
@ -20,22 +18,54 @@
$oMemberModel = &getModel('member');
$logged_info = $oMemberModel->getLoggedInfo();
// 관리자가 아니면 금지
if($logged_info->is_admin!='Y') return $this->stop("msg_is_not_administrator");
// 관리자용 레이아웃으로 변경
$this->setLayoutPath($this->getTemplatePath());
$this->setLayoutFile('layout.html');
// 설치된 모듈 목록 가져오기
// 설치된 모듈 목록 가져와서 적절히 분리
$oModuleModel = &getModel('module');
$installed_module_list = $oModuleModel->getModulesXmlInfo();
$installed_modules = $package_modules = array();
$package_idx = 0;
foreach($installed_module_list as $key => $val) {
if($val->module == 'admin' || !$val->admin_index_act) continue;
// action 정보 구함
$action_spec = $oModuleModel->getModuleActionXml($val->module);
$actions = array();
if($action_spec->default_index_act) $actions[] = $action_spec->default_index_act;
if($action_spec->admin_index_act) $actions[] = $action_spec->admin_index_act;
if($action_spec->action) foreach($action_spec->action as $k => $v) $actions[] = $k;
$installed_module_list[$key]->actions = $actions;
$obj = null;
$obj->category = $val->category;
$obj->title = $val->title;
$obj->description = $val->description;
$obj->index_act = $val->admin_index_act;
if(in_array(Context::get('act'), $actions)) $obj->selected = true;
// 패키지 모듈
if($val->category == 'package') {
if($package_idx == 0) $obj->position = "first";
else $obj->position = "mid";
$package_modules[] = $obj;
$package_idx ++;
if($obj->selected) Context::set('package_selected',true);
// 일반 모듈
} else {
$installed_modules[] = $obj;
}
if($obj->selected) {
Context::set('selected_module_category', $val->category);
Context::set('selected_module_info', $val);
}
}
Context::set('installed_module_list', $installed_module_list);
if(count($package_modules)) $package_modules[count($package_modules)-1]->position = 'end';
Context::set('package_modules', $package_modules);
Context::set('installed_modules', $installed_modules);
$db_info = Context::getDBInfo();
@ -45,14 +75,8 @@
Context::set('use_optimizer', $db_info->use_optimizer!='N'?'Y':'N');
Context::set('qmail_compatibility', $db_info->qmail_compatibility=='Y'?'Y':'N');
Context::set('use_ssl', $db_info->use_ssl?$db_info->use_ssl:"none");
if($db_info->http_port)
{
Context::set('http_port', $db_info->http_port);
}
if($db_info->https_port)
{
Context::set('https_port', $db_info->https_port);
}
if($db_info->http_port) Context::set('http_port', $db_info->http_port);
if($db_info->https_port) Context::set('https_port', $db_info->https_port);
Context::setBrowserTitle("XE Admin Page");
}
@ -61,6 +85,9 @@
* @brief 관리자 메인 페이지 출력
**/
function dispAdminIndex() {
/**
* 최근 뉴스를 가져와서 세팅
**/
$newest_news_url = sprintf("http://news.zeroboard.com/%s/news.php", Context::getLangType());
$cache_file = sprintf("%sfiles/cache/newest_news.%s.cache.php", _XE_PATH_,Context::getLangType());
if(!file_exists($cache_file) || filemtime($cache_file)+ 60*60 < time()) {
@ -89,24 +116,31 @@
Context::set('download_link', $buff->zbxe_news->attrs->download_link);
}
// DB 정보를 세팅
$db_info = Context::getDBInfo();
Context::set('selected_lang', $db_info->lang_type);
// 현재 버젼과 설치 경로 세팅
Context::set('current_version', __ZBXE_VERSION__);
Context::set('installed_path', realpath('./'));
// 모듈 목록을 가져옴
$oModuleModel = &getModel('module');
$module_list = $oModuleModel->getModuleList();
Context::set('module_list', $module_list);
// 애드온 목록을 가져옴
$oAddonModel = &getAdminModel('addon');
$addon_list = $oAddonModel->getAddonList();
Context::set('addon_list', $addon_list);
/**
* 각종 통계를 추출
**/
$args->date = date("Ymd000000", time()-60*60*24);
$today = date("Ymd");
// 회원
// 회원현황
$output = executeQueryArray("admin.getMemberStatus", $args);
if($output->data) {
foreach($output->data as $var) {
@ -120,7 +154,7 @@
$output = executeQuery("admin.getMemberCount", $args);
$status->member->total = $output->data->count;
// 문서
// 문서현황
$output = executeQueryArray("admin.getDocumentStatus", $args);
if($output->data) {
foreach($output->data as $var) {
@ -134,7 +168,7 @@
$output = executeQuery("admin.getDocumentCount", $args);
$status->document->total = $output->data->count;
// 댓글
// 댓글현황
$output = executeQueryArray("admin.getCommentStatus", $args);
if($output->data) {
foreach($output->data as $var) {
@ -148,7 +182,7 @@
$output = executeQuery("admin.getCommentCount", $args);
$status->comment->total = $output->data->count;
// 엮인글
// 엮인글현황
$output = executeQueryArray("admin.getTrackbackStatus", $args);
if($output->data) {
foreach($output->data as $var) {
@ -162,7 +196,7 @@
$output = executeQuery("admin.getTrackbackCount", $args);
$status->trackback->total = $output->data->count;
// 첨부파일
// 첨부파일현황
$output = executeQueryArray("admin.getFileStatus", $args);
if($output->data) {
foreach($output->data as $var) {
@ -176,7 +210,7 @@
$output = executeQuery("admin.getFileCount", $args);
$status->file->total = $output->data->count;
// 게시물 신고
// 게시물 신고현황
$output = executeQueryArray("admin.getDocumentDeclaredStatus", $args);
if($output->data) {
foreach($output->data as $var) {
@ -190,7 +224,7 @@
$output = executeQuery("admin.getDocumentDeclaredCount", $args);
$status->documentDeclared->total = $output->data->count;
// 댓글 신고
// 댓글 신고현황
$output = executeQueryArray("admin.getCommentDeclaredStatus", $args);
if($output->data) {
foreach($output->data as $var) {
@ -206,7 +240,9 @@
Context::set('status', $status);
Context::set('layout','none');
$this->setTemplateFile('index');
//$this->setTemplateFile('a');
}
/**
@ -217,13 +253,16 @@
Context::set('selected_lang', $db_info->lang_type);
Context::set('lang_supported', Context::loadLangSupported());
Context::set('default_url', $db_info->default_url);
Context::set('langs', Context::loadLangSupported());
Context::set('lang_selected', Context::loadLangSelected());
Context::set('ftp_info', Context::getFTPInfo());
Context::set('layout','none');
$this->setTemplateFile('config');
}
}
?>
?>

View file

@ -16,7 +16,7 @@
<description xml:lang="zh-TW">列出各模組的功能並使用管理員版面,可讓其使用管理功能的模組。</description>
<version>0.1</version>
<date>2007-02-28</date>
<category>base</category>
<category>system</category>
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
<name xml:lang="ko">zero</name>

View file

@ -1,9 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<module>
<grants />
<permissions />
<actions>
<action name="dispAdminIndex" type="view" standalone="true" index="true"/>
<action name="dispAdminConfig" type="view" standalone="true" />
<action name="procAdminRecompileCacheFile" type="controller" standalone="true" />
<action name="procAdminLogout" type="controller" standalone="true" />
</actions>
</module>

View file

@ -7,18 +7,26 @@
$lang->admin_info = 'Administrator Info';
$lang->admin_index = 'Index Admin Page';
$lang->control_panel = 'Control panel';
$lang->module_category_title = array(
'service' => 'Service Modules',
'manager' => 'Managing Modules',
'utility' => 'Utility Modules',
'accessory' => 'Additional Modules',
'base' => 'Default Modules',
'service' => 'Service Setting',
'member' => 'Member Setting',
'content' => 'Content Setting',
'statistics' => 'Statistics',
'construction' => 'Construction',
'utility' => 'Utility Setting',
'interlock' => 'Interlock Setting',
'accessory' => 'Accessories',
'migration' => 'Data Migration',
'system' => 'System Setting',
);
$lang->newest_news = "Latest News";
$lang->env_setup = "Setting";
$lang->default_url = "기본 URL";
$lang->about_default_url = "XE 가상 사이트(cafeXE등)의 기능을 사용할때 기본 URL을 입력해 주셔야 가상 사이트간 인증 연동이 되고 게시글/모듈등의 연결이 정상적으로 이루어집니다. (ex: http://도메인/설치경로)";
$lang->env_information = "Environment Information";
$lang->current_version = "Current Version";
@ -57,13 +65,13 @@
$lang->cmd_lang_select = "Language";
$lang->about_cmd_lang_select = "Selected languages only will be serviced";
$lang->about_recompile_cache = "You can arrange useless or invalid cache files";
$lang->use_ssl = "SSL 사용";
$lang->use_ssl = "Use SSL";
$lang->ssl_options = array(
'none' => "사용안함",
'optional' => "선택적으로",
'always' => "항상사용"
'none' => "Not use",
'optional' => "optional",
'always' => "always"
);
$lang->about_use_ssl = "선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다.";
$lang->server_ports = "서버포트지정";
$lang->about_server_ports = "HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다.";
$lang->about_use_ssl = "If you choose 'optional', SSL will be used for actions such as sign up / changing information. And for 'always', your site will be served only via https.";
$lang->server_ports = "Server port";
$lang->about_server_ports = "If your web-server uses other than 80 for HTTP, 443 for HTTPS, you should specify server ports";
?>

View file

@ -7,18 +7,27 @@
$lang->admin_info = 'Administrador de Información';
$lang->admin_index = 'Índice de la página admin';
$lang->control_panel = 'Control panel';
$lang->module_category_title = array(
'service' => 'Módulos de Servicio',
'manager' => 'La gestión de módulos',
'utility' => 'Utilidad de módulos',
'accessory' => 'Módulos adicionales',
'base' => 'Módulos por defecto',
'service' => 'Service Setting',
'member' => 'Member Setting',
'content' => 'Content Setting',
'statistics' => 'Statistics',
'construction' => 'Construction',
'utility' => 'Utility Setting',
'interlock' => 'Interlock Setting',
'accessory' => 'Accessories',
'migration' => 'Data Migration',
'system' => 'System Setting',
);
$lang->newest_news = "Noticias recientes";
$lang->env_setup = "Configuración";
$lang->default_url = "기본 URL";
$lang->about_default_url = "XE 가상 사이트(cafeXE등)의 기능을 사용할때 기본 URL을 입력해 주셔야 가상 사이트간 인증 연동이 되고 게시글/모듈등의 연결이 정상적으로 이루어집니다. (ex: http://도메인/설치경로)";
$lang->env_information = "Información Ambiental";
$lang->current_version = "Versión actual";

View file

@ -7,18 +7,27 @@
$lang->admin_info = 'Informations d\'Administrateur';
$lang->admin_index = 'Page de l\'indice pour l\'Administrateur';
$lang->control_panel = 'Control panel';
$lang->module_category_title = array(
'service' => 'Modules de Service',
'manager' => 'Modules Administratif',
'utility' => 'Modules d\'Utilité',
'accessory' => 'Modules Additionnels',
'base' => 'Modules Fondamentaux',
'service' => 'Service Setting',
'member' => 'Member Setting',
'content' => 'Content Setting',
'statistics' => 'Statistics',
'construction' => 'Construction',
'utility' => 'Utility Setting',
'interlock' => 'Interlock Setting',
'accessory' => 'Accessories',
'migration' => 'Data Migration',
'system' => 'System Setting',
);
$lang->newest_news = "Dernières Nouvelles";
$lang->env_setup = "Configuration";
$lang->default_url = "기본 URL";
$lang->about_default_url = "XE 가상 사이트(cafeXE등)의 기능을 사용할때 기본 URL을 입력해 주셔야 가상 사이트간 인증 연동이 되고 게시글/모듈등의 연결이 정상적으로 이루어집니다. (ex: http://도메인/설치경로)";
$lang->env_information = "Informations de l'Environnement";
$lang->current_version = "Version Courante";

View file

@ -7,18 +7,26 @@
$lang->admin_info = '管理者情報';
$lang->admin_index = '管理者トップページ';
$lang->control_panel = 'コントロールパネル';
$lang->module_category_title = array(
'service' => 'サービス型モジュール',
'utility' => '機能性モジュール',
'manager' => '管理型モジュール',
'accessory' => '付加モジュール',
'base' => '基本モジュール',
'service' => 'サービス管理',
'member' => '会員管理',
'content' => 'コンテンツ管理',
'statistics' => '統計確認',
'construction' => 'サイト設定',
'utility' => '機能設定',
'interlock' => '連動設定',
'accessory' => '付加機能設定',
'migration' => 'データ管理/復元',
'system' => 'システム管理',
);
$lang->newest_news = "最新ニュース";
$lang->env_setup = "環境設定";
$lang->sso_url = "SSOシングルサインオン URL";
$lang->about_sso_url = "複数のvirtual siteを運営する場合、どちらからログインしてもvirtual siteの間でログイン情報を維持できるようにするためには、基本になるサイトでのXEをインストールしたurlを登録してください。 (例: http://ドメイン/xe)";
$lang->env_information = "環境情報";
$lang->current_version = "インストールバージョン";
@ -51,12 +59,12 @@
$lang->xe_license = 'XEのライセンスはGPLです。';
$lang->about_shortcut = 'よく使用するモジュールに登録されたショートカットは削除できます。';
$lang->yesterday = "Yesterday";
$lang->today = "Today";
$lang->yesterday = "昨日";
$lang->today = "今日";
$lang->cmd_lang_select = "言語選択";
$lang->about_cmd_lang_select = "選択された言語のみでサービスを行います。";
$lang->about_recompile_cache = "要らないか誤ったキャッシューファイルを整理します。";
$lang->about_recompile_cache = "要らないか誤ったキャッシューファイルを整理します。";
$lang->use_ssl = "SSL環境設定";
$lang->ssl_options = array(
'none' => "使わない",

View file

@ -7,38 +7,47 @@
$lang->admin_info = '관리자 정보';
$lang->admin_index = '관리자 초기 페이지';
$lang->control_panel = '제어판';
$lang->module_category_title = array(
'service' => '서비스 모듈',
'utility' => '기능성 모듈',
'manager' => '관리 모듈',
'accessory' => '부가 모듈',
'base' => '기본 모듈',
'service' => '서비스 관리',
'member' => '회원 관리',
'content' => '정보 관리',
'statistics' => '통계 열람',
'construction' => '사이트 설정',
'utility' => '기능 설정',
'interlock' => '연동 설정',
'accessory' => '부가 기능 설정',
'migration' => '데이터 관리/복원',
'system' => '시스템 관리',
);
$lang->newest_news = "최신 소식";
$lang->newest_news = '최신 소식';
$lang->env_setup = "환경 설정";
$lang->env_setup = '환경 설정';
$lang->default_url = '기본 URL';
$lang->about_default_url = 'XE 가상 사이트(cafeXE등)의 기능을 사용할때 기본 URL을 입력해 주셔야 가상 사이트간 인증 연동이 되고 게시글/모듈등의 연결이 정상적으로 이루어집니다. (ex: http://도메인/설치경로)';
$lang->env_information = "환경 정보";
$lang->current_version = "설치된 버전";
$lang->current_path = "설치된 경로";
$lang->released_version = "최신 버전";
$lang->env_information = '환경 정보';
$lang->current_version = '설치된 버전';
$lang->current_path = '설치된 경로';
$lang->released_version = '최신 버전';
$lang->about_download_link = "최신 버전이 배포되었습니다.\ndownload 링크를 클릭하시면 다운 받으실 수 있습니다.";
$lang->item_module = "모듈 목록";
$lang->item_addon = "애드온 목록";
$lang->item_widget = "위젯 목록";
$lang->item_layout = "레이아웃 목록";
$lang->item_module = '모듈 목록';
$lang->item_addon = '애드온 목록';
$lang->item_widget = '위젯 목록';
$lang->item_layout = '레이아웃 목록';
$lang->module_name = "모듈 이름";
$lang->addon_name = "애드온 이름";
$lang->version = "버전";
$lang->author = "제작자";
$lang->table_count = "테이블수";
$lang->installed_path = "설치경로";
$lang->module_name = '모듈 이름';
$lang->addon_name = '애드온 이름';
$lang->version = '버전';
$lang->author = '제작자';
$lang->table_count = '테이블수';
$lang->installed_path = '설치경로';
$lang->cmd_shortcut_management = "메뉴 편집하기";
$lang->cmd_shortcut_management = '메뉴 편집하기';
$lang->msg_is_not_administrator = '관리자만 접속이 가능합니다';
$lang->msg_manage_module_cannot_delete = '모듈, 애드온, 레이아웃, 위젯 모듈의 바로가기는 삭제 불가능합니다';
@ -46,24 +55,24 @@
$lang->welcome_to_xe = 'XE 관리자';
$lang->about_admin_page = "관리자 페이지는 아직 미완성입니다.\n클로즈 베타동안 좋은 의견 받아서 꼭 필요한 컨텐츠를 채우도록 하겠습니다.";
$lang->about_lang_env = "위 설정한 언어셋을 처음 방문하는 사용자들에게 동일하게 적용하기 위해서는 원하는 언어로 변경후 아래 [저장] 버튼을 클릭하시면 됩니다";
$lang->about_lang_env = '위 설정한 언어셋을 처음 방문하는 사용자들에게 동일하게 적용하기 위해서는 원하는 언어로 변경후 아래 [저장] 버튼을 클릭하시면 됩니다';
$lang->xe_license = 'XE는 GPL을 따릅니다';
$lang->about_shortcut = '자주 사용하는 모듈에 등록된 모듈의 바로가기를 삭제할 수 있습니다';
$lang->yesterday = "어제";
$lang->today = "오늘";
$lang->yesterday = '어제';
$lang->today = '오늘';
$lang->cmd_lang_select = "언어선택";
$lang->about_cmd_lang_select = "선택된 언어들만 서비스 됩니다";
$lang->about_recompile_cache = "쓸모 없어졌거나 잘못된 캐시파일들을 정리할 수 있습니다";
$lang->use_ssl = "SSL 사용";
$lang->cmd_lang_select = '언어선택';
$lang->about_cmd_lang_select = '선택된 언어들만 서비스 됩니다';
$lang->about_recompile_cache = '쓸모 없어졌거나 잘못된 캐시파일들을 정리할 수 있습니다';
$lang->use_ssl = 'SSL 사용';
$lang->ssl_options = array(
'none' => "사용안함",
'optional' => "선택적으로",
'always' => "항상사용"
'none' => '사용안함',
'optional' => '선택적으로',
'always' => '항상사용'
);
$lang->about_use_ssl = "선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다.";
$lang->server_ports = "서버포트지정";
$lang->about_server_ports = "HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다.";
$lang->about_use_ssl = '선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다.';
$lang->server_ports = '서버포트지정';
$lang->about_server_ports = 'HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다.';
?>

View file

@ -7,18 +7,27 @@
$lang->admin_info = 'Информация администратора';
$lang->admin_index = 'Индексная страница администратора';
$lang->control_panel = 'Control panel';
$lang->module_category_title = array(
'service' => 'Служебные модули',
'manager' => 'Управляющие модули',
'utility' => 'Утилиратные модули',
'accessory' => 'Дополнительные модули',
'base' => 'Базовые модули',
'service' => 'Service Setting',
'member' => 'Member Setting',
'content' => 'Content Setting',
'statistics' => 'Statistics',
'construction' => 'Construction',
'utility' => 'Utility Setting',
'interlock' => 'Interlock Setting',
'accessory' => 'Accessories',
'migration' => 'Data Migration',
'system' => 'System Setting',
);
$lang->newest_news = "Последние новости";
$lang->env_setup = "Настройка";
$lang->default_url = "기본 URL";
$lang->about_default_url = "XE 가상 사이트(cafeXE등)의 기능을 사용할때 기본 URL을 입력해 주셔야 가상 사이트간 인증 연동이 되고 게시글/모듈등의 연결이 정상적으로 이루어집니다. (ex: http://도메인/설치경로)";
$lang->env_information = "Информация окружения";
$lang->current_version = "Текущая версия";

View file

@ -7,18 +7,26 @@
$lang->admin_info = '管理员信息';
$lang->admin_index = '管理首页';
$lang->control_panel = '控制面板';
$lang->module_category_title = array(
'service' => '服务类模块',
'manager' => '管理类模块',
'utility' => '功能模块',
'accessory' => '附加模块',
'base' => '基本模块',
'service' => '应用管理',
'member' => '用户管理',
'content' => '资源管理',
'statistics' => '统计管理',
'construction' => '界面管理',
'utility' => '扩展管理',
'interlock' => '辅助联动',
'accessory' => '附加功能',
'migration' => '数据导入',
'system' => '系统管理',
);
$lang->newest_news = "最新消息";
$lang->env_setup = "系统设置";
$lang->default_url = "XE通行证";
$lang->about_default_url = "请输入默认站点的XE安装地址(ex: http://域名/xe)。 <br /><strong>说明:</strong>简单的说,就是绑定帐号系统。只需要登录一次,就可以在用站点模块生成的多个子站点中随意漫游。";
$lang->env_information = "系统信息";
$lang->current_version = "安装版本";
@ -40,7 +48,7 @@
$lang->cmd_shortcut_management = "编辑菜单";
$lang->msg_is_not_administrator = '只有管理员才可以查看';
$lang->msg_is_not_administrator = '只允许管理员访问';
$lang->msg_manage_module_cannot_delete = '模块,插件,布局,控件模块的快捷菜单是不能删除的。';
$lang->msg_default_act_is_null = '没有指定默认管理员的动作,是不能添加到快捷菜单的。';
@ -55,8 +63,8 @@
$lang->yesterday = "Yesterday";
$lang->today = "Today";
$lang->cmd_lang_select = "多国语言支";
$lang->about_cmd_lang_select = "只支援被选语言。";
$lang->cmd_lang_select = "多国语言支";
$lang->about_cmd_lang_select = "请选择要使用的语言。";
$lang->about_recompile_cache = "整理无用的或错误的缓冲文件。";
$lang->use_ssl = "SSL使用";
$lang->ssl_options = array(

View file

@ -7,24 +7,33 @@
$lang->admin_info = '管理員資訊';
$lang->admin_index = '管理頁面';
$lang->control_panel = '控制介面';
$lang->module_category_title = array(
'service' => '服務類模組',
'utility' => '功能模組',
'manager' => '管理類模組',
'accessory' => '附加模組',
'base' => '基本模組',
'service' => '服務設定',
'member' => '會員管理',
'content' => '內容管理',
'statistics' => '統計資料',
'construction' => '界面設定',
'utility' => '擴充功能',
'interlock' => '連動設定',
'accessory' => '附加功能管理',
'migration' => '資料轉換',
'system' => '系統管理',
);
$lang->newest_news = "最新消息";
$lang->env_setup = "系統設置";
$lang->default_url = "預設網址";
$lang->about_default_url = "XE虛擬網站必須要先輸入預設的網址確保虛擬網站的運作請輸入預設程式安裝路徑。<br />(例: http://網域名稱/安裝路徑)";
$lang->env_information = "系統資訊";
$lang->current_version = "安裝版本";
$lang->current_path = "安裝路徑";
$lang->released_version = "最新版本";
$lang->about_download_link = "官方網站已發佈新版本。\n請按 [download] 下載最新版本。";
$lang->about_download_link = "官方網站已發佈新版本。\n請按[download]下載最新版本。";
$lang->item_module = "模組列表";
$lang->item_addon = "元件列表";
@ -44,11 +53,11 @@
$lang->msg_manage_module_cannot_delete = '模組,附加元件,版面設計,控件模組的快捷選單是無法刪除的。';
$lang->msg_default_act_is_null = '沒有指定預設管理員的動作,是無法新增到快捷選單的。';
$lang->welcome_to_xe = 'XE 管理頁面';
$lang->welcome_to_xe = 'XE管理頁面';
$lang->about_admin_page = "後台管理頁面未完成";
$lang->about_lang_env = "可以設置顯示語言給首次訪問的使用者。修改語言環境後,請按 [儲存] 按鈕進行儲存。";
$lang->about_lang_env = "可以設置顯示語言給首次訪問的使用者。修改語言環境後,請按[儲存]按鈕進行儲存。";
$lang->xe_license = 'XE遵循 GPL 協議';
$lang->xe_license = 'XE遵循GPL協議';
$lang->about_shortcut = '可以刪除新增到常用模組中的快捷選單。';
$lang->yesterday = "昨天";
@ -63,7 +72,7 @@
'optional' => "選擇使用",
'always' => "總是使用"
);
$lang->about_use_ssl = "當會員登入或修改資料等動作時,可選擇是否使用 SSL 功能。";
$lang->about_use_ssl = "當會員登入或修改資料等動作時,可選擇是否使用SSL功能。";
$lang->server_ports = "主機埠口";
$lang->about_server_ports = "預設 HTTP 是 80、HTTPS 是 443,如果想使用其他的埠口的話,請自行設定。";
$lang->about_server_ports = "HTTP預設埠口是『80』、HTTPS是『443』,如果想使用其他的埠口的話,請自行設定。";
?>

View file

@ -14,6 +14,6 @@
<list_count var="list_count" default="2" />
</navigation>
<groups>
<group column="substr(regdate,0,8)" />
<group column="substr(regdate,1,8)" />
</groups>
</query>

View file

@ -14,6 +14,6 @@
<list_count var="list_count" default="2" />
</navigation>
<groups>
<group column="substr(regdate,0,8)" />
<group column="substr(regdate,1,8)" />
</groups>
</query>

View file

@ -0,0 +1,6 @@
</div>
<hr />
<div class="footer">
<address><a href="http://www.zeroboard.com" onclick="window.open(this.href);return false;">Powered by <strong>X</strong>press <strong>E</strong>ngine</a></address>
</div>
</div>

View file

@ -0,0 +1,44 @@
<!--%import("css/layout.css")-->
<!--%import("js/admin.js")-->
<div id="xeAdmin" class="<!--@if(!$act || ($act == 'dispAdminIndex' || $act == 'dispAdminConfig'))-->ece<!--@else-->ec<!--@end-->">
<div class="header">
<h1 class="xeAdmin"><a href="{getUrl('','module','admin')}">XpressEngine</a></h1>
<ul class="gnb">
<li><a href="#" onclick="doAdminLogout(); return false;">Logout</a></li>
<!--@if($logged_info->is_admin=='Y')--><li><a href="{getUrl('','module','admin','act','dispAdminConfig')}">Settings</a></li><!--@end-->
<li><a href="#" onclick="toggleAdminLang();return false;">Language</a>
<ul id="adminLang">
<!--@foreach($lang_supported as $key => $val)-->
<li <!--@if($key == $lang_type)-->class="open"<!--@end-->><a href="#" onclick="doChangeLangType('{$key}'); return false;">{$val}</a></li>
<!--@end-->
</ul>
</li>
</ul>
<ul class="lnb">
<li class="core <!--@if(!$package_selected)-->selected<!--@end-->"><a href="{getUrl('','module','admin')}">{$lang->control_panel}</a></li>
<!--@foreach($package_modules as $key => $val)-->
<li class="{$val->position} <!--@if($val->selected)-->selected<!--@end-->"><a href="{getUrl('','module','admin','act',$val->index_act)}" title="{trim($val->description)}">{$val->title}</a></li>
<!--@end-->
</ul>
</div>
<hr />
<div class="body">
<div class="extension e1">
<div class="section">
<ul class="navigation">
<!--@foreach($lang->module_category_title as $key => $val)-->
<li id="module_{$key}" class="<!--@if($selected_module_category == $key)-->open<!--@end-->"><a href="#" onclick="toggleModuleMenu('{$key}'); return false;">{$val}</a>
<ul>
<!--@foreach($installed_modules as $k => $v)-->
<!--@if($v->category == $key)-->
<li <!--@if($v->selected)-->class="active"<!--@end-->><a href="{getUrl('','module','admin','act',$v->index_act)}" title="{$v->description}">{$v->title}</a></li>
<!--@end-->
<!--@end-->
</ul>
</li>
<!--@end-->
</ul>
</div>
</div>
<hr />

View file

@ -1,15 +1,23 @@
<!--#include("_header.html")-->
<!--%import("./filter/update_env_config.xml")-->
<!--%import("./filter/update_lang_select.xml")-->
<!--%import("./filter/install_ftp_info.xml")-->
<!--%import("../../install/lang")-->
<!--%import("../../install/tpl/js/install_admin.js",optimized=false)-->
<h3 class="bottomGap">{$lang->cmd_setup}</h3>
<div class="content">
<!--@if($logged_info->is_admin == 'Y')-->
<p class="path">
<a href="{getUrl('','module','admin')}">{$lang->control_panel}</a>
&gt; <a href="{getUrl('','mid',$mid,'module',$module,'act',$act)}">{$lang->env_setup}</a>
</p>
<!--@end-->
<h4 class="xeAdmin">{$lang->cmd_setup}</h4>
<div class="adminLeftContent">
<form action="./" method="get" onsubmit="return procFilter(this, update_env_config);">
<table cellspacing="0" class="adminTable">
<caption>{$lang->env_setup}</caption>
<table cellspacing="0" class="rowTable">
<tr>
<th><div>{$lang->use_rewrite}</div></th>
<td>
@ -17,6 +25,13 @@
<p>{$lang->about_rewrite}</p>
</td>
</tr>
<tr>
<th><div>{$lang->default_url}</div></th>
<td>
<input type="text" name="default_url" value="{$default_url}" class="inputTypeText w300"/>
<p>{$lang->about_default_url}</p>
</td>
</tr>
<tr>
<th><div>{$lang->use_optimizer}</div></th>
<td>
@ -25,9 +40,9 @@
</td>
</tr>
<tr>
<th><div>Language Selection</div></th>
<th><div>Language</div></th>
<td>
<select name="lang_type">
<select name="change_lang_type">
<!--@foreach($lang_supported as $key => $val)-->
<option value="{$key}" <!--@if($key==$selected_lang)-->selected="selected"<!--@end-->>{$val}</option>
<!--@endforeach-->
@ -38,7 +53,7 @@
<tr>
<th><div>{$lang->time_zone}</div></th>
<td>
<select name="time_zone" class="fixWidth">
<select name="time_zone" class="fullWidth">
<!--@foreach($time_zone_list as $key => $val)-->
<option value="{$key}" <!--@if($time_zone==$key)-->selected="selected"<!--@end-->>{$val}</option>
<!--@endforeach-->
@ -73,21 +88,17 @@
</td>
</tr>
<tr>
<td colspan="2" class="right">
<span class="button"><input type="submit" value="{$lang->cmd_save}" /></span>
</td>
<th colspan="2" class="button">
<span class="button black strong"><input type="submit" value="{$lang->cmd_save}" /></span>
</th>
</tr>
</table>
</form>
<h4 class="xeAdmin">{$lang->ftp_form_title}</h4>
<p class="summary">{$lang->about_ftp_info}</p>
<form action="./" method="post" onsubmit="return procFilter(this, install_ftp_info);" id="ftp_form">
<table cellspacing="0" class="adminTable">
<caption>{$lang->ftp_form_title}</caption>
<tr>
<td colspan="3">
<p>{$lang->about_ftp_info}</p>
</td>
</tr>
<table cellspacing="0" class="rowTable">
<tr>
<th><div><label for="textfield21">{$lang->user_id}</label></div></th>
<th><div><label for="textfield22">{$lang->password}</label></div></th>
@ -99,48 +110,50 @@
<td><input id="textfield24" type="text" name="ftp_port" value="{$ftp_info->ftp_port}" class="inputTypeText" /></td>
</tr>
<tr>
<td colspan="3" class="right">
<span class="button"><input type="button" value="{$lang->cmd_check_ftp_connect}" onclick="doCheckFTPInfo(); return false;"/></span>
<span class="button"><input type="submit" value="{$lang->cmd_registration}" /></span>
</td>
<th colspan="3" class="button">
<span class="button blue"><input type="button" value="{$lang->cmd_check_ftp_connect}" onclick="doCheckFTPInfo(); return false;"/></span>
<span class="button black strong"><input type="submit" value="{$lang->cmd_registration}" /></span>
</th>
</tr>
</table>
</form>
</div>
<div class="adminRightExtra">
<form action="./" method="get" onsubmit="return procFilter(this, update_lang_select);">
<table cellspacing="0" class="adminTable">
<caption>{$lang->cmd_lang_select}</caption>
<tr>
<td>
<!--@foreach($lang_supported as $key => $val)-->
<div><input id="lang_{$key}" type="checkbox" name="selected_lang" value="{$key}" <!--@if(isset($lang_selected[$key]))-->checked="checked"<!--@end--> <!--@if($key==$selected_lang)-->disabled="disabled"<!--@end--> /> <label for="lang_{$key}">{$val}</label></div>
<!--@endforeach-->
<p>{$lang->about_cmd_lang_select}</p>
</td>
</tr>
<tr>
<td class="right">
<span class="button"><input type="submit" value="{$lang->cmd_save}" /></span>
</td>
</tr>
</table>
</form>
<hr />
<table cellspacing="0" class="adminTable">
<caption>{$lang->cmd_remake_cache}</caption>
<tr>
<td>
<p>{$lang->about_recompile_cache}</p>
</td>
</tr>
<tr>
<td class="right">
<span class="button"><input type="button" value="{$lang->cmd_remake_cache}" onclick="doRecompileCacheFile(); return false;"/></span>
</td>
</tr>
</table>
<div class="extension e2">
<div class="section">
<h4 class="xeAdmin">{$lang->cmd_lang_select}</h4>
<p class="summary">{$lang->about_cmd_lang_select}</p>
<form action="./" method="get" onsubmit="return procFilter(this, update_lang_select);">
<table cellspacing="0" class="rowTable">
<!--@foreach($langs as $key => $val)-->
<tr>
<td>
<input id="lang_{$key}" type="checkbox" name="selected_lang" value="{$key}" <!--@if(isset($lang_selected[$key]))-->checked="checked"<!--@end--> <!--@if($key==$selected_lang)-->disabled="disabled"<!--@end--> /> <label for="lang_{$key}">{$val}</label>
</td>
</tr>
<!--@endforeach-->
<tr>
<th class="button">
<span class="button black strong"><input type="submit" value="{$lang->cmd_save}" /></span>
</th>
</tr>
</table>
</form>
<h4 class="xeAdmin">{$lang->cmd_remake_cache}</h4>
<p class="summary">{$lang->about_recompile_cache}</p>
<table cellspacing="0" class="colTable">
<tr>
<th class="button">
<span class="button black strong"><input type="button" value="{$lang->cmd_remake_cache}" onclick="doRecompileCacheFile(); return false;"/></span>
</th>
</tr>
</table>
</div>
</div>
<!--#include("_footer.html")-->

View file

@ -1,34 +1,150 @@
@charset "utf-8";
@import url("./font.css");
@import url("./pagination.css");
/* NHN > UIT Center > Open UI Technology Team > Jeong Chan Myeong(dece24@nhncorp.com) */
.topGap { margin-top:10px; }
.rightGap { margin-right:10px; }
.bottomGap { margin-bottom:15px; }
.leftGap { margin-left:10px; }
textarea { padding:.3em 0 0 .3em;}
#xeAdmin .open{ display:block !important;}
#xeAdmin h1.xeAdmin { float:left; white-space:nowrap; margin:0;padding:0;}
#xeAdmin caption{ text-align:left;}
#xeAdmin button{ cursor:pointer;}
#xeAdmin hr{ display:none;}
#xeAdmin fieldset{ border:0;}
#xeAdmin fieldset legend{ font-size:0; line-height:0; position:absolute; visibility:hidden;}
#xeAdmin .section{ margin-bottom:20px;}
#xeAdmin .buttonArea{ text-align:center; padding:15px 0;}
#xeAdmin button.text{ background:none; border:0; color:#0000ee;}
#xeAdmin img.graphHr{ height:5px; vertical-align:middle;}
h3 { margin:0; padding:8px 0 0 10px; border:1px solid #5E95BC; border-left:1px solid #8EB9D8; border-top:1px solid #8EB9D8; background:url("../images/n_title_bg.gif") repeat-x left top; font-size:1em; color:#27536C; height:22px;}
h3 .gray { color:#8AB2CE;}
.infoText { background:#FFFFFF; padding:10px; color:#27536C; border-left:1px solid #8AB2CE; border-bottom:1px solid #8AB2CE; border-right:1px solid #8AB2CE; line-height:1.5; margin-bottom:10px; }
.subInfoText { background:#FFFFFF; padding:10px; color:#27536C; border:1px solid #EEEEEE; line-height:1.5; margin-bottom:10px; }
.crossTable{ width:100%; border:0; margin:0 0 20px 0; padding:0;}
.crossTable th div { white-space:nowrap; }
.crossTable th,
.crossTable td{ border:0; padding:5px 10px; vertical-align:top;}
.crossTable th{ background:#f4f4f4;}
.crossTable thead th{ border-top:2px solid #cfcfcf; border-bottom:1px solid #e5e5e5; background-image:url(../img/lineVrText.gif); background-repeat:no-repeat; background-position:left center;}
.crossTable thead th:first-child{ background-image:none;}
.crossTable tbody th{ border-bottom:1px solid #e5e5e5; text-align:left;}
.crossTable td{ border-bottom:1px solid #f0f0f0;}
h4 { text-align:right; font-size:12pt; color:#f2250d; padding-left:10px; margin:0;}
h4 .bracket { font-weight:normal; color:#9d9d9d;}
h4 .vr { font-weight:normal; color:#d1d1d1;}
h4 .view { color:#158692; padding-right:.6em; font:bold 9pt Tahoma; text-decoration:none; }
.colTable{ width:100%; border:0; margin:0 0 20px 0; padding:0;}
.colTable th div { white-space:nowrap; }
.colTable tr.bg0{ background:#fff;}
.colTable tr.bg1{ background:#f8f8f8;}
.colTable th,
.colTable td{ border:0; padding:5px 10px; vertical-align:top;}
.colTable th{ border-top:2px solid #cfcfcf; border-bottom:1px solid #e5e5e5; background:#f4f4f4; background-image:url(../img/lineVrText.gif); background-repeat:no-repeat; background-position:left center;}
.colTable th:first-child{ background-image:none;}
.colTable td{ border-bottom:1px solid #f0f0f0;}
div.summary { clear:both; font:8pt tahoma; color:#636363; margin-bottom:5px; }
div.summary .vr { font-weight:normal; color:#d1d1d1; }
div.summary em { color:#ff1d00; font-style:normal;}
.rowTable{ width:100%; border:0; border-top:2px solid #cfcfcf; margin:0 0 20px 0; padding:0;}
.rowTable th div { white-space:nowrap; }
.rowTable tr.bg0{ background:#fff;}
.rowTable tr.bg1{ background:#f8f8f8;}
.rowTable th,
.rowTable td{ border:0; padding:5px 10px; text-align:left; vertical-align:top;}
.rowTable th{ background:#f4f4f4;}
.rowTable tbody th{ border-bottom:1px solid #e5e5e5;}
.rowTable td{ border-bottom:1px solid #f0f0f0;}
.adminLeftContent { float:left; width:60%; margin-right:2%; _margin-right:1.9%;}
.adminRightExtra { float:left; width:38%; }
.rowTable th.button, .colTable th.button, .crossTable th.button { text-align:right; }
.rowTable td.alert, .colTable td.alert, .crossTable td.alert { color:red !important; }
.rowTable td.alert a, .colTable td.alert a, .crossTable td.alert a { text-decoration:none; color:red !important; }
.adminTable { width:100%; border:1px solid #9BC2DE; border-bottom:none; border-right:none; margin-bottom:15px; }
.adminTable caption { background:url("../images/n_caption_head.gif") no-repeat left top; padding:8px 0 5px 30px; text-align:left; font-weight:bold; color:#FFFFFF; background-color:#548DB5; border-bottom:1px solid #FFFFFF; }
.colTable td.wide, .rowTable td.wide, .crossTable td.wide { width:100%;}
.e1 .navigation { list-style:none; position:relative; *zoom:1; margin:0; padding:0;}
.e1 .navigation ul { list-style:none; position:relative; *zoom:1; margin:0; padding:0;}
.e1 .navigation li{ list-style:none; position:relative; *zoom:1; margin:0; padding:0;}
.e1 .navigation li a{ display:block; position:relative; padding:4px 0 4px 24px; background-image:url(../img/iconNavigation.gif); background-repeat:no-repeat;}
.e1 .navigation li.open a{ background-position:0 -24px; background-color:#eee; border-top:1px solid #ddd; border-bottom:1px solid #ddd;}
.e1 .navigation li.open ul li a{ background-color:#fff; border:0;}
.e1 .navigation li ul{ display:none; margin:10px 0 20px 24px;}
.e1 .navigation li.open ul{ display:block;}
.e1 .navigation li ul li a{ padding:2px 0 2px 5px; background-image:none;}
.e1 .navigation li a:hover,
.e1 .navigation li a:active,
.e1 .navigation li a:focus { background-color:#eee !important;}
.e2 .section{ margin-left:20px;}
.e2 .section h3.xeAdmin { margin:0 0 10px 0; padding:0 0 0 25px; }
.e2 .section h3.xeAdmin .date{ padding-left:10px; background:url(../img/lineVrText.gif) no-repeat left center;}
.e2 table th{ white-space:nowrap;}
.e2 table tbody td{ text-align:left; word-break:break-all; -ms-word-break:break-all; }
#xeAdmin .localNavigation { border-bottom:1px solid #ccc; *zoom:1; margin:0 0 20px 0px; padding:0; overflow:hidden; }
#xeAdmin .localNavigation:after {content:""; display:block; clear:both;}
#xeAdmin .localNavigation li{ position:relative; list-style:none; float:left; margin:0 -1px 0 0; padding:0;background:#fff;}
#xeAdmin .localNavigation li a{ float:left; padding:7px 15px 0 15px; height:18px; border:1px solid #ddd; border-bottom:none; background:url(../img/bgTab.gif) repeat-x;}
#xeAdmin .localNavigation li.on { margin-bottom:-1px;}
#xeAdmin .localNavigation li.on a{ height:19px; background:none;}
#xeAdmin h3.xeAdmin {border-bottom:2px solid #ccc; padding:5px 0 5px 25px; margin:0 0 10px 0; background:url(../img/iconH2.gif) no-repeat left center;}
#xeAdmin h4.xeAdmin {padding:5px 0 5px 20px; background:url(../img/iconH3.gif) no-repeat left center;}
#xeAdmin h4.xeAdmin span.vr { font-size:11px; color:#AAA; }
#xeAdmin h4.xeAdmin a.view { font-size:11px; font-family:vertical; color:#777e86; }
#xeAdmin p.summary, div.infoText { margin:0 0 15px 0; line-height:1.6;}
.layer { display:none; position:absolute; border:2px solid #777; margin:0; font-size:12px; background:#fff;}
.layer * { margin:0; padding:0; font-size:12px; }
.layer h4.xeAdmin { font-size:14px !important; font-family:Dotum; background:#f4f4f4 !important; padding:8px 30px 8px 15px !important; letter-spacing:-1px !important; }
.layer .xButton { position:absolute; top:9px; right:9px; width:15px; height:14px; background-color:transparent; background:url(../img/buttonClose.gif) no-repeat; border:0; cursor:pointer; overflow:hidden; }
.layer .xButton span { position:relative; z-index:-1; visibility:hidden; }
.layer .layerBody{ margin:15px;}
.boxModelControler select { margin-bottom:3px; }
.boxModelControler .inputText { border:1px solid #ccc; padding:2px 3px; margin-bottom:3px; vertical-align:top; *margin-top:-1px; }
.boxModelControler .inputCheck { width:13px; height:13px; vertical-align:middle; }
.boxModelControler .layerBody { margin:15px; }
.boxModelControler .preview{ overflow:hidden; margin-bottom:20px;}
.boxModelControler .dragAble { position:relative; padding:15px 0 0 15px; background:url(../img/bgRuler.gif) no-repeat; *zoom:1; cursor:move;}
.boxModelControler .dragAble .prevGrid { position:relative; margin:-1px; background:url(../img/bgGrid.gif) 0 0; border:1px solid #000; *zoom:1;}
.boxModelControler .dragAble .prevBox { position:relative; }
.boxModelControler .dragAble .prevBox .prevContent { position:relative; }
.boxModelControler .boxModelTable { width:100%; border:0; border-bottom:1px solid #ddd; margin:0; padding:0;}
.boxModelControler .boxModelTable th,
.boxModelControler .boxModelTable td { border:0; border-top:1px solid #ddd; vertical-align:top; padding:5px 10px; text-align:left; }
.boxModelControler .boxModelTable th { height:50px; *height:40px; background:#f1f1f1; padding-left:70px; background-repeat:no-repeat; background-position:10px 10px; }
.boxModelControler .boxModelTable th.width { background-image:url(../img/exWidth.gif); }
.boxModelControler .boxModelTable th.margin { background-image:url(../img/exMargin.gif); }
.boxModelControler .boxModelTable th.padding { background-image:url(../img/exPadding.gif); }
.boxModelControler .boxModelTable th.border { background-image:url(../img/exBorder.gif); }
.boxModelControler .boxModelTable th.bgColor { background-image:url(../img/exBgColor.gif); }
.boxModelControler .boxModelTable th.bgImage { background-image:url(../img/exBgImage.gif); }
.boxModelControler .boxModelTable th sup { font-weight:normal; font-size:11px; font-family:Dotum; color:#999; }
.boxModelControler .boxModelTable td dl.iList dt { display:inline; position:relative; top:3px; }
.boxModelControler .boxModelTable td dl.iList dd { display:inline; }
.boxModelControler .boxModelTable td dl.dList dt { float:left; clear:left; margin-right:5px; padding-top:3px; }
.boxModelControler .boxModelTable td dl.dList dd { clear:right; }
.boxModelControler .colorPicker { position:relative; display:inline; vertical-align:top; }
.boxModelControler .colorPicker .picker { position:relative; top:2px; left:-22px; width:16px; height:16px; border:1px solid #ccc; background-color:transparent; background-position:right top; cursor:pointer; vertical-align:top; }
.boxModelControler .colorPicker .picker span { font-size:0; line-height:0; z-index:-1; visibility:hidden; }
.boxModelControler .colorPicker .palette { position:absolute; top:0px; left:0; display:none; width:272px; height:64px; list-style:none; margin:0; padding:1px 0 0 1px; border:1px solid #ccc; background:#fff; overflow:hidden; }
.boxModelControler .colorPicker .palette.open { display:block; }
.boxModelControler .colorPicker .palette li { float:left; margin:0 1px 1px 0; font-size:0; line-height:0; }
.boxModelControler .colorPicker .palette li button { width:15px; height:15px; border:0; cursor:pointer; }
.boxModelControler .colorPicker .palette li button span { position:relative; z-index:-1; font-size:0; line-height:0; visibility:hidden; }
.boxModelControler .colorPicker .palette li button.transparent { background:url(../img/bgNone.gif) no-repeat right top; border:1px solid #ddd; }
.boxModelControler .borderDetach { display:none; }
.boxModelControler .borderDetach.open { display:block; }
.boxModelControler .buttonArea{ padding:15px 0 0 0; text-align:center;}
#popup_content { border:2px solid #777; margin:0; font-size:12px; background:#fff; position:relative;}
#popup_content .xButton { position:absolute; top:9px; right:9px; width:15px; height:14px; background-color:transparent; background:url(../img/buttonClose.gif) no-repeat; border:0; cursor:pointer; overflow:hidden; }
#popup_content .xButton span { position:relative; z-index:-1; visibility:hidden; }
#popup_content * { font-size:12px; }
#popHeadder h4.xeAdmin, #popHeadder h1.xeAdmin, #popHeadder h3.xeAdmin { font-size:14px !important; font-family:Dotum !important; background:#f4f4f4 !important; padding:8px 30px 8px 15px !important; letter-spacing:-1px !important; border:none !important; margin:0 !important;}
#popHeader h4.xeAdmin, #popHeader h1.xeAdmin, #popHeader h3.xeAdmin { font-size:14px !important; font-family:Dotum !important; background:#f4f4f4 !important; padding:8px 30px 8px 15px !important; letter-spacing:-1px !important; border:none !important; margin:0 !important;}
#popHeader, #popBody, #popFooter { position:relative; *zoom:1; overflow:hidden;}
#popBody, #popHistoryBody { margin:15px !important;}
#popFooter { padding:10px 0 0 0; height:28px; text-align:center; background:#f4f4f4;}
#popHeader { }
#popHeader.wide { width:600px;}
.adminTable { width:100%; border:1px solid #EEE; border-bottom:none; border-right:none; margin-bottom:15px; }
.adminTable caption { background:url("../img/n_caption_head.gif") no-repeat left top; padding:8px 0 5px 30px; text-align:left; font-weight:bold !important; color:#FFFFFF !important; background-color:#888 !important; border-bottom:1px solid #FFFFFF; font-size:12px !important;}
.adminTable thead tr th div { text-align:center;}
.adminTable thead tr th { background-color:#70A2C6; color:#FFFFFF; }
.adminTable tr th { background-color:#FFFFFF; padding:6px; font-weight:bold; text-align:left; color:#666; border-right:1px solid #9BC2DE; border-bottom:1px solid #9BC2DE; }
.adminTable thead tr th { background-color:#AAA; color:#FFFFFF !important; }
.adminTable tr th { background-color:#FFFFFF; padding:6px; font-weight:bold; text-align:left; color:#666; border-right:1px solid #EEE; border-bottom:1px solid #EEE; }
.adminTable tr.row2 th { background-color:#F3F3F3; }
.adminTable tr th { width:10px; }
.adminTable tr th div { white-space:nowrap; margin:0 5px; }
@ -37,8 +153,7 @@ div.summary em { color:#ff1d00; font-style:normal;}
.adminTable tr th.half_wide { width:50%; }
.adminTable tr th.quarter_wide { width:25%; }
.adminTable tr td.wide { width:100%; }
.adminTable tr td { background-color:#FFFFFF;white-space:normal; font-weight:normal; text-align:left; color:#222222; border-bottom:1px solid #9BC2DE; border-right:1px solid #9BC2DE; padding:4px 6px 4px 6px;}
.adminTable tr td { background-color:#FFFFFF;white-space:normal; font-weight:normal; text-align:left; color:#222222; border-bottom:1px solid #EEE; border-right:1px solid #EEE; padding:4px 6px 4px 6px;}
.adminTable tr.row2 td { background-color:#F3F3F3; }
.adminTable tr a { color:#222222; text-decoration:none; }
.adminTable tr a:hover { color:#3D83B8; }
@ -49,10 +164,10 @@ div.summary em { color:#ff1d00; font-style:normal;}
.adminTable tr td span.date { font-size:8pt; font-family:tahoma; color:#666666;}
.adminTable tr td.center { text-align:center; }
.adminTable tr td.right { text-align:right; }
.adminTable tr td.paper { background:transparent url("../images/n_paper_bullet.gif") no-repeat 6px 8px; padding-left:20px; }
.adminTable tr.row2 td.paper { background:#F3F3F3 url("../images/n_paper_bullet.gif") no-repeat 6px 8px; padding-left:20px; }
.adminTable tr td.circle { background:#FFFFFF url("../images/n_circle_bullet.gif") no-repeat 6px 8px; padding-left:20px; }
.adminTable tr.row2 td.circle { background:#F3F3F3 url("../images/n_circle_bullet.gif") no-repeat 6px 8px; padding-left:20px; }
.adminTable tr td.paper { background:transparent url("../img/n_paper_bullet.gif") no-repeat 6px 8px; padding-left:20px; }
.adminTable tr.row2 td.paper { background:#F3F3F3 url("../img/n_paper_bullet.gif") no-repeat 6px 8px; padding-left:20px; }
.adminTable tr td.circle { background:#FFFFFF url("../img/n_circle_bullet.gif") no-repeat 6px 8px; padding-left:20px; }
.adminTable tr.row2 td.circle { background:#F3F3F3 url("../img/n_circle_bullet.gif") no-repeat 6px 8px; padding-left:20px; }
.adminTable tr td strong.alert { color:red; }
.adminTable tr td p { padding:0; margin:5px 0 0 5px; color:#777777; }
.adminTable tr td p a { color:#9F875F; font-weight:bold; text-decoration:underline; }
@ -66,105 +181,22 @@ div.summary em { color:#ff1d00; font-style:normal;}
.adminTable tr td.selectAll a,
.adminTable tr td.deSelectAll a,
.adminTable tr td.view a { margin:0 auto; }
.adminTable tr td.modify a { width:14px; height:14px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../images/n_icon_modify.gif") no-repeat left top; }
.adminTable tr td.delete a { width:14px; height:14px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../images/n_icon_delete.gif") no-repeat left top; }
.adminTable tr td.copy a { width:16px; height:16px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../images/n_icon_copy.gif") no-repeat left top; }
.adminTable tr td.view a { width:14px; height:14px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../images/n_icon_view.gif") no-repeat left top; }
.adminTable tr td.setup a { width:16px; height:16px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../images/n_setup.gif") no-repeat left top; }
.adminTable tr td.activated a { width:16px; height:16px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../images/n_light_on.gif") no-repeat left top; }
.adminTable tr td.deactivated a { width:16px; height:16px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../images/n_light_off.gif") no-repeat left top; }
.adminTable tr td.selectAll a { width:16px; height:16px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../images/n_icon_select_all.gif") no-repeat left top; }
.adminTable tr td.deSelectAll a { width:16px; height:16px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../images/n_icon_remove.gif") no-repeat left top; }
.adminTable tr td.moveupdown a.up { float:left; width:14px; height:14px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../images/button_up.gif") no-repeat left top; margin-right:5px; }
.adminTable tr td.moveupdown a.down{ float:left; width:14px; height:14px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../images/button_down.gif") no-repeat left top; }
.adminTable tr td.modify a { width:14px; height:14px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../img/n_icon_modify.gif") no-repeat left top; }
.adminTable tr td.delete a { width:14px; height:14px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../img/n_icon_delete.gif") no-repeat left top; }
.adminTable tr td.copy a { width:16px; height:16px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../img/n_icon_copy.gif") no-repeat left top; }
.adminTable tr td.view a { width:14px; height:14px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../img/n_icon_view.gif") no-repeat left top; }
.adminTable tr td.setup a { width:16px; height:16px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../img/n_setup.gif") no-repeat left top; }
.adminTable tr td.activated a { width:16px; height:16px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../img/n_light_on.gif") no-repeat left top; }
.adminTable tr td.deactivated a { width:16px; height:16px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../img/n_light_off.gif") no-repeat left top; }
.adminTable tr td.selectAll a { width:16px; height:16px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../img/n_icon_select_all.gif") no-repeat left top; }
.adminTable tr td.deSelectAll a { width:16px; height:16px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../img/n_icon_remove.gif") no-repeat left top; }
.adminTable tr td.moveupdown a.up { float:left; width:14px; height:14px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../img/n_button_up.gif") no-repeat left top; margin-right:5px; }
.adminTable tr td.moveupdown a.down{ float:left; width:14px; height:14px; overflow:hidden; display:block; font-size:1px; line-height:100px; background:url("../img/n_button_down.gif") no-repeat left top; }
.adminTable tr td.blue, .adminTable tr td.blue a { color:blue; }
.adminTable tr td.red, .adminTable tr td.red a { color:red; }
ul.localNavigation { position:relative; clear:both; margin:10px 0 10px 0; padding:0 0 0 10px; height:25px; overflow:hidden; border-bottom:1px solid #86B4D2; }
ul.localNavigation li { list-style:none; background:url("../images/n_small_tab.gif") no-repeat scroll left -26px; float:left; margin-right:10px; position:relative; text-align:center; top:4px; height:25px;}
ul.localNavigation li a { background:url("../images/n_small_tab.gif") no-repeat scroll right -26px; color:#27536C; display:block; float:left; left:3px; padding:5px 15px 0 10px; position:relative; text-decoration:none; height:25px;}
ul.localNavigation li a:hover { color:#000000; }
ul.localNavigation li.on { background-position:left top; top:0; height:25px; }
ul.localNavigation li.on a { background-position:right top; padding:8px 15px 5px 10px; height:25px; color:#222227; font-weight:bold; }
.fullWidth { width:80%; }
#popHeadder, #popHistoryHeadder { margin-bottom:10px;}
#popHeadder h1, #popHistoryHeadder h1 { background:url("../images/top_head_title_bg.gif") repeat-x left top; font-size:1em; border:1px solid #E3E3E2; padding:9px; color:#555555; margin:0; }
#popBody, #popHistoryBody { width:600px; padding:10px; background:#ffffff; *zoom:1; position:relative;}
#popHistoryBody { height: 200px; overflow: auto; padding-right:0; }
#popFooter { width:620px; background:#70A2C6; border-top:1px solid #e8e8e7; padding:.5em 0 .5em 0; overflow:hidden; }
#popFooter .close { position:relative; left:50%; margin-left:-1em; float:left;}
.adminSearch { text-align:right; clear:both; width:100%; margin:0 0 10px 0;}
.adminSearch fieldset { border:none; display:inline; overflow:visible; padding:0;}
.adminSearch * { vertical-align:middle;}
.buttonTypeGo { border:none; cursor:pointer; width:24px; height:20px; position:relative; top:-1px; font:.75em Tahoma; text-align:center; background:url(../images/buttonTypeInput24.gif) no-repeat; }
.layout_editor { width:99%; height:500px; border:0px; font-size:1em; }
.layout_editor_box { padding:10px; border:1px solid #DDDDDD; }
.fixWidth { width:90%; }
/* Pagination Reset */
.pagination{ padding:15px 0; margin:0; text-align:center;}
.pagination *{ margin:0; padding:0;}
.pagination img{ border:0;}
.pagination a,
.pagination strong{ position:relative; display:inline-block; text-decoration:none; line-height:normal; color:#333; font-family:Tahoma, Sans-serif; vertical-align:middle;}
.pagination a:hover,
.pagination a:active,
.pagination a:focus{ background-color:#f4f4f4 !important; }
.pagination strong{ color:#ff6600 !important;}
.pagination a.prev,
.pagination a.prevEnd,
.pagination a.next,
.pagination a.nextEnd{ font-weight:normal !important; border:none !important; margin:0 !important; white-space:nowrap; }
/* Pagination A1 */
.pagination.a1 a,
.pagination.a1 strong{ margin:0 -4px; padding:1px 10px 1px 8px; border:none; border-left:1px solid #ccc; border-right:1px solid #ddd; font-weight:bold; font-size:12px; background:#fff;}
.pagination.a1 a.prev{ padding-left:10px; background:#fff url(../images/arrowPrevA1.gif) no-repeat left center; }
.pagination.a1 a.prevEnd{ padding-left:15px; background:#fff url(../images/arrowPrevEndA1.gif) no-repeat left center; }
.pagination.a1 a.next{ padding-right:10px; background:#fff url(../images/arrowNextA1.gif) no-repeat right center; }
.pagination.a1 a.nextEnd{ padding-right:15px; background:#fff url(../images/arrowNextEndA1.gif) no-repeat right center; }
/* Pagination A2 */
.pagination.a2 a,
.pagination.a2 strong{ margin:0 -4px; padding:0 10px 0 8px; font-weight:bold; font-size:11px; border:none; border-left:1px solid #ddd; border-right:1px solid #ccc; background:#fff; }
.pagination.a2 a.prev{ padding-left:10px; background:#fff url(../images/arrowPrevA1.gif) no-repeat left center; }
.pagination.a2 a.prevEnd{ padding-left:15px; background:#fff url(../images/arrowPrevEndA1.gif) no-repeat left center; }
.pagination.a2 a.next{ padding-right:10px; background:#fff url(../images/arrowNextA1.gif) no-repeat right center; }
.pagination.a2 a.nextEnd{ padding-right:15px; background:#fff url(../images/arrowNextEndA1.gif) no-repeat right center; }
/* Pagination B1 */
.pagination.b1 a,
.pagination.b1 strong{ margin:0 -2px; padding:2px 8px; font-weight:bold; font-size:12px;}
.pagination.b1 a.prev{ padding-left:16px; background:url(../images/arrowPrevB1.gif) no-repeat left center; }
.pagination.b1 a.next{ padding-right:16px; background:url(../images/arrowNextB1.gif) no-repeat right center; }
/* Pagination B2 */
.pagination.b2 a,
.pagination.b2 strong{ margin:0 -2px; padding:2px 6px; font-size:11px;}
.pagination.b2 a.prev{ padding-left:12px; background:url(../images/arrowPrevB1.gif) no-repeat left center; }
.pagination.b2 a.next{ padding-right:12px; background:url(../images/arrowNextB1.gif) no-repeat right center; }
/* Pagination C1 */
.pagination.c1 a,
.pagination.c1 strong{ margin:0 -2px; padding:2px 4px; font-size:12px;}
.pagination.c1 a.prev,
.pagination.c1 a.next{ display:inline-block; width:13px; height:14px; padding:3px 4px; margin:0;}
.pagination.c1 a.prev{ background:url(../images/arrowPrevC1.gif) no-repeat center;}
.pagination.c1 a.next{ background:url(../images/arrowNextC1.gif) no-repeat center;}
.pagination.c1 a.prev span,
.pagination.c1 a.next span{ position:absolute; width:0; height:0; overflow:hidden; visibility:hidden;}
/* Pagination C2 */
.pagination.c2 a,
.pagination.c2 strong{ margin:0 -2px; padding:2px 4px; font-size:11px;}
.pagination.c2 a.prev,
.pagination.c2 a.next{ display:inline-block; width:13px; height:14px; padding:3px 4px; margin:0;}
.pagination.c2 a.prev{ background:url(../images/arrowPrevC1.gif) no-repeat center;}
.pagination.c2 a.next{ background:url(../images/arrowNextC1.gif) no-repeat center;}
.pagination.c2 a.prev span,
.pagination.c2 a.next span{ position:absolute; width:0; height:0; overflow:hidden; visibility:hidden;}
.adminLeftContent { float:left; width:60%; margin-right:2%; _margin-right:1.9%;}
.adminRightExtra { float:left; width:38%; }

View file

@ -1,39 +0,0 @@
@charset "utf-8";
body { background:#548DB5; }
.xeAdmin { width:100%; height:61px; border-bottom:1px solid #1b3d51; background:#FFFFFF url("../images/n_top_back.gif") repeat-x left top; position:relative; z-index:100;}
.xeAdmin h1 { position:absolute; top:15px; left:20px; margin:0; padding:0; }
.xeAdmin h1 img{ _behavior:url(./common/js/iePngFix.htc);}
.xeAdmin ul.globalNavigator { list-style:none; margin:0; padding:0; position:absolute; right:20px; top:13px; }
.xeAdmin ul.globalNavigator li { display:inline; margin:0 10px;}
.xeAdmin ul.globalNavigator li a{ color:#ddd; text-decoration:none;}
.xeAdmin div.mainNavigator { position:absolute; right:20px; top:35px; padding:0 0 0 6px; background:url(../images/n_menu_left.gif) no-repeat left top;}
.xeAdmin div.mainNavigator img { float:left; display:block; }
.xeAdmin div.mainNavigator ul { float:left; position:relative; list-style:none; margin:0; padding:0 6px 0 0; background:url(../images/n_menu_right.gif) no-repeat right top; }
.xeAdmin div.mainNavigator ul li { position:relative; float:left; background:#547C93 url("../images/n_menu_bar.gif") no-repeat left top; padding:0; color:#eee; border-top:1px solid #1b3d51;}
.xeAdmin div.mainNavigator ul li a{ position:relative; display:block; float:left; height:18px; padding:7px 10px 0 10px; color:#fff; text-decoration:none;}
.xeAdmin div.mainNavigator ul li:hover { color:#FFFFFF; }
.xeAdmin div.mainNavigator ul li.first { background-image:none; }
.xeAdmin div.mainNavigator .adminSubMenu { border:1px solid #999; float:none; clear:both; position:absolute; left:-6px; top:31px; visibility:hidden; list-style:none; padding:0 7px 3px 7px; margin:0; background:#eee;}
.xeAdmin div.mainNavigator .adminSubMenu li { position:relative; display:block; float:none; clear:both; font-weight:normal; margin:0; padding:8px 4px 4px 4px; background:url("../images/n_submenu_bar.gif") repeat-x left top; border:none;}
.xeAdmin div.mainNavigator .adminSubMenu li a { position:relative; display:inline-block; float:none; clear:both; padding:0; color:#000; text-decoration:none; white-space:nowrap;}
.xeAdmin div.mainNavigator .adminSubMenu li a:hover { color:#aaa; }
.xeAdmin div.mainNavigator .adminSubMenu li.first { background:none; }
.adminFolder { background:url("../images/n_folder_bg.gif") repeat-x left top; height:6px; text-align:center; overflow:hidden;}
.adminPackage { background:#eee url("../images/n_package_bg.gif") repeat-x left top; overflow:hidden; height:28px; padding:10px 0 0 0;}
.adminPackage ul { position:relative; clear:both; margin:0; padding:0 0 0 20px; height:28px; overflow:hidden;}
.adminPackage ul li { list-style:none; background:url("../images/n_tab.gif") no-repeat scroll left -35px; float:left; margin-right:10px; position:relative; text-align:center; top:0; height:28px;}
.adminPackage ul li a { float:left; background:url("../images/n_tab.gif") no-repeat scroll right -35px; color:#FFFFFF; font-weight:bold; display:block; left:3px; padding:8px 15px 0 10px; position:relative; text-decoration:none; height:28px;}
.adminPackage ul li.active { background-position:left top; top:0; height:28px; }
.adminPackage ul li.active a { background-position:right top; padding:8px 15px 5px 10px; height:28px; color:#185B83;}
.adminContentBody { background:#FFFFFF; position:relative; padding:20px; *zoom:1; }
.adminContentBody:after { content:""; display:block; clear:both;}
.adminFooter{ background:#548DB5; text-align:center; padding:10px 0;}
.adminFooter address { font:11px Tahoma; color:#fff;}
.adminFooter address a{ font:11px Tahoma; color:#fff; text-decoration:none;}

57
modules/admin/tpl/css/font.css Executable file
View file

@ -0,0 +1,57 @@
@charset "utf-8";
/* NHN > UIT Center > Open UI Technology Team > Jeong Chan Myeong(dece24@nhncorp.com) */
#xeAdmin{ font-family:Sans-serif;}
#xeAdmin a{ text-decoration:none !important;}
#xeAdmin a:hover,
#xeAdmin a:active,
#xeAdmin a:focus{ text-decoration:underline !important;}
#xeAdmin h1.xeAdmin a{ text-decoration:none !important; font-family:Arial; font-size:16px; color:#fff; margin:0; padding:0;}
#xeAdmin table th{ color:#666;}
#xeAdmin table th a { color:#666;}
#xeAdmin table td{ color:#888;}
#xeAdmin table td a { color:#888;}
#xeAdmin caption{ font-size:11px; font-family:Tahoma; color:#888;}
#xeAdmin div.summary { font-size:11px; font-family:Tahoma; color:#888;}
#xeAdmin div.summary strong { font-weight:normal; }
#xeAdmin button.text{ font-size:12px;}
#xeAdmin em,
#xeAdmin address{ font-style:normal;}
#xeAdmin select{ font-size:12px;}
#xeAdmin input{ font-size:12px;}
#xeAdmin .buttonTypeGo{ padding:0; cursor:pointer;}
#xeAdmin .footer address{ font:10px Tahoma;}
#xeAdmin .footer address a{ color:#777e86; }
#xeAdmin .gnb li a { color:#777e86; font-size:11px; font-family:Tahoma;}
#adminLang li a{ font-size:12px;}
#xeAdmin .lnb li,
#xeAdmin .lnb li a{ color:#fff; font-size:14px; font-family:Dotum, Tahoma;}
#xeAdmin .path{ color:#ccc; font-size:11px;}
#xeAdmin .path a{ color:#888; font-size:11px; font-family:Dotum, Sans-serif;}
.e1 .navigation li a{ color:#000; text-decoration:none;}
.e1 .navigation li ul li a{ color:#888;}
.e1 .navigation li ul li.active a{ font-weight:bold; color:#666;}
.e2 .section h2.xeAdmin { font-size:12px; margin:0; padding:0;}
.e2 .section h2.xeAdmin .date{ font:Tahoma; color:#999;}
.e2 table tbody th{ font-weight:normal; font-family:Dotum;}
.e2 .notice li a{ color:#666; }
.e2 .notice li .date{ color:#888; font:10px Tahoma;}
.localNavigation li a{ text-decoration:none !important; color:#666;}
.localNavigation li.active a{ font-weight:bold; color:#1e6aac;}
#xeAdmin h2.xeAdmin { font-size:12px;}
#xeAdmin h3.xeAdmin { font-size:12px; color:#666; margin:0; padding:0;}
#xeAdmin p.summary{ color:#888;}
#xeAdmin p.summary a { text-decoration:none; color:#888; }
#xeAdmin p.summary.red { color:#A54D4D; }
#xeAdmin p.summary.red a { text-decoration:none; color:#A54D4D; }
#xeAdmin div.infoText { color:#888;}

View file

@ -0,0 +1,43 @@
@charset "utf-8";
/* NHN > UIT Center > Open UI Technology Team > Jeong Chan Myeong(dece24@nhncorp.com) */
#xeAdmin .header{ position:relative; height:62px; padding:10px 15px 10px 30px; background:url(../img/bgHeader.gif) repeat-x; z-index:10;}
#xeAdmin .footer{ height:26px; padding-top:10px; background:url(../img/bgFooter.gif) repeat-x; text-align:center;}
#xeAdmin .gnb{ position:relative; float:right; white-space:nowrap; clear:right; margin:0; padding:0;}
#xeAdmin .gnb li{ position:relative; float:left; margin:0 15px 0 0; padding:0;list-style:none;}
#xeAdmin .gnb #adminLang { position:absolute; top:18px; right:0; display:none; background:#fff; margin:0; padding:5px; border:1px solid #ddd; z-index:999;}
#xeAdmin .gnb #adminLang li{ float:none; margin:0;}
.body{ position:relative; margin:0; padding:20px 0 20px 200px; background:url(../img/lineBody.gif) repeat-y 180px 0; *zoom:1;}
.body:after {content:""; display:block; clear:both;}
.ece .body {padding-right:340px;}
.ec .body {padding-right:20px;}
.extension{ position:relative;}
.body .e1 { float:left; width:160px; margin-right:-160px; left:-190px;}
.content { position:relative; width:100%; margin-right:-100%; float:left;}
.ece .e2 { width:300px; float:right; right:-320px; border-left:1px solid #ddd; padding-bottom:20px;}
.ec .e2 { display:none;}
#xeAdmin .lnb { position:relative; left:-3px; float:left; clear:left; margin:5px 0 0 0; padding:0;}
#xeAdmin .lnb li,
#xeAdmin .lnb li a{ position:relative; float:left; background:url(../img/buttonLNB.gif) no-repeat; white-space:nowrap;}
#xeAdmin .lnb li{ margin:0 1px 0 0; padding:0;list-style:none; background-position:0 0;}
#xeAdmin .lnb li a{ left:1px; height:30px; padding:10px 15px 0 15px; text-decoration:none !important; background-position:right 0;}
#xeAdmin .lnb li.core{ margin-right:6px; background-position:0 -50px;}
#xeAdmin .lnb li.core a{ padding-right:20px; left:5px; background-position:right -50px;}
#xeAdmin .lnb li.first{ background-position:0 -50px; margin-right:5px;}
#xeAdmin .lnb li.first a{ left:5px;}
#xeAdmin .lnb li.end{}
#xeAdmin .lnb li.end a{ padding-right:20px; background-position:right -50px;}
#xeAdmin .lnb li.core.selected { background-position:0 -150px;}
#xeAdmin .lnb li.core.selected a{ background-position:right -150px;}
#xeAdmin .lnb li.first.selected { background-position:0 -150px;}
#xeAdmin .lnb li.first.selected a{ background-position:right -100px;}
#xeAdmin .lnb li.mid.selected { background-position:0 -100px;}
#xeAdmin .lnb li.mid.selected a{ background-position:right -100px;}
#xeAdmin .lnb li.end.selected { background-position:0 -100px;}
#xeAdmin .lnb li.end.selected a{ background-position:right -150px;}
#xeAdmin .path{ padding:0 0 0 25px; margin:0 0 20px 0; background:url(../img/iconPath.gif) no-repeat left center;}

View file

@ -0,0 +1,85 @@
@charset "utf-8";
/* NHN > UIT Center > Open UI Platform Team > Jeong Chan Myeong(dece24@nhncorp.com) */
/* Pagination Reset */
#xeAdmin .pagination{ padding:15px 0; margin:0; text-align:center; clear:both; }
#xeAdmin .pagination *{ margin:0; padding:0;}
#xeAdmin .pagination img{ border:0;}
#xeAdmin .pagination a,
#xeAdmin .pagination strong{ position:relative; display:inline-block; text-decoration:none; line-height:normal; color:#333; font-family:Tahoma, Sans-serif; vertical-align:middle;}
#xeAdmin .pagination a:hover,
#xeAdmin .pagination a:active,
#xeAdmin .pagination a:focus{ background-color:#f4f4f4 !important; }
#xeAdmin .pagination strong{ color:#ff6600 !important;}
#xeAdmin .pagination a.prev,
#xeAdmin .pagination a.prevEnd,
#xeAdmin .pagination a.next,
#xeAdmin .pagination a.nextEnd{ font-weight:normal !important; border:none !important; margin:0 !important; white-space:nowrap; }
/* Pagination A1 */
#xeAdmin .pagination.a1 a,
#xeAdmin .pagination.a1 strong{ margin:0 -4px; padding:1px 10px 1px 8px; border:none; border-left:1px solid #ccc; border-right:1px solid #ddd; font-weight:bold; font-size:12px; background:#fff;}
#xeAdmin .pagination.a1 a.prev{ padding-left:10px; background:#fff url(../img/arrowPrevA1.gif) no-repeat left center; }
#xeAdmin .pagination.a1 a.prevEnd{ padding-left:15px; background:#fff url(../img/arrowPrevEndA1.gif) no-repeat left center; }
#xeAdmin .pagination.a1 a.next{ padding-right:10px; background:#fff url(../img/arrowNextA1.gif) no-repeat right center; }
#xeAdmin .pagination.a1 a.nextEnd{ padding-right:15px; background:#fff url(../img/arrowNextEndA1.gif) no-repeat right center; }
/* Pagination A2 */
#xeAdmin .pagination.a2 a,
#xeAdmin .pagination.a2 strong{ margin:0 -4px; padding:0 10px 0 8px; font-weight:bold; font-size:11px; border:none; border-left:1px solid #ddd; border-right:1px solid #ccc; background:#fff; }
#xeAdmin .pagination.a2 a.prev{ padding-left:10px; background:#fff url(../img/arrowPrevA1.gif) no-repeat left center; }
#xeAdmin .pagination.a2 a.prevEnd{ padding-left:15px; background:#fff url(../img/arrowPrevEndA1.gif) no-repeat left center; }
#xeAdmin .pagination.a2 a.next{ padding-right:10px; background:#fff url(../img/arrowNextA1.gif) no-repeat right center; }
#xeAdmin .pagination.a2 a.nextEnd{ padding-right:15px; background:#fff url(../img/arrowNextEndA1.gif) no-repeat right center; }
/* Pagination B1 */
#xeAdmin .pagination.b1 a,
#xeAdmin .pagination.b1 strong{ margin:0 -2px; padding:2px 8px; font-weight:bold; font-size:12px;}
#xeAdmin .pagination.b1 a.prev,
#xeAdmin .pagination.b1 a.prevEnd{ padding-left:16px; background:url(../img/arrowPrevB1.gif) no-repeat left center; }
#xeAdmin .pagination.b1 a.next,
#xeAdmin .pagination.b1 a.nextEnd{ padding-right:16px; background:url(../img/arrowNextB1.gif) no-repeat right center; }
/* Pagination B2 */
#xeAdmin .pagination.b2 a,
#xeAdmin .pagination.b2 strong{ margin:0 -2px; padding:2px 6px; font-size:11px;}
#xeAdmin .pagination.b2 a.prev,
#xeAdmin .pagination.b2 a.prevEnd{ padding-left:12px; background:url(../img/arrowPrevB1.gif) no-repeat left center; }
#xeAdmin .pagination.b2 a.next,
#xeAdmin .pagination.b2 a.nextEnd{ padding-right:12px; background:url(../img/arrowNextB1.gif) no-repeat right center; }
/* Pagination C1 */
#xeAdmin .pagination.c1 a,
#xeAdmin .pagination.c1 strong{ margin:0 -2px; padding:2px 4px; font-size:12px;}
#xeAdmin .pagination.c1 a.prev,
#xeAdmin .pagination.c1 a.prevEnd,
#xeAdmin .pagination.c1 a.next,
#xeAdmin .pagination.c1 a.nextEnd{ display:inline-block; width:13px; height:14px; padding:3px 4px; margin:0;}
#xeAdmin .pagination.c1 a.prev,
#xeAdmin .pagination.c1 a.prevEnd{ background:url(../img/arrowPrevC1.gif) no-repeat center;}
#xeAdmin .pagination.c1 a.next,
#xeAdmin .pagination.c1 a.nextEnd{ background:url(../img/arrowNextC1.gif) no-repeat center;}
#xeAdmin .pagination.c1 a.prev span,
#xeAdmin .pagination.c1 a.prevEnd span,
#xeAdmin .pagination.c1 a.next span,
#xeAdmin .pagination.c1 a.nextEnd span{ position:absolute; width:0; height:0; overflow:hidden; visibility:hidden;}
/* Pagination C2 */
#xeAdmin .pagination.c2 a,
#xeAdmin .pagination.c2 strong{ margin:0 -2px; padding:2px 4px; font-size:11px;}
#xeAdmin .pagination.c2 a.prev,
#xeAdmin .pagination.c2 a.prevEnd,
#xeAdmin .pagination.c2 a.next,
#xeAdmin .pagination.c2 a.nextEnd{ display:inline-block; width:13px; height:14px; padding:3px 4px; margin:0;}
#xeAdmin .pagination.c2 a.prev,
#xeAdmin .pagination.c2 a.prevEnd{ background:url(../img/arrowPrevC1.gif) no-repeat center;}
#xeAdmin .pagination.c2 a.next,
#xeAdmin .pagination.c2 a.nextEnd{ background:url(../img/arrowNextC1.gif) no-repeat center;}
#xeAdmin .pagination.c2 a.prev span,
#xeAdmin .pagination.c2 a.prevEnd span,
#xeAdmin .pagination.c2 a.next span,
#xeAdmin .pagination.c2 a.nextEnd span{ position:absolute; width:0; height:0; overflow:hidden; visibility:hidden;}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 362 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 650 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View file

Before

Width:  |  Height:  |  Size: 46 B

After

Width:  |  Height:  |  Size: 46 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 51 B

After

Width:  |  Height:  |  Size: 51 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 152 B

After

Width:  |  Height:  |  Size: 152 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 52 B

After

Width:  |  Height:  |  Size: 52 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 47 B

After

Width:  |  Height:  |  Size: 47 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 51 B

After

Width:  |  Height:  |  Size: 51 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 151 B

After

Width:  |  Height:  |  Size: 151 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 51 B

After

Width:  |  Height:  |  Size: 51 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 B

BIN
modules/admin/tpl/img/bgGrid.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

BIN
modules/admin/tpl/img/bgNone.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 B

BIN
modules/admin/tpl/img/bgRuler.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

BIN
modules/admin/tpl/img/bgTab.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

BIN
modules/admin/tpl/img/exWidth.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

Some files were not shown because too many files have changed in this diff Show more