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
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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};
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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};
|
||||
|
|
|
|||
122
common/js/xe.js
|
|
@ -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
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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 = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
|
||||
?>
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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 = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
|
||||
?>
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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 = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
|
||||
?>
|
||||
|
|
@ -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 = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
|
||||
?>
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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-> 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-> 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 = '모바일에 최적화된 화면으로 보기';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
|
||||
?>
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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 = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
|
||||
?>
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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 = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
|
||||
?>
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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 = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
|
||||
?>
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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 = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?';
|
||||
?>
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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 = '此頁面有手機頁面,要移至手機頁面嗎?';
|
||||
?>
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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}" />
|
||||
|
|
|
|||
|
|
@ -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)-->
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -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 = '環境設定';
|
||||
|
|
|
|||
|
|
@ -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를 읽을 수 없습니다.';
|
||||
|
|
|
|||
|
|
@ -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 = 'Настройка';
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -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 ";
|
||||
|
|
|
|||
|
|
@ -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 = "使用除HTTP(80), HTTPS(443)以外的端口时,必须得指定该服务器端口号。";
|
||||
$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路径。';
|
||||
|
|
|
|||
|
|
@ -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 = "系統設置";
|
||||
|
|
|
|||
9
modules/admin/ruleset/insertThemeInfo.xml
Normal 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>
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
7
modules/admin/tpl/_spFooter.html
Normal 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>
|
||||
46
modules/admin/tpl/_spHeader.html
Normal 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>›</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">
|
||||
10
modules/admin/tpl/_spLnb.content.html
Normal 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>
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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; }
|
||||
|
|
@ -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{}
|
||||
|
|
@ -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;}
|
||||
|
|
@ -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
|
||||
|
|
@ -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;}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -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;}
|
||||
1
modules/admin/tpl/css/xe_admin.min.css
vendored
|
Before Width: | Height: | Size: 46 B |
|
Before Width: | Height: | Size: 51 B |
|
Before Width: | Height: | Size: 152 B |
|
Before Width: | Height: | Size: 52 B |
|
Before Width: | Height: | Size: 47 B |
|
Before Width: | Height: | Size: 51 B |
|
Before Width: | Height: | Size: 151 B |
|
Before Width: | Height: | Size: 51 B |
|
Before Width: | Height: | Size: 64 B |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 156 B |
BIN
modules/admin/tpl/img/bgDragable.gif
Normal file
|
After Width: | Height: | Size: 46 B |
BIN
modules/admin/tpl/img/bgFavicon.gif
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 54 B |
|
Before Width: | Height: | Size: 58 B |
|
Before Width: | Height: | Size: 177 B |
BIN
modules/admin/tpl/img/bgMobileTop.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 76 B |
|
Before Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 99 B |
|
Before Width: | Height: | Size: 72 B |
BIN
modules/admin/tpl/img/btnPlusMinus.gif
Normal file
|
After Width: | Height: | Size: 91 B |
|
Before Width: | Height: | Size: 211 B |
|
Before Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 588 B |
|
Before Width: | Height: | Size: 163 B |
|
Before Width: | Height: | Size: 992 B |