Added changes from 1.5 branch to the 1.5-DB branch.

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0-DB@8675 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ucorina 2011-07-27 17:28:46 +00:00
commit 6831e6e767
587 changed files with 10861 additions and 6716 deletions

View file

@ -9,7 +9,7 @@ RewriteRule ^(modules|addons|widgets)/(.+)/(conf|queries|schemas)/(.+)\.xml$ ./i
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.+)/files/(member_extra_info|attach|cache|faceOff)/(.*) ./files/$2/$3 [L]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.+)/(files|modules|common|widgets|widgetstyles|layouts|m.layouts|addons)/(.*) ./$2/$3 [L]
RewriteRule ^(.+)/(files|modules|widgets|widgetstyles|layouts|m.layouts|addons)/(.*) ./$2/$3 [L]
# rss , blogAPI
RewriteRule ^(rss|atom)$ ./index.php?module=rss&act=$1 [L]

View file

@ -250,15 +250,15 @@
$oAddonCaptcha = &$GLOBALS['__AddonCaptcha__'];
if(method_exists(&$oAddonCaptcha, $called_position))
if(method_exists($oAddonCaptcha, $called_position))
{
if(!call_user_func(array(&$oAddonCaptcha, $called_position), &$this)) return false;
if(!call_user_func(array(&$oAddonCaptcha, $called_position), $this)) return false;
}
$addon_act = Context::get('captcha_action');
if($addon_act && method_exists(&$oAddonCaptcha, $called_position.'_'.$addon_act))
if($addon_act && method_exists($oAddonCaptcha, $called_position.'_'.$addon_act))
{
if(!call_user_func(array(&$oAddonCaptcha, $called_position.'_'.$addon_act), &$this)) return false;
if(!call_user_func(array(&$oAddonCaptcha, $called_position.'_'.$addon_act), $this)) return false;
}
?>

View file

@ -174,12 +174,12 @@
$userAgent = $_SERVER['HTTP_USER_AGENT'];
$wap_sid = $_SERVER['HTTP_X_UP_SUBNO'];
if(eregi("SKT11", $userAgent) || eregi("skt", $browserAccept)) {
if(preg_match("/SKT11/i", $userAgent) || preg_match("/skt/i", $browserAccept)) {
Context::set('mobile_skt',1);
return "wml";
}
elseif(eregi("hdml", $browserAccept)) return "hdml";
elseif(eregi("CellPhone", $userAgent)) return "mhtml";
elseif(preg_match("/hdml/i", $browserAccept)) return "hdml";
elseif(preg_match("/CellPhone/i", $userAgent)) return "mhtml";
return null;
}

View file

@ -120,7 +120,7 @@ class Context {
$this->loadLang(_XE_PATH_.'modules/module/lang');
// set session handler
if($this->db_info->use_db_session != 'N') {
if(Context::isInstalled() && $this->db_info->use_db_session != 'N') {
$oSessionModel = &getModel('session');
$oSessionController = &getController('session');
session_set_save_handler(
@ -133,6 +133,7 @@ class Context {
);
}
session_start();
if($sess=$_POST[session_name()]) session_id($sess);
// set authentication information in Context and session
if(Context::isInstalled()) {
@ -925,6 +926,8 @@ class Context {
**/
function get($key) {
is_a($this,'Context')?$self=&$this:$self=&Context::getInstance();
if(!isset($self->context->{$key})) return null;
return $self->context->{$key};
}
@ -1010,7 +1013,7 @@ class Context {
$avail_types = array('head', 'body');
if(!in_array($type, $avail_types)) $type = $avail_types[0];
$key = $self->normalizeFilePath($file)."\t".$targetie;
$key = Context::getAbsFileUrl($file)."\t".$targetie;
$map = &$self->js_files_map;
// Is this file already registered?
@ -1024,11 +1027,10 @@ class Context {
function unloadJsFile($file, $optimized = false, $targetie = '') {
is_a($this,'Context')?$self=&$this:$self=&Context::getInstance();
$realfile = $self->getAbsFileUrl($file);
$remove_key = Context::getAbsFileUrl($file)."\t$targetie";
foreach($self->js_files_map as $key=>$val) {
list($_file, $_targetie) = explode("\t", $key);
if($self->getAbsFileUrl($_file)==$realfile && $_targetie == $targetie) {
if($key === $remove_key) {
unset($self->js_files_map[$key]);
return;
}
@ -1095,7 +1097,9 @@ class Context {
function addCSSFile($file, $optimized=false, $media='all', $targetie='',$index=0) {
is_a($this,'Context')?$self=&$this:$self=&Context::getInstance();
$key = $self->normalizeFilePath($file)."\t".$targetie."\t".$media;
if(!$media) $media = 'all';
$key = Context::getAbsFileUrl($file)."\t$targetie\t$media";
$map = &$self->css_files_map;
if (!isset($map[$key]) || (int)$map[$key] > (int)$index) $map[$key] = (int)$index+count($map)/100-1;
@ -1107,11 +1111,10 @@ class Context {
function unloadCSSFile($file, $optimized = false, $media = 'all', $targetie = '') {
is_a($this,'Context')?$self=&$this:$self=&Context::getInstance();
$realfile = $self->getAbsFileUrl($file);
$remove_key = Context::getAbsFileUrl($file)."\t$targetie\t$media";
foreach($self->css_files_map as $key => $val) {
list($_file, $_targetie, $_media) = explode("\t", $key);
if($self->getAbsFileUrl($_file)==$realfile && $_media==$media && $_targetie==$targetie) {
if($key === $remove_key) {
unset($self->css_files_map[$key]);
return;
}

View file

@ -10,8 +10,21 @@ class HTMLDisplayHandler {
$oTemplate = &TemplateHandler::getInstance();
// compile module tpl
$template_path = $oModule->getTemplatePath();
if ($oModule->module_info->module == $oModule->module)
$skin = $oModule->origin_module_info->skin;
else
$skin = $oModule->module_config->skin;
if ($skin){
$theme_skin = explode('.', $skin);
if (count($theme_skin) == 2)
$template_path = sprintf('./themes/%s/modules/%s/', $theme_skin[0], $theme_skin[1]);
else
$template_path = $oModule->getTemplatePath();
}else
$template_path = $oModule->getTemplatePath();
$tpl_file = $oModule->getTemplateFile();
$output = $oTemplate->compile($template_path, $tpl_file);
// add #xeAdmin div for adminitration pages
@ -92,6 +105,15 @@ class HTMLDisplayHandler {
// prevent the 2nd request due to url(none) of the background-image
$output = preg_replace('/url\((["\']?)none(["\']?)\)/is', 'none', $output);
if(is_array(Context::get('INPUT_ERROR')))
{
$INPUT_ERROR = Context::get('INPUT_ERROR');
$keys = array_keys($INPUT_ERROR);
$keys = '('.implode('|', $keys).')';
$output = preg_replace('/(<input[^>]*?)(?:value="[^"]*"([^>]*?name="'.$keys.'"[^>])|(name="'.$keys.'"[^>]*?)(?:value="[^"]*")?)([^>]*?\/?>)/ise', '"\\1\\2\\4 value=\\"".htmlspecialchars($INPUT_ERROR["\\3\\5"])."\\" \\6"', $output);
}
if(__DEBUG__==3) $GLOBALS['__trans_content_elapsed__'] = getMicroTime()-$start;
// Remove unnecessary information
@ -151,17 +173,16 @@ class HTMLDisplayHandler {
$oContext->addJsFile('./common/js/x.min.js', false, '', -100000);
$oContext->addJsFile('./common/js/xe.min.js', false, '', -100000);
$oContext->addCSSFile('./common/css/xe.min.css', false, 'all', '', -100000);
$oContext->addJsFile('./common/js/xml_handler.js', false, '', -100000);
}
// for admin page, add admin css
if(Context::get('module')=='admin' || strpos(Context::get('act'),'Admin')>0){
if(__DEBUG__) {
$oContext->addCSSFile('./modules/admin/tpl/css/font.css', false, 'all', '',10000);
$oContext->addCSSFile('./modules/admin/tpl/css/pagination.css', false, 'all', '', 100001);
$oContext->addCSSFile('./modules/admin/tpl/css/admin.css', false, 'all', '', 100002);
$oContext->addCSSFile('./modules/admin/tpl/css/admin.css', false, 'all', '', 100000);
$oContext->addJsFile('./modules/admin/tpl/js/admin.js');
} else {
$oContext->addCSSFile('./modules/admin/tpl/css/xe_admin.min.css', false, 'all', '',10000);
$oContext->addCSSFile('./modules/admin/tpl/css/admin.min.css', false, 'all', '',10000);
$oContext->addJsFile('./modules/admin/tpl/js/admin.js');
}
}
}

View file

@ -101,12 +101,12 @@ class XEHttpRequest {
$request .= $crlf.$post_body;
fwrite($sock, $request);
list($httpver, $code, $status) = split(' +', rtrim(fgets($sock)));
list($httpver, $code, $status) = preg_split('/ +/', rtrim(fgets($sock)), 3);
// read response headers
$is_chunked = false;
while(strlen(trim($line = fgets($sock)))) {
list($equiv, $content) = split(' *: *', rtrim($line));
list($equiv, $content) = preg_split('/ *: */', rtrim($line), 1);
if(!strcasecmp($equiv, 'Transfer-Encoding') && $content == 'chunked') {
$is_chunked = true;
}

View file

@ -16,44 +16,37 @@ class Mobile {
function _isFromMobilePhone() {
if($this->ismobile !== null) return $this->ismobile;
$db_info = Context::getDBInfo();
if($db_info->use_mobile_view != "Y" || Context::get('full_browse') || $_COOKIE["FullBrowse"])
{
$this->ismobile = false;
}
else
{
$xe_web_path = Context::pathToUrl(_XE_PATH_);
$m = Context::get('m');
if(strlen($m)==1) {
if($m == "1") {
$_COOKIE["mobile"] = 'true';
setcookie("mobile", 'true', 0, $xe_web_path);
$this->ismobile = true;
}
else if($m == "0") {
$_COOKIE["mobile"] = 'false';
setcookie("mobile", 'false', 0, $xe_web_path);
$this->ismobile = false;
}
$db_info = Context::getDBInfo();
if($db_info->use_mobile_view != "Y" || Context::get('full_browse') || $_COOKIE["FullBrowse"]) {
return ($this->ismobile = false);
}
$xe_web_path = Context::pathToUrl(_XE_PATH_);
$m = Context::get('m');
if(strlen($m)==1) {
if($m == "1") {
$_COOKIE['mobile'] = 'true';
setcookie('mobile', 'true', 0, $xe_web_path);
$this->ismobile = true;
} elseif($m == "0") {
$_COOKIE['mobile'] = 'false';
setcookie('mobile', 'false', 0, $xe_web_path);
$this->ismobile = false;
}
else if(isset($_COOKIE["mobile"])) {
if($_COOKIE['mobile'] == 'true') {
$this->ismobile = true;
}
else {
$_COOKIE["mobile"] = 'false';
setcookie("mobile", 'false', 0, $xe_web_path);
$this->ismobile = false;
}
}
else {
if(preg_match('/(iPod|iPhone|Android|BlackBerry|SymbianOS|SCH\-M[0-9]+)/',$_SERVER['HTTP_USER_AGENT']))
{
setcookie("mobile", 'true', 0, $xe_web_path);
$this->ismobile = true;
}
} elseif(isset($_COOKIE['mobile'])) {
if($_COOKIE['mobile'] == 'true') {
$this->ismobile = true;
} else {
$_COOKIE['mobile'] = 'false';
setcookie('mobile', 'false', 0, $xe_web_path);
$this->ismobile = false;
}
} else {
if($this->isMobileCheckByAgent()) {
setcookie("mobile", 'true', 0, $xe_web_path);
$this->ismobile = true;
}
}
@ -62,10 +55,7 @@ class Mobile {
function isMobileCheckByAgent()
{
if(preg_match('/(iPod|iPhone|Android|BlackBerry|SymbianOS|SCH\-M[0-9]+)/',$_SERVER['HTTP_USER_AGENT']))
return true;
else
return false;
return !!preg_match('/(iPod|iPhone|Android|BlackBerry|SymbianOS|SCH-M\d+|Googlebot-Mobile)/',$_SERVER['HTTP_USER_AGENT']);
}
function setMobile($ismobile)

View file

@ -158,6 +158,8 @@
* @return executed module instance
**/
function procModule() {
$oModuleModel = &getModel('module');
// If error occurred while preparation, return a message instance
if($this->error) {
$type = Mobile::isFromMobilePhone() ? 'mobile' : 'view';
@ -168,8 +170,6 @@
return $oMessageObject;
}
$oModuleModel = &getModel('module');
// Get action information with conf/action.xml
$xml_info = $oModuleModel->getModuleActionXml($this->module);
@ -189,6 +189,7 @@
// get type, kind
$type = $xml_info->action->{$this->act}->type;
$ruleset = $xml_info->action->{$this->act}->ruleset;
$kind = strpos(strtolower($this->act),'admin')!==false?'admin':'';
if(!$kind && $this->module == 'admin') $kind = 'admin';
if($this->module_info->use_mobile != "Y") Mobile::setMobile(false);
@ -234,6 +235,7 @@
if($xml_info->action->{$this->act}) {
$forward->module = $module;
$forward->type = $xml_info->action->{$this->act}->type;
$forward->ruleset = $xml_info->action->{$this->act}->ruleset;
$forward->act = $this->act;
}
}
@ -246,6 +248,7 @@
if($forward->module && $forward->type && $forward->act && $forward->act == $this->act) {
$kind = strpos(strtolower($forward->act),'admin')!==false?'admin':'';
$type = $forward->type;
$ruleset = $forward->ruleset;
$tpl_path = $oModule->getTemplatePath();
$orig_module = $oModule;
@ -272,7 +275,7 @@
$logged_info = $oMemberModel->getLoggedInfo();
if($logged_info->is_admin=='Y') {
$orig_module->loadSideBar();
$orig_module->makeGnbUrl($forward->module);
$oModule->setLayoutPath("./modules/admin/tpl");
$oModule->setLayoutFile("layout.html");
}
@ -289,6 +292,36 @@
}
}
// ruleset check...
if(!empty($ruleset))
{
$rulesetModule = $forward->module ? $forward->module : $this->module;
$rulesetFile = $oModuleModel->getValidatorFilePath($rulesetModule, $ruleset);
if(!empty($rulesetFile))
{
$Validator = new Validator($rulesetFile);
$result = $Validator->validate();
if(!$result)
{
$lastError = $Validator->getLastError();
$returnUrl = Context::get('error_return_url');
$errorMsg = $lastError['msg'] ? $lastError['msg'] : 'validation error';
//for xml response
$oModule->setError(-1);
$oModule->setMessage($errorMsg);
//for html redirect
$this->error = $errorMsg;
$_SESSION['XE_VALIDATOR_ERROR'] = -1;
$_SESSION['XE_VALIDATOR_MESSAGE'] = $this->error;
$_SESSION['XE_VALIDATOR_MESSAGE_TYPE'] = 'error';
$_SESSION['XE_VALIDATOR_RETURN_URL'] = $returnUrl;
$this->_setInputValueToSession();
return $oModule;
}
}
}
$oModule->setAct($this->act);
$this->module_info->module_type = $type;
@ -297,16 +330,70 @@
if($type == "view" && $this->module_info->use_mobile == "Y" && Mobile::isMobileCheckByAgent())
{
global $lang;
$footer = '<div style="margin:1em 0;padding:.5em;background:#333;border:1px solid #666;border-left:0;border-right:0"><p style="color:#fff;text-align:center;margin:1em 0">'.$lang->msg_pc_to_mobile.' <a href="'.getUrl('m', '1').'" style="color:#FF0; font-weight:bold">'.$lang->cmd_move.'</a></p></div>';
$footer = '<div style="margin:1em 0;padding:.5em;background:#333;border:1px solid #666;border-left:0;border-right:0"><p style="text-align:center;margin:1em 0"><a href="'.getUrl('m', '1').'" style="color:#ff0; font-weight:bold">'.$lang->msg_pc_to_mobile.'</a></p></div>';
Context::addHtmlFooter($footer);
}
// execute the action, and if failed, set error
if(!$oModule->proc()) $this->error = $oModule->getMessage();
// if failed message exists in session, set context
$this->_setInputErrorToContext();
$procResult = $oModule->proc();
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON')))
{
$error = $oModule->getError();
$message = $oModule->getMessage();
$messageType = $oModule->getMessageType();
$redirectUrl = $oModule->getRedirectUrl();
if (!$procResult)
{
$this->error = $message;
if (!$redirectUrl && Context::get('error_return_url')) $redirectUrl = Context::get('error_return_url');
$this->_setInputValueToSession();
}
else
{
if(count($_SESSION['INPUT_ERROR']))
{
Context::set('INPUT_ERROR', $_SESSION['INPUT_ERROR']);
$_SESSION['INPUT_ERROR'] = '';
}
}
$_SESSION['XE_VALIDATOR_ERROR'] = $error;
if ($message != 'success') $_SESSION['XE_VALIDATOR_MESSAGE'] = $message;
$_SESSION['XE_VALIDATOR_MESSAGE_TYPE'] = $messageType;
$_SESSION['XE_VALIDATOR_RETURN_URL'] = $redirectUrl;
}
return $oModule;
}
function _setInputErrorToContext()
{
if($_SESSION['XE_VALIDATOR_ERROR'] && !Context::get('XE_VALIDATOR_ERROR')) Context::set('XE_VALIDATOR_ERROR', $_SESSION['XE_VALIDATOR_ERROR']);
if($_SESSION['XE_VALIDATOR_MESSAGE'] && !Context::get('XE_VALIDATOR_MESSAGE')) Context::set('XE_VALIDATOR_MESSAGE', $_SESSION['XE_VALIDATOR_MESSAGE']);
if($_SESSION['XE_VALIDATOR_MESSAGE_TYPE'] && !Context::get('XE_VALIDATOR_MESSAGE_TYPE')) Context::set('XE_VALIDATOR_MESSAGE_TYPE', $_SESSION['XE_VALIDATOR_MESSAGE_TYPE']);
if($_SESSION['XE_VALIDATOR_RETURN_URL'] && !Context::get('XE_VALIDATOR_RETURN_URL')) Context::set('XE_VALIDATOR_RETURN_URL', $_SESSION['XE_VALIDATOR_RETURN_URL']);
$this->_clearErrorSession();
}
function _clearErrorSession()
{
$_SESSION['XE_VALIDATOR_ERROR'] = '';
$_SESSION['XE_VALIDATOR_MESSAGE'] = '';
$_SESSION['XE_VALIDATOR_MESSAGE_TYPE'] = '';
$_SESSION['XE_VALIDATOR_RETURN_URL'] = '';
}
function _setInputValueToSession()
{
$requestVars = Context::getRequestVars();
foreach($requestVars AS $key=>$value) $_SESSION['INPUT_ERROR'][$key] = $value;
}
/**
* @brief display contents from executed module
* @param[in] $oModule module instance
@ -329,6 +416,13 @@
// Use message view object, if HTML call
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
if($_SESSION['XE_VALIDATOR_RETURN_URL'])
{
header('location:'.$_SESSION['XE_VALIDATOR_RETURN_URL']);
return;
}
// If error occurred, handle it
if($this->error) {
// display content with message module instance
@ -340,13 +434,14 @@
// If module was called normally, change the templates of the module into ones of the message view module
if($oModule) {
$oModule->setTemplatePath($oMessageObject->getTemplatePath());
$oModule->setTemplateFile($oMessageObject->getTemplateFile());
$oModule->setTemplatePath($oMessageObject->getTemplatePath());
$oModule->setTemplateFile($oMessageObject->getTemplateFile());
// Otherwise, set message instance as the target module
} else {
$oModule = $oMessageObject;
}
$this->_clearErrorSession();
}
// Check if layout_srl exists for the module

View file

@ -11,6 +11,7 @@
var $module = NULL; ///< Class name of Xe Module that is identified by mid
var $module_srl = NULL; ///< integer value to represent a run-time instance of Module (XE Module)
var $module_info = NULL; ///< an object containing the module information
var $origin_module_info = NULL;
var $xml_info = NULL; ///< an object containing the module description extracted from XML file
var $module_path = NULL; ///< a path to directory where module source code resides
@ -26,6 +27,8 @@
var $stop_proc = false; ///< a flag to indicating whether to stop the execution of code.
var $module_config = NULL;
/**
* @brief setter to set the name of module
* @param name of module
@ -51,6 +54,42 @@
function setRedirectUrl($url='./') {
$this->add('redirect_url', $url);
}
/**
* @brief get url for redirection
**/
function getRedirectUrl(){
return $this->get('redirect_url');
}
/**
* @brief set message
* @param $message a message string
* @param $type type of message (error, info, update)
**/
function setMessage($message, $type = null){
parent::setMessage($message);
$this->setMessageType($type);
}
/**
* @brief set type of message
* @param $type type of message (error, info, update)
**/
function setMessageType($type){
$this->add('message_type', $type);
}
/**
* @brief get type of message
**/
function getMessageType(){
$type = $this->get('message_type');
if (!in_array($type, array('error', 'info', 'update'))){
$type = $this->getError()?'error':'info';
}
return $type;
}
/**
* @brief sett to set the template path for refresh.html
@ -80,6 +119,7 @@
$this->mid = $module_info->mid;
$this->module_srl = $module_info->module_srl;
$this->module_info = $module_info;
$this->origin_module_info = $module_info;
$this->xml_info = $xml_info;
$this->skin_vars = $module_info->skin_vars;
// validate certificate info and permission settings necessary in Web-services
@ -120,8 +160,11 @@
}
// permission variable settings
$this->grant = $grant;
Context::set('grant', $grant);
$this->module_config = $oModuleModel->getModuleConfig($this->module, $module_info->site_srl);
if(method_exists($this, 'init')) $this->init();
}

View file

@ -187,6 +187,9 @@
// javascript plugin import
$buff = preg_replace_callback('!<\!--%load_js_plugin\(\"([^\"]*?)\"\)-->!is', array($this, '_compileLoadJavascriptPlugin'), $buff);
// form auto generation
$buff = preg_replace_callback('/(<form(?:<\?php.+?\?>|[^<>]+)*?>)(.*?)(<\/form>)/is', array($this, '_compileFormAuthGeneration'), $buff);
// replace variables
$buff = preg_replace_callback('/\{[^@^ ]([^\{\}\n]+)\}/i', array($this, '_compileVarToContext'), $buff);
@ -200,6 +203,47 @@
$this->buff = '<?php if(!defined("__ZBXE__")) exit();?>'.$buff;
}
/**
* @brief 1. remove ruleset from form tag
* 2. add hidden tag with ruleset value
* 3. if empty default hidden tag, generate hidden tag (ex:mid, vid, act...)
* 4. generate return url, return url use in server side validator
**/
function _compileFormAuthGeneration($matches)
{
// form ruleset attribute move to hidden tag
if($matches[1])
{
preg_match('/ruleset="([^"]*?)"/is', $matches[1], $m);
if($m[0])
{
$matches[1] = preg_replace('/'.$m[0].'/i', '', $matches[1]);
$matches[2] = '<input type="hidden" name="ruleset" value="'.$m[1].'" />'.$matches[2];
}
}
// if not exists default hidden tag, generate hidden tag
preg_match_all('/<input[^>]* name="(act|mid|vid)"/is', $matches[2], $m2);
$checkVar = array('act', 'mid', 'vid');
$resultArray = array_diff($checkVar, $m2[1]);
if(is_array($resultArray))
{
$generatedHidden = '';
foreach($resultArray AS $key=>$value)
{
$generatedHidden .= '<input type="hidden" name="'.$value.'" value="{$'.$value.'}">';
}
$matches[2] = $generatedHidden.$matches[2];
}
// return url generate
preg_match('/<input[^>]*name="error_return_url"[^>]*>/is', $matches[2], $m3);
if(!$m3[0]) $matches[2] = '<input type="hidden" name="error_return_url" value="{getRequestUriByServerEnviroment()}" />'.$matches[2];
$matches[0] = '';
return implode($matches);
}
/**
* @brief fetch using ob_* function
* @param[in] $compiled_tpl_file path of compiled template file
@ -213,7 +257,7 @@
$__Context = &$GLOBALS['__Context__'];
$__Context->tpl_path = $this->path;
if($_SESSION['is_logged']) $__Context->logged_info = $_SESSION['logged_info'];
if($_SESSION['is_logged']) $__Context->logged_info = Context::get('logged_info');
ob_start();
$eval_str = "?>".$this->buff;
@ -357,9 +401,16 @@
$pre_pos = strrpos($pre, '<');
preg_match('/<(\/|[a-z])/i',$next,$m);
$isClosedTagUse = true;
preg_match('/<(\/|[!DOCTYPE]|[a-z])/i',$next,$m);
// if not use closed tag, find simple closed tag
if(!$m[0]) {
$isClosedTagUse = false;
preg_match('/[^->]\/?>/',$next,$m);
}
if(!$m[0]) return $buff;
$next_pos = strpos($next, $m[0]);
if($isClosedTagUse) $next_pos = strpos($next, $m[0]);
else $next_pos = strpos($next, $m[0])+2;
$tag = substr($pre, $pre_pos). substr($next, 0, $next_pos);
$pre = substr($pre, 0, $pre_pos);

View file

@ -4,33 +4,220 @@
*/
class Validator
{
var $_cache_dir = '';
var $_last_error;
var $_xml_ruleset = null;
var $_rules;
var $_filters;
var $_has_mb_func;
var $_version = '1.0';
var $_xml_path = '';
/**
* @constructor
*/
function Validator($xml_path){
function Validator($xml_path=''){
$this->_rules = array();
$this->_filters = array();
$this->_xml_ruleset = null;
if($xml_path) $this->load($xml_path);
// predefined rules
$this->addRule(array(
'email' => '/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/',
'userid' => '/^[a-z]+[\w-]*[a-z0-9_]+$/i',
'url' => '/^(https?|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-]+)+(:\d+)?/',
'alpha' => '/^[a-z]*$/i',
'alpha_number' => '/^[a-z][a-z0-9_]*$/i',
'number' => '/^(?:[1-9]\\d*|0)$/'
));
$this->_has_mb_func = is_callable('mb_strlen');
}
/**
* Load a xml file
* @param[in] string $xml_path A file name to be loaded
*/
function load($xml_path) {
$this->_xml_ruleset = null;
$xml_path = realpath($xml_path);
if(!is_readable($xml_path)) return false;
$parser = new XmlParser();
$xml = $parser->loadXmlFile($xml_path);
if(!isset($xml->ruleset) || !isset($xml->ruleset->fields) || !isset($xml->ruleset->fields->field)) return false;
// custom rules
if(isset($xml->ruleset->customrules) && isset($xml->ruleset->customrules->rule)) {
$customrules = $xml->ruleset->customrules->rule;
if(!is_array($customrules)) $customrules = array($customrules);
$rules = array();
foreach($customrules as $rule) {
if(!isset($rule->attrs) || !isset($rule->attrs->name)) continue;
$rule = (array)$rule->attrs;
$name = $rule['name'];
unset($rule['name']);
$rules[$name] = $rule;
}
if(count($rules)) $this->addRule($rules);
}
// filters
$fields = $xml->ruleset->fields->field;
if(!is_array($fields)) $fields = array($fields);
$filters = array();
foreach($fields as $field) {
$name = '';
$filter = array();
if(!isset($field->attrs) || !isset($field->attrs->name)) continue;
$filter = (array)$field->attrs;
$name = $filter['name'];
unset($filter['name']);
// conditional statement
if(isset($field->if)) {
$if = $field->if;
if(!is_array($if)) $if = array($if);
foreach($if as $idx=>$cond) {
$if[$idx] = (array)$cond->attrs;
}
$filter['if'] = $if;
}
$filters[$name] = $filter;
}
$this->_xml_ruleset = $xml->ruleset;
$this->_filters = $filters;
$this->_xml_path = $xml_path;
}
/**
* Set root cache directory
* @param[in] string $cache_dir Root cache directory
*/
function setCacheDir($cache_dir){
}
/**
* Set target fields to be checked.
* The keys of array represents filed's name, its values represents field's vale.
* @param[in] array $fields Target fields
*/
function setFields($fields){
function setCacheDir($_cache_dir){
if(is_dir($cache_dir)) {
$this->$_cache_dir = preg_replace('@/$@', '', $cache_dir);
}
}
/**
* Validate the fields. If the fields aren't passed, validation will be execute on the Context variables.
* @param[in] (optional) array $fields
* @param[in] (optional) array $fields Target fields. The keys of the array represents field's name, its values represents field's value.
* @return bool True if it is valid, FALSE otherwise.
*/
function validate($fields){
function validate($fields_=null){
if(is_array($fields_)) {
$fields = $fields_;
} else {
$args = array_keys($this->_filters);
$fields = (array)Context::getRequestVars();
}
if(!is_array($fields)) return true;
$filter_default = array(
'required' => 'false',
'default' => '',
'modifiers' => array(),
'length' => 0,
'equalto' => 0,
'rule' => 0,
'if' => array()
);
$fields = array_map('trim', $fields);
foreach($this->_filters as $key=>$filter) {
$exists = array_key_exists($key, $fields);
$filter = array_merge($filter_default, $filter);
$value = $exists ? $fields[$key] : null;
// conditional statement
foreach($filter['if'] as $cond) {
if(!isset($cond['test']) || !isset($cond['attr'])) continue;
$func_body = preg_replace('/\\$(\w+)/', '$c[\'$1\']', $cond['test']);
$func = create_function('$c', "return !!({$func_body});");
if($func($fields)) $filter[$cond['attr']] = $cond['value'];
}
// attr : default
if(!$value && strlen($default=trim($filter['default']))) {
$value = $default;
if(is_null($fields_)) Context::set($key, $value);
else $fields_[$key] = $value;
}
$value_len = strlen($value);
// attr : modifier
if(is_string($modifiers=$filter['modifiers'])) $modifiers = explode(',', trim($modifiers));
// attr : required
if($filter['required'] === 'true' && !$value_len) return $this->error($key, 'isnull');
// if the field wasn't passed, ignore this value
if(!$exists && !$value_len) continue;
// attr : length
if($length=$filter['length']){
list($min, $max) = explode(':', trim($length));
$is_min_b = (substr($min, -1) === 'b');
$is_max_b = (substr($max, -1) === 'b');
list($min, $max) = array((int)$min, (int)$max);
$strbytes = strlen($value);
if(!$is_min_b || !$is_max_b){
$strlength = $this->_has_mb_func?mb_strlen($value,'utf-8'):$this->mbStrLen($value);
}
if(($min && $min > ($is_min_b?$strbytes:$strlength)) || ($max && $max < ($is_max_b?$strbytes:$strlength))) return $this->error($key, 'outofrange');
}
// equalto
if($equalto=$filter['equalto']){
if(!array_key_exists($equalto, $fields) || trim($fields[$equalto]) !== $value) return $this->error($key, 'equalto');
}
// rules
if($rules=$filter['rule']){
$rules = explode(',', $rules);
foreach($rules as $rule) {
$result = $this->applyRule($rule, $value);
// apply the 'not' modifier
if(in_array('not', $modifiers)) $result = !$result;
if(!$result) return $this->error($key, 'invalid_'.$rule);
}
}
}
return true;
}
/**
* Log an error
* @param[in] $msg error message
* @return always false
*/
function error($field, $msg){
$lang_filter = Context::getLang('filter');
$msg = isset($lang_filter->{$msg})?$lang_filter->{$msg}:$lang_filter->invalid;
$msg = sprintf($msg, Context::getLang($field));
$this->_last_error = array('field'=>$field, 'msg'=>$msg);
return false;
}
/**
@ -38,14 +225,29 @@ class Validator
* @return array The last error infomation
*/
function getLastError(){
return $this->_last_error;
}
/**
* Add a new rule
* @param[in] string $name rule name
* @param[in] string $rule
* @param[in] mixed $rule
*/
function addRule($name, $rule){
function addRule($name, $rule=''){
if(is_array($name)) $args = $name;
else $args = array($name=>$rule);
foreach($args as $name=>$rule){
if(!$rule) continue;
if(is_string($rule)) $rule = array('type'=>'regex', 'test'=>$rule);
if($rule['type'] == 'enum') {
$delim = isset($rule['delim'])?$rule['delim']:',';
$rule['test'] = explode($delim, $rule['test']);
}
$this->_rules[$name] = $rule;
}
}
/**
@ -53,15 +255,66 @@ class Validator
* @param[in] string $name rule name
*/
function removeRule($name){
unset($this->_rules[$name]);
}
function addFilter($name, $filter='') {
if(is_array($name)) $args = $name;
else $args = array($name=>$filter);
foreach($args as $name=>$filter) {
if(!$filter) continue;
if(isset($filter['if'])) {
if(is_array($filter['if']) && count($filter['if'])) {
$key = key($filter['if']);
if(!is_int($key)) $filter['if'] = array($filter['if']);
} else {
unset($filter['if']);
}
}
$this->_filters[$name] = $filter;
}
}
function removeFilter($name) {
unset($this->_filters[$name]);
}
/**
* Find whether the field is valid with the rule
* @param[in] string $name rule name
* @param[in] string $field field name
* @param[in] string $value a value to be validated
* @return bool TRUE if the field is valid, FALSE otherwise.
*/
function applyRule($name, $field){
function applyRule($name, $value){
$rule = $this->_rules[$name];
switch($rule['type']) {
case 'regex':
return (preg_match($rule['test'], $value) > 0);
case 'enum':
return in_array($value, $rule['test']);
case 'expr':
if(!$rule['func_test']) {
$rule['func_test'] = create_function('$a', 'return ('.preg_replace('/\$\$/', '$a', $rule['test']).');');
}
return $rule['func_test']($value);
}
return true;
}
/**
* Return
*/
function mbStrLen($str){
$arr = count_chars($str);
for($i=0x80; $i < 0xc0; $i++) {
unset($arr[$i]);
}
return array_sum($arr);
}
/**
@ -69,6 +322,91 @@ class Validator
* @return string Compiled JavaScript file path
*/
function getJsPath(){
if(!$this->_cache_dir) return false;
$dir = $this->_cache_dir.'/rulesets';
if(!is_dir($dir) && !mkdir($dir)) return false;
if(!$this->_xml_path) return false;
$filepath = $dir.'/'.md5($this->_version.' '.$this->_xml_path).'.js';
if(is_readable($filepath) && filemtime($filepath) > filemtime($this->_xml_path)) return $filepath;
$content = $this->_compile2js();
if($content === false) return false;
if(is_callable('file_put_contents')) {
@file_put_contents($filepath, $content);
} else {
$fp = @fopen($filepath, 'w');
if(is_resource($fp)) {
fwrite($fp, $content);
fclose($fp);
}
}
}
/**
* Compile a ruleset to a javascript file
* @private
*/
function _compile2js() {
$content = array();
// custom rulesets
foreach($this->_rules as $name=>$rule) {
if(strpos('email,userid,url,alpha,alpha_number,number,', $name.',') !== false) continue;
switch($rule['type']) {
case 'regex':
$content[] = "v.addRule('{$name}', {$rule['test']});";
break;
case 'enum':
$enums = '"'.implode('","', $rule['test']).'"';
$content[] = "v.addRule('{$name}', function($$){ return ($.inArray($$,[{$enums}]) > -1); });";
break;
case 'expr':
$content[] = "v.addRule('{$name}', function($$){ return ({$rule['test']}); });";
break;
}
}
// filters
foreach($this->_filters as $name=>$filter) {
$field = array();
if($filter['required'] == 'true') $field[] = 'required:true';
if($filter['rule']) $field[] = "rule:'{$filter['rule']}'";
if($filter['default']) $field[] = "default:'{$filter['default']}'";
if($filter['modifier']) $field[] = "modifier:'{$filter['modifier']}'";
if($filter['length']) {
list($min, $max) = explode(':', $filter['length']);
if($min) $field[] = "minlength:'{$min}'";
if($max) $field[] = "maxlength:'{$max}'";
}
if($filter['if']) {
$ifs = array();
foreach($ifs as $if) {
$ifs[] = "{test:'{$if['test']}', attr:'{$if['attr']}', value:'{$if['value']}'}";
}
$field[] = "'if':[".implode(',', $ifs)."]";
}
if(count($field)) {
$field = '{'.implode(',', $field).'}';
$content[] = "v.addFilter('{$name}', {$field});";
}
}
if(count($content)) {
array_unshift($content,
'(function($){',
'var v = xe.getApp("validator")[0];',
'if(!v) return false;'
);
$content[] = '})(jQuery);'; // array_push
return implode("\n", $content);
} else {
return '';
}
}
}

View file

@ -44,6 +44,7 @@
if(__DEBUG__==3) $start = getMicroTime();
$this->lang = Context::getLangType();
$this->input = $input?$input:$GLOBALS['HTTP_RAW_POST_DATA'];
$this->input = str_replace(array('',''),array('',''),$this->input);
@ -62,7 +63,7 @@
}
// uncheck the language if no specific language is set.
} else {
unset($this->lang);
$this->lang = '';
}
$this->oParser = xml_parser_create('UTF-8');
@ -119,8 +120,8 @@
$node_name = strtolower($node_name);
$cur_obj = array_pop($this->output);
$parent_obj = &$this->output[count($this->output)-1];
if(isset($this->lang)&&$cur_obj->attrs->{'xml:lang'}&&$cur_obj->attrs->{'xml:lang'}!=$this->lang) return;
if(isset($this->lang)&&$parent_obj->{$node_name}->attrs->{'xml:lang'}&&$parent_obj->{$node_name}->attrs->{'xml:lang'}!=$this->lang) return;
if($this->lang&&$cur_obj->attrs->{'xml:lang'}&&$cur_obj->attrs->{'xml:lang'}!=$this->lang) return;
if($this->lang&&$parent_obj->{$node_name}->attrs->{'xml:lang'}&&$parent_obj->{$node_name}->attrs->{'xml:lang'}!=$this->lang) return;
if(isset($parent_obj->{$node_name})) {
$tmp_obj = $parent_obj->{$node_name};

View file

@ -32,8 +32,8 @@ if(jQuery) jQuery.noConflict();
* @brief 특정 name을 가진 체크박스들의 checked 속성 변경
* @param [itemName='cart',][options={}]
*/
checkboxToggleAll : function() {
var itemName='cart';
checkboxToggleAll : function(itemName) {
if(!is_def(itemName)) itemName='cart';
var options = {
wrap : null,
checked : 'toggle',
@ -571,7 +571,7 @@ function doDocumentSave(obj) {
else params[field.name] = field.value;
});
exec_xml('member','procMemberSaveDocument', params, completeDocumentSave, responses, params, obj.form);
exec_xml('document','procDocumentTempSave', params, completeDocumentSave, responses, params, obj.form);
editorRelKeys[editor_sequence]['content'].value = prev_content;
return false;
@ -587,7 +587,7 @@ var objForSavedDoc = null;
function doDocumentLoad(obj) {
// 저장된 게시글 목록 불러오기
objForSavedDoc = obj.form;
popopen(request_uri.setQuery('module','member').setQuery('act','dispSavedDocumentList'));
popopen(request_uri.setQuery('module','document').setQuery('act','dispTempSavedList'));
}
/* 저장된 게시글의 선택 */
@ -902,6 +902,11 @@ function setCookie(name, value, expire, path) {
document.cookie = s_cookie;
}
function getCookie(name) {
var match = document.cookie.match(new RegExp(name+'=(.*?)(?:;|$)'));
if(match) return unescape(match[1]);
}
function is_def(v) {
return (typeof(v)!='undefined');
}
@ -910,6 +915,10 @@ function ucfirst(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
function get_by_id(id) {
return document.getElementById(id);
}
jQuery(function($){
$('.lang_code').each(
function()
@ -935,7 +944,8 @@ jQuery(function($){
if(!$target.length) return;
// 객체의 className값을 구함
var match = $target.attr('class').match(new RegExp('(?:^| )((document|comment|member)_([1-9]\\d*))(?: |$)',''));
var cls = $target.attr('class'), match;
if(cls) match = cls.match(new RegExp('(?:^| )((document|comment|member)_([1-9]\\d*))(?: |$)',''));
if(!match) return;
var action = 'get'+ucfirst(match[2])+'Menu';
@ -959,4 +969,20 @@ jQuery(function($){
return false;
});
/**
* Create popup windows automatically.
* Find anchors that have the '_xe_popup' class, then add popup script to them.
*/
$('a._xe_popup').click(function(){
var $this = $(this), name = $this.attr('name'), href = $this.attr('href'), win;
if(!name) name = '_xe_popup_'+Math.floor(Math.random()*1000);
win = window.open(href, name, 'left=10,top=10,width=10,height=10,resizable=no,scrollbars=no,toolbars=no');
if(win) win.focus();
// cancel default action
return false;
});
});

View file

@ -1,4 +1,5 @@
[option]
use_closure_compiler=true
[skip]
jquery.js
@ -8,6 +9,7 @@ xml_handler.js
xml_js_filter.js
iepngfix_tilebg.js
xe.header.js
html5.js
[merge >> xe.js]
xe.header.js

84
common/js/x.min.js vendored
View file

@ -3,54 +3,36 @@
* Distributed by GNU LGPL. For copyrights, license, documentation and more visit Cross-Browser.com
* Copyright 2001-2005 Michael Foster (Cross-Browser.com)
**/
function xDeprecate(funcName){var msg='DEPRECATED : '+funcName+'() is deprecated function.';if(typeof console=='object'&&typeof console.log=='function')console.log(msg)};var xOp7Up,xOp6Dn,xIE4Up,xIE4,xIE5,xIE6,xNN4,xUA=navigator.userAgent.toLowerCase();if(window.opera){var i=xUA.indexOf('opera');if(i!=-1){var v=parseInt(xUA.charAt(i+6));xOp7Up=v>=7;xOp6Dn=v<7}}else if(navigator.vendor!='KDE'&&document.all&&xUA.indexOf('msie')!=-1){xIE4Up=parseFloat(navigator.appVersion)>=4;xIE4=xUA.indexOf('msie 4')!=-1;xIE5=xUA.indexOf('msie 5')!=-1;xIE6=xUA.indexOf('msie 6')!=-1}else if(document.layers)xNN4=true;var xMac=xUA.indexOf('mac')!=-1,xFF=xUA.indexOf('firefox')!=-1
function xAddEventListener(e,eT,eL,cap){xDeprecate('xAddEventListener');if(!(e=xGetElementById(e)))return;eT=eT.toLowerCase();if((!xIE4Up&&!xOp7Up)&&e==window){if(eT=='resize'){window.xPCW=xClientWidth();window.xPCH=xClientHeight();window.xREL=eL;xResizeEvent();return};if(eT=='scroll'){window.xPSL=xScrollLeft();window.xPST=xScrollTop();window.xSEL=eL;xScrollEvent();return}};var eh='e.on'+eT+'=eL';if(e.addEventListener){e.addEventListener(eT,eL,cap)}else if(e.attachEvent){e.attachEvent('on'+eT,eL)}else eval(eh)}
function xResizeEvent(){xDeprecate('xResizeEvent');if(window.xREL)setTimeout('xResizeEvent()',250);var cw=xClientWidth(),ch=xClientHeight();if(window.xPCW!=cw||window.xPCH!=ch){window.xPCW=cw;window.xPCH=ch;if(window.xREL)window.xREL()}}
function xScrollEvent(){xDeprecate('xScrollEvent');if(window.xSEL)setTimeout('xScrollEvent()',250);var sl=xScrollLeft(),st=xScrollTop();if(window.xPSL!=sl||window.xPST!=st){window.xPSL=sl;window.xPST=st;if(window.xSEL)window.xSEL()}}
function xAppendChild(oParent,oChild){xDeprecate('xAppendChild');if(oParent.appendChild){return oParent.appendChild(oChild)}else return null}
function xClientHeight(){xDeprecate('xClientHeight');var h=0;if(xOp6Dn){h=window.innerHeight}else if(document.compatMode=='CSS1Compat'&&!window.opera&&document.documentElement&&document.documentElement.clientHeight){h=document.documentElement.clientHeight}else if(document.body&&document.body.clientHeight){h=document.body.clientHeight}else if(xDef(window.innerWidth,window.innerHeight,document.width)){h=window.innerHeight;if(document.width>window.innerWidth)h-=16};return h}
function xClientWidth(){xDeprecate('xClientWidth');var w=0;if(xOp6Dn){w=window.innerWidth}else if(document.compatMode=='CSS1Compat'&&!window.opera&&document.documentElement&&document.documentElement.clientWidth){w=document.documentElement.clientWidth}else if(document.body&&document.body.clientWidth){w=document.body.clientWidth}else if(xDef(window.innerWidth,window.innerHeight,document.height)){w=window.innerWidth;if(document.height>window.innerHeight)w-=16};return w}
function xCreateElement(sTag){xDeprecate('xCreateElement');if(document.createElement){return document.createElement(sTag)}else return null}
function xDef(){xDeprecate('xDef');for(var i=0;i<arguments.length;++i)if(typeof (arguments[i])=='undefined')return false;return true}
function xDeleteCookie(name,path){xDeprecate('xDeleteCookie');if(xGetCookie(name))document.cookie=name+"=; path="+((!path)?"/":path)+"; expires="+new Date(0).toGMTString()}
function xDisplay(e,s){xDeprecate('xDisplay');if(!(e=xGetElementById(e)))return null;if(e.style&&xDef(e.style.display)){if(xStr(s))e.style.display=s;return e.style.display};return null}
function xEvent(evt){xDeprecate('xEvent');var e=evt||window.event;if(!e)return;if(e.type)this.type=e.type;if(e.target){this.target=e.target}else if(e.srcElement)this.target=e.srcElement;if(e.relatedTarget){this.relatedTarget=e.relatedTarget}else if(e.type=='mouseover'&&e.fromElement){this.relatedTarget=e.fromElement}else if(e.type=='mouseout')this.relatedTarget=e.toElement;if(xOp6Dn){this.pageX=e.clientX;this.pageY=e.clientY}else if(xDef(e.pageX,e.pageY)){this.pageX=e.pageX;this.pageY=e.pageY}else if(xDef(e.clientX,e.clientY)){this.pageX=e.clientX+xScrollLeft();this.pageY=e.clientY+xScrollTop()};if(xDef(e.offsetX,e.offsetY)){this.offsetX=e.offsetX;this.offsetY=e.offsetY}else if(xDef(e.layerX,e.layerY)){this.offsetX=e.layerX;this.offsetY=e.layerY}else{this.offsetX=this.pageX-xPageX(this.target);this.offsetY=this.pageY-xPageY(this.target)};if(e.keyCode){this.keyCode=e.keyCode}else if(xDef(e.which)&&e.type.indexOf('key')!=-1)this.keyCode=e.which;this.shiftKey=e.shiftKey;this.ctrlKey=e.ctrlKey;this.altKey=e.altKey}
function xFirstChild(e,t){xDeprecate('xFirstChild');var c=e?e.firstChild:null;if(t){while(c&&c.nodeName!=t)c=c.nextSibling}else while(c&&c.nodeType!=1)c=c.nextSibling;return c}
function xGetBodyWidth(){xDeprecate('xGetBodyWidth');var cw=xClientWidth(),sw=window.document.body.scrollWidth;return cw>sw?cw:sw}
function xGetBodyHeight(){xDeprecate('xGetBodyHeight');var cw=xClientHeight(),sw=window.document.body.scrollHeight;return cw>sw?cw:sw}
function xGetComputedStyle(oEle,sProp,bInt){xDeprecate('xGetComputedStyle');var s,p='undefined',dv=document.defaultView;if(dv&&dv.getComputedStyle){s=dv.getComputedStyle(oEle,'');if(s)p=s.getPropertyValue(sProp)}else if(oEle.currentStyle){var a=sProp.split('-');sProp=a[0];for(var i=1;i<a.length;++i){c=a[i].charAt(0);sProp+=a[i].replace(c,c.toUpperCase())};p=oEle.currentStyle[sProp]}else return null;return bInt?(parseInt(p)||0):p}
function xGetCookie(name){xDeprecate('xGetCookie');var value=null,search=name+"=";if(document.cookie.length>0){var offset=document.cookie.indexOf(search);if(offset!=-1){offset+=search.length;var end=document.cookie.indexOf(";",offset);if(end==-1)end=document.cookie.length;value=unescape(document.cookie.substring(offset,end))}};return value}
function xGetElementById(e){xDeprecate('xGetElementById');if(typeof (e)!='string')return e;if(document.getElementById){e=document.getElementById(e)}else if(document.all){e=document.all[e]}else e=null;return e}
function xGetElementsByAttribute(sTag,sAtt,sRE,fn){xDeprecate('xGetElementsByAttribute');var a,list,found=new Array(),re=new RegExp(sRE,'i');list=xGetElementsByTagName(sTag);for(var i=0;i<list.length;++i){a=list[i].getAttribute(sAtt);if(!a)a=list[i][sAtt];if(typeof (a)=='string'&&a.search(re)!=-1){found[found.length]=list[i];if(fn)fn(list[i])}};return found}
function xGetElementsByClassName(c,p,t,f){xDeprecate('xGetElementsByClassName');var found=new Array(),re=new RegExp('\\b'+c+'\\b','i'),list=xGetElementsByTagName(t,p);for(var i=0;i<list.length;++i)if(list[i].className&&list[i].className.search(re)!=-1){found[found.length]=list[i];if(f)f(list[i])};return found}
function xGetElementsByTagName(t,p){xDeprecate('xGetElementsByTagName');var list=null;t=t||'*';p=p||document;if(xIE4||xIE5){if(t=='*'){list=p.all}else list=p.all.tags(t)}else if(p.getElementsByTagName)list=p.getElementsByTagName(t);return list||new Array()}
function xGetURLArguments(){xDeprecate('xGetURLArguments');var idx=location.href.indexOf('?'),params=new Array();if(idx!=-1){var pairs=location.href.substring(idx+1,location.href.length).split('&');for(var i=0;i<pairs.length;i++){nameVal=pairs[i].split('=');params[i]=nameVal[1];params[nameVal[0]]=nameVal[1]}};return params}
function xHeight(e,h){xDeprecate('xHeight');if(!(e=xGetElementById(e)))return 0;if(xNum(h)){if(h<0){h=0}else h=Math.round(h)}else h=-1;var css=xDef(e.style);if(e==document||e.tagName.toLowerCase()=='html'||e.tagName.toLowerCase()=='body'){h=xClientHeight()}else if(css&&xDef(e.offsetHeight)&&xStr(e.style.height)){if(h>=0){var pt=0,pb=0,bt=0,bb=0;if(document.compatMode=='CSS1Compat'){var gcs=xGetComputedStyle;pt=gcs(e,'padding-top',1);if(pt!==null){pb=gcs(e,'padding-bottom',1);bt=gcs(e,'border-top-width',1);bb=gcs(e,'border-bottom-width',1)}else if(xDef(e.offsetHeight,e.style.height)){e.style.height=h+'px';pt=e.offsetHeight-h}};h-=(pt+pb+bt+bb);if(isNaN(h)||h<0){return null}else e.style.height=h+'px'};h=e.offsetHeight}else if(css&&xDef(e.style.pixelHeight)){if(h>=0)e.style.pixelHeight=h;h=e.style.pixelHeight};return h}
function xHex(sn,digits,prefix){xDeprecate('xHex');var p='',n=Math.ceil(sn);if(prefix)p=prefix;n=n.toString(16);for(var i=0;i<digits-n.length;++i)p+='0';return p+n}
function xHide(e){xDeprecate('xHide');return xVisibility(e,0)}
function xInnerHtml(e,h){xDeprecate('xInnerHtml');if(!(e=xGetElementById(e))||!xStr(e.innerHTML))return null;var s=e.innerHTML;if(xStr(h))e.innerHTML=h;return s}
function xLeft(e,iX){xDeprecate('xLeft');if(!(e=xGetElementById(e)))return 0;var css=xDef(e.style);if(css&&xStr(e.style.left)){if(xNum(iX)){e.style.left=iX+'px'}else{iX=parseInt(e.style.left);if(isNaN(iX))iX=0}}else if(css&&xDef(e.style.pixelLeft))if(xNum(iX)){e.style.pixelLeft=iX}else iX=e.style.pixelLeft;return iX}
function xMoveTo(e,x,y){xDeprecate('xMoveTo');xLeft(e,x);xTop(e,y)}
function xName(e){xDeprecate('xName');if(!e){return e}else if(e.id&&e.id!=""){return e.id}else if(e.name&&e.name!=""){return e.name}else if(e.nodeName&&e.nodeName!=""){return e.nodeName}else if(e.tagName&&e.tagName!=""){return e.tagName}else return e}
function xNextSib(e,t){xDeprecate('xNextSib');var s=e?e.nextSibling:null;if(t){while(s&&s.nodeName!=t)s=s.nextSibling}else while(s&&s.nodeType!=1)s=s.nextSibling;return s}
function xNum(){xDeprecate('xNum');for(var i=0;i<arguments.length;++i)if(isNaN(arguments[i])||typeof (arguments[i])!='number')return false;return true}
function xOffsetLeft(e){xDeprecate('xOffsetLeft');if(!(e=xGetElementById(e)))return 0;if(xDef(e.offsetLeft)){return e.offsetLeft}else return 0}
function xOffsetTop(e){xDeprecate('xOffsetTop');if(!(e=xGetElementById(e)))return 0;if(xDef(e.offsetTop)){return e.offsetTop}else return 0}
function xPad(s,len,c,left){xDeprecate('xPad');if(typeof s!='string')s=s+'';if(left){for(var i=s.length;i<len;++i)s=c+s}else for(i=s.length;i<len;++i)s+=c;return s}
function xPageX(e){xDeprecate('xPageX');if(!(e=xGetElementById(e)))return 0;var x=0;while(e){if(xDef(e.offsetLeft))x+=e.offsetLeft;e=xDef(e.offsetParent)?e.offsetParent:null};return x}
function xPageY(e){xDeprecate('xPageY');if(!(e=xGetElementById(e)))return 0;var y=0;while(e){if(xDef(e.offsetTop))y+=e.offsetTop;e=xDef(e.offsetParent)?e.offsetParent:null};return y}
function xParent(e,bNode){xDeprecate('xParent');if(!(e=xGetElementById(e)))return null;var p=null;if(!bNode&&xDef(e.offsetParent)){p=e.offsetParent}else if(xDef(e.parentNode)){p=e.parentNode}else if(xDef(e.parentElement))p=e.parentElement;return p}
function xPreventDefault(e){xDeprecate('xPreventDefault');if(e&&e.preventDefault){e.preventDefault()}else if(window.event)window.event.returnValue=false}
function xPrevSib(e,t){xDeprecate('xPrevSib');var s=e?e.previousSibling:null;if(t){while(s&&s.nodeName!=t)s=s.previousSibling}else while(s&&s.nodeType!=1)s=s.previousSibling;return s}
function xRemoveEventListener(e,eT,eL,cap){xDeprecate('xRemoveEventListener');if(!(e=xGetElementById(e)))return;eT=eT.toLowerCase();if((!xIE4Up&&!xOp7Up)&&e==window){if(eT=='resize'){window.xREL=null;return};if(eT=='scroll'){window.xSEL=null;return}};var eh='e.on'+eT+'=null';if(e.removeEventListener){e.removeEventListener(eT,eL,cap)}else if(e.detachEvent){e.detachEvent('on'+eT,eL)}else eval(eh)}
function xResizeTo(e,w,h){xDeprecate('xResizeTo');xWidth(e,w);xHeight(e,h)}
function xScrollLeft(e,bWin){xDeprecate('xScrollLeft');var offset=0;if(!xDef(e)||bWin||e==document||e.tagName.toLowerCase()=='html'||e.tagName.toLowerCase()=='body'){var w=window;if(bWin&&e)w=e;if(w.document.documentElement&&w.document.documentElement.scrollLeft){offset=w.document.documentElement.scrollLeft}else if(w.document.body&&xDef(w.document.body.scrollLeft))offset=w.document.body.scrollLeft}else{e=xGetElementById(e);if(e&&xNum(e.scrollLeft))offset=e.scrollLeft};return offset}
function xScrollTop(e,bWin){xDeprecate('xScrollTop');var offset=0;if(!xDef(e)||bWin||e==document||e.tagName.toLowerCase()=='html'||e.tagName.toLowerCase()=='body'){var w=window;if(bWin&&e)w=e;if(w.document.documentElement&&w.document.documentElement.scrollTop){offset=w.document.documentElement.scrollTop}else if(w.document.body&&xDef(w.document.body.scrollTop))offset=w.document.body.scrollTop}else{e=xGetElementById(e);if(e&&xNum(e.scrollTop))offset=e.scrollTop};return offset}
function xSetCookie(name,value,expire,path){xDeprecate('xSetCookie');document.cookie=name+"="+escape(value)+((!expire)?"":("; expires="+expire.toGMTString()))+"; path="+((!path)?"/":path)}
function xShow(e){xDeprecate('xShow');return xVisibility(e,1)}
function xStr(s){xDeprecate('xStr');for(var i=0;i<arguments.length;++i)if(typeof (arguments[i])!='string')return false;return true}
function xTop(e,iY){xDeprecate('xTop');if(!(e=xGetElementById(e)))return 0;var css=xDef(e.style);if(css&&xStr(e.style.top)){if(xNum(iY)){e.style.top=iY+'px'}else{iY=parseInt(e.style.top);if(isNaN(iY))iY=0}}else if(css&&xDef(e.style.pixelTop))if(xNum(iY)){e.style.pixelTop=iY}else iY=e.style.pixelTop;return iY}
function xVisibility(e,bShow){xDeprecate('xVisibility');if(!(e=xGetElementById(e)))return null;if(e.style&&xDef(e.style.visibility)){if(xDef(bShow))e.style.visibility=bShow?'visible':'hidden';return e.style.visibility};return null}
function xWidth(e,w){xDeprecate('xWidth');if(!(e=xGetElementById(e)))return 0;if(xNum(w)){if(w<0){w=0}else w=Math.round(w)}else w=-1;var css=xDef(e.style);if(e==document||e.tagName.toLowerCase()=='html'||e.tagName.toLowerCase()=='body'){w=xClientWidth()}else if(css&&xDef(e.offsetWidth)&&xStr(e.style.width)){if(w>=0){var pl=0,pr=0,bl=0,br=0;if(document.compatMode=='CSS1Compat'){var gcs=xGetComputedStyle;pl=gcs(e,'padding-left',1);if(pl!==null){pr=gcs(e,'padding-right',1);bl=gcs(e,'border-left-width',1);br=gcs(e,'border-right-width',1)}else if(xDef(e.offsetWidth,e.style.width)){e.style.width=w+'px';pl=e.offsetWidth-w}};w-=(pl+pr+bl+br);if(isNaN(w)||w<0){return null}else e.style.width=w+'px'};w=e.offsetWidth}else if(css&&xDef(e.style.pixelWidth)){if(w>=0)e.style.pixelWidth=w;w=e.style.pixelWidth};return w}
function xZIndex(e,uZ){xDeprecate('xZIndex');if(!(e=xGetElementById(e)))return 0;if(e.style&&xDef(e.style.zIndex)){if(xNum(uZ))e.style.zIndex=uZ;uZ=parseInt(e.style.zIndex)};return uZ}
function xStopPropagation(evt){xDeprecate('xStopPropagation');if(evt&&evt.stopPropagation){evt.stopPropagation()}else if(window.event)window.event.cancelBubble=true}
function xDeprecate(a){typeof console=="object"&&typeof console.log=="function"&&console.log("DEPRECATED : "+a+"() is deprecated function.")}var xOp7Up,xOp6Dn,xIE4Up,xIE4,xIE5,xIE6,xNN4,xUA=navigator.userAgent.toLowerCase();
if(window.opera){var i=xUA.indexOf("opera");if(i!=-1){var v=parseInt(xUA.charAt(i+6));xOp7Up=v>=7;xOp6Dn=v<7}}else navigator.vendor!="KDE"&&document.all&&xUA.indexOf("msie")!=-1?(xIE4Up=parseFloat(navigator.appVersion)>=4,xIE4=xUA.indexOf("msie 4")!=-1,xIE5=xUA.indexOf("msie 5")!=-1,xIE6=xUA.indexOf("msie 6")!=-1):document.layers&&(xNN4=!0);var xMac=xUA.indexOf("mac")!=-1,xFF=xUA.indexOf("firefox")!=-1;
function xAddEventListener(a,b,d,e){xDeprecate("xAddEventListener");if(a=xGetElementById(a)){b=b.toLowerCase();if(!xIE4Up&&!xOp7Up&&a==window){if(b=="resize"){window.xPCW=xClientWidth();window.xPCH=xClientHeight();window.xREL=d;xResizeEvent();return}if(b=="scroll"){window.xPSL=xScrollLeft();window.xPST=xScrollTop();window.xSEL=d;xScrollEvent();return}}var f="e.on"+b+"=eL";a.addEventListener?a.addEventListener(b,d,e):a.attachEvent?a.attachEvent("on"+b,d):eval(f)}}
function xResizeEvent(){xDeprecate("xResizeEvent");window.xREL&&setTimeout("xResizeEvent()",250);var a=xClientWidth(),b=xClientHeight();if(window.xPCW!=a||window.xPCH!=b)window.xPCW=a,window.xPCH=b,window.xREL&&window.xREL()}function xScrollEvent(){xDeprecate("xScrollEvent");window.xSEL&&setTimeout("xScrollEvent()",250);var a=xScrollLeft(),b=xScrollTop();if(window.xPSL!=a||window.xPST!=b)window.xPSL=a,window.xPST=b,window.xSEL&&window.xSEL()}
function xAppendChild(a,b){xDeprecate("xAppendChild");return a.appendChild?a.appendChild(b):null}
function xClientHeight(){xDeprecate("xClientHeight");var a=0;if(xOp6Dn)a=window.innerHeight;else if(document.compatMode=="CSS1Compat"&&!window.opera&&document.documentElement&&document.documentElement.clientHeight)a=document.documentElement.clientHeight;else if(document.body&&document.body.clientHeight)a=document.body.clientHeight;else if(xDef(window.innerWidth,window.innerHeight,document.width))a=window.innerHeight,document.width>window.innerWidth&&(a-=16);return a}
function xClientWidth(){xDeprecate("xClientWidth");var a=0;if(xOp6Dn)a=window.innerWidth;else if(document.compatMode=="CSS1Compat"&&!window.opera&&document.documentElement&&document.documentElement.clientWidth)a=document.documentElement.clientWidth;else if(document.body&&document.body.clientWidth)a=document.body.clientWidth;else if(xDef(window.innerWidth,window.innerHeight,document.height))a=window.innerWidth,document.height>window.innerHeight&&(a-=16);return a}
function xCreateElement(a){xDeprecate("xCreateElement");return document.createElement?document.createElement(a):null}function xDef(){xDeprecate("xDef");for(var a=0;a<arguments.length;++a)if(typeof arguments[a]=="undefined")return!1;return!0}function xDeleteCookie(a,b){xDeprecate("xDeleteCookie");if(xGetCookie(a))document.cookie=a+"=; path="+(!b?"/":b)+"; expires="+(new Date(0)).toGMTString()}
function xDisplay(a,b){xDeprecate("xDisplay");if(!(a=xGetElementById(a)))return null;if(a.style&&xDef(a.style.display)){if(xStr(b))a.style.display=b;return a.style.display}return null}
function xEvent(a){xDeprecate("xEvent");if(a=a||window.event){if(a.type)this.type=a.type;if(a.target)this.target=a.target;else if(a.srcElement)this.target=a.srcElement;if(a.relatedTarget)this.relatedTarget=a.relatedTarget;else if(a.type=="mouseover"&&a.fromElement)this.relatedTarget=a.fromElement;else if(a.type=="mouseout")this.relatedTarget=a.toElement;if(xOp6Dn)this.pageX=a.clientX,this.pageY=a.clientY;else if(xDef(a.pageX,a.pageY))this.pageX=a.pageX,this.pageY=a.pageY;else if(xDef(a.clientX,a.clientY))this.pageX=
a.clientX+xScrollLeft(),this.pageY=a.clientY+xScrollTop();xDef(a.offsetX,a.offsetY)?(this.offsetX=a.offsetX,this.offsetY=a.offsetY):xDef(a.layerX,a.layerY)?(this.offsetX=a.layerX,this.offsetY=a.layerY):(this.offsetX=this.pageX-xPageX(this.target),this.offsetY=this.pageY-xPageY(this.target));if(a.keyCode)this.keyCode=a.keyCode;else if(xDef(a.which)&&a.type.indexOf("key")!=-1)this.keyCode=a.which;this.shiftKey=a.shiftKey;this.ctrlKey=a.ctrlKey;this.altKey=a.altKey}}
function xFirstChild(a,b){xDeprecate("xFirstChild");var d=a?a.firstChild:null;if(b)for(;d&&d.nodeName!=b;)d=d.nextSibling;else for(;d&&d.nodeType!=1;)d=d.nextSibling;return d}function xGetBodyWidth(){xDeprecate("xGetBodyWidth");var a=xClientWidth(),b=window.document.body.scrollWidth;return a>b?a:b}function xGetBodyHeight(){xDeprecate("xGetBodyHeight");var a=xClientHeight(),b=window.document.body.scrollHeight;return a>b?a:b}
function xGetComputedStyle(a,b,d){xDeprecate("xGetComputedStyle");var e="undefined",f=document.defaultView;if(f&&f.getComputedStyle)(a=f.getComputedStyle(a,""))&&(e=a.getPropertyValue(b));else if(a.currentStyle){e=b.split("-");b=e[0];for(f=1;f<e.length;++f)c=e[f].charAt(0),b+=e[f].replace(c,c.toUpperCase());e=a.currentStyle[b]}else return null;return d?parseInt(e)||0:e}
function xGetCookie(a){xDeprecate("xGetCookie");var b=null,d=a+"=";if(document.cookie.length>0&&(a=document.cookie.indexOf(d),a!=-1)){a+=d.length;b=document.cookie.indexOf(";",a);if(b==-1)b=document.cookie.length;b=unescape(document.cookie.substring(a,b))}return b}function xGetElementById(a){xDeprecate("xGetElementById");if(typeof a!="string")return a;return a=document.getElementById?document.getElementById(a):document.all?document.all[a]:null}
function xGetElementsByAttribute(a,b,d,e){xDeprecate("xGetElementsByAttribute");var f,h=[],d=RegExp(d,"i");f=xGetElementsByTagName(a);for(var g=0;g<f.length;++g)(a=f[g].getAttribute(b))||(a=f[g][b]),typeof a=="string"&&a.search(d)!=-1&&(h[h.length]=f[g],e&&e(f[g]));return h}
function xGetElementsByClassName(a,b,d,e){xDeprecate("xGetElementsByClassName");for(var f=[],a=RegExp("\\b"+a+"\\b","i"),b=xGetElementsByTagName(d,b),d=0;d<b.length;++d)b[d].className&&b[d].className.search(a)!=-1&&(f[f.length]=b[d],e&&e(b[d]));return f}function xGetElementsByTagName(a,b){xDeprecate("xGetElementsByTagName");var d=null,a=a||"*",b=b||document;xIE4||xIE5?d=a=="*"?b.all:b.all.tags(a):b.getElementsByTagName&&(d=b.getElementsByTagName(a));return d||[]}
function xGetURLArguments(){xDeprecate("xGetURLArguments");var a=location.href.indexOf("?"),b=[];if(a!=-1)for(var a=location.href.substring(a+1,location.href.length).split("&"),d=0;d<a.length;d++)nameVal=a[d].split("="),b[d]=nameVal[1],b[nameVal[0]]=nameVal[1];return b}
function xHeight(a,b){xDeprecate("xHeight");if(!(a=xGetElementById(a)))return 0;var b=xNum(b)?b<0?0:Math.round(b):-1,d=xDef(a.style);if(a==document||a.tagName.toLowerCase()=="html"||a.tagName.toLowerCase()=="body")b=xClientHeight();else if(d&&xDef(a.offsetHeight)&&xStr(a.style.height)){if(b>=0){var e=d=0,f=0,h=0;if(document.compatMode=="CSS1Compat"){var g=xGetComputedStyle,d=g(a,"padding-top",1);if(d!==null)e=g(a,"padding-bottom",1),f=g(a,"border-top-width",1),h=g(a,"border-bottom-width",1);else if(xDef(a.offsetHeight,
a.style.height))a.style.height=b+"px",d=a.offsetHeight-b}b-=d+e+f+h;if(isNaN(b)||b<0)return null;else a.style.height=b+"px"}b=a.offsetHeight}else if(d&&xDef(a.style.pixelHeight)){if(b>=0)a.style.pixelHeight=b;b=a.style.pixelHeight}return b}function xHex(a,b,d){xDeprecate("xHex");var e="",a=Math.ceil(a);d&&(e=d);a=a.toString(16);for(d=0;d<b-a.length;++d)e+="0";return e+a}function xHide(a){xDeprecate("xHide");return xVisibility(a,0)}
function xInnerHtml(a,b){xDeprecate("xInnerHtml");if(!(a=xGetElementById(a))||!xStr(a.innerHTML))return null;var d=a.innerHTML;if(xStr(b))a.innerHTML=b;return d}function xLeft(a,b){xDeprecate("xLeft");if(!(a=xGetElementById(a)))return 0;var d=xDef(a.style);if(d&&xStr(a.style.left))xNum(b)?a.style.left=b+"px":(b=parseInt(a.style.left),isNaN(b)&&(b=0));else if(d&&xDef(a.style.pixelLeft))xNum(b)?a.style.pixelLeft=b:b=a.style.pixelLeft;return b}
function xMoveTo(a,b,d){xDeprecate("xMoveTo");xLeft(a,b);xTop(a,d)}function xName(a){xDeprecate("xName");return a?a.id&&a.id!=""?a.id:a.name&&a.name!=""?a.name:a.nodeName&&a.nodeName!=""?a.nodeName:a.tagName&&a.tagName!=""?a.tagName:a:a}function xNextSib(a,b){xDeprecate("xNextSib");var d=a?a.nextSibling:null;if(b)for(;d&&d.nodeName!=b;)d=d.nextSibling;else for(;d&&d.nodeType!=1;)d=d.nextSibling;return d}
function xNum(){xDeprecate("xNum");for(var a=0;a<arguments.length;++a)if(isNaN(arguments[a])||typeof arguments[a]!="number")return!1;return!0}function xOffsetLeft(a){xDeprecate("xOffsetLeft");if(!(a=xGetElementById(a)))return 0;return xDef(a.offsetLeft)?a.offsetLeft:0}function xOffsetTop(a){xDeprecate("xOffsetTop");if(!(a=xGetElementById(a)))return 0;return xDef(a.offsetTop)?a.offsetTop:0}
function xPad(a,b,d,e){xDeprecate("xPad");typeof a!="string"&&(a+="");if(e)for(e=a.length;e<b;++e)a=d+a;else for(e=a.length;e<b;++e)a+=d;return a}function xPageX(a){xDeprecate("xPageX");if(!(a=xGetElementById(a)))return 0;for(var b=0;a;)xDef(a.offsetLeft)&&(b+=a.offsetLeft),a=xDef(a.offsetParent)?a.offsetParent:null;return b}
function xPageY(a){xDeprecate("xPageY");if(!(a=xGetElementById(a)))return 0;for(var b=0;a;)xDef(a.offsetTop)&&(b+=a.offsetTop),a=xDef(a.offsetParent)?a.offsetParent:null;return b}function xParent(a,b){xDeprecate("xParent");if(!(a=xGetElementById(a)))return null;var d=null;if(!b&&xDef(a.offsetParent))d=a.offsetParent;else if(xDef(a.parentNode))d=a.parentNode;else if(xDef(a.parentElement))d=a.parentElement;return d}
function xPreventDefault(a){xDeprecate("xPreventDefault");if(a&&a.preventDefault)a.preventDefault();else if(window.event)window.event.returnValue=!1}function xPrevSib(a,b){xDeprecate("xPrevSib");var d=a?a.previousSibling:null;if(b)for(;d&&d.nodeName!=b;)d=d.previousSibling;else for(;d&&d.nodeType!=1;)d=d.previousSibling;return d}
function xRemoveEventListener(a,b,d,e){xDeprecate("xRemoveEventListener");if(a=xGetElementById(a)){b=b.toLowerCase();if(!xIE4Up&&!xOp7Up&&a==window){if(b=="resize"){window.xREL=null;return}if(b=="scroll"){window.xSEL=null;return}}var f="e.on"+b+"=null";a.removeEventListener?a.removeEventListener(b,d,e):a.detachEvent?a.detachEvent("on"+b,d):eval(f)}}function xResizeTo(a,b,d){xDeprecate("xResizeTo");xWidth(a,b);xHeight(a,d)}
function xScrollLeft(a,b){xDeprecate("xScrollLeft");var d=0;if(!xDef(a)||b||a==document||a.tagName.toLowerCase()=="html"||a.tagName.toLowerCase()=="body"){var e=window;b&&a&&(e=a);if(e.document.documentElement&&e.document.documentElement.scrollLeft)d=e.document.documentElement.scrollLeft;else if(e.document.body&&xDef(e.document.body.scrollLeft))d=e.document.body.scrollLeft}else if((a=xGetElementById(a))&&xNum(a.scrollLeft))d=a.scrollLeft;return d}
function xScrollTop(a,b){xDeprecate("xScrollTop");var d=0;if(!xDef(a)||b||a==document||a.tagName.toLowerCase()=="html"||a.tagName.toLowerCase()=="body"){var e=window;b&&a&&(e=a);if(e.document.documentElement&&e.document.documentElement.scrollTop)d=e.document.documentElement.scrollTop;else if(e.document.body&&xDef(e.document.body.scrollTop))d=e.document.body.scrollTop}else if((a=xGetElementById(a))&&xNum(a.scrollTop))d=a.scrollTop;return d}
function xSetCookie(a,b,d,e){xDeprecate("xSetCookie");document.cookie=a+"="+escape(b)+(!d?"":"; expires="+d.toGMTString())+"; path="+(!e?"/":e)}function xShow(a){xDeprecate("xShow");return xVisibility(a,1)}function xStr(){xDeprecate("xStr");for(var a=0;a<arguments.length;++a)if(typeof arguments[a]!="string")return!1;return!0}
function xTop(a,b){xDeprecate("xTop");if(!(a=xGetElementById(a)))return 0;var d=xDef(a.style);if(d&&xStr(a.style.top))xNum(b)?a.style.top=b+"px":(b=parseInt(a.style.top),isNaN(b)&&(b=0));else if(d&&xDef(a.style.pixelTop))xNum(b)?a.style.pixelTop=b:b=a.style.pixelTop;return b}function xVisibility(a,b){xDeprecate("xVisibility");if(!(a=xGetElementById(a)))return null;if(a.style&&xDef(a.style.visibility)){if(xDef(b))a.style.visibility=b?"visible":"hidden";return a.style.visibility}return null}
function xWidth(a,b){xDeprecate("xWidth");if(!(a=xGetElementById(a)))return 0;var b=xNum(b)?b<0?0:Math.round(b):-1,d=xDef(a.style);if(a==document||a.tagName.toLowerCase()=="html"||a.tagName.toLowerCase()=="body")b=xClientWidth();else if(d&&xDef(a.offsetWidth)&&xStr(a.style.width)){if(b>=0){var e=d=0,f=0,h=0;if(document.compatMode=="CSS1Compat"){var g=xGetComputedStyle,d=g(a,"padding-left",1);if(d!==null)e=g(a,"padding-right",1),f=g(a,"border-left-width",1),h=g(a,"border-right-width",1);else if(xDef(a.offsetWidth,
a.style.width))a.style.width=b+"px",d=a.offsetWidth-b}b-=d+e+f+h;if(isNaN(b)||b<0)return null;else a.style.width=b+"px"}b=a.offsetWidth}else if(d&&xDef(a.style.pixelWidth)){if(b>=0)a.style.pixelWidth=b;b=a.style.pixelWidth}return b}function xZIndex(a,b){xDeprecate("xZIndex");if(!(a=xGetElementById(a)))return 0;if(a.style&&xDef(a.style.zIndex)){if(xNum(b))a.style.zIndex=b;b=parseInt(a.style.zIndex)}return b}
function xStopPropagation(a){xDeprecate("xStopPropagation");if(a&&a.stopPropagation)a.stopPropagation();else if(window.event)window.event.cancelBubble=!0};

View file

@ -1,3 +1,8 @@
/**
* @file common/js/xe.min.js
* @author NHN (developers@xpressengine.com)
* @brief XE Common JavaScript
**/
/**
* @file js_app.js
* @author NHN (developers@xpressengine.com)
@ -850,7 +855,7 @@ function doDocumentSave(obj) {
else params[field.name] = field.value;
});
exec_xml('member','procMemberSaveDocument', params, completeDocumentSave, responses, params, obj.form);
exec_xml('document','procDocumentTempSave', params, completeDocumentSave, responses, params, obj.form);
editorRelKeys[editor_sequence]['content'].value = prev_content;
return false;
@ -866,7 +871,7 @@ var objForSavedDoc = null;
function doDocumentLoad(obj) {
// 저장된 게시글 목록 불러오기
objForSavedDoc = obj.form;
popopen(request_uri.setQuery('module','member').setQuery('act','dispSavedDocumentList'));
popopen(request_uri.setQuery('module','document').setQuery('act','dispTempSavedList'));
}
/* 저장된 게시글의 선택 */
@ -1181,6 +1186,11 @@ function setCookie(name, value, expire, path) {
document.cookie = s_cookie;
}
function getCookie(name) {
var match = document.cookie.match(new RegExp(name+'=(.*?)(?:;|$)'));
if(match) return unescape(match[1]);
}
function is_def(v) {
return (typeof(v)!='undefined');
}
@ -1189,6 +1199,10 @@ function ucfirst(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
function get_by_id(id) {
return document.getElementById(id);
}
jQuery(function($){
$('.lang_code').each(
function()
@ -1214,7 +1228,8 @@ jQuery(function($){
if(!$target.length) return;
// 객체의 className값을 구함
var match = $target.attr('class').match(new RegExp('(?:^| )((document|comment|member)_([1-9]\\d*))(?: |$)',''));
var cls = $target.attr('class'), match;
if(cls) match = cls.match(new RegExp('(?:^| )((document|comment|member)_([1-9]\\d*))(?: |$)',''));
if(!match) return;
var action = 'get'+ucfirst(match[2])+'Menu';
@ -1238,6 +1253,22 @@ jQuery(function($){
return false;
});
/**
* Create popup windows automatically.
* Find anchors that have the '_xe_popup' class, then add popup script to them.
*/
$('a._xe_popup').click(function(){
var $this = $(this), name = $this.attr('name'), href = $this.attr('href'), win;
if(!name) name = '_xe_popup_'+Math.floor(Math.random()*1000);
win = window.open(href, name, 'left=10,top=10,width=10,height=10,resizable=no,scrollbars=no,toolbars=no');
if(win) win.focus();
// cancel default action
return false;
});
});
/**
* @file common/js/xml_handler.js
@ -1735,48 +1766,60 @@ var Validator = xe.createApp('Validator', {
});
},
API_VALIDATE : function(sender, params) {
var self = this, result = true, form = params[0], filter=null, callback=null;
var result = true, form = params[0], filter=null, callback=null;
var name, el, val, mod, len, lenb, max, min, maxb, minb, rules, e_el, e_val, i, c, r, result;
if (form.elements['_filter']) filter = form.elements['_filter'].value;
if (!filter) return true;
if ($.isFunction(callbacks[filter])) callback = callbacks[filter];
filter = $.extend({}, filters[filter.toLowerCase()] || {}, extras);
$.each(filter, function(name) {
var _el = form.elements[name];
for(name in filter) {
if(!filter.hasOwnProperty(name)) continue;
if (!_el) return true;
f = filter[name];
el = form.elements[name];
val = el?$.trim(get_value($(el))):'';
mod = (f.modifier||'')+',';
var el = $(_el), val = $.trim(get_value(el));
var minlen = parseInt(this.minlength) || 0;
var maxlen = parseInt(this.maxlength) || 0;
var rule = (this.rule || '').split(',');
if(!el) continue;
if (this.required && !val) return (result = (!!self.cast('ALERT', [form, name, 'isnull']) && false));
if (!this.required && !val) return (result = true);
if ((minlen && val.length < minlen) || (maxlen && val.length > maxlen)) return (result = (!!self.cast('ALERT', [form, name, 'outofrange', minlen, maxlen]) && false));
if(!val) {
if(f['default']) val = f['default'];
if(f.required) return this.cast('ALERT', [form, name, 'isnull']) && false;
else continue;
}
min = parseInt(f.minlength) || 0;
max = parseInt(f.maxlength) || 0;
minb = /b$/.test(f.minlength||'');
maxb = /b$/.test(f.maxlength||'');
len = val.length;
if(minb || maxb) lenb = get_bytes(val);
if((min && min > (minb?lenb:len)) || (max && max < (maxb?lenb:len))) {
return this.cast('ALERT', [form, name, 'outofrange', min, max]) && false;
}
if (this.equalto) {
var eq_val = get_value($(form.elements[this.equalto]));
if (eq_val != val) return (result = (!!self.cast('ALERT', [form, name, 'equalto']) && false));
if(f.equalto) {
e_el = form.elements[f.equalto];
e_val = e_el?$.trim(get_value($(e_el))):'';
if(e_el && e_val !== val) {
return this.cast('ALERT', [form, name, 'equalto']) && false;
}
}
rules = (f.rule || '').split(',');
for(i=0,c=rules.length; i < c; i++) {
if(!(r = rules[i])) continue;
if (rule) {
$.each(rule, function(i,r) {
if (!r) return true;
var ret = self.cast('APPLY_RULE', [r, val]);
if (!ret) {
self.cast('ALERT', [form, name, 'invalid_'+this]);
return (result = false);
}
});
result = this.cast('APPLY_RULE', [r, val]);
if(mod.indexOf('not,') > -1) result = !result;
if(!result) {
return this.cast('ALERT', [form, name, 'invalid_'+r]) && false;
}
}
}
if (!result) return false;
});
if (!result) return false;
if ($.isFunction(callback)) return callback(form);
return true;
@ -1835,9 +1878,10 @@ var Validator = xe.createApp('Validator', {
var name = params[0];
var value = params[1];
if (typeof(rules[name]) == 'undefined') return true; // no filter
if ($.isFunction(rules[name])) return rules[name](value);
if (rules[name] instanceof RegExp) return rules[name].test(value);
if(typeof(rules[name]) == 'undefined') return true; // no filter
if($.isFunction(rules[name])) return rules[name](value);
if(rules[name] instanceof RegExp) return rules[name].test(value);
if($.isArray(rules[name])) return ($.inArray(value, rules[name]) > -1);
return true;
},
@ -1924,6 +1968,16 @@ function get_value(elem) {
}
}
function get_bytes(str) {
str += '';
if(!str.length) return 0;
str = encodeURI(str);
var c = str.split('%').length - 1;
return str.length - c*2;
}
})(jQuery);
/**

130
common/js/xe.min.js vendored

File diff suppressed because one or more lines are too long

View file

@ -28,7 +28,7 @@ var Validator = xe.createApp('Validator', {
this.cast('ADD_RULE', ['user_id', regUserid]);
// url
var regUrl = /^(https?|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-\/\~]+)+(:[0-9]{2,4})*$/;
var regUrl = /^(https?|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-]+)+(:\d+)?/;
this.cast('ADD_RULE', ['url', regUrl]);
this.cast('ADD_RULE', ['homepage', regUrl]);
@ -85,48 +85,68 @@ var Validator = xe.createApp('Validator', {
});
},
API_VALIDATE : function(sender, params) {
var self = this, result = true, form = params[0], filter=null, callback=null;
var result = true, form = params[0], filter=null, callback=null;
var name, el, val, mod, len, lenb, max, min, maxb, minb, rules, e_el, e_val, i, c, r, result, if_, fn;
if (form.elements['_filter']) filter = form.elements['_filter'].value;
if (!filter) return true;
if ($.isFunction(callbacks[filter])) callback = callbacks[filter];
filter = $.extend({}, filters[filter.toLowerCase()] || {}, extras);
$.each(filter, function(name) {
var _el = form.elements[name];
for(name in filter) {
if(!filter.hasOwnProperty(name)) continue;
if (!_el) return true;
f = filter[name];
el = form.elements[name];
val = el?$.trim(get_value($(el))):'';
mod = (f.modifier||'')+',';
var el = $(_el), val = $.trim(get_value(el));
var minlen = parseInt(this.minlength) || 0;
var maxlen = parseInt(this.maxlength) || 0;
var rule = (this.rule || '').split(',');
if(!el) continue;
if (this.required && !val) return (result = (!!self.cast('ALERT', [form, name, 'isnull']) && false));
if (!this.required && !val) return (result = true);
if ((minlen && val.length < minlen) || (maxlen && val.length > maxlen)) return (result = (!!self.cast('ALERT', [form, name, 'outofrange', minlen, maxlen]) && false));
if(filter['if']) {
for(i in filter['if']) {
if_ = filter['if'][i];
fn = new Function('el', 'return !!(' + (if_.test.replace(/$(\w+)/g, 'el["$1"]')) +')');
if(fn(form.elements)) filter[if_.attr] = if_.value;
}
}
if(!val) {
if(f['default']) val = f['default'];
if(f.required) return this.cast('ALERT', [form, name, 'isnull']) && false;
else continue;
}
min = parseInt(f.minlength) || 0;
max = parseInt(f.maxlength) || 0;
minb = /b$/.test(f.minlength||'');
maxb = /b$/.test(f.maxlength||'');
len = val.length;
if(minb || maxb) lenb = get_bytes(val);
if((min && min > (minb?lenb:len)) || (max && max < (maxb?lenb:len))) {
return this.cast('ALERT', [form, name, 'outofrange', min, max]) && false;
}
if (this.equalto) {
var eq_val = get_value($(form.elements[this.equalto]));
if (eq_val != val) return (result = (!!self.cast('ALERT', [form, name, 'equalto']) && false));
if(f.equalto) {
e_el = form.elements[f.equalto];
e_val = e_el?$.trim(get_value($(e_el))):'';
if(e_el && e_val !== val) {
return this.cast('ALERT', [form, name, 'equalto']) && false;
}
}
rules = (f.rule || '').split(',');
for(i=0,c=rules.length; i < c; i++) {
if(!(r = rules[i])) continue;
if (rule) {
$.each(rule, function(i,r) {
if (!r) return true;
var ret = self.cast('APPLY_RULE', [r, val]);
if (!ret) {
self.cast('ALERT', [form, name, 'invalid_'+this]);
return (result = false);
}
});
result = this.cast('APPLY_RULE', [r, val]);
if(mod.indexOf('not,') > -1) result = !result;
if(!result) {
return this.cast('ALERT', [form, name, 'invalid_'+r]) && false;
}
}
}
if (!result) return false;
});
if (!result) return false;
if ($.isFunction(callback)) return callback(form);
return true;
@ -152,6 +172,8 @@ var Validator = xe.createApp('Validator', {
var name = params[0].toLowerCase();
var filter = params[1];
if(filter['if'] && !$.isArray(filter['if'])) filter['if'] = [filter['if']];
filters[name] = filter;
},
API_DEL_FILTER : function(sender, params) {
@ -185,9 +207,10 @@ var Validator = xe.createApp('Validator', {
var name = params[0];
var value = params[1];
if (typeof(rules[name]) == 'undefined') return true; // no filter
if ($.isFunction(rules[name])) return rules[name](value);
if (rules[name] instanceof RegExp) return rules[name].test(value);
if(typeof(rules[name]) == 'undefined') return true; // no filter
if($.isFunction(rules[name])) return rules[name](value);
if(rules[name] instanceof RegExp) return rules[name].test(value);
if($.isArray(rules[name])) return ($.inArray(value, rules[name]) > -1);
return true;
},
@ -260,20 +283,30 @@ var EditorStub = xe.createPlugin('editor_stub', {
oValidator.registerPlugin(new EditorStub);
// functions
function get_value(elem) {
function get_value($elem) {
var vals = [];
if (elem.is(':radio')){
return elem.filter(':checked').val();
} else if (elem.is(':checkbox')) {
elem.filter(':checked').each(function(){
if ($elem.is(':radio')){
return $elem.filter(':checked').val();
} else if ($elem.is(':checkbox')) {
$elem.filter(':checked').each(function(){
vals.push(this.value);
});
return vals.join('|@|');
} else {
return elem.val();
return $elem.val();
}
}
function get_bytes(str) {
str += '';
if(!str.length) return 0;
str = encodeURI(str);
var c = str.split('%').length - 1;
return str.length - c*2;
}
})(jQuery);
/**
@ -335,4 +368,4 @@ function legacy_filter(filter_name, form, module, act, callback, responses, conf
v.cast('VALIDATE', [form, filter_name]);
return false;
}
}

View file

@ -67,11 +67,13 @@ $lang->cmd_layout_setup = 'Configure layout';
$lang->cmd_layout_edit = 'Edit layout';
$lang->cmd_search_by_ipaddress = 'Search by IP Address';
$lang->cmd_add_ip_to_spamfilter = 'Add IP to spamfilter';
$lang->cmd_go_to_page = 'Go to page';
$lang->enable = 'Enable';
$lang->disable = 'Disable';
// Essential Words
$lang->favorite = 'Favorite';
$lang->menu = 'Menu';
$lang->no = 'No.';
$lang->notice = 'Notice';
@ -169,6 +171,8 @@ $lang->layout_manager = 'Layout Settings';
$lang->use = 'Use';
$lang->notuse = 'Not use';
$lang->on = 'On';
$lang->off = 'Off';
$lang->not_exists = "Doesn't exist";
$lang->public = 'public';
@ -242,6 +246,7 @@ $lang->success_reset = 'Reset successfully';
$lang->success_leaved = 'All member data has been deleted completely.';
$lang->success_saved = 'Saved successfully';
$lang->fail_to_registed = '등록하지 못하였습니다.';
$lang->fail_to_delete = 'Could not be deleted';
$lang->fail_to_move = 'Could not be moved';
@ -308,9 +313,10 @@ $lang->msg_ftp_installed_ftp_realpath = 'Absolute FTP Path of XE';
$lang->filter->isnull = 'Please input a value for %s';
$lang->filter->outofrange = 'Please align the text length of %s';
$lang->filter->equalto = "The value of %s is invalid";
$lang->filter->invalid_email = "The format of %s is invalid. ex) developers@xpressengine.com";
$lang->filter->invalid_user_id = $lang->filter->invalid_userid = "The format of %s is invalid.\\nAll values should consist of alphabets, numbers or underscore(_) and the first letter should be alphabet";
$lang->filter->invalid_homepage = "The format of %s is invalid. ex) http://xpressengine.com/";
$lang->filter->invalid = 'The value of %s is invalid.';
$lang->filter->invalid_email = "The value of %s is NOT a valid email address.";
$lang->filter->invalid_user_id = $lang->filter->invalid_userid = "The %s field allows only alphabets, numbers and underscore(_).\\nThe first letter should be an alaphabet.";
$lang->filter->invalid_url = $lang->filter->invalid_homepage = "The format of %s is invalid. ex) http://xpressengine.com/";
$lang->filter->invalid_korean = "The format of %s is invalid. Please input Korean only";
$lang->filter->invalid_korean_number = "The format of %s is invalid. Please input Korean or numbers";
$lang->filter->invalid_alpha = "The format of %s is invalid. Please input alphabets only";
@ -318,5 +324,5 @@ $lang->filter->invalid_alpha_number = "The format of %s is invalid. Please input
$lang->filter->invalid_number = "The format of %s is invalid. Please input numbers only";
$lang->security_warning_embed = "Due to security concern, administrators are not allowed to view embedded items.<BR /> To view them, please use another non-administrator ID.";
$lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
$lang->msg_pc_to_mobile = 'View mobile optimized version of this page';
?>

View file

@ -66,11 +66,13 @@ $lang->cmd_layout_setup = 'Composición de Página';
$lang->cmd_layout_edit = 'Editar la Página';
$lang->cmd_search_by_ipaddress = 'Búsqueda con IP';
$lang->cmd_add_ip_to_spamfilter = 'Añadir IP en el Filtro de Spam';
$lang->cmd_go_to_page = 'Go to page';
$lang->enable = 'Activar'; //Activado
$lang->disable = 'Desactivar'; //Desactivado
// Palabras Esenciales
$lang->favorite = 'Favorite';
$lang->menu = 'Menu';
$lang->no = 'Nº';
$lang->notice = 'Aviso'; //boletín, noticia
@ -168,6 +170,8 @@ $lang->layout_manager = 'Adm. Diseños';
$lang->use = 'Usar';
$lang->notuse = 'No usar';
$lang->on = 'On';
$lang->off = 'Off';
$lang->not_exists = 'No existe';
$lang->public = 'Público';
@ -248,6 +252,7 @@ $lang->success_reset = 'Reajustado con éxito';
$lang->success_leaved = 'Abandonado con éxito';
$lang->success_saved = 'Guardado correctamente';
$lang->fail_to_registed = '등록하지 못하였습니다.';
$lang->fail_to_delete = 'No puede ser borrado';
$lang->fail_to_move = 'No puede ser movido';
@ -327,4 +332,4 @@ $lang->filter->invalid_number = 'Sólo puede introducir los dígitos numéricos
$lang->security_warning_embed = "Due to security concern, administrators are not allowed to view embedded items.<BR /> To view them, please use another non-administrator ID.";
$lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
?>
?>

View file

@ -67,11 +67,13 @@ $lang->cmd_layout_setup = 'Configurer la Mise en page';
$lang->cmd_layout_edit = 'Editer la Mise en page';
$lang->cmd_search_by_ipaddress = 'Recherce par l\'Address IP';
$lang->cmd_add_ip_to_spamfilter = 'Add IP to spamfilter';
$lang->cmd_go_to_page = 'Go to page';
$lang->enable = 'Valide';
$lang->disable = 'Invalide';
// Mots essentiels
$lang->favorite = 'Favorite';
$lang->menu = 'Menu';
$lang->no = 'No';
$lang->notice = 'Notice';
@ -169,6 +171,8 @@ $lang->layout_manager = 'Administration des Mises en Page';
$lang->use = 'Utiliser';
$lang->notuse = 'Pas Utilisé';
$lang->on = 'On';
$lang->off = 'Off';
$lang->not_exists = 'Rien';
$lang->public = 'public';
@ -242,6 +246,7 @@ $lang->success_reset = 'Restauré avec succès';
$lang->success_leaved = 'Toutes vos informations sont complètement supprimés';
$lang->success_saved = 'Conservé avec succès';
$lang->fail_to_registed = '등록하지 못하였습니다.';
$lang->fail_to_delete = 'N\'a pas pu être supprimé.';
$lang->fail_to_move = 'N\'a pas pu être bougé';
@ -318,4 +323,4 @@ $lang->filter->invalid_alpha = "La format de %s n\'est pas convenable. Entrez se
$lang->filter->invalid_alpha_number = "La format de %s n\'est pas convenable. Entrez seulement des lettres d\'alphabet ou des chiffres.";
$lang->filter->invalid_number = "La format de %s n\'est pas convenable. Entrez seulement des chiffres.";
$lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
?>
?>

View file

@ -1,323 +0,0 @@
<?php
/**
* @Datei common/lang/ge.lang.php
* @Author NHN (developers@xpressengine.com)
* @Kurzen german Language Pack (nur einfache Worte sind hier eingeschlossen)
**/
// Worte für Aktion, die im Grunde verwendet
$lang->cmd_write = 'Schreiben';
$lang->cmd_reply = 'Antworten';
$lang->cmd_delete = 'Löschen';
$lang->cmd_modify = 'Ändern';
$lang->cmd_edit = 'Bearbeiten';
$lang->cmd_view = 'Anzeigen';
$lang->cmd_view_all = 'Alle anzeigen';
$lang->cmd_list = 'US -';
$lang->cmd_prev = 'Zurück';
$lang->cmd_next = 'Nächster';
$lang->cmd_send_trackback = 'Trackback senden';
$lang->cmd_registration = $lang->cmd_submit = 'Übermitteln';
$lang->cmd_comment_registration = 'Kommentar hinzufügen';
$lang->cmd_insert = 'Legen Sie';
$lang->cmd_save = 'sichern';
$lang->cmd_load = 'Laden';
$lang->cmd_input = 'Input';
$lang->cmd_search = 'Suche';
$lang->cmd_find = '찾기';
$lang->cmd_replace = '바꾸기';
$lang->cmd_confirm = '확인';
$lang->cmd_cancel = 'Abbrechen';
$lang->cmd_back = 'Zurück';
$lang->cmd_vote = 'Weiterempfehlen';
$lang->cmd_vote_down = 'Criticize';
$lang->cmd_declare = 'accuse';
$lang->cmd_cancel_declare = 'accuse Abbrechen';
$lang->cmd_declared_list = 'Vorwürfe Liste';
$lang->cmd_copy = 'Kopieren';
$lang->cmd_move = 'Verschieben';
$lang->cmd_move_up = 'Nach oben';
$lang->cmd_move_down = 'Down';
$lang->cmd_add_indent = 'Einrücken';
$lang->cmd_remove_indent = 'Ausrücken';
$lang->cmd_management = 'Verwaltung';
$lang->cmd_make = 'Erstellen';
$lang->cmd_select = 'Select';
$lang->cmd_select_all = 'Alle auswählen';
$lang->cmd_unselect_all = 'Alle abwählen';
$lang->cmd_reverse_all = 'Reverse';
$lang->cmd_close_all = 'Schließen Sie alle';
$lang->cmd_open_all = 'Open All';
$lang->cmd_reload = 'Reload';
$lang->cmd_close = 'Schließen';
$lang->cmd_open = 'Open';
$lang->cmd_setup = 'Konfiguration';
$lang->cmd_addition_setup = 'Zusätzliche Setup ';
$lang->cmd_option = 'Option';
$lang->cmd_apply = 'Übernehmen';
$lang->cmd_open_calendar = 'Wählen Sie ein Datum';
$lang->cmd_send = 'Senden';
$lang->cmd_print = 'Drucken';
$lang->cmd_scrap = 'Schrott';
$lang->cmd_preview = 'Vorschau';
$lang->cmd_reset = 'Reset';
$lang->cmd_remake_cache = 'Re-Cache-Datei erstellen';
$lang->cmd_publish = 'Veröffentlichen';
$lang->cmd_layout_setup = 'Konfiguration Layout';
$lang->cmd_layout_edit = 'Layout bearbeiten';
$lang->cmd_search_by_ipaddress = 'Search by IP Address';
$lang->cmd_add_ip_to_spamfilter = 'Add IP to spamfilter';
$lang->enable = 'Aktivieren';
$lang->deaktivieren = 'Deaktivieren';
// Essential Words
$lang->menu = 'Menu';
$lang->no = 'Nein';
$lang->notice = 'Hinweis';
$lang->secret = 'Geheim';
$lang->category = $lang->category_srl = 'Kategorie';
$lang->none_category = '분류없음';
$lang->none_image = '이미지 없음';
$lang->document_srl = 'Doc. No ';
$lang->user_id = 'User-ID';
$lang->author = 'Entwickler';
$lang->password = 'Passwort';
$lang->password1 = 'Passwort';
$lang->password2 = 'Passwort bestätigen';
$lang->admin_id = 'Admin ID';
$lang->writer = 'Autor';
$lang->user_name = 'Username';
$lang->nick_name = 'Nick Name';
$lang->email_address = 'E-Mail';
$lang->homepage = 'Startseite';
$lang->blog = 'Blog';
$lang->birthday = 'Geburtstag';
$lang->browser_title = 'Browser-Titel';
$lang->title = 'Betreff';
$lang->title_content = 'Betreff + Inhalt';
$lang->topic = 'Thema';
$lang->replies = 'Antwort';
$lang->content = 'Inhalt';
$lang->document = 'Artikel';
$lang->comment = 'Kommentar';
$lang->description = 'Beschreibung';
$lang->trackback = 'Trackback';
$lang->tag = 'Tag';
$lang->allow_comment = 'Kommentare erlauben';
$lang->lock_comment = 'Block Kommentare';
$lang->allow_trackback = 'Allow Trackbacks';
$lang->uploaded_file = 'Anlage';
$lang->grant = 'Erlaubnis';
$lang->target = 'target';
$lang->total = 'Gesamt';
$lang->total_count = 'count Gesamt';
$lang->ipaddress = 'IP-Adresse';
$lang->path = 'Pfad';
$lang->cart = 'Ausgewählte Posten';
$lang->friend = 'Freunde';
$lang->notify = 'Meldung';
$lang->order_target = 'Ausrichten Target';
$lang->order_type = 'Sortieren Typ';
$lang->order_asc = 'Aufstieg';
$lang->order_desc = 'Abstieg';
$lang->file = 'file';
$lang->mid = 'Module Name';
$lang->sid = 'Site Name';
$lang->layout = 'Layout';
$lang->mobile_layout = 'Mobile Layout';
$lang->widget = 'Widget';
$lang->module = 'Modul';
$lang->skin = 'Thema';
$lang->mobile_skin = 'Mobile Theme';
$lang->colorset = 'Colorset';
$lang->extra_vars = 'Extra Vars';
$lang->domain = "Domain Name";
$lang->url = "URL";
$lang->document_url = 'Artikel-URL';
$lang->trackback_url = 'Trackback-URL';
$lang->blog_name = 'Blog-Titel';
$lang->excerpt = 'Zitat';
$lang->document_count = 'Total Artikel';
$lang->page_count = 'Page Count';
$lang->list_count = 'US-Count ';
$lang->search_list_count = 'Suchen US-Count';
$lang->readed_count = 'Views';
$lang->voted_count = 'Stimmen';
$lang->comment_count = 'Kommentare';
$lang->member_count = 'Mitglied Count';
$lang->date = 'Datum';
$lang->regdate = 'Anmeldungsdatum Datum';
$lang->last_update = 'Letzte Aktualisierung';
$lang->last_post = 'Letzter Beitrag';
$lang->signup_date = 'Join Date';
$lang->last_login = 'Letzter Login';
$lang->first_page = 'Erste Seite';
$lang->last_page = 'Letzte Seite';
$lang->search_target = 'Target für die Google-Suche';
$lang->search_keyword = 'Stichwort';
$lang->is_default = 'Standard';
$lang->no_documents = 'Keine Artikel';
$lang->board_manager = 'Board';
$lang->member_manager = 'Mitglied';
$lang->layout_manager = 'Layout-Einstellungen';
$lang->use = 'Use';
$lang->notuse = 'nicht verwenden';
$lang->not_exists = 'nicht vorhanden';
$lang->public = 'öffentlich';
$lang->private = 'private';
$lang->unit_sec = 's';
$lang->unit_min = 'mindestens';
$lang->unit_hour = 'h';
$lang->unit_day = 'th';
$lang->unit_month = 'Monat';
$lang->unit_year = 'Jahr';
$lang->unit_week = array(
'Monday' => 'Montag',
'Tuesday' => 'Dienstag',
'Wednesday' => 'Mittwoch',
'Thursday' => 'Donnerstag',
'Friday' => 'Freitag',
'Saturday' => 'Samstag',
'Sunday' => 'Sonntag',
);
$lang->unit_meridiem = array(
'am' => 'am',
'pm' => 'pm',
'AM' => 'AM',
'PM' => 'PM',
);
$lang->time_gap = array(
'min' => 'Vor %d Minute',
'mins' => '%d Stunden',
'hour' => '%d Tag',
'hours' => '%d Tage',
);
// Beschreibungen
$lang->about_tag = 'Sie können mehrere Tags, indem Sie ein Komma (,) zwischen den einzelnen Tag';
$lang->about_layout = 'Layouts schmücken das Aussehen Ihrer Module. Sie können sie von Layout-Menü am oberen Rand ';
// Messages
$lang->msg_call_server = 'Anfordern an den Server, bitte warten';
$lang->msg_db_not_setted = 'DB-Konfiguration wurde nicht festgelegt';
$lang->msg_dbconnect_failed = "Error has occurred while connecting DB.\nPlease check DB information again"; // TODO:translation en -> ge
$lang->msg_invalid_queryid = 'spezifiziert Abfrage ID-Wert ist ungültig';
$lang->msg_not_permitted = 'Sie haben keine Berechtigung zum Zugriff auf';
$lang->msg_input_password = 'Bitte geben Sie das Passwort';
$lang->msg_invalid_document = 'Ungültige Article Number';
$lang->msg_invalid_request = 'Invalid request ';
$lang->msg_invalid_password = 'Ungültiges Passwort';
$lang->msg_error_occured = 'Ein Fehler ist aufgetreten ';
$lang->msg_not_founded = 'Target konnte nicht gefunden werden';
$lang->msg_no_result = 'Nichts gefunden';
$lang->msg_fail_to_request_open = 'Fail to open your request';
$lang->msg_invalid_format = 'Invalid Format';
$lang->msg_not_permitted_act = 'Sie haben keine Berechtigung zur Ausführung angeforderte Aktion';
$lang->msg_module_does_not_exist = "요청하신 모듈을 찾을 수 없습니다.\n사이트 관리자에게 모듈 점검 요청 바랍니다";
$lang->msg_module_is_not_standalone = 'Gewünschte Modul kann nicht ausgeführt werden unabhängig';
$lang->msg_default_url_is_not_defined = '기본 URL이 정해지지 않아서 동작을 중지합니다';
$lang->success_registed = 'Anmeldungsdatum';
$lang->success_declared = 'Accused erfolgreich';
$lang->success_updated = 'erfolgreich aktualisiert';
$lang->success_deleted = 'erfolgreich gelöscht';
$lang->success_voted = 'Empfohlen';
$lang->success_blamed = 'Schuld success_blamed';
$lang->success_moved = 'Umzug';
$lang->success_sended = 'Gesendet';
$lang->success_reset = 'Reset';
$lang->success_leaved = 'Alle Mitglieder Daten wurden komplett gestrichen. ';
$lang->success_saved = 'erfolgreich gespeichert ';
$lang->fail_to_delete = 'konnte nicht gelöscht werden';
$lang->fail_to_move = 'konnte nicht verschoben werden';
$lang->failed_voted = 'konnte nicht empfehlen';
$lang->failed_blamed = 'Es konnte keine Schuld';
$lang->failed_declared = 'Konnte nicht vorwerfen';
$lang->fail_to_delete_have_children = 'Bitte versuchen Sie es erneut nach dem Entfernen erste Antworten';
$lang->confirm_submit = 'Sind Sie sicher, dass zur Vorlage? ';
$lang->confirm_logout = 'Sind Sie sicher, dass nach Logout? ';
$lang->confirm_vote = 'Sind Sie sicher, dass zu empfehlen? ';
$lang->CONFIRM_DELETE = 'Sind Sie sicher, dass löschen? ';
$lang->confirm_move = 'Sind Sie sicher, dass zu bewegen? ';
$lang->confirm_reset = 'Sind Sie sicher, dass zurücksetzen? ';
$lang->confirm_leave = 'Sind Sie sicher, dass zu verlassen? ';
$lang->confirm_update = 'Are you sure to update?';
$lang->column_type = 'Spaltenart';
$lang->column_type_list['text'] = 'ein Online-Text';
$lang->column_type_list['homepage'] = 'url';
$lang->column_type_list['email_address'] =' E-Mail ';
$lang->column_type_list['tel'] = 'Telefonnummer';
$lang->column_type_list['textarea'] = 'Multi-line textarea';
$lang->column_type_list['checkbox'] = 'Checkbox (multiple Auswahl)';
$lang->column_type_list['select'] = 'select box (Einzel-Auswahl) ';
$lang->column_type_list['radio'] = 'radio button (radio)';
$lang->column_type_list['kr_zip'] = 'Postleitzahl (Koreanisch) ';
$lang->column_type_list['date'] = 'Datum (jjjj / mm / dd)';
// $lang->column_type_list [ 'jp_zip'] = 'Postleitzahl (Japanisch)';
$lang->column_name = 'Spaltenname';
$lang->column_title = 'Spaltentitel';
$lang->default_value = 'Standardwert';
$lang->is_active = 'Aktiv';
$lang->is_required = 'Pflichtfeld';
$lang->eid = '확장변수 이름';
// ftp 관련
$lang->ftp_form_title = 'FTP 정보 입력';
$lang->ftp = 'FTP';
$lang->ftp_host = 'FTP hostname';
$lang->ftp_port = 'FTP port';
$lang->about_ftp_password = 'FTP password will not be stored';
$lang->cmd_check_ftp_connect = 'FTP 접속 확인';
$lang->about_ftp_info = "
FTP 정보는 다음의 경우에 이용될 있습니다.<br/>
1. PHP의 safe_mode=On일 경우에 FTP 정보를 이용해서 XE를 정상적으로 동작할 있게 합니다.<br/>
2. 자동 업데이트등에서 FTP 정보를 이용할 있습니다.<br/>
FTP정보는 files/config/ftp.config.php 파일내에 정보가 저장됩니다.<br/>
그리고 설치 관리자 페이지에서 FTP 정보를 변경하거나 제거할 있습니다.<br />
";
$lang->msg_safe_mode_ftp_needed = "PHP의 safe_mode가 On일 경우 FTP 정보를 꼭 입력해주셔야 XE의 설치 및 사용이 가능합니다";
$lang->msg_ftp_not_connected = "localhost로의 FTP 접속 오류가 발생하였습니다. ftp 포트 번호를 확인해주시거나 ftp 서비스가 가능한지 확인해주세요";
$lang->msg_ftp_invalid_auth_info = "입력하신 FTP 정보로 로그인을 하지 못했습니다. FTP정보를 확인해주세요";
$lang->msg_ftp_mkdir_fail = "FTP를 이용한 디렉토리 생성 명령을 실패하였습니다. FTP 서버의 설정을 확인해주세요";
$lang->msg_ftp_chmod_fail = "FTP를 이용한 디렉토리의 속성 변경을 실패하였습니다. FTP 서버의 설정을 확인해주세요";
$lang->msg_ftp_connect_success = "FTP 접속 및 인증 성공하였습니다";
$lang->ftp_path_title = 'FTP 경로 정보 입력';
$lang->msg_ftp_installed_realpath = '설치된 XE의 절대경로';
$lang->msg_ftp_installed_ftp_realpath = '설치된 XE의 FTP 절대경로 설정';
// Alert Nachrichten für JavaScript unter Verwendung von XML-Filter
$lang->filter->isnull = 'Bitte geben Sie einen Wert für% s';
$lang->filter->outofrange = 'Bitte richten Sie die Textlänge von% s';
$lang->filter->equalto = "Der Wert von% s ist ungültig";
$lang->filter->invalid_email = "Das Format von% s ist ungültig. ex) developers@xpressengine.com";
$lang->filter->invalid_user_id = $lang->filter->invalid_userid = "Das Format von% s ist ungültig. \ \ Nall Werte sollte aus Alphabet, Zahlen oder Unterstrich (_) und den ersten Buchstaben sollten Alphabet" ;
$lang->filter->invalid_homepage = "Das Format von% s ist ungültig. ex) http://xpressengine.com/";
$lang->filter->invalid_korean = "Das Format von% s ist ungültig. Koreanisch Bitte geben Sie nur";
$lang->filter->invalid_korean_number = "Das Format von% s ist ungültig. Bitte geben Sie Ihre Koreanisch oder Zahlen";
$lang->filter->invalid_alpha = "Das Format von% s ist ungültig. Bitte geben Sie nur Alphabete";
$lang->filter->invalid_alpha_number = "Das Format von% s ist ungültig. Bitte geben Sie Ihre Alphabete oder Zahlen";
$lang->filter->invalid_number = "Das Format von% s ist ungültig. Bitte geben Sie nur Zahlen";
$lang->security_warning_embed = "Due to security concern, administrators are not allowed to view embedded items.<BR /> To view them, please use another non-administrator ID.";
$lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
?>

View file

@ -67,11 +67,13 @@ $lang->cmd_layout_setup = 'レイアウト設定';
$lang->cmd_layout_edit = 'レイアウト編集';
$lang->cmd_search_by_ipaddress = 'IPアドレスで検索';
$lang->cmd_add_ip_to_spamfilter = 'スパムフィルターにIPを追加';
$lang->cmd_go_to_page = 'Go to page';
$lang->enable = '可能';
$lang->disable = '不可';
// 基本用語
$lang->favorite = 'Favorite';
$lang->menu = 'メニュー';
$lang->no = '番号';
$lang->notice = 'お知らせ';
@ -169,6 +171,8 @@ $lang->layout_manager = 'レイアウト管理';
$lang->use = '使用';
$lang->notuse = '未使用';
$lang->on = 'On';
$lang->off = 'Off';
$lang->not_exists = 'なし';
$lang->public = '公開';
@ -243,6 +247,7 @@ $lang->success_reset = '初期化しました。';
$lang->success_leaved = '退会しました。';
$lang->success_saved = '保存しました。';
$lang->fail_to_registed = '등록하지 못하였습니다.';
$lang->fail_to_delete = '削除に失敗しました。';
$lang->fail_to_move = '移動に失敗しました。';
@ -322,4 +327,4 @@ $lang->filter->invalid_number = '%sの形式が正しくありません。半角
$lang->security_warning_embed = "保安のため、管理者IDではEMBEDを見ることが出来ません。<br />他のIDでログインして下さい。";
$lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
?>
?>

View file

@ -1,301 +1,309 @@
<?php
/**
* @file common/lang/ko.lang.php
* @author NHN (developers@xpressengine.com)
* @brief Korean language pack (only the more basic)
**/
// By default, the action language used
$lang->cmd_write = '쓰기';
$lang->cmd_reply = '댓글';
$lang->cmd_delete = '삭제';
$lang->cmd_modify = '수정';
$lang->cmd_edit = '편집';
$lang->cmd_view = '보기';
$lang->cmd_view_all = '전체 보기';
$lang->cmd_list = '목록';
$lang->cmd_prev = '이전';
$lang->cmd_next = '다음';
$lang->cmd_send_trackback = '엮인글 발송';
$lang->cmd_registration = $lang->cmd_submit = '등록';
$lang->cmd_comment_registration = '댓글 등록';
$lang->cmd_insert = '추가';
$lang->cmd_save = '저장';
$lang->cmd_load = '불러오기';
$lang->cmd_input = '입력';
$lang->cmd_search = '검색';
$lang->cmd_find = '찾기';
$lang->cmd_replace = '바꾸기';
$lang->cmd_confirm = '확인';
$lang->cmd_cancel = '취소';
$lang->cmd_back = '돌아가기';
$lang->cmd_vote = '추천';
$lang->cmd_vote_down = '비추천';
$lang->cmd_declare = '신고';
$lang->cmd_cancel_declare = '신고 취소';
$lang->cmd_declared_list = '신고 목록';
$lang->cmd_copy = '복사';
$lang->cmd_move = '이동';
$lang->cmd_move_up = '위로';
$lang->cmd_move_down = '아래로';
$lang->cmd_add_indent = '들이기';
$lang->cmd_remove_indent = '빼내기';
$lang->cmd_management = '관리';
$lang->cmd_make = '생성';
$lang->cmd_select = '선택';
$lang->cmd_select_all = '모두 선택';
$lang->cmd_unselect_all = '모두 해제';
$lang->cmd_reverse_all = '선택 반전';
$lang->cmd_close_all = '모두 닫기';
$lang->cmd_open_all = '모두 열기';
$lang->cmd_reload = '다시 읽기';
$lang->cmd_close = '닫기';
$lang->cmd_open = '열기';
$lang->cmd_setup = '설정';
$lang->cmd_addition_setup = '추가 설정';
$lang->cmd_option = '옵션';
$lang->cmd_apply = '적용';
$lang->cmd_open_calendar = '날짜 선택';
$lang->cmd_send = '발송';
$lang->cmd_print = '인쇄';
$lang->cmd_scrap = '스크랩';
$lang->cmd_preview = '미리 보기';
$lang->cmd_reset = '초기화';
$lang->cmd_remake_cache = '캐시파일 재생성';
$lang->cmd_publish = '발행';
$lang->cmd_layout_setup = '레이아웃 설정';
$lang->cmd_layout_edit = '레이아웃 편집';
$lang->cmd_search_by_ipaddress = 'IP주소로 검색';
$lang->cmd_add_ip_to_spamfilter = '스팸필터에 IP추가';
$lang->cmd_pass_step = '이 단계를 생략';
$lang->cmd_complete = '완료';
$lang->enable = '가능';
$lang->disable = '불가능';
// Basic words
$lang->menu = '메뉴';
$lang->no = '번호';
$lang->notice = '공지';
$lang->secret = '비밀';
$lang->category = $lang->category_srl = '분류';
$lang->none_category = '분류 없음';
$lang->none_image = '이미지 없음';
$lang->document_srl = '문서번호';
$lang->user_id = '아이디';
$lang->author = '작성자';
$lang->password = '비밀번호';
$lang->password1 = '비밀번호';
$lang->password2 = '비밀번호 확인';
$lang->admin_id = '관리자ID';
$lang->writer = '글쓴이';
$lang->user_name = '이름';
$lang->nick_name = '닉네임';
$lang->email_address = '이메일 주소';
$lang->homepage = '홈페이지';
$lang->blog = '블로그';
$lang->birthday = '생일';
$lang->browser_title = '브라우저 제목';
$lang->title = '제목';
$lang->title_content = '제목+내용';
$lang->topic = '주제';
$lang->replies = '댓글';
$lang->content = '내용';
$lang->document = '문서';
$lang->comment = '댓글';
$lang->description = '설명';
$lang->trackback = '엮인글';
$lang->tag = '태그';
$lang->allow_comment = '댓글 허용';
$lang->lock_comment = '댓글 잠금';
$lang->allow_trackback = '엮인글 허용';
$lang->uploaded_file = '첨부';
$lang->grant = '권한';
$lang->target = '대상';
$lang->total = '전체';
$lang->total_count = '전체개수';
$lang->ipaddress = 'IP 주소';
$lang->path = '경로';
$lang->cart = '선택항목';
$lang->friend = '친구';
$lang->notify = '알림';
$lang->order_target = '정렬대상';
$lang->order_type = '정렬방법';
$lang->order_asc = '오름차순';
$lang->order_desc = '내림차순';
$lang->file = '파일';
$lang->mid = '모듈 이름';
$lang->sid = '가상 사이트 이름';
$lang->layout = '레이아웃';
$lang->mobile_layout = '모바일 레이아웃';
$lang->widget = '위젯 ';
$lang->module = '모듈';
$lang->skin = '스킨';
$lang->mobile_skin = '모바일 스킨';
$lang->colorset = '컬러셋';
$lang->extra_vars = '확장변수';
$lang->domain = '도메인';
$lang->url = 'URL';
$lang->document_url = '게시글 주소';
$lang->trackback_url = '엮인글 주소';
$lang->blog_name = '블로그 이름';
$lang->excerpt = '발췌';
$lang->document_count = '글 수';
$lang->page_count = '페이지 수';
$lang->list_count = '목록 수';
$lang->search_list_count = '검색 목록 수';
$lang->readed_count = '조회 수';
$lang->voted_count = '추천 수';
$lang->comment_count = '댓글 수';
$lang->member_count = '회원 수';
$lang->date = '날짜';
$lang->regdate = '등록일';
$lang->last_update = '최근 수정일';
$lang->last_post = '마지막 댓글';
$lang->signup_date = '가입일';
$lang->last_login = '최근 로그인';
$lang->first_page = '첫 페이지';
$lang->last_page = '끝 페이지';
$lang->search_target = '검색대상';
$lang->search_keyword = '검색어';
$lang->is_default = '기본';
$lang->no_documents = '등록된 글이 없습니다.';
$lang->board_manager = '게시판 관리';
$lang->member_manager = '회원 관리';
$lang->layout_manager = '레이아웃 관리';
$lang->use = '사용';
$lang->notuse = '미사용';
$lang->not_exists = '없음';
$lang->public = '공개';
$lang->private = '비공개';
$lang->unit_sec = '초';
$lang->unit_min = '분';
$lang->unit_hour = '시';
$lang->unit_day = '일';
$lang->unit_month = '월';
$lang->unit_year = '년';
$lang->unit_week = array(
'Monday' => '월',
'Tuesday' => '화',
'Wednesday' => '수',
'Thursday' => '목',
'Friday' => '금',
'Saturday' => '토',
'Sunday' => '일',
);
$lang->unit_meridiem = array(
'am' => '오전',
'pm' => '오후',
'AM' => '오전',
'PM' => '오후',
);
$lang->time_gap = array(
'min' => '%d 분 전',
'mins' => '%d 분 전',
'hour' => '%d 시간 전',
'hours' => '%d 시간 전',
);
// Descriptions
$lang->about_tag = '태그 입력 시 , (쉼표)를 이용하시면 복수 등록이 가능합니다.';
$lang->about_layout = '레이아웃은 모듈의 껍데기를 꾸며줍니다. 상단 레이아웃 메뉴에서 관리하실 수 있습니다.';
// Messages related to
$lang->msg_call_server = '서버에 요청중입니다. 잠시만 기다려주세요.';
$lang->msg_db_not_setted = 'DB설정이 되어 있지 않습니다.';
$lang->msg_dbconnect_failed = "DB접속 오류가 발생하였습니다.\nDB정보를 다시 확인해주세요.";
$lang->msg_invalid_queryid = 'Query ID값이 잘못 지정되었습니다.';
$lang->msg_not_permitted = '권한이 없습니다.';
$lang->msg_input_password = '비밀번호를 입력하세요.';
$lang->msg_invalid_document = '잘못된 문서번호입니다.';
$lang->msg_invalid_request = '잘못된 요청입니다.';
$lang->msg_invalid_password = '비밀번호가 올바르지 않습니다.';
$lang->msg_error_occured = '오류가 발생하였습니다.';
$lang->msg_not_founded = '대상을 찾을 수 없습니다.';
$lang->msg_no_result = '검색 결과가 없습니다.';
$lang->msg_fail_to_request_open = '요청하신 연결에 실패하였습니다.';
$lang->msg_invalid_format = '잘못된 형식입니다.';
$lang->msg_not_permitted_act = '요청하신 기능을 실행할 수 있는 권한이 없습니다.';
$lang->msg_module_is_not_exists = "요청하신 모듈을 찾을 수 없습니다.\n사이트 관리자에게 모듈 점검 요청 바랍니다";
$lang->msg_module_is_not_standalone = '요청하신 모듈은 독립적으로 동작할 수 없습니다.';
$lang->msg_default_url_is_not_defined = '기본 URL이 정해지지 않아서 동작을 중지합니다';
$lang->success_registed = '등록 되었습니다.';
$lang->success_declared = '신고 되었습니다.';
$lang->success_updated = '수정 되었습니다.';
$lang->success_deleted = '삭제되었습니다.';
$lang->success_restore = '복원 되었습니다.';
$lang->success_voted = '추천 되었습니다.';
$lang->success_blamed = '비추천 되었습니다.';
$lang->success_moved = '이동 되었습니다.';
$lang->success_sended = '발송 되었습니다.';
$lang->success_reset = '초기화 되었습니다.';
$lang->success_leaved = '탈퇴 되었습니다.';
$lang->success_saved = '저장 되었습니다.';
$lang->fail_to_delete = '삭제 실패하였습니다.';
$lang->fail_to_move = '이동 실패하였습니다.';
$lang->failed_voted = '추천 하실 수 없습니다.';
$lang->failed_blamed = '비추천 하실 수 없습니다.';
$lang->failed_declared = '신고 하실 수 없습니다.';
$lang->fail_to_delete_have_children = '댓글이 있어서 삭제할 수 없습니다.';
$lang->confirm_submit = '등록하시겠습니까?';
$lang->confirm_logout = '로그아웃하시겠습니까?';
$lang->confirm_vote = '추천하시겠습니까?';
$lang->confirm_delete = '삭제하시겠습니까?';
$lang->confirm_restore = '복원하시겠습니까?';
$lang->confirm_move = '이동하시겠습니까?';
$lang->confirm_reset = '초기화 하시겠습니까??';
$lang->confirm_leave = '탈퇴 하시겠습니까??';
$lang->confirm_update = '수정하시겠습니까?';
$lang->column_type = '형식';
$lang->column_type_list['text'] = '한줄 입력칸 (text)';
$lang->column_type_list['homepage'] = 'URL 형식';
$lang->column_type_list['email_address'] = '이메일 형식 (email)';
$lang->column_type_list['tel'] = '전화번호 형식 (phone)';
$lang->column_type_list['textarea'] = '여러 줄 입력칸 (textarea)';
$lang->column_type_list['checkbox'] = '다중 선택 (checkbox)';
$lang->column_type_list['select'] = '단일 선택 (select)';
$lang->column_type_list['radio'] = '라디오 버튼 (radio)';
$lang->column_type_list['kr_zip'] = '한국주소 (zip)';
$lang->column_type_list['date'] = '일자 (연월일)';
// $Lang-&gt; column_type_list ['jp_zip'] = 'Japanese Address (zip)';
$lang->column_name = '입력항목 이름';
$lang->column_title = '입력항목 제목';
$lang->default_value = '기본 값';
$lang->is_active = '활성';
$lang->is_required = '필수항목';
$lang->eid = '확장변수 이름';
// ftp-related
$lang->ftp_form_title = 'FTP 계정 정보 입력';
$lang->ftp = 'FTP';
$lang->ftp_host = 'FTP 서버 주소';
$lang->ftp_port = 'FTP port';
$lang->about_ftp_password = 'FTP Password는 저장되지 않습니다.';
$lang->cmd_check_ftp_connect = 'FTP 접속 확인';
$lang->about_ftp_info = "
FTP 정보는 다음 경우에 이용될 있습니다.<br />
1. PHP의 safe_mode=On일 경우, FTP 정보를 이용해서 XE가 정상적으로 동작할 있게 합니다.<br />
2. 자동 업데이트 등에서 FTP 정보를 이용할 있습니다.<br />
FTP정보는 files/config/ftp.config.php 파일 내에 정보가 저장됩니다.<br />
설치 관리자 페이지에서 FTP 정보를 변경하거나 제거할 있습니다.<br />
";
$lang->msg_safe_mode_ftp_needed = 'PHP의 <strong>safe_mode=On</strong>일 경우 XE의 정상적인 동작을 돕습니다.';
$lang->msg_safe_mode_ftp_needed2 = '모듈의 쉬운 설치 또는 업데이트가 가능해 집니다.';
$lang->msg_safe_mode_ftp_config = '이 정보는 <strong>files/config/ftp.config.php</strong> 파일에 저장 됩니다. 설치 후 환경설정 페이지에서도 등록, 변경, 제거 할 수 있습니다.';
$lang->msg_ftp_not_connected = 'localhost로의 FTP 접속 오류가 발생하였습니다. FTP 포트 번호를 확인해주시거나 FTP 서비스가 가능한지 확인해주세요.';
$lang->msg_ftp_invalid_auth_info = '입력하신 FTP 정보로 로그인을 하지 못했습니다. FTP정보를 확인해주세요.';
$lang->msg_ftp_mkdir_fail = 'FTP를 이용한 디렉토리 생성 명령에 실패하였습니다. FTP 서버의 설정을 확인해주세요.';
$lang->msg_ftp_chmod_fail = 'FTP를 이용한 디렉토리의 속성 변경에 실패하였습니다. FTP 서버의 설정을 확인해주세요.';
$lang->msg_ftp_connect_success = 'FTP 접속 및 인증에 성공하였습니다.';
$lang->ftp_path_title = 'FTP 경로 정보 입력';
$lang->msg_ftp_installed_realpath = '설치된 XE의 절대경로';
$lang->msg_ftp_installed_ftp_realpath = '설치된 XE의 FTP 경로 설정';
// xml filter for use in the javascript alert msg
$lang->filter->isnull = '%s을 입력해주세요.';
$lang->filter->outofrange = '%s의 글자 수를 맞추어 주세요.';
$lang->filter->equalto = '%s이 잘못되었습니다.';
$lang->filter->invalid_email = '%s의 형식이 잘못되었습니다. (예: xe@xpressengine.com)';
$lang->filter->invalid_user_id = $lang->filter->invalid_userid = "%s의 형식이 잘못되었습니다.\\n영문, 숫자와 _로 만드실 수 있으며, 첫 글자는 영문이어야 합니다.";
$lang->filter->invalid_homepage = '%s의 형식이 잘못되었습니다. (예: http://www.xpressengine.com)';
$lang->filter->invalid_korean = '%s의 형식이 잘못되었습니다. 한글로만 입력하셔야 합니다.';
$lang->filter->invalid_korean_number = '%s의 형식이 잘못되었습니다. 한글과 숫자로만 입력하셔야 합니다.';
$lang->filter->invalid_alpha = '%s의 형식이 잘못되었습니다. 영문으로만 입력하셔야 합니다.';
$lang->filter->invalid_alpha_number = '%s의 형식이 잘못되었습니다. 영문과 숫자로만 입력하셔야 합니다.';
$lang->filter->invalid_number = '%s의 형식이 잘못되었습니다. 숫자로만 입력하셔야 합니다.';
$lang->security_warning_embed = "보안 문제로 관리자 아이디로는 embed를 볼 수 없습니다. 확인하시려면 다른 아이디로 접속하세요";
$lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
/**
* @file common/lang/ko.lang.php
* @author NHN (developers@xpressengine.com)
* @brief Korean language pack (only the more basic)
**/
// By default, the action language used
$lang->cmd_write = '쓰기';
$lang->cmd_reply = '댓글';
$lang->cmd_delete = '삭제';
$lang->cmd_modify = '수정';
$lang->cmd_edit = '편집';
$lang->cmd_view = '보기';
$lang->cmd_view_all = '전체 보기';
$lang->cmd_list = '목록';
$lang->cmd_prev = '이전';
$lang->cmd_next = '다음';
$lang->cmd_send_trackback = '엮인글 발송';
$lang->cmd_registration = $lang->cmd_submit = '등록';
$lang->cmd_comment_registration = '댓글 등록';
$lang->cmd_insert = '추가';
$lang->cmd_save = '저장';
$lang->cmd_load = '불러오기';
$lang->cmd_input = '입력';
$lang->cmd_search = '검색';
$lang->cmd_find = '찾기';
$lang->cmd_replace = '바꾸기';
$lang->cmd_confirm = '확인';
$lang->cmd_cancel = '취소';
$lang->cmd_back = '돌아가기';
$lang->cmd_vote = '추천';
$lang->cmd_vote_down = '비추천';
$lang->cmd_declare = '신고';
$lang->cmd_cancel_declare = '신고 취소';
$lang->cmd_declared_list = '신고 목록';
$lang->cmd_copy = '복사';
$lang->cmd_move = '이동';
$lang->cmd_move_up = '위로';
$lang->cmd_move_down = '아래로';
$lang->cmd_add_indent = '들이기';
$lang->cmd_remove_indent = '빼내기';
$lang->cmd_management = '관리';
$lang->cmd_make = '생성';
$lang->cmd_select = '선택';
$lang->cmd_select_all = '모두 선택';
$lang->cmd_unselect_all = '모두 해제';
$lang->cmd_reverse_all = '선택 반전';
$lang->cmd_close_all = '모두 닫기';
$lang->cmd_open_all = '모두 열기';
$lang->cmd_reload = '다시 읽기';
$lang->cmd_close = '닫기';
$lang->cmd_open = '열기';
$lang->cmd_setup = '설정';
$lang->cmd_addition_setup = '추가 설정';
$lang->cmd_option = '옵션';
$lang->cmd_apply = '적용';
$lang->cmd_open_calendar = '날짜 선택';
$lang->cmd_send = '발송';
$lang->cmd_print = '인쇄';
$lang->cmd_scrap = '스크랩';
$lang->cmd_preview = '미리 보기';
$lang->cmd_reset = '초기화';
$lang->cmd_remake_cache = '캐시파일 재생성';
$lang->cmd_publish = '발행';
$lang->cmd_layout_setup = '레이아웃 설정';
$lang->cmd_layout_edit = '레이아웃 편집';
$lang->cmd_search_by_ipaddress = 'IP주소로 검색';
$lang->cmd_add_ip_to_spamfilter = '스팸필터에 IP추가';
$lang->cmd_pass_step = '이 단계를 생략';
$lang->cmd_complete = '완료';
$lang->cmd_go_to_page = '페이지 직접 이동';
$lang->enable = '가능';
$lang->disable = '불가능';
// Basic words
$lang->favorite = '즐겨찾기';
$lang->menu = '메뉴';
$lang->no = '번호';
$lang->notice = '공지';
$lang->secret = '비밀';
$lang->category = $lang->category_srl = '분류';
$lang->none_category = '분류 없음';
$lang->none_image = '이미지 없음';
$lang->document_srl = '문서번호';
$lang->user_id = '아이디';
$lang->author = '작성자';
$lang->password = '비밀번호';
$lang->password1 = '비밀번호';
$lang->password2 = '비밀번호 확인';
$lang->admin_id = '관리자ID';
$lang->writer = '글쓴이';
$lang->user_name = '이름';
$lang->nick_name = '닉네임';
$lang->email_address = '이메일 주소';
$lang->homepage = '홈페이지';
$lang->blog = '블로그';
$lang->birthday = '생일';
$lang->browser_title = '브라우저 제목';
$lang->title = '제목';
$lang->title_content = '제목+내용';
$lang->untitle = '제목없슴';
$lang->topic = '주제';
$lang->replies = '댓글';
$lang->content = '내용';
$lang->document = '문서';
$lang->comment = '댓글';
$lang->description = '설명';
$lang->trackback = '엮인글';
$lang->tag = '태그';
$lang->allow_comment = '댓글 허용';
$lang->lock_comment = '댓글 잠금';
$lang->allow_trackback = '엮인글 허용';
$lang->uploaded_file = '첨부';
$lang->grant = '권한';
$lang->target = '대상';
$lang->total = '전체';
$lang->total_count = '전체개수';
$lang->ipaddress = 'IP 주소';
$lang->path = '경로';
$lang->cart = '선택항목';
$lang->friend = '친구';
$lang->notify = '알림';
$lang->order_target = '정렬대상';
$lang->order_type = '정렬방법';
$lang->order_asc = '오름차순';
$lang->order_desc = '내림차순';
$lang->file = '파일';
$lang->mid = '모듈 이름';
$lang->sid = '가상 사이트 이름';
$lang->layout = '레이아웃';
$lang->mobile_layout = '모바일 레이아웃';
$lang->widget = '위젯 ';
$lang->module = '모듈';
$lang->skin = '스킨';
$lang->mobile_skin = '모바일 스킨';
$lang->colorset = '컬러셋';
$lang->extra_vars = '확장변수';
$lang->domain = '도메인';
$lang->url = 'URL';
$lang->document_url = '게시글 주소';
$lang->trackback_url = '엮인글 주소';
$lang->blog_name = '블로그 이름';
$lang->excerpt = '발췌';
$lang->document_count = '글 수';
$lang->page_count = '페이지 수';
$lang->list_count = '목록 수';
$lang->search_list_count = '검색 목록 수';
$lang->readed_count = '조회 수';
$lang->voted_count = '추천 수';
$lang->comment_count = '댓글 수';
$lang->member_count = '회원 수';
$lang->date = '날짜';
$lang->regdate = '등록일';
$lang->last_update = '최근 수정일';
$lang->last_post = '마지막 댓글';
$lang->signup_date = '가입일';
$lang->last_login = '최근 로그인';
$lang->first_page = '첫 페이지';
$lang->last_page = '끝 페이지';
$lang->search_target = '검색대상';
$lang->search_keyword = '검색어';
$lang->is_default = '기본';
$lang->no_documents = '등록된 글이 없습니다.';
$lang->board_manager = '게시판 관리';
$lang->member_manager = '회원 관리';
$lang->layout_manager = '레이아웃 관리';
$lang->use = '사용';
$lang->notuse = '미사용';
$lang->on = '켜짐';
$lang->off = '꺼짐';
$lang->not_exists = '없음';
$lang->public = '공개';
$lang->private = '비공개';
$lang->etc = '기타';
$lang->unit_sec = '초';
$lang->unit_min = '분';
$lang->unit_hour = '시';
$lang->unit_day = '일';
$lang->unit_month = '월';
$lang->unit_year = '년';
$lang->unit_week = array(
'Monday' => '월',
'Tuesday' => '화',
'Wednesday' => '수',
'Thursday' => '목',
'Friday' => '금',
'Saturday' => '토',
'Sunday' => '일',
);
$lang->unit_meridiem = array(
'am' => '오전',
'pm' => '오후',
'AM' => '오전',
'PM' => '오후',
);
$lang->time_gap = array(
'min' => '%d 분 전',
'mins' => '%d 분 전',
'hour' => '%d 시간 전',
'hours' => '%d 시간 전',
);
// Descriptions
$lang->about_tag = '태그 입력 시 , (쉼표)를 이용하시면 복수 등록이 가능합니다.';
$lang->about_layout = '레이아웃은 모듈의 껍데기를 꾸며줍니다. 상단 레이아웃 메뉴에서 관리하실 수 있습니다.';
// Messages related to
$lang->msg_call_server = '서버에 요청중입니다. 잠시만 기다려주세요.';
$lang->msg_db_not_setted = 'DB설정이 되어 있지 않습니다.';
$lang->msg_dbconnect_failed = "DB접속 오류가 발생하였습니다.\nDB정보를 다시 확인해주세요.";
$lang->msg_invalid_queryid = 'Query ID값이 잘못 지정되었습니다.';
$lang->msg_not_permitted = '권한이 없습니다.';
$lang->msg_input_password = '비밀번호를 입력하세요.';
$lang->msg_invalid_document = '잘못된 문서번호입니다.';
$lang->msg_invalid_request = '잘못된 요청입니다.';
$lang->msg_invalid_password = '비밀번호가 올바르지 않습니다.';
$lang->msg_error_occured = '오류가 발생하였습니다.';
$lang->msg_not_founded = '대상을 찾을 수 없습니다.';
$lang->msg_no_result = '검색 결과가 없습니다.';
$lang->msg_fail_to_request_open = '요청하신 연결에 실패하였습니다.';
$lang->msg_invalid_format = '잘못된 형식입니다.';
$lang->msg_not_permitted_act = '요청하신 기능을 실행할 수 있는 권한이 없습니다.';
$lang->msg_module_is_not_exists = "요청하신 모듈을 찾을 수 없습니다.\n사이트 관리자에게 모듈 점검 요청 바랍니다";
$lang->msg_module_is_not_standalone = '요청하신 모듈은 독립적으로 동작할 수 없습니다.';
$lang->msg_default_url_is_not_defined = '기본 URL이 정해지지 않아서 동작을 중지합니다';
$lang->success_registed = '등록 되었습니다.';
$lang->success_declared = '신고 되었습니다.';
$lang->success_updated = '수정 되었습니다.';
$lang->success_deleted = '삭제되었습니다.';
$lang->success_restore = '복원 되었습니다.';
$lang->success_voted = '추천 되었습니다.';
$lang->success_blamed = '비추천 되었습니다.';
$lang->success_moved = '이동 되었습니다.';
$lang->success_sended = '발송 되었습니다.';
$lang->success_reset = '초기화 되었습니다.';
$lang->success_leaved = '탈퇴 되었습니다.';
$lang->success_saved = '저장 되었습니다.';
$lang->fail_to_registed = '등록하지 못하였습니다.';
$lang->fail_to_delete = '삭제 실패하였습니다.';
$lang->fail_to_move = '이동 실패하였습니다.';
$lang->failed_voted = '추천 하실 수 없습니다.';
$lang->failed_blamed = '비추천 하실 수 없습니다.';
$lang->failed_declared = '신고 하실 수 없습니다.';
$lang->fail_to_delete_have_children = '댓글이 있어서 삭제할 수 없습니다.';
$lang->confirm_submit = '등록하시겠습니까?';
$lang->confirm_logout = '로그아웃하시겠습니까?';
$lang->confirm_vote = '추천하시겠습니까?';
$lang->confirm_delete = '삭제하시겠습니까?';
$lang->confirm_restore = '복원하시겠습니까?';
$lang->confirm_move = '이동하시겠습니까?';
$lang->confirm_reset = '초기화 하시겠습니까??';
$lang->confirm_leave = '탈퇴 하시겠습니까??';
$lang->confirm_update = '수정하시겠습니까?';
$lang->column_type = '형식';
$lang->column_type_list['text'] = '한줄 입력칸 (text)';
$lang->column_type_list['homepage'] = 'URL 형식';
$lang->column_type_list['email_address'] = '이메일 형식 (email)';
$lang->column_type_list['tel'] = '전화번호 형식 (phone)';
$lang->column_type_list['textarea'] = '여러 줄 입력칸 (textarea)';
$lang->column_type_list['checkbox'] = '다중 선택 (checkbox)';
$lang->column_type_list['select'] = '단일 선택 (select)';
$lang->column_type_list['radio'] = '라디오 버튼 (radio)';
$lang->column_type_list['kr_zip'] = '한국주소 (zip)';
$lang->column_type_list['date'] = '일자 (연월일)';
// $Lang-&gt; column_type_list ['jp_zip'] = 'Japanese Address (zip)';
$lang->column_name = '입력항목 이름';
$lang->column_title = '입력항목 제목';
$lang->default_value = '기본 값';
$lang->is_active = '활성';
$lang->is_required = '필수항목';
$lang->eid = '확장변수 이름';
// ftp-related
$lang->ftp_form_title = 'FTP 계정 정보 입력';
$lang->ftp = 'FTP';
$lang->ftp_host = 'FTP 서버 주소';
$lang->ftp_port = 'FTP port';
$lang->about_ftp_password = 'FTP Password는 저장되지 않습니다.';
$lang->cmd_check_ftp_connect = 'FTP 접속 확인';
$lang->about_ftp_info = "
FTP 정보는 다음 경우에 이용될 있습니다.<br />
1. PHP의 safe_mode=On일 경우, FTP 정보를 이용해서 XE가 정상적으로 동작할 있게 합니다.<br />
2. 자동 업데이트 등에서 FTP 정보를 이용할 있습니다.<br />
FTP정보는 files/config/ftp.config.php 파일 내에 정보가 저장됩니다.<br />
설치 관리자 페이지에서 FTP 정보를 변경하거나 제거할 있습니다.<br />
";
$lang->msg_safe_mode_ftp_needed = 'PHP의 <strong>safe_mode=On</strong>일 경우 XE의 정상적인 동작을 돕습니다.';
$lang->msg_safe_mode_ftp_needed2 = '모듈의 쉬운 설치 또는 업데이트가 가능해 집니다.';
$lang->msg_safe_mode_ftp_config = '이 정보는 <strong>files/config/ftp.config.php</strong> 파일에 저장 됩니다. 설치 후 환경설정 페이지에서도 등록, 변경, 제거 할 수 있습니다.';
$lang->msg_ftp_not_connected = 'localhost로의 FTP 접속 오류가 발생하였습니다. FTP 포트 번호를 확인해주시거나 FTP 서비스가 가능한지 확인해주세요.';
$lang->msg_ftp_invalid_auth_info = '입력하신 FTP 정보로 로그인을 하지 못했습니다. FTP정보를 확인해주세요.';
$lang->msg_ftp_mkdir_fail = 'FTP를 이용한 디렉토리 생성 명령에 실패하였습니다. FTP 서버의 설정을 확인해주세요.';
$lang->msg_ftp_chmod_fail = 'FTP를 이용한 디렉토리의 속성 변경에 실패하였습니다. FTP 서버의 설정을 확인해주세요.';
$lang->msg_ftp_connect_success = 'FTP 접속 및 인증에 성공하였습니다.';
$lang->ftp_path_title = 'FTP 경로 정보 입력';
$lang->msg_ftp_installed_realpath = '설치된 XE의 절대경로';
$lang->msg_ftp_installed_ftp_realpath = '설치된 XE의 FTP 경로 설정';
// xml filter for use in the javascript alert msg
$lang->filter->isnull = '%s에 값을 입력해주세요.';
$lang->filter->outofrange = '%s의 글자 수를 맞추어 주세요.';
$lang->filter->equalto = '%s이(가) 잘못되었습니다.';
$lang->filter->invalid = '%s의 값이 올바르지 않습니다.';
$lang->filter->invalid_email = '%s의 값은 올바른 메일 주소가 아닙니다.';
$lang->filter->invalid_user_id = $lang->filter->invalid_userid = "%s의 값은 영문, 숫자, _만 가능하며 첫 글자는 영문이어야 합니다.";
$lang->filter->invalid_url = $lang->filter->invalid_homepage = '%s의 형식이 잘못되었습니다. (예: http://www.xpressengine.com)';
$lang->filter->invalid_korean = '%s의 형식이 잘못되었습니다. 한글로만 입력하셔야 합니다.';
$lang->filter->invalid_korean_number = '%s의 형식이 잘못되었습니다. 한글과 숫자로만 입력하셔야 합니다.';
$lang->filter->invalid_alpha = '%s의 형식이 잘못되었습니다. 영문으로만 입력하셔야 합니다.';
$lang->filter->invalid_alpha_number = '%s의 형식이 잘못되었습니다. 영문과 숫자로만 입력하셔야 합니다.';
$lang->filter->invalid_number = '%s의 형식이 잘못되었습니다. 숫자로만 입력하셔야 합니다.';
$lang->security_warning_embed = "보안 문제로 관리자 아이디로는 embed를 볼 수 없습니다. 확인하시려면 다른 아이디로 접속하세요";
$lang->msg_pc_to_mobile = '모바일에 최적화된 화면으로 보기';
?>

View file

@ -1,11 +1,12 @@
en,English
ko,한국어
zh-CN,中文(中国)
jp,日本語
es,Español
ru,Русский
fr,Français
zh-CN,中文(中国)
zh-TW,中文(臺灣)
fr,Français
de,Deutsche Sprache
ru,Русский
es,Español
tr,Turkey
vi,Tiếng Việt
mn,Mongolian
tr,Turkey

View file

@ -67,11 +67,13 @@ $lang->cmd_layout_setup = 'Лэйаут тохируулах';
$lang->cmd_layout_edit = 'Лэйаут өөрчлөх';
$lang->cmd_search_by_ipaddress = 'IP хаягаар хайх';
$lang->cmd_add_ip_to_spamfilter = 'Спэм филтерт IPнэмэх';
$lang->cmd_go_to_page = 'Go to page';
$lang->enable = 'Боломжтой';
$lang->disable = 'Боломжгүй';
// 기본 단어
$lang->favorite = 'Favorite';
$lang->menu = 'Menu';
$lang->no = 'Дугаар';
$lang->notice = 'Зарлал';
@ -170,6 +172,8 @@ $lang->layout_manager = 'Лэйаут удирдах';
$lang->use = 'Хэрэглэх';
$lang->notuse = 'Хэрэглэхгүй';
$lang->on = 'On';
$lang->off = 'Off';
$lang->not_exists = 'Байхгүй';
$lang->public = 'Нийтийн';
@ -243,6 +247,7 @@ $lang->success_reset = 'Reset';
$lang->success_leaved = 'Гишүүнээс гарсан';
$lang->success_saved = 'Хадгалагдсан';
$lang->fail_to_registed = '등록하지 못하였습니다.';
$lang->fail_to_delete = 'Устгалт амжилтгүй боллоо';
$lang->fail_to_move = 'Шилжилт амжилтгүй боллоо';
@ -317,4 +322,4 @@ $lang->filter->invalid_number = '%s-ын хэлбэр буруу байна. З
$lang->security_warning_embed = "Due to security concern, administrators are not allowed to view embedded items.<BR /> To view them, please use another non-administrator ID.";
$lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
?>
?>

View file

@ -67,11 +67,13 @@ $lang->cmd_layout_setup = 'Конфигурировать лейаут';
$lang->cmd_layout_edit = 'Редактировать лейаут';
$lang->cmd_search_by_ipaddress = 'Искать по IP адресу';
$lang->cmd_add_ip_to_spamfilter = 'Добавить IP в спамфильтры';
$lang->cmd_go_to_page = 'Go to page';
$lang->enable = 'Включено';
$lang->disable = 'Выключено';
// Основные слова
$lang->favorite = 'Favorite';
$lang->menu = 'Меню';
$lang->no = 'No.';
$lang->notice = 'Уведомление';
@ -169,6 +171,8 @@ $lang->layout_manager = 'Настройки лейаута';
$lang->use = 'Использовать';
$lang->notuse = 'Не использовать';
$lang->on = 'On';
$lang->off = 'Off';
$lang->not_exists = "Отсутствует";
$lang->public = 'Показать всем';
@ -243,6 +247,7 @@ $lang->success_reset = 'Сброшено успешно';
$lang->success_leaved = 'Пользователь удален';
$lang->success_saved = 'Сохранено успешно';
$lang->fail_to_registed = '등록하지 못하였습니다.';
$lang->fail_to_delete = 'Не может быть удалено';
$lang->fail_to_move = 'Перемещение невозможно';
@ -321,4 +326,4 @@ $lang->filter->invalid_number = "The format of %s is invalid. Please input numbe
$lang->security_warning_embed = "Due to security concern, administrators are not allowed to view embedded items.<BR /> To view them, please use another non-administrator ID.";
$lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
?>
?>

View file

@ -67,11 +67,13 @@ $lang->cmd_layout_setup = 'Yerleşim düzenini yapılandır';
$lang->cmd_layout_edit = 'Yerleşim düzeninin düzenle';
$lang->cmd_search_by_ipaddress = 'IP Adresiyle ara';
$lang->cmd_add_ip_to_spamfilter = 'Spamfilter\'a IPyi ekle';
$lang->cmd_go_to_page = 'Go to page';
$lang->enable = 'Seçilir kıl';
$lang->disable = 'Seçilemez kıl';
// Essential Words
$lang->favorite = 'Favorite';
$lang->menu = 'Menü';
$lang->no = 'No';
$lang->notice = 'Duyuru';
@ -169,6 +171,8 @@ $lang->layout_manager = 'Yerleşim düzeni ayarları';
$lang->use = 'Etkin';
$lang->notuse = 'Devredışı';
$lang->on = 'On';
$lang->off = 'Off';
$lang->not_exists = "mevcut değil";
$lang->public = 'Genel';
@ -242,6 +246,7 @@ $lang->success_reset = 'Başarıyla Tekrar Kuruldu.';
$lang->success_leaved = 'Tüm üye verileri tamamen silindi.';
$lang->success_saved = 'Başarıyla Kaydedildi.';
$lang->fail_to_registed = '등록하지 못하였습니다.';
$lang->fail_to_delete = 'Silinemedi';
$lang->fail_to_move = 'Taşınamadı';
@ -320,4 +325,4 @@ $lang->filter->invalid_number = "%s biçimi geçersiz . Lütfen sadece numaralar
$lang->security_warning_embed = "Güvenlik nedeniyle, yöneticiler yerleşik öğeleri görüntülemeye yetkili değildirler.<BR /> Yerleşik öğeleri görüntüleyebilmek için, lütfen yönetici olmayan bir hesap kullanın.";
$lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
?>
?>

View file

@ -66,11 +66,13 @@ $lang->cmd_layout_setup = 'Cài đặt giao diện';
$lang->cmd_layout_edit = 'Sửa giao diện';
$lang->cmd_search_by_ipaddress = 'Tìm kiếm IP';
$lang->cmd_add_ip_to_spamfilter = 'Thêm IP vào bộ lọc';
$lang->cmd_go_to_page = 'Go to page';
$lang->enable = 'Bật';
$lang->disable = 'Tắt';
// Essential Words
$lang->favorite = 'Favorite';
$lang->menu = 'Menu';
$lang->no = 'STT';
$lang->notice = 'Chú ý';
@ -165,6 +167,8 @@ $lang->layout_manager = 'Quản lý giao diện';
$lang->use = 'Sử dụng';
$lang->notuse = 'Không sử dụng';
$lang->on = 'On';
$lang->off = 'Off';
$lang->not_exists = "Không tồn tại";
$lang->public = 'Công khai';
@ -235,6 +239,7 @@ $lang->success_reset = 'Đã thiết lập lại thành công.';
$lang->success_leaved = 'Đã xóa tất cả các thành viên.';
$lang->success_saved = 'Đã lưu thành công.';
$lang->fail_to_registed = '등록하지 못하였습니다.';
$lang->fail_to_delete = 'Không thể xóa.';
$lang->fail_to_move = 'Không thể chuyển.';
@ -310,4 +315,4 @@ $lang->filter->invalid_number = "Định dạng của %s không hợp lệ. Ch
$lang->security_warning_embed = "Vì vấn đề bảo mật, nên Administrator không được phép xem các mục đã nhúng mã.<BR /> Để xem được chúng, hãy sử dụng một tên truy cập khác không có quyền quản trị.";
$lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
?>
?>

View file

@ -67,11 +67,13 @@ $lang->cmd_layout_setup = '布局设置';
$lang->cmd_layout_edit = '编辑布局';
$lang->cmd_search_by_ipaddress = '以IP地址搜索';
$lang->cmd_add_ip_to_spamfilter = '禁止IP';
$lang->cmd_go_to_page = 'Go to page';
$lang->enable = '可用';
$lang->disable = '禁用';
// 基本词语
$lang->favorite = 'Favorite';
$lang->menu = '菜单';
$lang->no = '编号';
$lang->notice = '公告';
@ -169,6 +171,8 @@ $lang->layout_manager = '布局管理';
$lang->use = '使用';
$lang->notuse = '未使用';
$lang->on = 'On';
$lang->off = 'Off';
$lang->not_exists = '无';
$lang->public = '公开';
@ -243,6 +247,7 @@ $lang->success_reset = '初始化成功 !';
$lang->success_leaved = '注销成功!';
$lang->success_saved = '保存成功!';
$lang->fail_to_registed = '등록하지 못하였습니다.';
$lang->fail_to_delete = '删除成功!';
$lang->fail_to_move = '移动成功!';
@ -321,4 +326,4 @@ $lang->filter->invalid_number = '%s只能输入数字';
$lang->security_warning_embed = "由于安全问题不允许用系统管理员ID操作embed对象请使用其他拥有管理权限的ID操作。";
$lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
?>
?>

View file

@ -67,11 +67,13 @@ $lang->cmd_layout_setup = '版面設置';
$lang->cmd_layout_edit = '版面編輯';
$lang->cmd_search_by_ipaddress = '以 IP 搜尋';
$lang->cmd_add_ip_to_spamfilter = '封鎖此 IP';
$lang->cmd_go_to_page = 'Go to page';
$lang->enable = '可用';
$lang->disable = '禁用';
// 基本詞語
$lang->favorite = 'Favorite';
$lang->menu = '選單';
$lang->no = '編號';
$lang->notice = '公告';
@ -169,6 +171,8 @@ $lang->layout_manager = '版面管理';
$lang->use = '使用';
$lang->notuse = '未使用';
$lang->on = 'On';
$lang->off = 'Off';
$lang->not_exists = '無';
$lang->public = '公開';
@ -243,6 +247,7 @@ $lang->success_reset = '重設成功!';
$lang->success_leaved = '成功退出!';
$lang->success_saved = '儲存成功!';
$lang->fail_to_registed = '등록하지 못하였습니다.';
$lang->fail_to_delete = '刪除成功!';
$lang->fail_to_move = '移動成功!';
@ -321,4 +326,4 @@ $lang->filter->invalid_number = '%s只能輸入數字';
$lang->security_warning_embed = "由於安全的關係,管理員無法檢視嵌入的物件。<BR /> 請使用其他非管理員帳號檢視。";
$lang->msg_pc_to_mobile = '此頁面有手機頁面,要移至手機頁面嗎?';
?>
?>

View file

@ -2,7 +2,7 @@
<!--@if($db_info->use_html5=='Y')-->
<!DOCTYPE html>
<!--@else-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" cond="$use_html5!='Y'">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--@end-->
<html lang="{Context::getLangType()}" xml:lang="{Context::getLangType()}" xmlns="http://www.w3.org/1999/xhtml">
<head>
@ -26,24 +26,26 @@
<title>{Context::getBrowserTitle()}</title>
{@ $css_files = Context::getCssFile() }
<!--@foreach($css_files as $key => $css_file)-->
<!--@if($css_file['targetie'])-->
<!--[if {$css_file['targetie']}]>
<!--@end-->
<link rel="stylesheet" href="{$css_file['file']}?{__ZBXE_VERSION__}" type="text/css" charset="UTF-8" media="{$css_file['media']}" />
<!--@if($css_file['targetie'])-->
<![endif]-->
<!--@end-->
<!--@if($css_file['targetie'])-->
<!--[if {$css_file['targetie']}]>
<!--@end-->
<link rel="stylesheet" href="{$css_file['file']}?{__ZBXE_VERSION__}" type="text/css" charset="UTF-8" media="{$css_file['media']}" />
<!--@if($css_file['targetie'])-->
<![endif]-->
<!--@end-->
<!--@end-->
{@ $js_files = Context::getJsFile() }
<!--@foreach($js_files as $key => $js_file)-->
<!--@if($js_file['targetie'])-->
<!--[if {$js_file['targetie']}]>
<!--@end-->
<script type="text/javascript" src="{$js_file['file']}?{__ZBXE_VERSION__}"></script>
<!--@if($js_file['targetie'])-->
<![endif]-->
<!--@end-->
<!--@if($js_file['targetie'])-->
<!--[if {$js_file['targetie']}]>
<!--@end-->
<script type="text/javascript" src="{$js_file['file']}?{__ZBXE_VERSION__}"></script>
<!--@if($js_file['targetie'])-->
<![endif]-->
<!--@end-->
<!--@end-->
<script type="text/javascript" src="../js/html5.js" cond="$db_info->use_html5=='Y'"></script>
<!--@if($rss_url)-->
<link rel="alternate" type="application/rss+xml" title="RSS" href="{$rss_url}" />
<link rel="alternate" type="application/atom+xml" title="Atom" href="{$atom_url}" />

View file

@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="{Context::getLangType()}" xml:lang="{Context::getLangType()}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=yes, target-densitydpi=medium-dpi" />
<title>{Context::getBrowserTitle()}</title>
{@ $css_files = Context::getCssFile() }
<!--@foreach($css_files as $key => $css_file)-->

View file

@ -5,7 +5,7 @@
* @brief set the include of the class file and other environment configurations
**/
@error_reporting((E_ALL ^ E_NOTICE) ^ E_DEPRECATED);
@error_reporting(E_ALL ^ E_NOTICE);
if(!defined('__ZBXE__')) exit();
@ -25,6 +25,16 @@
**/
ini_set('session.use_only_cookies', 0);
if(file_exists(_XE_PATH_.'config/package.inc.php')) {
require _XE_PATH_.'config/package.inc.php';
} else {
define('_XE_PACKAGE_','XE');
define('_XE_LOCATION_','en');
define('_XE_LOCATION_SITE_','http://www.xpressengine.org/');
define('_XE_DOWNLOAD_SERVER_','http://en.download.xpressengine.com/');
}
/**
* @brief user configuration files which override the default settings
* save the following information into config/config.user.inc.php
@ -51,7 +61,7 @@
* 2: output execute time, Request/Response info
* 4: output DB query history
**/
if(!defined('__DEBUG__')) define('__DEBUG__', 4);
if(!defined('__DEBUG__')) define('__DEBUG__', 0);
/**
* @brief output location of debug message
@ -74,7 +84,7 @@
* 0: No output
* 1: files/_debug_db_query.php connected to the output
**/
if(!defined('__DEBUG_DB_OUTPUT__')) define('__DEBUG_DB_OUTPUT__', 1);
if(!defined('__DEBUG_DB_OUTPUT__')) define('__DEBUG_DB_OUTPUT__', 0);
/**
* @brief Query log for only timeout query among DB queries
@ -82,14 +92,14 @@
* = 0: leave a log when the slow query takes over specified seconds
* Log file is saved as ./files/_db_slow_query.php file
**/
if(!defined('__LOG_SLOW_QUERY__')) define('__LOG_SLOW_QUERY__', 1);
if(!defined('__LOG_SLOW_QUERY__')) define('__LOG_SLOW_QUERY__', 0);
/**
* @brief Leave DB query information
* 0: Do not add information to the query
* 1: Comment the XML Query ID
**/
if(!defined('__DEBUG_QUERY__')) define('__DEBUG_QUERY__', 1);
if(!defined('__DEBUG_QUERY__')) define('__DEBUG_QUERY__', 0);
/**
* @brief option to enable/disable a compression feature using ob_gzhandler
@ -97,7 +107,7 @@
* 1: Enabled
* Only particular servers may have a problem in IE browser when sending a compression
**/
if(!defined('__OB_GZHANDLER_ENABLE__')) define('__OB_GZHANDLER_ENABLE__', 0);
if(!defined('__OB_GZHANDLER_ENABLE__')) define('__OB_GZHANDLER_ENABLE__', 1);
/**
* @brief decide to use/not use the php unit test (Path/tests/index.php)

View file

@ -4,7 +4,7 @@
* @author NHN (developers@xpressengine.com)
* @brief admin controller class of addon modules
**/
include_once('addon.controller.php');
require_once(_XE_PATH_.'modules/addon/addon.controller.php');
class addonAdminController extends addonController {
@ -94,7 +94,5 @@
$args->site_srl = $site_srl;
return executeQuery('addon.updateSiteAddon', $args);
}
}
?>
?>

View file

@ -29,11 +29,13 @@
// Wanted to add a list of activated
$inserted_addons = $this->getInsertedAddons($site_srl);
// Downloaded and installed add-on to the list of Wanted
$searched_list = FileHandler::readDir('./addons');
$searched_list = FileHandler::readDir('./addons','/^([a-zA-Z0-9-_]+)$/');
$searched_count = count($searched_list);
if(!$searched_count) return;
sort($searched_list);
$oAddonAdminController = &getAdminController('addon');
for($i=0;$i<$searched_count;$i++) {
// Add the name of
$addon_name = $searched_list[$i];
@ -51,7 +53,6 @@
// Check if a permossion is granted entered in DB
if(!in_array($addon_name, array_keys($inserted_addons))) {
// If not, type in the DB type (model, perhaps because of the hate doing this haneungeo .. ㅡ. ㅜ)
$oAddonAdminController = &getAdminController('addon');
$oAddonAdminController->doInsert($addon_name, $site_srl);
// Is activated
} else {

View file

@ -11,4 +11,19 @@
<action name="procAddonSetupAddonAddMid" type="controller" />
<action name="procAddonSetupAddonDelMid" type="controller" />
</actions>
<menus>
<menu name="installedAddon">
<title xml:lang="en">Installed Addon</title>
<title xml:lang="ko">애드온</title>
<title xml:lang="zh-CN">Installed Addon</title>
<title xml:lang="jp">Installed Addon</title>
<title xml:lang="es">Installed Addon</title>
<title xml:lang="ru">Installed Addon</title>
<title xml:lang="fr">Installed Addon</title>
<title xml:lang="zh-TW">Installed Addon</title>
<title xml:lang="vi">Installed Addon</title>
<title xml:lang="mn">Installed Addon</title>
<title xml:lang="tr">Installed Addon</title>
</menu>
</menus>
</module>

View file

@ -79,5 +79,70 @@
header('Location: '.getNotEncodedUrl('', 'module','admin'));
}
function procAdminInsertThemeInfo(){
$vars = Context::getRequestVars();
$theme_file = _XE_PATH_.'files/theme/theme_info.php';
$theme_output = sprintf('$theme_info->theme=\'%s\';', $vars->themeItem);
$theme_output = $theme_output.sprintf('$theme_info->layout=%s;', $vars->layout);
$site_info = Context::get('site_module_info');
$args->site_srl = $site_info->site_srl;
$args->layout_srl = $vars->layout;
// layout submit
$output = executeQuery('layout.updateAllLayoutInSiteWithTheme', $args);
if (!$output->toBool()) return $output;
$skin_args->site_srl = $site_info->site_srl;
foreach($vars as $key=>$val){
$pos = strpos($key, '-skin');
if ($pos === false) continue;
if ($val != '__skin_none__'){
$module = substr($key, 0, $pos);
$theme_output = $theme_output.sprintf('$theme_info->skin_info[%s]=\'%s\';', $module, $val);
$skin_args->skin = $val;
$skin_args->module = $module;
if ($module == 'page')
{
$article_output = executeQueryArray('page.getArticlePageSrls');
if (count($article_output->data)>0){
$article_module_srls = array();
foreach($article_output->data as $val){
$article_module_srls[] = $val->module_srl;
}
$skin_args->module_srls = implode(',', $article_module_srls);
}
}
$skin_output = executeQuery('module.updateAllModuleSkinInSiteWithTheme', $skin_args);
if (!$skin_output->toBool()) return $skin_output;
$oModuleModel = &getModel('module');
$module_config = $oModuleModel->getModuleConfig($module, $site_info->site_srl);
$module_config->skin = $val;
$oModuleController = &getController('module');
$oModuleController->insertModuleConfig($module, $module_config, $site_info->site_srl);
}
}
$theme_buff = sprintf(
'<?php '.
'if(!defined("__ZBXE__")) exit(); '.
'%s'.
'?>',
$theme_output
);
// Save File
FileHandler::writeFile($theme_file, $theme_buff);
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAdminTheme');
header('location:'.$returnUrl);
return;
}
else return $output;
}
}
?>

View file

@ -3,6 +3,7 @@
class adminAdminModel extends admin
{
var $pwd;
var $gnbLangBuffer;
function getSFTPList()
{
@ -87,5 +88,246 @@
}
$this->add('list', $list);
}
}
?>
function getEnv($type='WORKING') {
$skip = array(
'ext' => array('pcre','json','hash','dom','session','spl','standard','date','ctype','tokenizer','apache2handler','filter','posix','reflection','pdo')
,'module' => array('addon','admin','autoinstall', 'comment', 'communication', 'counter', 'document', 'editor', 'file', 'importer', 'install', 'integration_search', 'layout', 'member', 'menu', 'message', 'module', 'opage', 'page', 'point', 'poll', 'rss', 'session', 'spamfilter', 'tag', 'trackback', 'trash', 'widget')
,'addon' => array('autolink', 'blogapi', 'captcha', 'counter', 'member_communication', 'member_extra_info', 'mobile', 'openid_delegation_id', 'point_level_icon', 'resize_image' )
);
$info = array();
$info['type'] = ($type !='INSTALL' ? 'WORKING' : 'INSTALL');
$info['location'] = _XE_LOCATION_;
$info['package'] = _XE_PACKAGE_;
$info['host'] = $db_type->default_url ? $db_type->default_url : getFullUrl();
$info['app'] = $_SERVER['SERVER_SOFTWARE'];
$info['php'] = phpversion();
$db_info = Context::getDBInfo();
$info['db_type'] = $db_info->db_type;
$info['use_rewrite'] = $db_info->use_rewrite;
$info['use_db_session'] = $db_info->use_db_session == 'Y' ?'Y':'N';
$info['use_ssl'] = $db_info->use_ssl;
$info['phpext'] = '';
foreach (get_loaded_extensions() as $ext) {
$ext = strtolower($ext);
if(in_array($ext, $skip['ext'])) continue;
$info['phpext'] .= '|'. $ext;
}
$info['phpext'] = substr($info['phpext'],1);
$info['module'] = '';
$oModuleModel = &getModel('module');
$module_list = $oModuleModel->getModuleList();
foreach($module_list as $module){
if(in_array($module->module, $skip['module'])) continue;
$info['module'] .= '|'.$module->module;
}
$info['module'] = substr($info['module'],1);
$info['addon'] = '';
$oAddonAdminModel = &getAdminModel('addon');
$addon_list = $oAddonAdminModel->getAddonList();
foreach($addon_list as $addon){
if(in_array($addon->addon, $skip['addon'])) continue;
$info['addon'] .= '|'.$addon->addon;
}
$info['addon'] = substr($info['addon'],1);
$param = '';
foreach($info as $k => $v){
if($v) $param .= sprintf('&%s=%s',$k,urlencode($v));
}
$param = substr($param, 1);
return $param;
}
function getThemeList(){
$path = _XE_PATH_.'themes';
$list = FileHandler::readDir($path);
$theme_info = array();
if(count($list) > 0){
foreach($list as $val){
$theme_info[$val] = $this->getThemeInfo($val);
}
}
return $theme_info;
}
function getThemeInfo($theme_name, $layout_list = null){
if ($GLOBALS['__ThemeInfo__'][$theme_name]) return $GLOBALS['__ThemeInfo__'][$theme_name];
$info_file = _XE_PATH_.'themes/'.$theme_name.'/conf/info.xml';
if(!file_exists($info_file)) return;
$oXmlParser = new XmlParser();
$_xml_obj = $oXmlParser->loadXmlFile($info_file);
if(!$_xml_obj->theme) return;
$xml_obj = $_xml_obj->theme;
if(!$_xml_obj->theme) return;
// 스킨이름
$theme_info->name = $theme_name;
$theme_info->title = $xml_obj->title->body;
$thumbnail = './themes/'.$theme_name.'/thumbnail.png';
$theme_info->thumbnail = (file_exists($thumbnail))?$thumbnail:null;
$theme_info->version = $xml_obj->version->body;
sscanf($xml_obj->date->body, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d);
$theme_info->date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
$theme_info->description = $xml_obj->description->body;
$theme_info->path = './themes/'.$theme_name.'/';
if(!is_array($xml_obj->publisher)) $publisher_list[] = $xml_obj->publisher;
else $publisher_list = $xml_obj->publisher;
foreach($publisher_list as $publisher) {
unset($publisher_obj);
$publisher_obj->name = $publisher->name->body;
$publisher_obj->email_address = $publisher->attrs->email_address;
$publisher_obj->homepage = $publisher->attrs->link;
$theme_info->publisher[] = $publisher_obj;
}
$skin_infos = $xml_obj->skininfos;
if(is_array($skin_infos->layoutinfo))$layout_path = $skin_infos->layoutinfo[0]->directory->attrs->path;
else $layout_path = $skin_infos->layoutinfo->directory->attrs->path;
$layout_parse = explode('/',$layout_path);
switch($layout_parse[1]){
case 'themes' : {
$layout_info->name = $theme_name.'.'.$layout_parse[count($layout_parse)-1];
break;
}
case 'layouts' : {
$layout_info->name = $layout_parse[count($layout_parse)-1];
break;
}
}
$layout_info->path = $layout_path;
$theme_info->layout_info = $layout_info;
$site_info = Context::get('site_module_info');
// check layout instance
$is_new_layout = true;
$oLayoutModel = &getModel('layout');
$layout_info_list = array();
$layout_list = $oLayoutModel->getLayoutList($site_info->site_srl);
if ($layout_list){
foreach($layout_list as $val){
if ($val->layout == $layout_info->name){
$is_new_layout = false;
break;
}
}
}
if ($is_new_layout){
$site_module_info = Context::get('site_module_info');
$args->site_srl = (int)$site_module_info->site_srl;
$args->layout_srl = getNextSequence();
$args->layout = $layout_info->name;
$args->title = $layout_info->name.'InTheme';
$args->layout_type = "P";
// Insert into the DB
$oLayoutAdminController = &getAdminController('layout');
$output = $oLayoutAdminController->insertLayout($args);
}
if(is_array($skin_infos->skininfo))$skin_list = $skin_infos->skininfo;
else $skin_list = array($skin_infos->skininfo);
$oModuleModel = &getModel('module');
$skins = array();
foreach($skin_list as $val){
unset($skin_info);
unset($skin_parse);
$skin_parse = explode('/',$val->directory->attrs->path);
switch($skin_parse[1]){
case 'themes' : {
$is_theme = true;
$module_name = $skin_parse[count($skin_parse)-1];
$skin_info->name = $theme_name.'.'.$module_name;
break;
}
case 'modules' : {
$is_theme = false;
$module_name = $skin_parse[2];
$skin_info->name = $skin_parse[count($skin_parse)-1];
break;
}
}
$skin_info->path = $val->directory->attrs->path;
$skins[$module_name] = $skin_info;
if ($is_theme){
if (!$GLOBALS['__ThemeModuleSkin__'][$module_name]) $GLOBALS['__ThemeModuleSkin__'][$module_name] = array();
$GLOBALS['__ThemeModuleSkin__'][$module_name][$skin_info->name] = $oModuleModel->loadSkinInfo($skin_info->path, '', '');
}
}
$theme_info->skin_infos = $skins;
$GLOBALS['__ThemeInfo__'][$theme_name] = $theme_info;
return $theme_info;
}
function getModulesSkinList(){
if ($GLOBALS['__ThemeModuleSkin__']['__IS_PARSE__']) return $GLOBALS['__ThemeModuleSkin__'];
$searched_list = FileHandler::readDir('./modules');
sort($searched_list);
$searched_count = count($searched_list);
if(!$searched_count) return;
$oModuleModel = &getModel('module');
foreach($searched_list as $val) {
$skin_list = $oModuleModel->getSkins('./modules/'.$val);
if (is_array($skin_list) && count($skin_list) > 0){
if(!$GLOBALS['__ThemeModuleSkin__'][$val]) $GLOBALS['__ThemeModuleSkin__'][$val] = array();
$GLOBALS['__ThemeModuleSkin__'][$val] = array_merge($GLOBALS['__ThemeModuleSkin__'][$val], $skin_list);
}
}
$GLOBALS['__ThemeModuleSkin__']['__IS_PARSE__'] = true;
return $GLOBALS['__ThemeModuleSkin__'];
}
function getAdminMenuLang()
{
$currentLang = Context::getLangType();
$cacheFile = sprintf('./files/cache/menu/adminMenu.%s.lang.php', $currentLang);
// Update if no cache file exists or it is older than xml file
if(!is_readable($cacheFile))
{
$oModuleModel = &getModel('module');
$installed_module_list = $oModuleModel->getModulesXmlInfo();
$this->gnbLangBuffer = '<?php ';
foreach($installed_module_list AS $key=>$value)
{
$moduleActionInfo = $oModuleModel->getModuleActionXml($value->module);
if(is_object($moduleActionInfo->menu))
{
foreach($moduleActionInfo->menu AS $key2=>$value2)
{
$lang->menu_gnb_sub[$key2] = $value2->title;
$this->gnbLangBuffer .=sprintf('$lang->menu_gnb_sub[\'%s\'] = \'%s\';', $key2, $value2->title);
}
}
}
$this->gnbLangBuffer .= ' ?>';
FileHandler::writeFile($cacheFile, $this->gnbLangBuffer);
}
else include $cacheFile;
return $lang->menu_gnb_sub;
}
}

View file

@ -7,6 +7,8 @@
class adminAdminView extends admin {
var $layout_list;
/**
* @brief Initilization
* @return none
@ -23,7 +25,7 @@
$this->setLayoutPath($this->getTemplatePath());
$this->setLayoutFile('layout.html');
$this->loadSideBar();
$this->makeGnbUrl();
// Retrieve the list of installed modules
@ -42,8 +44,66 @@
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);
$this->showSendEnv();
}
function makeGnbUrl($module = 'admin')
{
global $lang;
$oAdminAdminModel = &getAdminModel('admin');
$lang->menu_gnb_sub = $oAdminAdminModel->getAdminMenuLang();
$oMenuAdminModel = &getAdminModel('menu');
$menu_info = $oMenuAdminModel->getMenuByTitle('__XE_ADMIN__');
if(is_readable($menu_info->php_file))
include $menu_info->php_file;
else {
header('location:'.getNotEncodedUrl('', 'module', 'admin'));
return;
}
$oModuleModel = &getModel('module');
$moduleActionInfo = $oModuleModel->getModuleActionXml($module);
if(is_object($moduleActionInfo->menu))
{
$subMenuTitle = '';
foreach($moduleActionInfo->menu AS $key=>$value)
{
if($value->acts && in_array(Context::get('act'), $value->acts))
{
$subMenuTitle = $value->title;
break;
}
}
}
$parentSrl = 0;
if(is_array($menu->list))
{
foreach($menu->list AS $key=>$value)
{
$parentMenu = $value;
if(is_array($parentMenu['list']) && count($parentMenu['list']) > 0)
{
foreach($parentMenu['list'] AS $key2=>$value2)
{
$childMenu = $value2;
if($subMenuTitle == $childMenu['text'])
{
$parentSrl = $childMenu['parent_srl'];
break;
}
}
}
}
}
Context::set('gnbUrlList', $menu->list);
Context::set('parentSrl', $parentSrl);
}
function loadSideBar()
{
$oModuleModel = &getModel('module');
@ -353,5 +413,94 @@
Context::set('layout','none');
$this->setTemplateFile('config');
}
/**
* @brief Display Admin Menu Configuration(settings) page
* @return none
**/
function dispAdminMenuSetup()
{
$oMenuAdminModel = &getAdminModel('menu');
$output = $oMenuAdminModel->getMenuByTitle('__XE_ADMIN__');
Context::set('menu_srl', $output->menu_srl);
$this->setTemplateFile('menu_setup');
}
function showSendEnv() {
if(Context::getResponseMethod() != 'HTML') return;
$server = 'http://collect.xpressengine.com/env/img.php?';
$path = './files/env/';
$install_env = $path . 'install';
if(file_exists(FileHandler::getRealPath($install_env))) {
$oAdminAdminModel = &getAdminModel('admin');
$params = $oAdminAdminModel->getEnv('INSTALL');
$img = sprintf('<img src="%s" alt="" style="height:0px;width:0px" />', $server.$params);
Context::addHtmlFooter($img);
FileHandler::removeDir($path);
FileHandler::writeFile($path.__ZBXE_VERSION__,'1');
} else if($_SESSION['enviroment_gather']=='Y' && !file_exists($path.__ZBXE_VERSION__)) {
$oAdminAdminModel = &getAdminModel('admin');
$params = $oAdminAdminModel->getEnv();
$img = sprintf('<img src="%s" alt="" style="height:0px;width:0px" />', $server.$params);
Context::addHtmlFooter($img);
FileHandler::removeDir($path);
FileHandler::writeFile($path.__ZBXE_VERSION__,'1');
unset($_SESSION['enviroment_gather']);
}
}
function dispAdminTheme(){
// choice theme file
$theme_file = _XE_PATH_.'files/theme/theme_info.php';
if(is_readable($theme_file)){
@include($theme_file);
Context::set('current_layout', $theme_info->layout);
Context::set('theme_info', $theme_info);
}
else{
$oModuleModel = &getModel('module');
$default_mid = $oModuleModel->getDefaultMid();
Context::set('current_layout', $default_mid->layout_srl);
}
// layout list
$oLayoutModel = &getModel('layout');
// theme 정보 읽기
$oAdminModel = &getAdminModel('admin');
$theme_list = $oAdminModel->getThemeList();
$layouts = $oLayoutModel->getLayoutList(0);
$layout_list = array();
if (is_array($layouts)){
foreach($layouts as $val){
unset($layout_info);
$layout_info = $oLayoutModel->getLayout($val->layout_srl);
$layout_parse = explode('.', $layout_info->layout);
if (count($layout_parse) == 2){
$thumb_path = sprintf('./themes/%s/layout/%s/thumbnail.png', $layout_parse[0], $layout_parse[1]);
}
else{
$thumb_path = './layouts/'.$layout_info->layout.'/thumbnail.png';
}
$layout_info->thumbnail = (is_readable($thumb_path))?$thumb_path:null;
$layout_list[] = $layout_info;
}
}
// debugPrint($layout_list);
Context::set('theme_list', $theme_list);
Context::set('layout_list', $layout_list);
// 설치된module 정보 가져오기
$module_list = $oAdminModel->getModulesSkinList();
Context::set('module_list', $module_list);
$this->setTemplateFile('theme');
}
}
?>

View file

@ -6,6 +6,7 @@
**/
class admin extends ModuleObject {
var $xeMenuTitle;
/**
* @brief install admin module
@ -19,6 +20,15 @@
* @brief if update is necessary it returns true
**/
function checkUpdate() {
$this->xeMenuTitle = '__XE_ADMIN__';
$oMenuAdminModel = &getAdminModel('menu');
$output = $oMenuAdminModel->getMenuByTitle($this->xeMenuTitle);
if(!$output->menu_srl)
{
$this->_createXeAdminMenu();
}
return false;
}
@ -55,5 +65,136 @@
}
$directory->close();
}
/**
* @brief regenerate xe admin default menu
* @return none
**/
function _createXeAdminMenu()
{
//insert menu
$args->title = $this->xeMenuTitle;
$args->menu_srl = getNextSequence();
//$args->menu_srl = 3302;
$args->listorder = $args->menu_srl * -1;
$output = executeQuery('menu.insertMenu', $args);
$menuSrl = $args->menu_srl;
unset($args);
// gnb item create
$gnbList = array('dashboard', 'site', 'user', 'content', 'theme', 'extensions', 'configuration');
foreach($gnbList AS $key=>$value)
{
//insert menu item
$args->menu_srl = $menuSrl;
$args->menu_item_srl = getNextSequence();
$args->name = '{$lang->menu_gnb[\''.$value.'\']}';
if($value == 'dashboard') $args->url = getUrl('', 'module', 'admin');
else $args->url = '#';
$args->listorder = -1*$args->menu_item_srl;
$output = executeQuery('menu.insertMenuItem', $args);
}
$oMenuAdminModel = &getAdminModel('menu');
$columnList = array('menu_item_srl', 'name');
$output = $oMenuAdminModel->getMenuItems($menuSrl, 0, $columnList);
if(is_array($output->data))
{
foreach($output->data AS $key=>$value)
{
preg_match('/\{\$lang->menu_gnb\[(.*?)\]\}/i', $value->name, $m);
$gnbDBList[$m[1]] = $value->menu_item_srl;
}
}
unset($args);
$oModuleModel = &getModel('module');
$installed_module_list = $oModuleModel->getModulesXmlInfo();
// gnb sub item create
if(is_array($installed_module_list))
{
$oMemberModel = &getModel('member');
$output = $oMemberModel->getAdminGroup(array('group_srl'));
$adminGroupSrl = $output->group_srl;
// common argument setting
$args->menu_srl = $menuSrl;
$args->open_window = 'N';
$args->expand = 'N';
$args->normal_btn = '';
$args->hover_btn = '';
$args->active_btn = '';
$args->group_srls = $adminGroupSrl;
foreach($installed_module_list AS $key=>$value)
{
//if($value->module == 'document')
//{
$moduleActionInfo = $oModuleModel->getModuleActionXml($value->module);
if(is_object($moduleActionInfo->menu))
{
foreach($moduleActionInfo->menu AS $key2=>$value2)
{
$gnbKey = "'".$this->_getGnbKey($key2)."'";
//insert menu item
$args->menu_item_srl = getNextSequence();
$args->parent_srl = $gnbDBList[$gnbKey];
//$args->name = '{$lang->menu_gnb_sub['.$gnbKey.'][\''.$key2.'\']}';
$args->name = '{$lang->menu_gnb_sub[\''.$key2.'\']}';
$args->url = getNotEncodedUrl('', 'module', 'admin', 'act', $value2->index);
$args->listorder = -1*$args->menu_item_srl;
$output = executeQuery('menu.insertMenuItem', $args);
}
}
//}
}
}
$oMenuAdminConroller = &getAdminController('menu');
$oMenuAdminConroller->makeXmlFile($menuSrl);
}
function _getGnbKey($menuName)
{
switch($menuName) {
case 'site':
return 'site';
break;
case 'userList':
case 'userSetting':
case 'point':
return 'user';
break;
case 'document':
case 'comment':
case 'trackback':
case 'file':
case 'poll':
case 'importer':
return 'content';
break;
case 'theme':
return 'theme';
break;
case 'easyInstall':
case 'installedLayout':
case 'installedModule':
case 'installedWidget':
case 'installedAddon':
case 'editor':
case 'spamFilter':
return 'extensions';
break;
case 'adminConfiguration':
case 'adminMenuSetup':
case 'fileUpload':
return 'configuration';
break;
default:
return 'extensions';
}
}
}
?>

View file

@ -5,9 +5,54 @@
<actions>
<action name="dispAdminIndex" type="view" standalone="true" index="true" />
<action name="dispAdminConfig" type="view" standalone="true" />
<action name="dispAdminTheme" type="view" standalone="true" menu_name="theme" menu_index="true" />
<action name="dispAdminMenuSetup" type="view" standalone="true" menu_name="adminMenuSetup" menu_index="true" />
<action name="procAdminRecompileCacheFile" type="controller" standalone="true" />
<action name="procAdminLogout" type="controller" standalone="true" />
<action name="procAdminInsertThemeInfo" type="controller" standalone="true" ruleset="insertThemeInfo" />
<action name="getAdminFTPList" type="model" standalone="true" />
</actions>
<menus>
<menu name="adminConfiguration">
<title xml:lang="en">General</title>
<title xml:lang="ko">일반</title>
<title xml:lang="zh-CN">General</title>
<title xml:lang="jp">General</title>
<title xml:lang="es">General</title>
<title xml:lang="ru">General</title>
<title xml:lang="fr">General</title>
<title xml:lang="zh-TW">General</title>
<title xml:lang="vi">General</title>
<title xml:lang="mn">General</title>
<title xml:lang="tr">General</title>
</menu>
<menu name="adminMenuSetup">
<title xml:lang="en">Admin Menu Setup</title>
<title xml:lang="ko">관리자 메뉴 설정</title>
<title xml:lang="zh-CN">Admin Menu Setup</title>
<title xml:lang="jp">Admin Menu Setup</title>
<title xml:lang="es">Admin Menu Setup</title>
<title xml:lang="ru">Admin Menu Setup</title>
<title xml:lang="fr">Admin Menu Setup</title>
<title xml:lang="zh-TW">Admin Menu Setup</title>
<title xml:lang="vi">Admin Menu Setup</title>
<title xml:lang="mn">Admin Menu Setup</title>
<title xml:lang="tr">Admin Menu Setup</title>
</menu>
<menu name="theme">
<title xml:lang="en">Theme</title>
<title xml:lang="ko">테마</title>
<title xml:lang="zh-CN">Theme</title>
<title xml:lang="jp">Theme</title>
<title xml:lang="es">Theme</title>
<title xml:lang="ru">Theme</title>
<title xml:lang="fr">Theme</title>
<title xml:lang="zh-TW">Theme</title>
<title xml:lang="vi">Theme</title>
<title xml:lang="mn">Theme</title>
<title xml:lang="tr">Theme</title>
</menu>
</menus>
</module>

View file

@ -24,6 +24,16 @@ $lang->module_category_title = array(
'system' => 'System Setting',
);
$lang->menu_gnb = array(
'dashboard' => 'Dashboard',
'site' => 'Site',
'user' => 'User',
'content' => 'Content',
'theme' => 'Theme',
'extensions' => 'Extensions',
'configuration' => 'Configuration',
);
$lang->newest_news = "Latest News";
$lang->env_setup = "Setting";

View file

@ -24,6 +24,15 @@ $lang->module_category_title = array(
'system' => 'System Setting',
);
$lang->menu_gnb = array(
'dashboard' => 'Dashboard',
'site' => 'Site',
'user' => 'User',
'content' => 'Content',
'theme' => 'Theme',
'extensions' => 'Extensions',
'configuration' => 'Configuration',
);
$lang->newest_news = "Noticias recientes";
$lang->env_setup = "Configuración";

View file

@ -24,6 +24,15 @@ $lang->module_category_title = array(
'system' => 'System Setting',
);
$lang->menu_gnb = array(
'dashboard' => 'Dashboard',
'site' => 'Site',
'user' => 'User',
'content' => 'Content',
'theme' => 'Theme',
'extensions' => 'Extensions',
'configuration' => 'Configuration',
);
$lang->newest_news = "Dernières Nouvelles";
$lang->env_setup = "Configuration";

View file

@ -24,6 +24,15 @@ $lang->module_category_title = array(
'system' => 'システム管理',
);
$lang->menu_gnb = array(
'dashboard' => 'Dashboard',
'site' => 'Site',
'user' => 'User',
'content' => 'Content',
'theme' => 'Theme',
'extensions' => 'Extensions',
'configuration' => 'Configuration',
);
$lang->newest_news = '最新ニュース';
$lang->env_setup = '環境設定';

View file

@ -26,6 +26,16 @@ $lang->module_category_title = array(
'migration' => '데이터 관리/복원',
'system' => '시스템 관리',
);
$lang->menu_gnb = array(
'dashboard' => '대쉬보드',
'site' => '사이트',
'user' => '유저',
'content' => '콘텐츠',
'theme' => '테마',
'extensions' => '확장기능',
'configuration' => '설정',
);
$lang->newest_news = '최신 소식';
$lang->env_setup = '환경 설정';
$lang->default_url = '기본 URL';
@ -69,7 +79,7 @@ $lang->server_ports = '서버포트지정';
$lang->about_server_ports = 'HTTP는 80, HTTPS는 443 이 아닌, 다른 포트를 사용할 경우에 포트를 지정해 주어야 합니다.';
$lang->use_db_session = '인증 세션 DB 사용';
$lang->about_db_session = '인증 시 사용되는 PHP 세션을 DB로 사용하는 기능입니다.<br/>웹서버의 사용률이 낮은 사이트에서는 비활성화시 사이트 응답 속도가 향상될 수 있습니다.<br/>단 현재 접속자를 구할 수 없어 관련된 기능을 사용할 수 없게 됩니다.';
$lang->sftp = 'SFTP 사용';
$lang->sftp = 'SFTP 사용';
$lang->ftp_get_list = '목록 가져오기';
$lang->ftp_remove_info = 'FTP 정보 삭제';
$lang->msg_ftp_invalid_path = 'FTP Path를 읽을 수 없습니다.';

View file

@ -24,6 +24,15 @@ $lang->module_category_title = array(
'system' => 'System Setting',
);
$lang->menu_gnb = array(
'dashboard' => 'Dashboard',
'site' => 'Site',
'user' => 'User',
'content' => 'Content',
'theme' => 'Theme',
'extensions' => 'Extensions',
'configuration' => 'Configuration',
);
$lang->newest_news = 'Последние новости';
$lang->env_setup = 'Настройка';

View file

@ -24,6 +24,15 @@ $lang->module_category_title = array(
'system' => 'Sistem Ayarları',
);
$lang->menu_gnb = array(
'dashboard' => 'Dashboard',
'site' => 'Site',
'user' => 'User',
'content' => 'Content',
'theme' => 'Theme',
'extensions' => 'Extensions',
'configuration' => 'Configuration',
);
$lang->newest_news = "Son Gelişmeler";
$lang->env_setup = "Ayarlar";

View file

@ -3,10 +3,10 @@
* @file : common/lang/vi.lang.php
* @author : NHN (developers@xpressengine.com)
* @trans : DucDuy Dao (webmaster@xpressengine.vn)
* @website: http://xpressengine.vn
* @website: http://xpressengine.vn
* @brief : Vietnamese Language Pack (Only basic words are included here)
**/
$lang->admin_info = 'Thông tin Administrator';
$lang->admin_index = 'Trang chủ Admin';
$lang->control_panel = 'Bảng điều khiển';
@ -26,6 +26,15 @@ $lang->module_category_title = array(
'system' => 'Thiết lập hệ thống',
);
$lang->menu_gnb = array(
'dashboard' => 'Dashboard',
'site' => 'Site',
'user' => 'User',
'content' => 'Content',
'theme' => 'Theme',
'extensions' => 'Extensions',
'configuration' => 'Configuration',
);
$lang->newest_news = "Tin mới nhất";
$lang->env_setup = "Thiết lập ";

View file

@ -24,6 +24,15 @@ $lang->module_category_title = array(
'system' => '系统管理',
);
$lang->menu_gnb = array(
'dashboard' => 'Dashboard',
'site' => 'Site',
'user' => 'User',
'content' => 'Content',
'theme' => 'Theme',
'extensions' => 'Extensions',
'configuration' => 'Configuration',
);
$lang->newest_news = "最新消息";
$lang->env_setup = "系统设置";
@ -78,7 +87,7 @@ $lang->server_ports = "指定服务器端口";
$lang->about_server_ports = "使用除HTTP80, HTTPS443以外的端口时必须得指定该服务器端口号。";
$lang->use_db_session = 'DB储存认证会话';
$lang->about_db_session = '用DB储存认证时的PHP会话。<br/>服务器使用率较少的网站建议不要勾选此项(可提高网站访问速度)。<br/>只是无法统计在线会员。';
$lang->sftp = '使用sSFTP';
$lang->sftp = '使用sSFTP';
$lang->ftp_get_list = '载入列表';
$lang->ftp_remove_info = '删除FTP信息';
$lang->msg_ftp_invalid_path = '无法读取FTP路径。';

View file

@ -24,6 +24,15 @@ $lang->module_category_title = array(
'system' => '系統管理',
);
$lang->menu_gnb = array(
'dashboard' => 'Dashboard',
'site' => 'Site',
'user' => 'User',
'content' => 'Content',
'theme' => 'Theme',
'extensions' => 'Extensions',
'configuration' => 'Configuration',
);
$lang->newest_news = "最新消息";
$lang->env_setup = "系統設置";

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<ruleset version="1.5.0">
<customrules>
</customrules>
<fields>
<field name="themeItem" required="true" />
<field name="layout" required="true" rule="number" />
</fields>
</ruleset>

View file

@ -1,5 +1,4 @@
<!--%import("css/layout.css")-->
<!--%import("js/admin.js")-->
<div id="xeAdmin" class="<!--@if($package_selected || strstr($act,'Autoinstall'))-->c<!--@elseif(!$act || ($act == 'dispAdminIndex' || $act == 'dispAdminConfig'))-->ece<!--@else-->ec<!--@end-->">
<div class="header">
<h1 class="xeAdmin"><a href="{getUrl('','module','admin')}">XpressEngine</a></h1>

View file

@ -0,0 +1,7 @@
</div>
<div class="footer">
<p>Powered by <strong><a href="http://xpressengine.org/">XE</a></strong>.</p>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,46 @@
<div class="xe">
<p class="skipNav"><a href="#content">Skip Navigation</a></p>
<div class="header">
<h1><a href="{getUrl('','module','admin')}"><img src="img/xe.h1.png" width="33" height="32" alt="XE" /> Super Admin</a></h1>
<div class="siteTool">
<a href="#moveSiteList" class="i tgAnchor" data-effect="slide" data-duration="100">Move to Site</a>
<div class="layer portlet tgContent" id="moveSiteList">
<h2 class="h2">Move to Site</h2>
<ul class="lined">
<li>XpressEngine - <a href="#">http://xe.xpressengine.net/</a></li>
<li>XpressEngine - <a href="#">http://xe.xpressengine.net/</a></li>
<li>XpressEngine - <a href="#">http://xe.xpressengine.net/</a></li>
</ul>
<a href="#" class="more"><span>&rsaquo;</span> more</a>
</div>
</div>
<div class="account">
<ul>
<li><a href="#">정찬명</a></li>
<li><a href="{getUrl('module','admin','act','procAdminLogout')}">Log-out</a></li>
<li><a href="#language" class="tgAnchor" data-effect="slide" data-duration="100">Language</a>
<ul class="tgContent" id="language">
<!--@foreach($lang_supported as $key => $val)-->
<li><a href="#" onclick="doChangeLangType('{$key}'); return false;">{$val}</a></li>
<!--@end-->
</ul>
</li>
</ul>
</div>
<div class="gnb jx">
<ul>
<!--@foreach($gnbUrlList AS $key=>$value)-->
<li <!--@if($parentSrl == $key)-->class="activeOn"<!--@end-->><a href="{html_entity_decode($value['href'])}">{$value['text']}</a>
<!--@if(count($gnbUrlList[$key]['list']) > 0)-->
<ul>
<!--@foreach($gnbUrlList[$key]['list'] AS $key2=>$value2)-->
<li><a href="{html_entity_decode($value2['href'])}">{$value2['text']}</a></li>
<!--@end-->
</ul>
<!--@end-->
</li>
<!--@end-->
</ul>
</div>
</div>
<div class="body">

View file

@ -0,0 +1,10 @@
<div class="lnb">
<h2 class="h2">{$lang->menu_gnb[$category]}</h2>
<ul>
<!--@if(count($gnbUrlList[$parentSrl]['list']) > 0)-->
<!--@foreach($gnbUrlList[$parentSrl]['list'] AS $key=>$value)-->
<li><a href="{html_entity_decode($value['href'])}">{$value['text']}</a></li>
<!--@end-->
<!--@end-->
</ul>
</div>

View file

@ -101,7 +101,7 @@
<td>
<select name="use_ssl">
<!--@foreach($lang->ssl_options as $key => $val)-->
<option value="{$key}" <!--@if($key == $use_ssl)-->selected<!--@end--> >{$val}</option>
<option value="{$key}" <!--@if($key == $use_ssl)-->selected="selected"<!--@end--> >{$val}</option>
<!--@endforeach-->
</select>
<p>{$lang->about_use_ssl}</p>
@ -110,8 +110,8 @@
<tr>
<th><div>{$lang->server_ports}</div></th>
<td>
HTTP : <input type="text" name="http_port" class="inputTypeText" size="5" value="{$http_port}">,
HTTPS: <input type="text" name="https_port" class="inputTypeText" size="5" value="{$https_port}">
HTTP : <input type="text" name="http_port" class="inputTypeText" size="5" value="{$http_port}" />,
HTTPS: <input type="text" name="https_port" class="inputTypeText" size="5" value="{$https_port}" />
<p>{$lang->about_server_ports}</p>
</td>
</tr>
@ -138,7 +138,7 @@
<tr>
<th scope="col"><div><label for="textfield21">{$lang->user_id}</label></div></th>
<td><input type="text" id="textfield21" name="ftp_user" value="{$ftp_info->ftp_user}" class="inputTypeText" />
<td><input type="text" id="textfield21" name="ftp_user" value="{$ftp_info->ftp_user}" class="inputTypeText" /></td>
</tr>
<tr>
<th scope="col"><div><label for="textfield22">{$lang->password} ({$lang->about_ftp_password})</label></div></th>
@ -171,13 +171,13 @@
<tr id="ftplist">
<td>
<div>
<span class="button blue strong"><input type="button" onclick="getFTPList(); return false;" value="{$lang->ftp_get_list}"></span>
<span class="button blue strong"><input type="button" onclick="getFTPList(); return false;" value="{$lang->ftp_get_list}" /></span>
</div>
</td>
</tr>
<tr>
<th colspan="2" class="button">
<span class="button blue strong"><input type="button" onclick="removeFTPInfo(); return false;" value="{$lang->ftp_remove_info}"></span>
<span class="button blue strong"><input type="button" onclick="removeFTPInfo(); return false;" value="{$lang->ftp_remove_info}" /></span>
<span class="button black strong"><input type="submit" value="{$lang->cmd_registration}" /></span>
</th>
</tr>

View file

@ -1,227 +1,608 @@
@charset "utf-8";
/* NHN (developers@xpressengine.com) */
/* Element Reset */
body,table,input,textarea,select,button{font-family:Tahoma,Geneva,sans-serif;font-size:14px;color:#333}
header,footer,section,article,aside,nav,hgroup,details,menu,figure,figcaption{display:block}
button,input[type=submit],input[type=reset],input[type=button]{cursor:pointer;overflow:visible}
body{margin:0}
img{border:0}
p{line-height:1.5}
/* Section & Heading */
.section{margin:1em 0;padding:0;border:0}
.h1, .h2, .h3, .h4{position:relative;border-bottom-style:solid;border-bottom-color:#ccc;zoom:1}
.h1{border-bottom-width:4px;font-size:24px}
.h2{border-bottom-width:3px;font-size:20px}
.h3{border-bottom-width:2px;font-size:16px}
.h4{border-bottom-width:1px;font-size:12px}
/* Portlet */
.portlet{position:relative;border:1px solid #e9e9e9;margin:1em 0;padding:0;background:#fff;zoom:1;overflow:hidden;border-radius:5px}
.portlet h2, .portlet h3{margin:0;padding:.5em 1em;font-size:14px;border:1px solid #fff;border-bottom:1px solid #e9e9e9;background:#f7f7f7;border-radius:5px 5px 0 0}
.portlet p{margin:1em 1.2em}
.portlet li{position:relative;padding-right:8em}
.portlet .lined{margin:1px;padding:0;list-style:none}
.portlet .lined li{padding:.5em 8em .5em 1em;border-top:1px solid #eee;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}
.portlet .lined li:first-child{border:0}
.portlet .side{position:absolute;top:0;_top:1px;right:0;color:#666;background:#fff;padding:0 1em}
.portlet .lined .side{padding:.5em 1em}
.portlet .more{position:absolute;top:.5em;right:1em;text-decoration:none !important;color:#666}
.portlet .more span{color:#999}
.portlet .action{text-align:right;top:0;right:0;padding:.5em 1em .5em 3em;background:#fff;background:-webkit-gradient(linear, 0% 0%, 100% 0%, from(rgba(255,255,255,0)), to(rgba(255,255,255,1)), color-stop(15%, #fff));background:-moz-linear-gradient(left, rgba(255,255,255,0) 0, rgba(255,255,255,1) 15%)}
.portlet .action a,
.portlet .action button{margin-left:1em}
.portlet .btnArea{border-top:1px solid #ddd;margin:0;padding:.5em 1em;margin:0 1px 1px 1px;background:#f7f7f7;border-radius:0 0 5px 5px}
/* Table */
.table{margin:1em 0}
.table table{width:100%;border:0;border-collapse:collapse;border-top:2px solid #ccc}
.table caption{padding:8px 0;font-weight:bold;text-align:left;line-height:32px}
.table caption:after{content:"";display:block;clear:both}
.table caption a{font-weight:normal}
.table caption em{float:right;font-style:normal;font-weight:normal;color:#e00;margin-left:1em}
.table caption strong{color:#e00}
.table caption .side{float:right;font-weight:normal;margin-left:1em}
.table th,.table td{border:0;padding:8px;vertical-align:top;text-align:left;border-bottom:1px solid #ddd;white-space:nowrap}
.table th{background:#f8f8f8}
.table thead th{border-bottom:1px solid #999}
.table tfoot td{font-weight:bold;background:#f8f8f8}
.table.even tbody tr:nth-of-type(even) td{background-color:#fafafa}
.table input[type=text]{margin:-1px 0 -3px 0;vertical-align:middle}
.table img{vertical-align:middle}
.table .title,
.table .text{white-space:normal}
.table .h1 + table,
.table .h2 + table,
.table .h3 + table,
.table .h4 + table,
.h1 + .table table,
.h2 + .table table,
.h3 + .table table,
.h4 + .table table{border-top:0}
/* Form */
.form{margin:1em 0;padding:0}
.form fieldset{margin:0 0 2em 0;padding:0;border:0}
.form em{font-style:normal;color:#e00}
.form label{margin-right:1em;line-height:1}
.form input[type=checkbox]+label,.form input[type=radio]+label,.form input[type=file]{cursor:pointer}
.form ul{position:relative;margin:0;padding:0;list-style:none;border-top:2px solid #ccc;border-bottom:1px solid #ccc;zoom:1}
.form li{list-style:none;border:1px solid #ddd;border-left:0;border-right:0;margin:-1px 0;padding:8px 0;vertical-align:top;zoom:1}
.form li:first-child{border-top:0}
.form li>label:first-child{display:block;font-weight:bold}
.form li label em{font-weight:normal}
.form input[type=text],.form input[type=password],.form input[type=file],textarea{position:relative;width:280px;margin:2px 0;border:1px solid #b7b7b7;border-right-color:#e1e1e1;border-bottom-color:#e1e1e1;background:transparent}
.form input[type=text],.form input[type=password],.form input[type=file]{height:22px;line-height:22px;vertical-align:middle;padding:0 4px}
.form input[type=checkbox],.form input[type=radio]{margin:0;padding:0;width:13px;height:13px;vertical-align:middle}
.form *[disabled=disabled]{background:#ddd;text-shadow:1px 1px 0 #fff}
.form textarea{padding:3px 4px;vertical-align:top}
.form span.desc{line-height:22px;vertical-align:middle;margin:0 10px}
.form p.desc{margin:.25em 0;line-height:1.4}
.form .q{font-weight:bold;margin:0 0 5px 0}
.form .a{margin:0 0 5px 0}
.form .tgForm{margin-right:1em}
.form .h1 + ul,
.form .h2 + ul,
.form .h3 + ul,
.form .h4 + ul{border-top:0}
/* Global Navigation Bar */
.gnb{position:relative;clear:both;border:1px solid #c1c1c1;border-left:0;border-right:0;background-color:#efefef;background:#efefef -webkit-gradient(linear, 0% 0%, 0% 100%, from(#efefef), to(#dcdcdc));background:#efefef -moz-linear-gradient(top, #efefef, #dcdcdc);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#efefef, endColorStr=#dcdcdc);zoom:1}
.gnb ul{margin:0;padding:0 0 0 2em;list-style:none;border:1px solid #fff;border-left:0;border-right:0;zoom:1}
.gnb ul ul{position:absolute;top:33px;left:0;border:1px solid #ccc;padding:0;background:#fff}
.gnb ul:after{content:"";display:block;clear:both}
.gnb li{position:relative;float:left;border:1px solid #fff;border-top:0;border-bottom:0;margin:0 -1px 0 0}
.gnb li li{float:none;clear:both;overflow:hidden;border:0;border-top:1px dotted #ccc;margin:0;padding:2px}
.gnb li li:first-child{border:0}
.gnb li a{float:left;font-weight:bold;color:#333;font-size:13px;padding:8px 18px;white-space:nowrap;text-decoration:none;text-shadow:0 1px 0 #fff;zoom:1}
.gnb li a:hover,
.gnb li a:active,
.gnb li a:focus,
.gnb li.active a,
.gnb li.activeOn a{background:#fff;border:1px solid #ddd;padding:7px 17px}
.gnb li li a{display:block;float:none;color:#555;padding:5px 15px !important;font-weight:normal !important;border:0 !important}
.gnb li li a:hover,
.gnb li li a:active,
.gnb li li a:focus{border:0;background:#eee}
.gnb .setting{position:absolute;top:8px;right:2em;width:16px;height:0;padding:16px 0 0 0;overflow:hidden;background:url(../img/iconSetting.gif) no-repeat center}
.gnb.jx ul{display:block;position:static;padding:0}
.gnb.jx li{float:none;clear:both;border-top:1px solid #ccc}
.gnb.jx ul ul{border:0}
.gnb.jx li li{border:0}
.gnb.jx li a{float:none;display:block}
.gnb.jx li a:hover,
.gnb.jx li a:active,
.gnb.jx li a:focus{background:none}
.gnb.jx li.activeOn>a{background:#ddd}
@media only all and (max-width:860px) {
.gnb ul{padding-left:1em}
.gnb .setting{right:1em}
}
@media only all and (max-width:640px) {
.gnb ul{display:block;position:static;padding:0}
.gnb li{float:none;clear:both;border-top:1px solid #ccc}
.gnb ul ul{border:0;position:static}
.gnb li li{border:0}
.gnb li a{float:none;display:block}
.gnb li a:hover,
.gnb li a:active,
.gnb li a:focus{background:none}
.gnb li.activeOn>a{background:#ddd}
}
/* Lined Tab Navigation */
.tab.line{padding:0 0 35px 0;margin:1em 0}
.tab.line ul{position:relative;margin:0;padding:0;list-style:none;border-bottom:1px solid #ccc;zoom:1}
.tab.line ul:after{content:"";display:block;clear:both}
.tab.line li{float:left;margin-bottom:-1px}
.tab.line li a{position:relative;float:left;text-decoration:none;border:1px solid #eee;border-bottom-color:#ccc;background:#fafafa;color:#333}
.tab.line li a span{display:inline-block;height:14px;padding:6px 25px 6px 25px;letter-spacing:-1px;cursor:pointer}
.tab.line li ul{width:100%;position:absolute;top:40px;left:0;list-style:none;border:0;margin:0;padding:0;white-space:nowrap;overflow:hidden;zoom:1}
.tab.line li ul:after{content:"";display:block;clear:both}
.tab.line li li{position:relative;left:-1px;padding:0 10px;border-left:1px solid #ddd;overflow:visible}
.tab.line li li a{padding:0;margin:0;border:0 !important;color:#666 !important;font-weight:normal;background:transparent;letter-spacing:normal}
.tab.line li.active a{border:1px solid #ccc;border-bottom:1px solid #fff;margin-top:-1px;background:transparent}
.tab.line li.active a span{padding-top:7px;font-weight:bold}
.tab.line li li a:hover,
.tab.line li li a:active,
.tab.line li li a:focus,
.tab.line li li.active a{font-weight:bold;letter-spacing:-1px;color:#333 !important}
.tab.line.jx{padding:0}
.tab.line.jx ul{border:0}
.tab.line.jx li{float:none}
.tab.line.jx li a{float:none;display:block;font-weight:bold;color:#333;border:1px solid #eee !important;border-bottom-color:#ccc !important;background:#fafafa !important}
.tab.line.jx li ul{position:static;display:block !important;padding:5px 0;left:0;top:0}
.tab.line.jx li li{display:inline}
.tab.line.jx li li a{display:inline;letter-spacing:normal;border:0 !important;font-weight:normal !important;color:#666 !important;background:none !important}
.tab.line.jx li li a:hover,
.tab.line.jx li li a:active,
.tab.line.jx li li a:focus{text-decoration:underline}
/* Faced Tab Navigation */
.tab.face{padding:0 0 35px 0;margin:1em 0}
.tab.face ul{position:relative;margin:0;padding:0;_padding:2px 0 0 0;list-style:none;border-bottom:2px solid #315593;zoom:1}
.tab.face ul:after{content:"";display:block;clear:both}
.tab.face li{float:left;margin-right:1px;background:#4CB1E5}
.tab.face li a,
.tab.face li a span{position:relative;cursor:pointer}
.tab.face li a{float:left;text-decoration:none}
.tab.face li a span{display:inline-block;padding:6px 25px 6px 25px;color:#fff}
.tab.face li ul{width:100%;position:absolute;top:40px;left:0;list-style:none;border:0;margin:0;padding:0;white-space:nowrap;overflow:hidden;zoom:1}
.tab.face li ul:after{content:"";display:block;clear:both}
.tab.face li li{position:relative;left:-1px;padding:0 10px;border-left:1px solid #ddd;overflow:visible;background:transparent !important}
.tab.face li li a{padding:0;margin:0;font-weight:normal;color:#666}
.tab.face li.active{background-color:#315593;margin-top:-1px}
.tab.face li.active a span{padding-top:7px;padding-bottom:7px;font-weight:bold;letter-spacing:-1px}
.tab.face li li a:hover,
.tab.face li li a:active,
.tab.face li li a:focus,
.tab.face li li.active a{font-weight:bold;letter-spacing:-1px;color:#333}
.tab.face.jx{padding:0}
.tab.face.jx ul{border:0}
.tab.face.jx li{float:none}
.tab.face.jx li a{float:none;font-weight:bold}
.tab.face.jx li ul{display:block !important;position:static;padding:5px 0;left:0;top:0;background:#fff}
.tab.face.jx li li{display:inline}
.tab.face.jx li li a{font-weight:normal !important;color:#666;letter-spacing:normal}
.tab.face.jx li li a:hover,
.tab.face.jx li li a:active,
.tab.face.jx li li a:focus{text-decoration:underline}
/* Tab + List */
.tab.list{height:160px;margin:1em 0}
.tab.list ul{position:relative;margin:0;padding:0;list-style:none;border-bottom:1px solid #ccc;zoom:1}
.tab.list ul:after{content:"";display:block;clear:both}
.tab.list li{float:left;margin-bottom:-1px}
.tab.list li a{position:relative;float:left;text-decoration:none;border:1px solid #eee;border-bottom-color:#ccc;background:#fafafa;color:#666}
.tab.list li a span{display:inline-block;padding:6px 25px 6px 25px;letter-spacing:-1px;cursor:pointer}
.tab.list li ul{width:100%;position:absolute;top:40px;left:0;list-style:none;border:0;margin:0;padding:0;zoom:1}
.tab.list li ul:after{content:"";display:block;clear:both}
.tab.list li li{float:none;position:relative;margin:0 0 8px 0;color:#999}
.tab.list li li a{float:none;padding:0;margin:0;border:0 !important;color:#666 !important;font-weight:normal;background:transparent;letter-spacing:normal}
.tab.list li li a:hover,
.tab.list li li a:active,
.tab.list li li a:focus{color:#000 !important;text-decoration:underline}
.tab.list li li .side{position:absolute;top:0;right:0;color:#767676}
.tab.list li li.more{position:absolute;top:-30px;right:0;border:0 !important;background:transparent}
.tab.list li.active a{border:1px solid #ccc;border-bottom:1px solid #fff;margin-top:-1px;background:transparent;color:#333}
.tab.list li.active a span{padding-top:7px;font-weight:bold}
.tab.list.jx{height:auto}
.tab.list.jx ul{border:0}
.tab.list.jx li{float:none;position:relative}
.tab.list.jx li a{float:none;display:block;font-weight:bold;color:#333;border:1px solid #eee !important;border-bottom-color:#ccc !important;background:#fafafa !important}
.tab.list.jx li ul{position:static;display:block !important;left:0;top:0;padding:5px 0}
.tab.list.jx li li a{display:inline;border:0 !important;background:none !important;font-weight:normal}
.tab.list.jx li li.more{top:7px;right:15px}
/* Vertical Navigation */
.vNav{position:relative;margin:1em 0;line-height:normal;zoom:1}
.vNav ul{margin:0;padding:0;list-style:none}
.vNav li{position:relative;margin:0 0 -1px 0;vertical-align:top;zoom:1}
.vNav li a{display:block;position:relative;padding:8px 10px;text-decoration:none;color:#666;font-weight:bold;background:#fafafa;border:1px solid #eee;zoom:1}
.vNav li a .i{position:absolute;top:50%;left:100%;margin:-4px 0 0 -16px;width:8px;height:8px;color:#ccc;background:url(../img/iconNavVr.gif) no-repeat left top}
.vNav li ul{padding:5px 0;background:#fff}
.vNav li li{margin:0}
.vNav li li a{font-weight:normal;background:#fff;padding:5px 10px;border:0}
.vNav li li a span{color:#666}
.vNav li.active{border:1px solid #ccc;z-index:2}
.vNav li li.active{border:0}
.vNav li.active a{color:#000;border:0}
.vNav li.active .i{background-position:0 -44px}
.vNav li.active li a{border:0}
.vNav li.active ul{display:block;border-top:1px solid #eee}
.vNav li.active li.active a span{color:#13b200;font-weight:bold;letter-spacing:-1px}
/* Tree Navigation */
.tNav{position:relative;margin:1em 0;zoom:1}
.tNav ul{list-style:none;margin:0;padding:0}
.tNav ul ul{margin:0 0 0 -3px}
.tNav li{position:relative;padding:0 0 0 22px;white-space:nowrap;line-height:20px;background:url(../img/lineTree.gif) no-repeat 9px 0;*zoom:1}
.tNav li.last{background-position:9px -1766px}
.tNav li.active a{font-weight:bold;color:#333}
.tNav li.active li a{font-weight:normal;color:#767676}
.tNav a{text-decoration:none;color:#767676}
.tNav a:hover,
.tNav a:active,
.tNav a:focus{text-decoration:underline}
.tNav .tNavToggle{position:absolute;top:0;left:0;width:19px;height:19px;padding:0;overflow:hidden;border:0;font-size:0;color:#fff;vertical-align:middle;text-indent:19px;*text-indent:0;background:transparent url(../img/btnPlusMinus.gif) no-repeat;cursor:pointer}
.tNav .tNavToggle.plus{background-position:5px -15px}
.tNav .tNavToggle.minus{background-position:5px 5px}
/* Pagination */
.pagination{margin:1em 0;text-align:center;line-height:normal}
.pagination *{vertical-align:middle}
.pagination a,
.pagination strong{position:relative;display:inline-block;padding:2px 4px;font-weight:bold;text-decoration:none;line-height:normal;color:#333 !important;vertical-align:middle}
.pagination a:hover,
.pagination a:active,
.pagination a:focus{border:1px solid #ddd;margin:0 -1px}
.pagination strong{color:#e00 !important;font-size:20px}
.pagination .direction{font-weight:normal;white-space:nowrap}
.pagination .direction:hover,
.pagination .direction:active,
.pagination .direction:focus{border:0;margin:0;text-decoration:underline}
.pagination input{width:30px;text-align:center}
.pagination button{overflow:visible}
/* Button */
.btn{position:relative;display:inline-block;margin:2px;vertical-align:top}
.btn *{display:inline-block;padding:0 8px;font-size:14px;height:24px;line-height:22px;margin:0;font-weight:bold !important;color:#fff;text-decoration:none !important;border:1px solid;cursor:pointer;overflow:visible;border-radius:3px;box-shadow:inset 0 0 1px #fff;-moz-box-shadow:inset 0 0 1px #fff;-webkit-box-shadow:inset 0 0 1px #fff;background-color:#666;text-shadow:0 -1px 0 #333;zoom:1}
.btn a,
.btn button{border-color:#ccc;color:#333 !important;background:#eee -webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#ddd));background:#eee -moz-linear-gradient(top,#fff,#ddd);background-color:#eee;text-shadow:1px 1px 0 #fff;filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#ffffff, endColorStr=#dddddd)}
.btn input{border-color:#666;background:#333 -webkit-gradient(linear,0% 0%,0% 100%,from(#777),to(#777),color-stop(0.5,#333),color-stop(0.5,#000));background:#333 -moz-linear-gradient(top,#777,#000);background-color:#333;color:#ffc;filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#777777, endColorStr=#333333)}
.btn a{height:22px}
.btn.medium *{padding:0 12px;font-size:18px;height:30px;line-height:28px}
.btn.medium a{height:28px}
.btn.large *{padding:0 18px;font-size:24px;height:36px;line-height:34px}
.btn.large a{height:34px}
/* FAQ */
.faq{border-bottom:1px solid #ddd;margin:1em 0}
.faq .faqHeader{position:relative;zoom:1}
.faq .faqHeader .showAll{position:absolute;bottom:0;right:0;border:0;padding:0;overflow:visible;background:none;cursor:pointer}
.faq .faqBody{margin:0;padding:0}
.faq .faqBody .article{list-style:none}
.faq .q{margin:0;border-top:1px solid #ddd}
.faq .q a{display:block;padding:.5em 1em;text-align:left;font-weight:bold;background:#fafafa;color:#000;text-decoration:none !important}
.faq .q a:hover, .faq .q a:active, .faq .q a:focus{background:#f8f8f8}
.faq .a{margin:0;padding:1em;line-height:1.5}
/* Horizontal Bar Graph */
.hGraph ul{margin:1em 50px 1em 50px;padding:1px 0 0 0;border:1px solid #ddd;border-top:0;border-right:0;list-style:none}
.hGraph li{position:relative;margin:10px 0;white-space:nowrap;vertical-align:top}
.hGraph .gTerm{position:absolute;width:40px;top:0;left:-50px;line-height:20px;text-align:right;font-weight:bold}
.hGraph .gBar{position:relative;display:inline-block;height:20px;border:1px solid #ccc;border-left:0;background:#e9e9e9}
.hGraph .gBar span{position:absolute;width:40px;line-height:20px;top:0;right:-50px}
/* Vertical Bar Graph */
.vGraph{margin:1em 0;padding:20px 0}
.vGraph ul{margin:0;padding:0;height:200px;border:1px solid #ddd;border-top:0;border-right:0;list-style:none}
.vGraph ul:after{content:"";display:block;clear:both}
.vGraph li{float:left;display:inline;width:8%;height:100%;margin:0 3%;position:relative;text-align:center;white-space:nowrap}
.vGraph .gTerm{position:relative;display:inline-block;width:100%;height:20px;line-height:20px;margin:0 -100% -20px 0;padding:200px 0 0 0;vertical-align:bottom;font-weight:bold}
.vGraph .gBar{position:relative;display:inline-block;width:100%;margin:-1px 0 0 0;border:1px solid #ccc;border-bottom:0;background:#e9e9e9;vertical-align:bottom}
.vGraph .gBar span{position:absolute;width:100%;top:-20px;left:0}
/* Star Rating */
.starRating, .starRating span{display:inline-block;height:14px;height:14px;background:transparent url(../img/iconStarRating.gif) no-repeat;overflow:hidden}
.starRating{width:79px;vertical-align:top}
.starRating span{font-size:0;line-height:0;vertical-align:top;text-indent:-100px;*text-indent:0;background-position:0 -14px}
/* Progress */
.prgrs{white-space:nowrap;line-height:normal;vertical-align:middle}
.prgrs *{vertical-align:middle}
.prgrs .pBar{position:relative;display:inline-block;background:#e9e9e9;margin:0 5px 0 0}
.prgrs .pAction{display:inline-block;vertical-align:top;background:#99a6b6}
.prgrs .pNum{position:absolute;width:100%;left:0;top:0;text-align:center;text-shadow:1px 1px 0 #fff}
.prgrs.prgrsSmall{font-size:14px;line-height:14px}
.prgrs.prgrsSmall .pBar,
.prgrs.prgrsSmall .pAction,
.prgrs.prgrsSmall .pNum{height:16px;line-height:16px;font-size:11px}
.prgrs.prgrsMedium {font-size:24px;line-height:24px}
.prgrs.prgrsMedium .pBar,
.prgrs.prgrsMedium .pAction,
.prgrs.prgrsMedium .pNum{height:22px;line-height:22px;font-size:12px}
.prgrs.prgrsLarge{font-size:38px;line-height:38px}
.prgrs.prgrsLarge .pBar,
.prgrs.prgrsLarge .pAction,
.prgrs.prgrsLarge .pNum{height:34px;line-height:34px;font-size:14px}
/* Layer */
.layer{position:absolute;background:#fff;padding:0 1em;*padding:1em;border:8px solid #ddd;font-weight:normal;z-index:2;zoom:1;border-radius:5px;box-shadow:0 0 6px #666;-moz-box-shadow:0 0 6px #666;-webkit-box-shadow:0 0 6px #666;filter:progid:DXImageTransform.Microsoft.Shadow(color=#999999,direction=135, strength=5)}
.layer h2{margin-top:1em}
.layer ul, .layer ol, .layer .lined, .layer .table{margin-bottom:1em}
.layerClose{position:absolute;right:-8px;top:-8px;border:0;background:#ddd;padding:0;width:28px;height:28px;font-size:14px;font-weight:bold;cursor:pointer;color:#999;border-radius:5px}
.layerBlur{position:absolute;top:0;right:0;border:0;background:none;padding:0;width:1px;height:1px;overflow:hidden}
/* Modal Window */
.modal{position:fixed;*position:absolute;top:0;left:0;width:100%;_height:100%;min-height:100%;z-index:100}
.modal .bg{position:absolute;background:#000;_background:none;width:100%;height:100%;opacity:.5;z-index:2;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50);zoom:1}
.modal .fg{position:relative;width:50%;margin:5em auto;background:#fff;padding:0 1em;*padding:1em;border:8px solid #ddd;z-index:3;zoom:1;border-radius:5px;box-shadow:0 0 6px #000;-moz-box-shadow:0 0 6px #000;-webkit-box-shadow:0 0 6px #000}
.modal h2{margin-top:1em}
.modal ul, .modal ol, .modal .lined, .modal .table{margin-bottom:1em}
.modal .ie6{position:absolute;left:0;top:0;width:100%;height:100%;border:0;opacity:0;filter:alpha(opacity=0);z-index:1}
.modalClose{position:absolute;right:-8px;top:-8px;border:0;background:#ddd;padding:0;width:28px;height:28px;font-size:14px;font-weight:bold;cursor:pointer;color:#999;border-radius:5px}
.modalBlur{position:absolute;top:0;right:0;border:0;background:none;padding:0;width:1px;height:1px;overflow:hidden}
html.modalContainer,body.modalContainer{_height:100%;_width:100%} /* IE6 only */
/* Message */
.message .info{}
.message .error{}
.message .update{}
/* Text Button */
input.text,
button.text{border:0; overflow:visible; padding:0; margin:0; color:#33a; background:none; text-decoration:underline}
#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;}
#xeAdmin .ac{ text-align:center;}
#xeAdmin .al{ text-align:left;}
#xeAdmin .ar{ text-align:right;}
/* H2 Anchor */
.h2Anchor{position:absolute;right:0;border:0;background:none;color:#00f;text-decoration:underline}
/* Waiting for server response */
#wfsr .bg{position:absolute;background:#000;_background:none;width:100%;height:100%;opacity:.5;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50);zoom:1}
#wfsr .fg{position:relative;width:50%;margin:5em auto;background:#fff;padding:0 1em;*padding:1em;border:10px solid #ddd;z-index:2;zoom:1}
#wfsr .fg p{padding:0 0 0 2.5em;background:url(../img/preLoader16.gif) no-repeat 1em .4em}
#wfsr .ie6{position:absolute;left:0;top:0;width:100%;height:100%;border:0;opacity:0;filter:alpha(opacity=0);z-index:1}
.wfsrActive{position:fixed;_position:absolute;top:0;left:0;width:100%;height:100%;z-index:100}
.wfsrClose{position:absolute;right:-10px;top:-10px;border:0;background:#ddd;padding:0;width:34px;height:34px;font-size:16px;font-weight:bold;cursor:pointer;color:#999}
.wfsrBlur{position:absolute;top:0;right:0;border:0;background:none;padding:0;width:1px;height:1px;overflow:hidden}
/* Skip Navigation */
.skipNav{margin:0;text-align:center;overflow:hidden}
.skipNav a{position:absolute;width:1px;height:1px;display:block;color:#fff;font-weight:bold;padding:10px 0;background:#333;border-top:1px solid #656565}
.skipNav a:hover,
.skipNav a:active,
.skipNav a:focus{position:relative;width:auto;height:auto}
/* Header */
.header{position:relative;z-index:2;padding:30px 0 0 0;background:#4c4c4c;box-shadow:0 0 10px #aaa;-moz-box-shadow:0 0 10px #aaa;-webkit-box-shadow:0 0 10px #aaa;zoom:1}
.stAdmin .header{background:#2D808A}
.header:after{content:"";display:block;clear:both}
.header a{text-decoration:none}
.header h1{margin:0 100px 10px 1.3em;font-size:24px;line-height:32px}
.header h1 *{vertical-align:middle}
.header h1 a{color:#fff;text-shadow:1px 1px 0 #000;filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=1, OffY=1, Color=#000000, Positive=true);zoom:1}
.header h1 img{height:32px}
.header h1 .url{font-size:14px;font-weight:normal}
.header .siteTool{position:absolute !important;top:42px;right:0;padding:0 2em 0 0;z-index:2}
.header .siteTool .i{position:relative; z-index:2; display:inline-block;color:#fff;padding:0 6px;line-height:24px}
.header .siteTool .i:first-child{border:0}
.header .siteTool .tgAnchor{padding-right:16px;background:url(../img/iconArrow.gif) no-repeat right -156px}
.header .siteTool .tgAnchor.active{border:1px solid #ccc; border-bottom:0; background-color:#fff; color:#333; text-decoration:none;border-radius:5px 5px 0 0}
.header .siteTool .tgContent{position:absolute;top:24px;right:2em;border:1px solid #ccc;z-index:1;background-color:#fff;border-radius:5px 0 5px 5px}
.header .siteTool .tgContent .btnArea{margin:0}
.header #moveSiteList{padding:10px 1em 5px 1em; margin:0}
.header #moveSiteList ul{list-style:none; margin:0; padding:0}
.header #moveSiteList li{white-space:nowrap; margin:0; padding:4px 0; border-bottom:1px dotted #ccc}
.header #siteMapList{padding:0 1em 1em 1em; margin:0}
.header #siteMapList li{white-space:nowrap}
.header .account{position:absolute;z-index:3; width:100%;padding:5px 2em 5px 0;top:0;right:0;white-space:nowrap;text-align:right;background:#333;border-bottom:1px solid #656565;color:#fff;font-size:12px;box-shadow:0 0 10px #333;-moz-box-shadow:0 0 10px #333;-webkit-box-shadow:0 0 10px #333}
.stAdmin .header .account{background:#0e5f69}
.header .account ul{margin:0;padding:0;list-style:none}
.header .account li{position:relative;display:inline;border-left:1px solid #666;padding:0 6px 0 10px}
.header .account li:first-child{border:0}
.header .account a{color:#fff;display:inline-block;height:14px}
.header #language{position:absolute;top:19px;right:0;padding:10px !important;border:1px solid #666;border-top:0;background:#333}
.header #language li{border:0;display:block;padding:0;text-align:left;line-height:1.4}
.header h1 a:hover,
.header h1 a:active,
.header h1 a:focus,
.header .siteTool a:hover,
.header .siteTool a:active,
.header .siteTool a:focus,
.header .account a:hover,
.header .account a:active,
.header .account a:focus{color:#6e9cf2;text-decoration:underline}
/* Footer */
.footer{border-top:1px solid #ddd;text-align:center;font-size:12px;padding:1.5em 0;margin:0 2em}
.footer p{margin:0}
.footer a{color:#6e9cf2;text-decoration:none}
/* Body */
.body{position:relative;z-index:1;padding:1em 2em 1em 260px;zoom:1}
.body:after{content:"";display:block;clear:both}
/* Content */
.content{float:right;width:100%;margin-left:-230px;zoom:1}
.content:after{content:"";display:block;clear:both}
.content a{color:#33a}
.content a:hover,
.content a:active,
.content a:focus{color:#a33}
.content .portlet a{text-decoration:none}
.content .portlet a:hover,
.content .portlet a:active,
.content .portlet a:focus{text-decoration:underline}
/* Dashboard */
.dashboard{float:none;width:auto;margin-left:-230px}
.dashboard .portlet{float:left;width:48%;margin-right:1em}
/* Local Navigation */
.lnb{position:relative;float:left;width:200px;margin:1em 0 1em -230px;line-height:normal;zoom:1;display:inline}
.lnb .h2{margin-top:0}
.lnb ul{margin:0;padding:0;list-style:none}
.lnb li{position:relative;margin:0 0 -1px 0;vertical-align:top;zoom:1}
.lnb li a{display:block;position:relative;padding:8px 10px;text-decoration:none;color:#666;font-weight:bold;background:#fafafa;border:1px solid #eee;zoom:1}
.lnb li a .i{position:absolute;top:50%;left:100%;margin:-4px 0 0 -16px;width:8px;height:8px;color:#ccc;background:url(../img/iconNavVr.gif) no-repeat left top}
.lnb li ul{padding:5px 0;background:#fff}
.lnb li li{margin:0;border-top:1px dotted #ddd}
.lnb li li:first-child{border:0}
.lnb li li a{font-weight:normal;background:#fff;padding:5px 10px;border:0}
.lnb li li a span{color:#666}
.lnb li.active{border:1px solid #ccc;z-index:2}
.lnb li li.active{border:0}
.lnb li.active a{color:#000;border:0}
.lnb li.active .i{background-position:0 -44px}
.lnb li.active li a{border:0}
.lnb li.active ul{display:block;border-top:1px solid #eee}
.lnb li.active li.active a span{color:#13b200;font-weight:bold;letter-spacing:-1px}
/* Search */
.search{zoom:1}
.search:after{content:"";display:block;clear:both}
.search .pagination{float:left;text-align:left}
.search form{float:right;margin:1em 0}
.search form *{vertical-align:middle}
/* Site Map */
.siteMap h2 input{font-size:14px;font-weight:bold;padding:0 .5em}
.siteMap .lined ul{padding:0;margin:0;border-top:1px solid #eee;zoom:1}
.siteMap .lined li{position:relative;padding:0;margin:0;cursor:all-scroll;list-style:none;zoom:1}
.siteMap .lined li li{border-top:1px solid #eee}
.siteMap li li{text-indent:32px}
.siteMap li li li{text-indent:64px}
.siteMap li li li li{text-indent:96px}
.siteMap li li li li li{text-indent:128px}
.siteMap li li li li li li{text-indent:160px}
.siteMap li li li li li li li{text-indent:192px}
.siteMap li li li li li li li li{text-indent:224px}
.siteMap li li li li li li li li li{text-indent:256px}
.siteMap li li li li li li li li li li{text-indent:288px}
.siteMap li li li li li li li li li li li{text-indent:320px}
.siteMap li li li li li li li li li li li li{text-indent:352px}
.siteMap li *{vertical-align:middle}
.siteMap li .moveTo+input{width:200px;border:0;padding:0 .5em}
.siteMap li .moveTo+input:hover,
.siteMap li .moveTo+input:active,
.siteMap li .moveTo+input:focus{border:1px dotted #ccc;overflow:visible}
.siteMap .moveTo{position:relative;z-index:2;width:32px;height:32px;padding:32px 0 0 0;margin:0 .5em;_margin-top:-1px;overflow:hidden;background:#fff url(../img/iconMoveTo.gif) no-repeat;border:0}
.siteMap li.active li,
.siteMap li.active ul{border-top-color:#fff}
.siteMap li.active .moveTo{background-position:0 -32px}
.siteMap .vr{display:none;position:absolute;z-index:1;left:16px;top:-16px;margin:0 .5em;height:100%;border-left:1px solid #ccc;overflow:hidden}
.siteMap .hr{display:none;position:absolute;z-index:1;left:16px;top:16px;margin:0 .5em;width:16px;border-top:1px solid #ccc;overflow:hidden}
.siteMap li.active .vr,
.siteMap li.active li .hr{display:block}
.siteMap li li .vr,
.siteMap li li li .hr{left:48px}
.siteMap li li li .vr,
.siteMap li li li li .hr{left:80px}
.siteMap li li li li .vr,
.siteMap li li li li li .hr{left:112px}
.siteMap li li li li li .vr,
.siteMap li li li li li li .hr{left:144px}
.siteMap li li li li li li .vr,
.siteMap li li li li li li li .hr{left:176px}
.siteMap li li li li li li li .vr,
.siteMap li li li li li li li li .hr{left:208px}
.siteMap li li li li li li li li .vr,
.siteMap li li li li li li li li li .hr{left:240px}
.siteMap li li li li li li li li li .vr,
.siteMap li li li li li li li li li li .hr{left:272px}
.siteMap li li li li li li li li li li .vr,
.siteMap li li li li li li li li li li li .hr{left:304px}
.siteMap li li li li li li li li li li li .vr,
.siteMap li li li li li li li li li li li li .hr{left:336px}
.siteMap .side{padding-top:0 !important;padding-bottom:0 !important;line-height:30px}
.siteMap .side button{text-indent:0;line-height:1}
.siteMap .tgMap{position:absolute; top:12px; right:1em; padding:0 16px 0 0; line-height:16px; background:url(../img/iconArrow.gif) no-repeat right -126px}
.siteMap.fold .tgMap{background-position:right -158px}
.siteMap.fold .h2{border-bottom-color:#fff; border-radius:5px}
/* Button Area */
.btnArea{margin:1em 0;text-align:right;zoom:1}
.btnArea:after{content:"";display:block;clear:both}
/* Multilingual */
#vLangEdit{background:#fff;position:absolute;*left:0;*margin-top:28px;z-index:10;box-shadow:3px 3px 6px #999;-moz-box-shadow:3px 3px 6px #999;-webkit-box-shadow:3px 3px 6px #999;filter:progid:DXImageTransform.Microsoft.Shadow(color=#999999,direction=135, strength=5)}
#vLangEdit ul{border-top:1px solid #ccc;border-left:1px solid #eee;border-right:1px solid #eee;margin:0}
#vLangEdit li{padding:.5em 10px}
#vLangEdit input[type=text]{width:220px;padding-right:40px}
#vLangEdit label{left:15px !important}
#vLangEdit .saveAs{ border:1px solid #eee; width:268px; padding:0 10px}
#vLangEdit p, #vLangEdit .btnArea{ white-space:normal}
input#lang_en{background:url(../img/flag.us.gif) no-repeat 96% center}
input#lang_ko{background:url(../img/flag.kr.gif) no-repeat 96% center}
input#lang_ja{background:url(../img/flag.jp.gif) no-repeat 96% center}
input#lang_zh{background:url(../img/flag.cn.gif) no-repeat 96% center}
input#lang_fr{background:url(../img/flag.fr.gif) no-repeat 96% center}
input#lang_de{background:url(../img/flag.de.gif) no-repeat 96% center}
input#lang_ru{background:url(../img/flag.ru.gif) no-repeat 96% center}
input#lang_tr{background:url(../img/flag.tr.gif) no-repeat 96% center}
input#lang_vi{background:url(../img/flag.vn.gif) no-repeat 96% center}
input#lang_mn{background:url(../img/flag.mn.gif) no-repeat 96% center}
.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;}
/* Suggestion */
.suggestion{display:none;position:absolute;background:#fff;z-index:10;_height:200px;max-height:200px;overflow:auto;*left:0;*margin-top:28px;box-shadow:3px 3px 6px #999;-moz-box-shadow:3px 3px 6px #999;-webkit-box-shadow:3px 3px 6px #999;filter:progid:DXImageTransform.Microsoft.Shadow(color=#999999,direction=135, strength=5)}
.suggestion ul{border-top:1px solid #ccc;border-left:1px solid #eee;border-right:1px solid #eee;margin:0}
.suggestion li{padding:0}
.suggestion li:last-child{border-bottom:0}
.suggestion li button{border:0;background:#fff;text-align:left;width:280px;display:block; overflow:hidden; text-overflow:ellipsis;white-space:nowrap}
.suggestion li button:hover,
.suggestion li button:active,
.suggestion li button:focus{background:#eee}
/* Image Mark */
#imageMark{right:0}
/* Easy Installer */
.easyNav{position:relative;border:1px solid #e9e9e9;zoom:1}
.easyNav:after{content:"";display:block;clear:both}
.easyNav h2{font-size:16px}
.easyNav .category{width:30%;float:left;margin:0 2em;display:inline}
.easyNav .filter{position:absolute;top:0;right:0;margin:1em 2em;text-align:right}
.easyList td p{margin-top:0}
.easyList td p.update{background:#ffc;padding:.5em 1em;border:1px solid #fc9;border-left:0;border-right:0;text-align:center}
/* Font Preview */
.fontPreview{width:96%;border:1px solid #e9e9e9;zoom:1;padding:1em 2em;margin:.5em 0}
/* FTP Suggestion */
#ftpSuggestion{background:#fff;box-shadow:3px 3px 6px #999;-moz-box-shadow:3px 3px 6px #999;-webkit-box-shadow:3px 3px 6px #999;filter:progid:DXImageTransform.Microsoft.Shadow(color=#999999,direction=135, strength=5)}
#ftpSuggestion ul{border-left:1px solid #eee;border-right:1px solid #eee}
#ftpSuggestion li{padding:0}
#ftpSuggestion li button{border:0;background:#fff;text-align:left;width:288px}
#ftpSuggestion li button:hover,
#ftpSuggestion li button:active,
#ftpSuggestion li button:focus{background:#eee}
/* Notice Alert */
.noticeAlert{background:#ffc;padding:0 2em;border:1px solid #fcc;border-left:0;border-right:0;zoom:1;position:relative}
.noticeAlert h2{zoom:1;margin:.83em 0}
.noticeAlert em{font-style:normal;font-weight:bold}
/* Theme & Skin Preview */
.thumbPreview li{position:relative;cursor:pointer}
.thumbPreview li.active{border-left:2px solid #ccc;border-right:2px solid #ccc;padding-left:1em;padding-right:1em;background:#FFFCE0}
.thumbPreview .prevToggle{position:absolute;top:8px;right:0;line-height:16px;padding:0 18px 0 0;text-decoration:none;background:url(../img/iconArrow.gif) no-repeat right -32px}
.thumbPreview li.active .prevToggle{right:1em;background-position:right 0}
.thumbPreview .a{border:0;margin:0;zoom:1}
.thumbPreview .a:after{content:"";display:block;clear:both}
.thumbPreview .i{float:left;vertical-align:top;margin:0 1em 1em 0;padding:0;border:0;zoom:1}
.thumbPreview .i:after{content:"";display:block;clear:both}
.thumbPreview .i .thumb{position:relative;width:120px;height:70px;padding:10px 0 0 0;text-align:center;overflow:hidden;border:1px solid #ddd;display:block;cursor:pointer;background:#fff}
.thumbPreview .i .thumb img{width:120px;margin:-10px 0 0 0}
.thumbPreview .i input{display:none}
.thumbPreview .i ul{display:none}
.thumbPreview .i.checked{display:block;float:none}
.thumbPreview .i.checked .thumb{float:left;width:180px;height:120px;margin:0 1em 0 0;border:5px solid #C6DFEC;box-shadow:0 0 5px #666 inset;-moz-box-shadow:0 0 3px #666 inset;-webkit-box-shadow:0 0 5px #666 inset;background:none}
.thumbPreview li.active .i.checked .thumb{border-color:#66A9CC}
.thumbPreview .i.checked .thumb img{width:180px;position:relative;z-index:-1}
.thumbPreview li.active .i.checked .thumb img{z-index:auto}
.thumbPreview .i.checked label{cursor:text}
.thumbPreview .i.checked ul{display:block;list-style:none;border:0;margin:1em 0 1em 200px}
.thumbPreview .i.checked li{border:0;padding:0;margin:0 0 .2em 0}
#skin .showAll{float:right;border:0;overflow:visible;padding:0 18px 0 0;cursor:pointer;color:#00f;background:url(../img/iconArrow.gif) no-repeat right -32px}
#skin .showAll.hideAll{background-position:right 0}
/* Sign Up Form */
.signUpForm li{position:relative}
.signUpForm .side{position:absolute;top:8px;right:0}
/* Favorite On | Off */
.fvOff,.fvOn{display:inline-block;width:16px;height:16px;overflow:hidden;text-indent:16px;background:url(../img/iconFavorite.gif) no-repeat}
.fvOn{background-position:0 -16px}
/* Up-Down Dragable */
.uDrag .wrap{position:relative;padding-left:20px}
.uDrag .dragActive{background:#FFD}
.uDrag .dragActive td{background:none !important}
.uDrag .dragBtn{position:absolute;width:8px;height:100%;padding:0;overflow:hidden;background:url(../img/bgDragable.gif);top:1px;left:0;text-indent:12px;border:0;cursor:n-resize}
/* Favicon Preview */
.faviconPreview{ position:relative; padding:60px 0 0 200px; background:url(../img/bgFavicon.gif) no-repeat}
.faviconPreview img{ position:absolute}
.faviconPreview .fn1{ top:30px; left:12px}
.faviconPreview .fn2{ top:55px; left:68px}
/* Mobile Icon Preview */
.mobiconPreview{ position:relative; padding:252px 0 0 200px; background:url(../img/bgMobileTop.png) no-repeat}
.mobiconPreview img{ position:absolute; top:20px; left:10px}
.mobiconPreview span{ position:absolute; width:32px; text-align:center; top:52px; left:10px; color:#fff; font-size:9px}
.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;}
.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;}
.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; }
.colTable td.wide, .rowTable td.wide, .crossTable td.wide { width:100%;}
.e1 .navigation { list-style:none; position:relative; *zoom:1; margin:0; padding:0; border-bottom:1px solid #c2c2c2;}
.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; background-color:#f7f7f7; }
.e1 .navigation li a.parent { border-top:1px solid #c2c2c2; display:block; padding:10px 20px 10px 35px ;background-image:url(../img/iconNavigation.gif); background-repeat:no-repeat; background-position:160px -35px; font-weight:bold; color:#888; text-decoration:none;}
.e1 .navigation li.close a.parent { background-position:160px 13px; border-bottom:none; }
#module_service { background-image:url(../img/mIcon.gif); background-repeat:no-repeat; background-position:10px 10px;}
#module_member { background-image:url(../img/mIcon.gif); background-repeat:no-repeat; background-position:10px -40px;}
#module_content { background-image:url(../img/mIcon.gif); background-repeat:no-repeat; background-position:10px -90px;}
#module_construction { background-image:url(../img/mIcon.gif); background-repeat:no-repeat; background-position:10px -140px;}
#module_utility { background-image:url(../img/mIcon.gif); background-repeat:no-repeat; background-position:10px -190px;}
#module_accessory { background-image:url(../img/mIcon.gif); background-repeat:no-repeat; background-position:10px -240px;}
#module_system { background-image:url(../img/mIcon.gif); background-repeat:no-repeat; background-position:10px -290px;}
.e1 .navigation li ul{ border-top:1px solid #d2d2d2; margin:0; padding:5px 0; background-color:#fff;}
.e1 .navigation li ul li { margin:5px 0; padding:0 10px 0 35px; background-color:#fff;}
.e1 .navigation li.close ul{ display:none;}
.e1 .navigation li ul li a { text-decoration:none; }
.e1 .navigation li ul li a:hover { font-weight:bold; text-decoration:none; letter-spacing:-1px;}
.e1 .navigation li ul li.active a { color:#ea3f22; letter-spacing:-1px;}
.e2 .section{ margin-left:20px;}
.e2 .section h4.xeAdmin { margin:10px 0 0 0; padding:0 0 0 25px; }
.e2 .section .date{ background:url(../img/lineVrText.gif) no-repeat left center; font-size:9px; padding-left:5px;}
.e2 .section .contentBox { padding:10px 0; margin:0 0 20px 0; border-bottom:1px solid #ccc;}
.e2 table tbody td{ text-align:left; word-break:break-all; -ms-word-break:break-all; }
#xeAdmin .localNavigation { position:relative; border-bottom:1px solid #ccc; *zoom:1; margin:0 0 40px 0; padding:0; font-size:12px;}
#xeAdmin .localNavigation:after {content:""; display:block; clear:both;}
#xeAdmin .localNavigation ul{ display:none; position:absolute; top:40px; left:0; list-style:none; margin:0; padding:0; overflow:hidden;}
#xeAdmin .localNavigation li{ 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; text-decoration:none !important; color:#666}
#xeAdmin .localNavigation li.on { margin-bottom:-1px;}
#xeAdmin .localNavigation li.on ul{ display:block;}
#xeAdmin .localNavigation li.on a{ height:19px; background:none; font-weight:bold;}
#xeAdmin .localNavigation li li{ position:relative; left:-1px; display:inline; float:none; margin:0; padding:0 6px 0 10px; border-left:1px solid #ddd;}
#xeAdmin .localNavigation li li a{ font-weight:normal !important; float:none; padding:0; height:auto; border:0; background:none;}
#xeAdmin .localNavigation li li.on a{ font-weight:bold !important;}
#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:18px; width:15px; height:14px; padding:0; 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:#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; }
.adminTable tr th select { height:20px; }
.adminTable tr th.wide { width:100%; }
.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 #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; }
.adminTable tr td.nowrap { white-space:nowrap !important; }
.adminTable tr td.alert, .adminTable tr td.alert a { color:red; }
.adminTable tr td.number { font-size:8pt; font-family:tahoma; color:#27536C; }
.adminTable tr td.date,
.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("../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; }
.adminTable tr td.modify a,
.adminTable tr td.delete a,
.adminTable tr td.copy a,
.adminTable tr td.setup a,
.adminTable tr td.activated a,
.adminTable tr td.deactivated a,
.adminTable tr td.moveupdown a,
.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("../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; }
.fullWidth { width:80%; }
.adminLeftContent { float:left; width:60%; margin-right:2%; _margin-right:1.9%;}
.adminRightExtra { float:left; width:38%; }
.serverresponse { background: #FFFFFF url(../../../../common/tpl/images/loading.gif) no-repeat scroll 5px 5px; height:30px; padding-left:25px; padding-top:5px; }
#search_nav { border:3px solid #ccc; margin:0; padding:3px; }
#search_nav input { border:0; height:17px; width:140px; padding:3px 0 0 4px; vertical-align:middle;}
#search_nav button { padding:0; border:0; height:17px; width:17px; background:transparent url(../img/buttonSearch.gif) no-repeat center; vertical-align:middle;}
#search_nav button.close {background:transparent url(../img/buttonClose.gif) no-repeat center;}
.e1 .section ._result{ list-style:none; margin:10px 0 0 0; padding:0;}
.e1 .section ._result li{ margin:0;}
.e1 .section ._result a{ display:block; color:#767676; padding:4px 5px 4px 10px;}
.e1 .section ._result a:hover,
.e1 .section ._result a:active,
.e1 .section ._result a:focus{ background:#f8f8f8;}
/* Responsive Layout */
@media only all and (max-width:860px) {
.header h1{margin-left:.7em}
.header .account{padding-right:1em}
.header .siteTool{padding-right:1em}
.header .siteTool .tgContent{right:1em}
.body{padding:1em}
.content{float:none;margin-left:0}
.lnb{float:none;width:auto;margin:1em 0}
.dashboard .portlet{float:none;width:auto;margin-right:0}
.modal .fg,
.wfsr .fg{width:auto}
.easyNav .category{float:none;display:block;width:auto}
.easyNav .filter{position:static}
}
@media only all and (max-width:640px) {
.skipNav a{position:relative;width:auto;height:auto}
.modal{position:absolute}
}

1
modules/admin/tpl/css/admin.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View file

@ -1,123 +0,0 @@
/* Dashboard Header */
.dashboardHeader{ position:relative; padding:29px 0 23px 0; border-bottom:2px solid #cbd4df; background:url(../img/iconH3dashboard.gif) no-repeat left center;}
.dashboardHeader .h3{ font-size:18px; text-indent:50px; margin:0;}
/* Dashboard Notice */
.dashboardNotice{ padding:10px 0 0 0;}
.dashboardNotice .h4{ margin:0 0 12px 0; color:#ea3f22; font-size:11px;}
.dashboardNotice button{ position:absolute; top:10px; right:0; font-size:11px; color:#8b8b8b; padding:0 0 0 10px; text-align:right; border:0; background-color:transparent; background-image:url(../img/iconDashboardNoticeOpen.gif); background-repeat:no-repeat; background-position:left -25px; cursor:pointer; *zoom:1; overflow:visible;}
.dashboardNotice.open button{ background-position:left 5px;}
.dashboardNotice ul{ height:0; margin:0; padding:0; list-style:none; font-size:12px; line-height:1;}
.dashboardNotice.open ul{ height:auto; padding:10px 0 5px 9px; border-top:1px solid #ededed;}
.dashboardNotice li{ display:none; margin:0 0 7px 0; padding:0 0 0 13px; background:url(../img/iconDashboardSummary.gif) no-repeat left center;}
.dashboardNotice li.first{ position:absolute; top:11px; left:90px; display:block; background:none; padding:0; margin:0;}
.dashboardNotice li.first .date{ display:none;}
.dashboardNotice.open li{ display:block;}
.dashboardNotice.open li.first{ position:static; margin:0 0 7px 0; padding:0 0 0 13px; background:url(../img/iconDashboardSummary.gif) no-repeat left center;}
.dashboardNotice li a{ text-decoration:none; color:#555; margin-right:15px;}
.dashboardNotice li a:hover,
.dashboardNotice li a:active,
.dashboardNotice li a:focus{ text-decoration:underline;}
.dashboardNotice li .date{ color:#8b8b8b; font-size:11px;}
.dashboardNotice.open li.first .date{ display:inline;}
/* Dashboard Statistic */
.dashboardStatistic{ position:relative; width:100%; height:183px; _height:189px; *zoom:1; margin-bottom:30px;}
.dashboardStatistic .statistic{ position:relative; height:138px; padding:20px 20px 25px 20px; background:url(../img/bgDashboardStatistic.gif) repeat-x left top; font-size:12px; line-height:1;}
.dashboardStatistic .statistic:after{ content:""; display:block; clear:both;}
.dashboardStatistic .outline{position:absolute; overflow:hidden; font-size:0; line-height:0; background-image:url(../img/bgDashboardStatistic.gif);}
.dashboardStatistic .outline.ml{ top:0; left:-2px; width:4px; height:100%; background-position:left -300px; background-repeat:no-repeat;}
.dashboardStatistic .outline.mr{ top:0; right:-2px; width:4px; height:100%; background-position:right -300px; background-repeat:no-repeat;}
.dashboardStatistic .outline.tc{ top:0; left:0; width:100%; height:3px; background-position:left -600px; background-repeat:repeat-x;}
.dashboardStatistic .outline.bc{ bottom:0; left:0; width:100%; height:5px; background-position:left bottom; background-repeat:repeat-x;}
.dashboardStatistic .outline.tl{ top:0; left:-2px; width:4px; height:3px; background-position:left -603px; background-repeat:no-repeat;}
.dashboardStatistic .outline.tr{ top:0; right:-2px; width:4px; height:3px; background-position:right -603px; background-repeat:no-repeat;}
.dashboardStatistic .outline.bl{ bottom:0; left:-2px; width:4px; height:5px; background-position:left -606px; background-repeat:no-repeat;}
.dashboardStatistic .outline.br{ bottom:0; right:-2px; width:4px; height:5px; background-position:right -606px; background-repeat:no-repeat;}
.dashboardStatistic .statistic h4{ font-size:12px; height:22px; width:67%; margin:0 0 10px 0; background:url(../img/bgDashboardStatisticHeader.gif) repeat-x 0 -22px; text-align:center;}
.dashboardStatistic .statistic h4 span{ display:block; height:18px; padding-top:4px; margin:0 1px; color:#747482; background:url(../img/bgDashboardStatisticHeader.gif) repeat-x;}
.dashboardStatistic .statistic h4 em{ font-style:normal; font-size:9px; color:#b7b7c4; margin-left:5px;}
.dashboardStatistic dl{ position:relative; float:left; height:100px; margin:0; background:url(../img/vrDashboardStatistic.gif) no-repeat left center;}
.dashboardStatistic dt { position:absolute; width:0; height:0; overflow:hidden; font-size:0; line-height:0; visibility:hidden;}
.dashboardStatistic dd { position:absolute; margin:0; padding-top:40px; width:100%; text-align:center; background-image:url(../img/iconDashboardStatistic.gif); background-repeat:no-repeat; font-size:56px; font-weight:bold;}
.dashboardStatistic dd object,
.dashboardStatistic dd embed{ vertical-align:top;}
.dashboardStatistic dl.visit{ background:none; width:28%;}
.dashboardStatistic dl.visit dd{ background-position:center 5px; color:#e3391d ;}
.dashboardStatistic dl.reply { background:none; width:22%;}
.dashboardStatistic dl.reply dd{ background-position:center -195px; color:#28313d;}
.dashboardStatistic dl.trackback { background:none; width:15%;}
.dashboardStatistic dl.trackback dd{ background-position:center -395px; color:#4e4f54;}
.dashboardStatistic .summary{ float:right; width:30%; margin-top:-27px;}
.dashboardStatistic .summary caption{ position:relative; padding-bottom:20px; text-align:left; font-size:12px; line-height:1; font-weight:bold; color:#626972;}
.dashboardStatistic .summary table,
.dashboardStatistic .summary th,
.dashboardStatistic .summary td{ border-spacing:0; border:0; font-weight:normal; text-align:left;}
.dashboardStatistic .summary table{ width:100%; border-bottom:1px solid #e3e6e6;}
.dashboardStatistic .summary th,
.dashboardStatistic .summary td{ padding-top:6px; padding-bottom:6px; border-top:1px solid #e3e6e6; vertical-align:top;}
.dashboardStatistic .summary th{ padding-left:18px; padding-right:12px; white-space:nowrap; color:#8b8b8b; background:url(../img/iconDashboardSummary.gif) no-repeat 2px 9px;}
.dashboardStatistic .summary td{ color:#555;}
.dashboardStatistic .summary td strong{ font-size:11px; color:#ea3f22;}
.dashboardStatistic .summary td .description{ color:#8b8b8b;}
.dashboardStatistic .summary td .description strong{ color:#8b8b8b;}
/* Dashboard Wire */
.dashboardH4{ margin:0 0 7px 0; font-size:14px; color:#555;}
.dashboardH4 a { font-size:11px; color:#b1b1b1; font-style:normal; margin-left:5px;}
.dashboardH4 em{ font-size:11px; color:#b1b1b1; font-style:normal; margin-left:5px;}
.dashboardMoreTop{ position:absolute; top:4px; right:0; padding-left:7px; font-size:11px; display:block; white-space:nowrap; color:#8a919a; text-decoration:none; background:url(../img/iconMoreTop.gif) no-repeat left center;}
.dashboardWire{ position:relative; margin-bottom:40px; border-top:2px solid #cbd4df; border-left:1px solid #e3e5e7; border-right:1px solid #e3e5e7; border-bottom:1px solid #f1f1f1; background:#fff; *border-bottom:1px solid #d0d1d2; *zoom:1; *filter:progid:DXImageTransform.Microsoft.dropshadow(OffX='0', OffY='1', Color='#f1f1f1', positive='true');}
.dashboardWire:after{ content:""; display:block; height:1px; background:#d0d1d2; overflow:hidden;}
.dashboardWire .buttonArea{ padding:8px 14px; background:#fafafa; border-top:1px solid #e3e5e7; text-align:right; position:relative;}
.dashboardWire ul{ position:relative; list-style:none; margin:0; padding:0; font-size:12px; overflow:hidden;}
.dashboardWire li{ position:relative; top:-1px; border-top:1px solid #e3e5e7;}
.dashboardWire blockquote{ margin:0;}
.dashboardWire .noData{ color:#767676; padding:0 2em;}
.dashboardWire .legend{ position:absolute; top:15px; left:20px; margin:0; white-space:nowrap; font-size:12px;}
.dashboardWire .legend *{ display:inline;}
.dashboardWire .legend dt img{ border:1px solid;}
.dashboardWire .legend dt.past img{ border-color:#c3d1db;}
.dashboardWire .legend dt.today img{ border-color:#dc3835;}
.dashboardWire .legend dd{ font-size:11px; color:#b1b1b1; margin:0 5px 0 0;}
.dashboardWire .summary{ position:absolute; top:15px; right:20px; margin:0; white-space:nowrap; font-size:12px;}
.dashboardWire .summary *{ display:inline;}
.dashboardWire .summary dt{ margin-left:10px; color:#555;}
.dashboardWire .summary dd{ margin:0; font-size:11px; font-weight:bold; color:#ea3f22;}
.dashboardWire .graph{ position:relative; height:131px; padding-top:63px; margin:0 20px 26px 20px; background:url(../img/bgDashboardGraph.gif) repeat-x 0 63px;}
.dashboardWire .graph:after{ content:""; display:block; clear:both;}
.dashboardWire .graph dl{ position:relative; float:left; width:10%; height:100%; margin:0 2%; *margin:0 1.8%; _margin:0 2% 0 1.1%;}
.dashboardWire .graph dl dt{ position:absolute; width:100%; text-align:center; font-size:9px; bottom:-16px; color:#707070;}
.dashboardWire .graph dl dd{ position:absolute; bottom:6px; width:30%; margin:0; border:1px solid; font-size:0; line-height:0; overflow:hidden;}
.dashboardWire .graph dl dd.past{ left:0; border-color:#c3d1db; background:#d0dde5;}
.dashboardWire .graph dl dd.today{ right:0; border-color:#dc3835; background:#fe5656;}
.dashboardWire .graph dl dd span{ position:relative; width:0; height:0; font-size:0; line-height:0; overflow:hidden; z-index:-1; visibility:hidden;}
.dashboardWire .graph object,
.dashboardWire .graph embed{ margin-top:-20px;}
.dashboardWire a{ text-decoration:none; color:#648AB9;}
.dashboardWire a:hover,
.dashboardWire a:active,
.dashboardWire a:focus{ text-decoration:underline;}
.section table,
.section th,
.section td{ border-spacing:0; border:0; font-weight:normal; text-align:left;}
.section table{ width:100%; border-bottom:1px solid #e3e6e6;}
.section th,
.section td{ padding-top:6px; padding-bottom:6px; border-top:1px solid #e3e6e6; vertical-align:top;}
.section th{ padding-left:18px; padding-right:12px; color:#8b8b8b; background:url(../img/iconDashboardSummary.gif) no-repeat 2px 9px;}
.section td{ color:#555;}
.section td strong{ font-size:11px; color:#ea3f22;}
.section td.center { text-align:center;}
.section td .description{ color:#8b8b8b;}
.section td .description strong{ color:#8b8b8b;}
.section thead th{ background:none; background-color:#efefef; font-weight:bold; padding:6px 5px 6px 5px; }

View file

@ -1,60 +0,0 @@
@charset "utf-8";
/* NHN (developers@xpressengine.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:#767676;}
#xeAdmin table td a { color:#767676;}
#xeAdmin caption{ font-size:11px; font-family:Tahoma; color:#767676;}
#xeAdmin div.summary { font-size:11px; font-family:Tahoma; color:#767676;}
#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:#767676; font-size:11px; font-family:Dotum, Sans-serif;}
.e1 .navigation li a{ color:#000; text-decoration:none;}
.e1 .navigation li ul li a{ color:#767676;}
.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:#767676; 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:#767676;}
#xeAdmin p.summary a { text-decoration:none; color:#767676; }
#xeAdmin p.summary.red { color:#A54D4D; }
#xeAdmin p.summary.red a { text-decoration:none; color:#A54D4D; }
#xeAdmin div.infoText { color:#767676;}
#xeAdmin div.infoText p.warning{ margin:0 0 10px 0; padding:0 0 0 25px; background:url(../img/iconWarning.gif) no-repeat left top;}
#xeAdmin div.infoText p.update{ margin:0 0 10px 0; padding:0 0 0 25px; background:url(../img/iconRefresh.gif) no-repeat left top;}
#xeAdmin .buttonAction{}

View file

@ -1,47 +0,0 @@
@charset "utf-8";
/* NHN (developers@xpressengine.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:0 0 0 200px; background:url(../img/lineBody.gif) repeat-y 180px 0; *zoom:1;}
.body:after {content:""; display:block; clear:both;}
.c .body { padding:20px; background:none; }
.ece .body {padding-right:340px;}
.ec .body {padding-right:20px;}
.extension{ position:relative;}
.body .e1 { float:left; width:180px; margin-right:-180px; left:-200px;}
.content { position:relative; width:100%; margin-right:-100%; float:left; padding:0;}
.ec .content { padding-top:10px; }
.c .e1, .c .e2 { display:none; }
.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

@ -1,11 +0,0 @@
[skip]
font.css
pagination.css
admin.css
layout.css
dashboard.css
[merge >> xe_admin.css]
font.css
pagination.css
admin.css

View file

@ -1,85 +0,0 @@
@charset "utf-8";
/* NHN (developers@xpressengine.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;}

View file

@ -1,368 +0,0 @@
@charset "utf-8";
/* NHN (developers@xpressengine.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:#767676;}
#xeAdmin table td a { color:#767676;}
#xeAdmin caption{ font-size:11px; font-family:Tahoma; color:#767676;}
#xeAdmin div.summary { font-size:11px; font-family:Tahoma; color:#767676;}
#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:#767676; font-size:11px; font-family:Dotum, Sans-serif;}
.e1 .navigation li a{ color:#000; text-decoration:none;}
.e1 .navigation li ul li a{ color:#767676;}
.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:#767676; 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:#767676;}
#xeAdmin p.summary a { text-decoration:none; color:#767676; }
#xeAdmin p.summary.red { color:#A54D4D; }
#xeAdmin p.summary.red a { text-decoration:none; color:#A54D4D; }
#xeAdmin div.infoText { color:#767676;}
#xeAdmin div.infoText p.warning{ margin:0 0 10px 0; padding:0 0 0 25px; background:url(../img/iconWarning.gif) no-repeat left top;}
#xeAdmin div.infoText p.update{ margin:0 0 10px 0; padding:0 0 0 25px; background:url(../img/iconRefresh.gif) no-repeat left top;}
#xeAdmin .buttonAction{}
/* NHN (developers@xpressengine.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;}
/* NHN (developers@xpressengine.com) */
#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;}
#xeAdmin .ac{ text-align:center;}
#xeAdmin .al{ text-align:left;}
#xeAdmin .ar{ text-align:right;}
.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;}
.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;}
.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;}
.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; }
.colTable td.wide, .rowTable td.wide, .crossTable td.wide { width:100%;}
.e1 .navigation { list-style:none; position:relative; *zoom:1; margin:0; padding:0; border-bottom:1px solid #c2c2c2;}
.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; background-color:#f7f7f7; }
.e1 .navigation li a.parent { border-top:1px solid #c2c2c2; display:block; padding:10px 20px 10px 35px ;background-image:url(../img/iconNavigation.gif); background-repeat:no-repeat; background-position:160px -35px; font-weight:bold; color:#888; text-decoration:none;}
.e1 .navigation li.close a.parent { background-position:160px 13px; border-bottom:none; }
#module_service { background-image:url(../img/mIcon.gif); background-repeat:no-repeat; background-position:10px 10px;}
#module_member { background-image:url(../img/mIcon.gif); background-repeat:no-repeat; background-position:10px -40px;}
#module_content { background-image:url(../img/mIcon.gif); background-repeat:no-repeat; background-position:10px -90px;}
#module_construction { background-image:url(../img/mIcon.gif); background-repeat:no-repeat; background-position:10px -140px;}
#module_utility { background-image:url(../img/mIcon.gif); background-repeat:no-repeat; background-position:10px -190px;}
#module_accessory { background-image:url(../img/mIcon.gif); background-repeat:no-repeat; background-position:10px -240px;}
#module_system { background-image:url(../img/mIcon.gif); background-repeat:no-repeat; background-position:10px -290px;}
.e1 .navigation li ul{ border-top:1px solid #d2d2d2; margin:0; padding:5px 0; background-color:#fff;}
.e1 .navigation li ul li { margin:5px 0; padding:0 10px 0 35px; background-color:#fff;}
.e1 .navigation li.close ul{ display:none;}
.e1 .navigation li ul li a { text-decoration:none; }
.e1 .navigation li ul li a:hover { font-weight:bold; text-decoration:none; letter-spacing:-1px;}
.e1 .navigation li ul li.active a { color:#ea3f22; letter-spacing:-1px;}
.e2 .section{ margin-left:20px;}
.e2 .section h4.xeAdmin { margin:10px 0 0 0; padding:0 0 0 25px; }
.e2 .section .date{ background:url(../img/lineVrText.gif) no-repeat left center; font-size:9px; padding-left:5px;}
.e2 .section .contentBox { padding:10px 0; margin:0 0 20px 0; border-bottom:1px solid #ccc;}
.e2 table tbody td{ text-align:left; word-break:break-all; -ms-word-break:break-all; }
#xeAdmin .localNavigation { position:relative; border-bottom:1px solid #ccc; *zoom:1; margin:0 0 40px 0; padding:0; font-size:12px;}
#xeAdmin .localNavigation:after {content:""; display:block; clear:both;}
#xeAdmin .localNavigation ul{ display:none; position:absolute; top:40px; left:0; list-style:none; margin:0; padding:0; overflow:hidden;}
#xeAdmin .localNavigation li{ 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; text-decoration:none !important; color:#666}
#xeAdmin .localNavigation li.on { margin-bottom:-1px;}
#xeAdmin .localNavigation li.on ul{ display:block;}
#xeAdmin .localNavigation li.on a{ height:19px; background:none; font-weight:bold;}
#xeAdmin .localNavigation li li{ position:relative; left:-1px; display:inline; float:none; margin:0; padding:0 6px 0 10px; border-left:1px solid #ddd;}
#xeAdmin .localNavigation li li a{ font-weight:normal !important; float:none; padding:0; height:auto; border:0; background:none;}
#xeAdmin .localNavigation li li.on a{ font-weight:bold !important;}
#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:18px; width:15px; height:14px; padding:0; 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:#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; }
.adminTable tr th select { height:20px; }
.adminTable tr th.wide { width:100%; }
.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 #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; }
.adminTable tr td.nowrap { white-space:nowrap !important; }
.adminTable tr td.alert, .adminTable tr td.alert a { color:red; }
.adminTable tr td.number { font-size:8pt; font-family:tahoma; color:#27536C; }
.adminTable tr td.date,
.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("../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; }
.adminTable tr td.modify a,
.adminTable tr td.delete a,
.adminTable tr td.copy a,
.adminTable tr td.setup a,
.adminTable tr td.activated a,
.adminTable tr td.deactivated a,
.adminTable tr td.moveupdown a,
.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("../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; }
.fullWidth { width:80%; }
.adminLeftContent { float:left; width:60%; margin-right:2%; _margin-right:1.9%;}
.adminRightExtra { float:left; width:38%; }
.serverresponse { background: #FFFFFF url(../../../../common/tpl/images/loading.gif) no-repeat scroll 5px 5px; height:30px; padding-left:25px; padding-top:5px; }
#search_nav { border:3px solid #ccc; margin:0; padding:3px; }
#search_nav input { border:0; height:17px; width:140px; padding:3px 0 0 4px; vertical-align:middle;}
#search_nav button { padding:0; border:0; height:17px; width:17px; background:transparent url(../img/buttonSearch.gif) no-repeat center; vertical-align:middle;}
#search_nav button.close {background:transparent url(../img/buttonClose.gif) no-repeat center;}
.e1 .section ._result{ list-style:none; margin:10px 0 0 0; padding:0;}
.e1 .section ._result li{ margin:0;}
.e1 .section ._result a{ display:block; color:#767676; padding:4px 5px 4px 10px;}
.e1 .section ._result a:hover,
.e1 .section ._result a:active,
.e1 .section ._result a:focus{ background:#f8f8f8;}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 992 B

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