diff --git a/.htaccess b/.htaccess index a17e471ff..1915f7476 100644 --- a/.htaccess +++ b/.htaccess @@ -54,7 +54,7 @@ RewriteRule ^([a-zA-Z0-9_]+)/page/([[:digit:]]+)$ ./index.php?mid=$1&page=$2 [L] RewriteRule ^([a-zA-Z0-9_]+)/category/([[:digit:]]+)$ ./index.php?mid=$1&category=$2 [L] # mid + act + document_Srl -RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$3&act=$2 [L] +RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z])([a-zA-Z0-9_]+)/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$4&act=$2$3 [L] # mid + document_Srl + page RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)/page/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$2&page=$3 [L] diff --git a/addons/autolink/autolink.addon.php b/addons/autolink/autolink.addon.php index 04a15e7b8..df1eff0f9 100644 --- a/addons/autolink/autolink.addon.php +++ b/addons/autolink/autolink.addon.php @@ -7,15 +7,6 @@ * @brief 자동 링크 애드온 **/ if($called_position == 'after_module_proc' && Context::getResponseMethod()!="XMLRPC") { - $script_code = << - // $1://$2"); var dummy = xCreateElement('span'); xInnerHtml(dummy, html); pObj.insertBefore(dummy, obj); pObj.removeChild(obj); } else if(obj.nodeType == 1 && obj.firstChild) { replaceHrefLink(obj.firstChild); } } } function addUrlLink() { var objs = xGetElementsByClassName('xe_content'); if(objs.length<1) return; for(var i=0;i - - -EndOfScript; - Context::addHtmlHeader($script_code); + Context::addJsFile('./addons/autolink/autolink.js'); } ?> diff --git a/addons/autolink/autolink.js b/addons/autolink/autolink.js new file mode 100644 index 000000000..b26c33ba3 --- /dev/null +++ b/addons/autolink/autolink.js @@ -0,0 +1,47 @@ +var url_regx = /((http|https|ftp|news|telnet|irc):\/\/(([0-9a-z\-._~!$&'\(\)*+,;=:]|(%[0-9a-f]{2}))*\@)?((\[(((([0-9a-f]{1,4}:){6}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|(::([0-9a-f]{1,4}:){5}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|(([0-9a-f]{1,4})?::([0-9a-f]{1,4}:){4}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:)?[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){3}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){2}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4})|((([0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::))|(v[0-9a-f]+.[0-9a-z\-._~!$&'\(\)*+,;=:]+))\])|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))|(([0-9a-z\-._~!$&'\(\)*+,;=]|(%[0-9a-f]{2}))+))(:[0-9]*)?(\/([0-9a-z\-._~!$&'\(\)*+,;=:@]|(%[0-9a-f]{2}))*)*(\?([0-9a-z\-._~!$&'\(\)*+,;=:@\/\?]|(%[0-9a-f]{2}))*)?(#([0-9a-z\-._~!$&'\(\)*+,;=:@\/\?]|(%[0-9a-f]{2}))*)?)/i; +function replaceHrefLink(target_obj) +{ + var obj_list = new Array(); + var obj = target_obj; + while(obj) { + obj_list[obj_list.length] = obj; + obj = obj.nextSibling; + } + + for(var i=0;i'); + for(var j=0;j$1<\/a>"); + html[i] = html2.join('>'); + } + var output = html.join('<'); + var dummy = xCreateElement('span'); + xInnerHtml(dummy, output); + pObj.insertBefore(dummy, obj); + pObj.removeChild(obj); + } + else if(obj.nodeType == 1 && obj.firstChild) + replaceHrefLink(obj.firstChild); + } +} + +function addUrlLink() { + var objs = xGetElementsByClassName('xe_content'); + if(objs.length<1) return; + for(var i=0;i 0.1 2008-04-22 + http://www.zeroboard.com/ - zero + 제로 zero zero zero diff --git a/addons/blogapi/conf/info.xml b/addons/blogapi/conf/info.xml index 3a76ed3f5..f8535ec66 100644 --- a/addons/blogapi/conf/info.xml +++ b/addons/blogapi/conf/info.xml @@ -51,6 +51,7 @@ 0.1 2007-02-28 + http://www.zeroboard.com/ 제로 diff --git a/addons/counter/conf/info.xml b/addons/counter/conf/info.xml index 862cb8e71..924071f41 100644 --- a/addons/counter/conf/info.xml +++ b/addons/counter/conf/info.xml @@ -37,6 +37,7 @@ 0.1 2007-02-28 + http://www.zeroboard.com/ 제로 diff --git a/addons/lemonpen/conf/info.xml b/addons/lemonpen/conf/info.xml index 8da4835f6..a1e104bbe 100644 --- a/addons/lemonpen/conf/info.xml +++ b/addons/lemonpen/conf/info.xml @@ -16,6 +16,7 @@ 機能をオンにすると、レモンペンをサイト上で使うことが出来ます。 (LemonPen:Openmaru社提供) 0.1 2007-12-10 + http://www.zeroboard.com/ zero diff --git a/addons/member_communication/conf/info.xml b/addons/member_communication/conf/info.xml index 951ce2cc9..9cf4dab27 100644 --- a/addons/member_communication/conf/info.xml +++ b/addons/member_communication/conf/info.xml @@ -36,6 +36,7 @@ 0.1 2008-05-28 + http://www.zeroboard.com/ 제로 diff --git a/addons/member_extra_info/conf/info.xml b/addons/member_extra_info/conf/info.xml index a5bdfae58..69c33f2f7 100644 --- a/addons/member_extra_info/conf/info.xml +++ b/addons/member_extra_info/conf/info.xml @@ -30,6 +30,7 @@ 0.2 2007-02-28 + http://www.zeroboard.com/ 제로 diff --git a/addons/mobile/conf/info.xml b/addons/mobile/conf/info.xml index 8767ed857..2105cd09e 100644 --- a/addons/mobile/conf/info.xml +++ b/addons/mobile/conf/info.xml @@ -12,6 +12,7 @@ 0.1 2008-06-20 + http://www.zeroboard.com/ 제로 diff --git a/addons/openid_delegation_id/conf/info.xml b/addons/openid_delegation_id/conf/info.xml index bedba16c7..e60d2fcf8 100644 --- a/addons/openid_delegation_id/conf/info.xml +++ b/addons/openid_delegation_id/conf/info.xml @@ -37,6 +37,7 @@ 0.1 2007-02-28 + http://www.zeroboard.com/ 제로 diff --git a/addons/point_level_icon/conf/info.xml b/addons/point_level_icon/conf/info.xml index d78ffba65..04298c7b2 100644 --- a/addons/point_level_icon/conf/info.xml +++ b/addons/point_level_icon/conf/info.xml @@ -37,6 +37,7 @@ 0.1 2007-07-26 + http://www.zeroboard.com/ 제로 diff --git a/addons/point_level_icon/point_level_icon.lib.php b/addons/point_level_icon/point_level_icon.lib.php index e494354be..d6118f293 100644 --- a/addons/point_level_icon/point_level_icon.lib.php +++ b/addons/point_level_icon/point_level_icon.lib.php @@ -7,7 +7,7 @@ if($member_srl<1) return $matches[0]; if(!isset($GLOBALS['_pointLevelIcon'][$member_srl])) { - // 포인트 설정을 구해옴 + // 포인트 설정을 구해옴 if(!$GLOBALS['_pointConfig']) { $oModuleModel = &getModel('module'); $GLOBALS['_pointConfig'] = $oModuleModel->getModuleConfig('point'); @@ -26,7 +26,7 @@ $text = $matches[5]; // 레벨 아이콘의 위치를 구함 - $level_icon = sprintf("./modules/point/icons/%s/%d.gif", $config->level_icon, $level); + $level_icon = sprintf('./modules/point/icons/%s/%d.gif', $config->level_icon, $level); // 최고 레벨이 아니면 다음 레벨로 가기 위한 per을 구함 if($level < $config->max_level) { @@ -34,13 +34,14 @@ if($next_point > 0) $per = (int)($point / $next_point*100); } - $title = sprintf("%s:%s%s %s, %s:%s/%s", Context::getLang('point'), $point, $config->point_name, $per?"(".$per."%)":"", Context::getLang('level'), $level, $config->max_level); + $title = sprintf('%s:%s%s %s, %s:%s/%s', Context::getLang('point'), $point, $config->point_name, $per?'('.$per.'%)':'', Context::getLang('level'), $level, $config->max_level); + $alt = sprintf('[%s:%s]', Context::getLang('level'), $level); - $text = sprintf('%s%s', $member_srl, $level_icon, $title, $title, $text); + $text = sprintf('%s%s', $member_srl, $level_icon, $alt, $title, $text); $GLOBALS['_pointLevelIcon'][$member_srl] = $text; - } + } return $GLOBALS['_pointLevelIcon'][$member_srl]; } -?> +?> \ No newline at end of file diff --git a/addons/rainbow_link/conf/info.xml b/addons/rainbow_link/conf/info.xml index 1afb115f2..89f722829 100644 --- a/addons/rainbow_link/conf/info.xml +++ b/addons/rainbow_link/conf/info.xml @@ -36,6 +36,7 @@ 0.1 2007-02-28 + http://www.zeroboard.com/ dynamicdrive.com diff --git a/addons/referer/conf/info.xml b/addons/referer/conf/info.xml index 7bb8c674a..d56243008 100644 --- a/addons/referer/conf/info.xml +++ b/addons/referer/conf/info.xml @@ -16,6 +16,7 @@ Собирает лог рефералов и статистику. 0.1 2007-11-26 + http://www.zeroboard.com/ haneul diff --git a/addons/resize_image/conf/info.xml b/addons/resize_image/conf/info.xml index e5985dccf..fc8ca0f7f 100644 --- a/addons/resize_image/conf/info.xml +++ b/addons/resize_image/conf/info.xml @@ -26,6 +26,7 @@ 0.1 2008-04-22 + http://www.zeroboard.com/ zero diff --git a/addons/tccommentnotify/conf/info.xml b/addons/tccommentnotify/conf/info.xml index 1444320d9..2925429a0 100644 --- a/addons/tccommentnotify/conf/info.xml +++ b/addons/tccommentnotify/conf/info.xml @@ -6,6 +6,7 @@ This addon enables Comment Notifier module. 0.2 2008-06-02 + http://www.zeroboard.com/ haneul diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 989a3156b..4bb6edfba 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -22,6 +22,7 @@ var $context = NULL; ///< @brief request parameter 및 각종 환경 변수등을 정리하여 담을 변수 var $db_info = NULL; ///< @brief DB 정보 + var $ftp_info = NULL; ///< @brief FTP 정보 var $ssl_actions = array(); ///< @brief ssl로 전송해야 할 action등록 (common/js/xml_handler.js에서 ajax통신시 활용) var $js_files = array(); ///< @brief display시에 사용하게 되는 js files의 목록 @@ -260,6 +261,34 @@ return $this->db_info; } + /** + * @biref FTP 정보가 등록되었는지 확인 + **/ + function isFTPRegisted() { + $ftp_config_file = Context::getFTPConfigFile(); + if(file_exists($ftp_config_file)) return true; + return false; + } + + /** + * @brief FTP 정보가 담긴 object를 return + **/ + function getFTPInfo() { + $oContext = &Context::getInstance(); + return $oContext->_getFTPInfo(); + } + + /** + * @brief FTP 정보가 담긴 object를 return + **/ + function _getFTPInfo() { + if(!$this->isFTPRegisted()) return null; + + $ftp_config_file = $this->getFTPConfigFile(); + @include($ftp_config_file); + return $ftp_info; + } + /** * @brief 사이트 title adding **/ @@ -485,18 +514,18 @@ if(!count($_REQUEST)) return; foreach($_REQUEST as $key => $val) { + if($val === "") continue; if($key == "page" || $key == "cpage" || substr($key,-3)=="srl") $val = (int)$val; else if(is_array($val) && count($val) ) { foreach($val as $k => $v) { - if(get_magic_quotes_gpc()) $v = stripslashes($v); + if(version_compare(PHP_VERSION, "5.9.0", "<") && get_magic_quotes_gpc()) $v = stripslashes($v); $v = trim($v); $val[$k] = $v; } } else { - if(get_magic_quotes_gpc()) $val = stripslashes($val); + if(version_compare(PHP_VERSION, "5.9.0", "<") && get_magic_quotes_gpc()) $val = stripslashes($val); $val = trim($val); } - if(!$val) continue; if($this->_getRequestMethod()=='GET'&&$_GET[$key]) $set_to_vars = true; elseif($this->_getRequestMethod()=='POST'&&$_POST[$key]) $set_to_vars = true; @@ -596,7 +625,7 @@ for($i=0;$i<$num_args;$i=$i+2) { $key = $args_list[$i]; $val = trim($args_list[$i+1]); - if(!$val) { + if(!isset($val)) { unset($get_vars[$key]); continue; } @@ -615,7 +644,7 @@ // rewrite모듈을 사용할때 getUrl()을 이용한 url 생성 if($this->allow_rewrite) { - if(count($get_vars)) foreach($get_vars as $key => $value) if($value !== 0 && !$value) unset($get_vars[$key]); + if(count($get_vars)) foreach($get_vars as $key => $value) if(!isset($value) || $value === '') unset($get_vars[$key]); $var_keys = array_keys($get_vars); asort($var_keys); @@ -655,14 +684,12 @@ break; case 'act.document_srl.mid' : return sprintf('%s%s/%s/%s',$path,$get_vars['mid'], $get_vars['act'],$get_vars['document_srl']); - case 'act.document_srl.mid.page' : - return sprintf('%s%s/%s/%s/page/%s',$path,$get_vars['mid'], $get_vars['act'], $get_vars['document_srl'],$get_vars['page']); } } // rewrite 모듈을 사용하지 않고 인자의 값이 2개 이상이거나 rewrite모듈을 위한 인자로 적당하지 않을 경우 foreach($get_vars as $key => $val) { - if(!$val) continue; + if(!isset($val)) continue; $url .= ($url?'&':'').$key.'='.urlencode($val); } @@ -960,6 +987,13 @@ return _XE_PATH_."files/config/db.config.php"; } + /** + * @brief ftp설정내용이 저장되어 있는 config file의 path를 return + **/ + function getFTPConfigFile() { + return _XE_PATH_."files/config/ftp.config.php"; + } + /** * @brief 설치가 되어 있는지에 대한 체크 * diff --git a/classes/db/DB.class.php b/classes/db/DB.class.php index 9e973a3b6..b18a99f66 100644 --- a/classes/db/DB.class.php +++ b/classes/db/DB.class.php @@ -373,37 +373,37 @@ function getConditionPart($name, $value, $operation) { switch($operation) { case 'equal' : - if(!$value) return; + if(!isset($value)) return; return $name.' = '.$value; break; case 'more' : - if(!$value) return; + if(!isset($value)) return; return $name.' >= '.$value; break; case 'excess' : - if(!$value) return; + if(!isset($value)) return; return $name.' > '.$value; break; case 'less' : - if(!$value) return; + if(!isset($value)) return; return $name.' <= '.$value; break; case 'below' : - if(!$value) return; + if(!isset($value)) return; return $name.' < '.$value; break; case 'like_tail' : case 'like_prefix' : case 'like' : - if(!$value) return; + if(!isset($value)) return; return $name.' like '.$value; break; case 'in' : - if(!$value) return; + if(!isset($value)) return; return $name.' in ('.$value.')'; break; case 'notequal' : - if(!$value) return; + if(!isset($value)) return; return $name.' <> '.$value; break; case 'notnull' : diff --git a/classes/db/DBCubrid.class.php b/classes/db/DBCubrid.class.php index e8ddca98d..c27d6858f 100644 --- a/classes/db/DBCubrid.class.php +++ b/classes/db/DBCubrid.class.php @@ -102,7 +102,7 @@ **/ function addQuotes($string) { if(!$this->fd) return $string; - if(get_magic_quotes_gpc()) $string = stripslashes(str_replace("\\","\\\\",$string)); + if(version_compare(PHP_VERSION, "5.9.0", "<") && get_magic_quotes_gpc()) $string = stripslashes(str_replace("\\","\\\\",$string)); if(!is_numeric($string)) $string = str_replace("'","''",$string); return $string; } @@ -381,7 +381,7 @@ foreach($output->conditions as $key => $val) { $sub_condition = ''; foreach($val['condition'] as $k =>$v) { - if(!$v['value']) continue; + if(!isset($v['value']) || $v['value'] === '') continue; $name = $v['column']; $operation = $v['operation']; diff --git a/classes/db/DBFirebird.class.php b/classes/db/DBFirebird.class.php index aa00106b9..aa30a4752 100644 --- a/classes/db/DBFirebird.class.php +++ b/classes/db/DBFirebird.class.php @@ -592,7 +592,7 @@ foreach($output->conditions as $key => $val) { $sub_condition = ''; foreach($val['condition'] as $k =>$v) { - if(!$v['value']) continue; + if(!isset($v['value']) || $v['value'] === '') continue; $name = $v['column']; $operation = $v['operation']; diff --git a/classes/db/DBMysql.class.php b/classes/db/DBMysql.class.php index a0875db52..d22f6c8b3 100644 --- a/classes/db/DBMysql.class.php +++ b/classes/db/DBMysql.class.php @@ -113,7 +113,7 @@ * @brief 쿼리에서 입력되는 문자열 변수들의 quotation 조절 **/ function addQuotes($string) { - if(get_magic_quotes_gpc()) $string = stripslashes(str_replace("\\","\\\\",$string)); + if(version_compare(PHP_VERSION, "5.9.0", "<") && get_magic_quotes_gpc()) $string = stripslashes(str_replace("\\","\\\\",$string)); if(!is_numeric($string)) $string = @mysql_escape_string($string); return $string; } @@ -369,7 +369,7 @@ foreach($output->conditions as $key => $val) { $sub_condition = ''; foreach($val['condition'] as $k =>$v) { - if(!$v['value']) continue; + if(!isset($v['value']) || $v['value'] === '') continue; $name = $v['column']; $operation = $v['operation']; diff --git a/classes/db/DBMysql_innodb.class.php b/classes/db/DBMysql_innodb.class.php index aebf7a07d..5e2b09e8a 100644 --- a/classes/db/DBMysql_innodb.class.php +++ b/classes/db/DBMysql_innodb.class.php @@ -114,7 +114,7 @@ * @brief 쿼리에서 입력되는 문자열 변수들의 quotation 조절 **/ function addQuotes($string) { - if(get_magic_quotes_gpc()) $string = stripslashes(str_replace("\\","\\\\",$string)); + if(version_compare(PHP_VERSION, "5.9.0", "<") && get_magic_quotes_gpc()) $string = stripslashes(str_replace("\\","\\\\",$string)); if(!is_numeric($string)) $string = @mysql_escape_string($string); return $string; } @@ -379,7 +379,7 @@ foreach($output->conditions as $key => $val) { $sub_condition = ''; foreach($val['condition'] as $k =>$v) { - if(!$v['value']) continue; + if(!isset($v['value']) || $v['value'] === '') continue; $name = $v['column']; $operation = $v['operation']; diff --git a/classes/db/DBPostgresql.class.php b/classes/db/DBPostgresql.class.php index 545527fb4..81ca1d1a0 100644 --- a/classes/db/DBPostgresql.class.php +++ b/classes/db/DBPostgresql.class.php @@ -108,7 +108,7 @@ * @brief 쿼리에서 입력되는 문자열 변수들의 quotation 조절 **/ function addQuotes($string) { - if(get_magic_quotes_gpc()) $string = stripslashes(str_replace("\\","\\\\",$string)); + if(version_compare(PHP_VERSION, "5.9.0", "<") && get_magic_quotes_gpc()) $string = stripslashes(str_replace("\\","\\\\",$string)); if(!is_numeric($string)) $string = @pg_escape_string($string); return $string; } @@ -371,7 +371,7 @@ foreach($output->conditions as $key => $val) { $sub_condition = ''; foreach($val['condition'] as $k =>$v) { - if(!$v['value']) continue; + if(!isset($v['value']) || $v['value'] === '') continue; $name = $v['column']; $operation = $v['operation']; diff --git a/classes/db/DBSqlite2.class.php b/classes/db/DBSqlite2.class.php index 6a993b2eb..95b388df2 100644 --- a/classes/db/DBSqlite2.class.php +++ b/classes/db/DBSqlite2.class.php @@ -116,7 +116,7 @@ * @brief 쿼리에서 입력되는 문자열 변수들의 quotation 조절 **/ function addQuotes($string) { - if(get_magic_quotes_gpc()) $string = stripslashes(str_replace("\\","\\\\",$string)); + if(version_compare(PHP_VERSION, "5.9.0", "<") && get_magic_quotes_gpc()) $string = stripslashes(str_replace("\\","\\\\",$string)); if(!is_numeric($string)) $string = str_replace("'","''", $string); return $string; } @@ -352,7 +352,7 @@ foreach($output->conditions as $key => $val) { $sub_condition = ''; foreach($val['condition'] as $k =>$v) { - if(!$v['value']) continue; + if(!isset($v['value']) || $v['value'] === '') continue; $name = $v['column']; $operation = $v['operation']; diff --git a/classes/db/DBSqlite3_pdo.class.php b/classes/db/DBSqlite3_pdo.class.php index 03de0920f..b2b9ae099 100644 --- a/classes/db/DBSqlite3_pdo.class.php +++ b/classes/db/DBSqlite3_pdo.class.php @@ -123,7 +123,7 @@ * @brief 쿼리에서 입력되는 문자열 변수들의 quotation 조절 **/ function addQuotes($string) { - if(get_magic_quotes_gpc()) $string = stripslashes(str_replace("\\","\\\\",$string)); + if(version_compare(PHP_VERSION, "5.9.0", "<") && get_magic_quotes_gpc()) $string = stripslashes(str_replace("\\","\\\\",$string)); if(!is_numeric($string)) $string = str_replace("'","''",$string); return $string; } @@ -381,7 +381,7 @@ foreach($output->conditions as $key => $val) { $sub_condition = ''; foreach($val['condition'] as $k =>$v) { - if(!$v['value']) continue; + if(!isset($v['value']) || $v['value'] === '') continue; $name = $v['column']; $operation = $v['operation']; diff --git a/classes/file/FileHandler.class.php b/classes/file/FileHandler.class.php index 72c65984a..69d41c548 100644 --- a/classes/file/FileHandler.class.php +++ b/classes/file/FileHandler.class.php @@ -121,6 +121,22 @@ * 주어진 경로를 단계별로 접근하여 recursive하게 디렉토리 생성 **/ function makeDir($path_string) { + static $oFtp = null; + + // safe_mode 일 경우 ftp 정보를 이용해서 디렉토리 생성 + if(ini_get('safe_mode') && $oFtp == null) { + if(!Context::isFTPRegisted()) return; + + require_once(_XE_PATH_.'libs/ftp.class.php'); + $ftp_info = Context::getFTPInfo(); + $oFtp = new ftp(); + if(!$oFtp->ftp_connect('localhost')) return; + if(!$oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { + $oFtp->ftp_quit(); + return; + } + } + $path_string = str_replace(_XE_PATH_,'',$path_string); $path_list = explode('/', $path_string); @@ -129,8 +145,13 @@ if(!$path_list[$i]) continue; $path .= $path_list[$i].'/'; if(!is_dir($path)) { - @mkdir($path, 0755); - @chmod($path, 0755); + if(ini_get('safe_mode')) { + $oFtp->ftp_mkdir($path); + $oFtp->ftp_site("CHMOD 777 ".$path); + } else { + @mkdir($path, 0755); + @chmod($path, 0755); + } } } @@ -180,8 +201,20 @@ * @biref 지정된 디렉토리를 제외한 모든 파일을 삭제 **/ function removeFilesInDir($path) { - FileHandler::removedir($path); - FileHandler::makeDir($path); + $path = FileHandler::getRealPath($path); + if(!is_dir($path)) return; + $directory = dir($path); + while($entry = $directory->read()) { + if ($entry != "." && $entry != "..") { + if (is_dir($path."/".$entry)) { + FileHandler::removeFilesInDir($path."/".$entry); + } else { + @unlink($path."/".$entry); + } + } + } + $directory->close(); + @rmdir($path); } /** diff --git a/classes/httprequest/XEHttpRequest.class.php b/classes/httprequest/XEHttpRequest.class.php index 7b39e2991..3e42e7a3f 100644 --- a/classes/httprequest/XEHttpRequest.class.php +++ b/classes/httprequest/XEHttpRequest.class.php @@ -72,7 +72,10 @@ } fclose($socket); - return array($code, $body); + $ret->result_code = $code; + $ret->body = $body; + + return $ret; } } ?> diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index 95100420a..014cd3f47 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -181,61 +181,64 @@ $this->error = 'msg_module_is_not_exists'; } - // 에러가 발생하였을시 처리 - if($this->error) { - // message 모듈 객체를 생성해서 컨텐츠 생성 - $oMessageView = &getView('message'); - $oMessageView->setError(-1); - $oMessageView->setMessage($this->error); - $oMessageView->dispMessage(); + // XMLRPC call 이 아니면 message view 객체 이용하도록 + if(Context::getRequestMethod() != 'XMLRPC') { + // 에러가 발생하였을시 처리 + if($this->error) { + // message 모듈 객체를 생성해서 컨텐츠 생성 + $oMessageView = &getView('message'); + $oMessageView->setError(-1); + $oMessageView->setMessage($this->error); + $oMessageView->dispMessage(); - // 정상적으로 호출된 객체가 있을 경우 해당 객체의 template를 변경 - if($oModule) { - $oModule->setTemplatePath($oMessageView->getTemplatePath()); - $oModule->setTemplateFile($oMessageView->getTemplateFile()); + // 정상적으로 호출된 객체가 있을 경우 해당 객체의 template를 변경 + if($oModule) { + $oModule->setTemplatePath($oMessageView->getTemplatePath()); + $oModule->setTemplateFile($oMessageView->getTemplateFile()); - // 그렇지 않으면 message 객체를 호출된 객체로 지정 - } else { - $oModule = $oMessageView; + // 그렇지 않으면 message 객체를 호출된 객체로 지정 + } else { + $oModule = $oMessageView; + } } - } - // 해당 모듈에 layout_srl이 있는지 확인 - if($oModule->module_info->layout_srl && !$oModule->getLayoutFile()) { + // 해당 모듈에 layout_srl이 있는지 확인 + if($oModule->module_info->layout_srl && !$oModule->getLayoutFile()) { - // layout_srl이 있으면 해당 레이아웃 정보를 가져와 layout_path/ layout_file 위치 변경 - $oLayoutModel = &getModel('layout'); - $layout_info = $oLayoutModel->getLayout($oModule->module_info->layout_srl); + // layout_srl이 있으면 해당 레이아웃 정보를 가져와 layout_path/ layout_file 위치 변경 + $oLayoutModel = &getModel('layout'); + $layout_info = $oLayoutModel->getLayout($oModule->module_info->layout_srl); - if($layout_info) { + if($layout_info) { - // 레이아웃 정보중 extra_vars의 이름과 값을 $layout_info에 입력 - if($layout_info->extra_var_count) { - foreach($layout_info->extra_var as $var_id => $val) { - $layout_info->{$var_id} = $val->value; + // 레이아웃 정보중 extra_vars의 이름과 값을 $layout_info에 입력 + if($layout_info->extra_var_count) { + foreach($layout_info->extra_var as $var_id => $val) { + $layout_info->{$var_id} = $val->value; + } } - } - - // 레이아웃 정보중 menu를 Context::set - if($layout_info->menu_count) { - foreach($layout_info->menu as $menu_id => $menu) { - if(file_exists($menu->php_file)) @include($menu->php_file); - Context::set($menu_id, $menu); + + // 레이아웃 정보중 menu를 Context::set + if($layout_info->menu_count) { + foreach($layout_info->menu as $menu_id => $menu) { + if(file_exists($menu->php_file)) @include($menu->php_file); + Context::set($menu_id, $menu); + } } + + // 레이아웃 정보중 header_script가 있으면 헤더 추가 + if($layout_info->header_script) Context::addHtmlHeader($layout_info->header_script); + + // 레이아웃 정보를 Context::set + Context::set('layout_info', $layout_info); + + $oModule->setLayoutPath($layout_info->path); + $oModule->setLayoutFile('layout'); + + // 레이아웃이 수정되었을 경우 수정본을 지정 + $edited_layout = sprintf('./files/cache/layout/%d.html', $layout_info->layout_srl); + if(file_exists($edited_layout)) $oModule->setEditedLayoutFile($edited_layout); } - - // 레이아웃 정보중 header_script가 있으면 헤더 추가 - if($layout_info->header_script) Context::addHtmlHeader($layout_info->header_script); - - // 레이아웃 정보를 Context::set - Context::set('layout_info', $layout_info); - - $oModule->setLayoutPath($layout_info->path); - $oModule->setLayoutFile('layout'); - - // 레이아웃이 수정되었을 경우 수정본을 지정 - $edited_layout = sprintf('./files/cache/layout/%d.html', $layout_info->layout_srl); - if(file_exists($edited_layout)) $oModule->setEditedLayoutFile($edited_layout); } } diff --git a/classes/template/TemplateHandler.class.php b/classes/template/TemplateHandler.class.php index ec6ad652f..166c28b4f 100644 --- a/classes/template/TemplateHandler.class.php +++ b/classes/template/TemplateHandler.class.php @@ -115,6 +115,9 @@ // 의 변경 $buff = preg_replace_callback('!<\!--@(.*?)-->!is', array($this, '_compileFuncToCode'), $buff); + // 주석문 제거 + $buff = preg_replace('!(\n?)( *?)<\!--//(.*?)-->!is', '', $buff); + // import xml filter/ css/ js/ 언어파일 (media는 css에만 적용) $buff = preg_replace_callback('!<\!--%import\(\"([^\"]*?)\"(,optimized\=(true|false))?(,media\=\"([^\"]*)\")?(,targetie=\"([^\"]*)\")?\)-->!is', array($this, '_compileImportCode'), $buff); diff --git a/classes/xml/XmlQueryParser.class.php b/classes/xml/XmlQueryParser.class.php index fbbd06181..2420b6b9c 100644 --- a/classes/xml/XmlQueryParser.class.php +++ b/classes/xml/XmlQueryParser.class.php @@ -63,6 +63,11 @@ $table_xml = FileHandler::readFile($table_file); $table_obj = parent::parse($table_xml); if($table_obj->table) { + if(isset($table_obj->table->column) && !is_array($table_obj->table->column)) + { + $table_obj->table->column = array($table_obj->table->column); + } + foreach($table_obj->table->column as $k => $v) { $buff .= sprintf('$output->column_type["%s"] = "%s";%s', $v->attrs->name, $v->attrs->type, "\n"); } diff --git a/common/js/calendar-ko.js b/common/js/calendar-ko.js index 2033dafc3..e020593b5 100644 --- a/common/js/calendar-ko.js +++ b/common/js/calendar-ko.js @@ -86,8 +86,8 @@ DyCalendar._TT["ABOUT"] = "\n"+ "최신 버전을 받으시려면 http://www.dynarch.com/projects/calendar/ 에 방문하세요\n" + "\n"+ -"GNU LGPL 라이센스로 배포됩니다. \n"+ -"라이센스에 대한 자세한 내용은 http://gnu.org/licenses/lgpl.html 을 읽으세요." + +"GNU LGPL 라이선스로 배포됩니다. \n"+ +"라이선스에 대한 자세한 내용은 http://gnu.org/licenses/lgpl.html 을 읽으세요." + "\n\n" + "날짜 선택:\n" + "- 연도를 선택하려면 \xab, \xbb 버튼을 사용합니다\n" + diff --git a/common/js/calendar.js b/common/js/calendar.js index b300af317..edd246a5c 100644 --- a/common/js/calendar.js +++ b/common/js/calendar.js @@ -1389,13 +1389,10 @@ DyCalendar.prototype.showAtElement = function (el, opts) { document.body.appendChild(cp); var br = DyCalendar.getAbsolutePos(cp); document.body.removeChild(cp); - if (DyCalendar.is_ie) { - br.y += document.body.scrollTop; - br.x += document.body.scrollLeft; - } else { - br.y += window.scrollY; - br.x += window.scrollX; - } + if (document.body.scrollLeft){br.x += document.body.scrollLeft;} + br.x += window.scrollX; + if (document.body.scrollTop){br.y += document.body.scrollTop;} + br.y += window.scrollY; var tmp = box.x + box.width - br.x; if (tmp > 0) box.x -= tmp; tmp = box.y + box.height - br.y; diff --git a/common/js/calendar.min.js b/common/js/calendar.min.js index 50ae2ae74..ef63ed3e9 100644 --- a/common/js/calendar.min.js +++ b/common/js/calendar.min.js @@ -15,4 +15,190 @@ // $Id: calendar.js,v 1.51 2005/03/07 16:44:31 mishoo Exp $ /** The Calendar object constructor. */ -DyCalendar=function(firstDayOfWeek,dateStr,onSelected,onClose){this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=onSelected||null;this.onClose=onClose||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=DyCalendar._TT["DEF_DATE_FORMAT"];this.ttDateFormat=DyCalendar._TT["TT_DATE_FORMAT"];this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof firstDayOfWeek=="number"?firstDayOfWeek:DyCalendar._FD;this.showsOtherMonths=false;this.dateStr=dateStr;this.ar_days=null;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;this.multiple=null;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof DyCalendar._SDN=="undefined"){if(typeof DyCalendar._SDN_len=="undefined")DyCalendar._SDN_len=3;var ar=new Array();for(var i=8;i>0;){ar[--i]=DyCalendar._DN[i].substr(0,DyCalendar._SDN_len)}DyCalendar._SDN=ar;if(typeof DyCalendar._SMN_len=="undefined")DyCalendar._SMN_len=3;ar=new Array();for(var i=12;i>0;){ar[--i]=DyCalendar._MN[i].substr(0,DyCalendar._SMN_len)}DyCalendar._SMN=ar}};DyCalendar._C=null;DyCalendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));DyCalendar.is_ie5=(DyCalendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));DyCalendar.is_opera=/opera/i.test(navigator.userAgent);DyCalendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);DyCalendar.getAbsolutePos=function(el){var SL=0,ST=0;var is_div=/^div$/i.test(el.tagName);if(is_div&&el.scrollLeft)SL=el.scrollLeft;if(is_div&&el.scrollTop)ST=el.scrollTop;var r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){var tmp=this.getAbsolutePos(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y}return r};DyCalendar.isRelated=function(el,evt){var related=evt.relatedTarget;if(!related){var type=evt.type;if(type=="mouseover"){related=evt.fromElement}else if(type=="mouseout"){related=evt.toElement}}while(related){if(related==el){return true}related=related.parentNode}return false};DyCalendar.removeClass=function(el,className){if(!(el&&el.className)){return}var cls=el.className.split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=className){ar[ar.length]=cls[i]}}el.className=ar.join(" ")};DyCalendar.addClass=function(el,className){DyCalendar.removeClass(el,className);el.className+=" "+className};DyCalendar.getElement=function(ev){var f=DyCalendar.is_ie?window.event.srcElement:ev.currentTarget;while(f.nodeType!=1||/^div$/i.test(f.tagName))f=f.parentNode;return f};DyCalendar.getTargetElement=function(ev){var f=DyCalendar.is_ie?window.event.srcElement:ev.target;while(f.nodeType!=1)f=f.parentNode;return f};DyCalendar.stopEvent=function(ev){ev||(ev=window.event);if(DyCalendar.is_ie){ev.cancelBubble=true;ev.returnValue=false}else{ev.preventDefault();ev.stopPropagation()}return false};DyCalendar.addEvent=function(el,evname,func){if(el.attachEvent){el.attachEvent("on"+evname,func)}else if(el.addEventListener){el.addEventListener(evname,func,true)}else{el["on"+evname]=func}};DyCalendar.removeEvent=function(el,evname,func){if(el.detachEvent){el.detachEvent("on"+evname,func)}else if(el.removeEventListener){el.removeEventListener(evname,func,true)}else{el["on"+evname]=null}};DyCalendar.createElement=function(type,parent){var el=null;if(document.createElementNS){el=document.createElementNS("http://www.w3.org/1999/xhtml",type)}else{el=document.createElement(type)}if(typeof parent!="undefined"){parent.appendChild(el)}return el};DyCalendar._add_evs=function(el){with(DyCalendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true)}}};DyCalendar.findMonth=function(el){if(typeof el.month!="undefined"){return el}else if(typeof el.parentNode.month!="undefined"){return el.parentNode}return null};DyCalendar.findYear=function(el){if(typeof el.year!="undefined"){return el}else if(typeof el.parentNode.year!="undefined"){return el.parentNode}return null};DyCalendar.showMonthsCombo=function(){var cal=DyCalendar._C;if(!cal){return false}var cal=cal;var cd=cal.activeDiv;var mc=cal.monthsCombo;if(cal.hilitedMonth){DyCalendar.removeClass(cal.hilitedMonth,"hilite")}if(cal.activeMonth){DyCalendar.removeClass(cal.activeMonth,"active")}var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];DyCalendar.addClass(mon,"active");cal.activeMonth=mon;var s=mc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var mcw=mc.offsetWidth;if(typeof mcw=="undefined")mcw=50;s.left=(cd.offsetLeft+cd.offsetWidth-mcw)+"px"}s.top=(cd.offsetTop+cd.offsetHeight)+"px"};DyCalendar.showYearsCombo=function(fwd){var cal=DyCalendar._C;if(!cal){return false}var cal=cal;var cd=cal.activeDiv;var yc=cal.yearsCombo;if(cal.hilitedYear){DyCalendar.removeClass(cal.hilitedYear,"hilite")}if(cal.activeYear){DyCalendar.removeClass(cal.activeYear,"active")}cal.activeYear=null;var Y=cal.date.getFullYear()+(fwd?1:-1);var yr=yc.firstChild;var show=false;for(var i=12;i>0;--i){if(Y>=cal.minYear&&Y<=cal.maxYear){yr.innerHTML=Y;yr.year=Y;yr.style.display="block";show=true}else{yr.style.display="none"}yr=yr.nextSibling;Y+=fwd?cal.yearStep:-cal.yearStep}if(show){var s=yc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var ycw=yc.offsetWidth;if(typeof ycw=="undefined")ycw=50;s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px"}s.top=(cd.offsetTop+cd.offsetHeight)+"px"}};DyCalendar.tableMouseUp=function(ev){var cal=DyCalendar._C;if(!cal){return false}if(cal.timeout){clearTimeout(cal.timeout)}var el=cal.activeDiv;if(!el){return false}var target=DyCalendar.getTargetElement(ev);ev||(ev=window.event);DyCalendar.removeClass(el,"active");if(target==el||target.parentNode==el){DyCalendar.cellClick(el,ev)}var mon=DyCalendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler()}}else{var year=DyCalendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;cal.callHandler()}}}with(DyCalendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev)}};DyCalendar.tableMouseOver=function(ev){var cal=DyCalendar._C;if(!cal){return}var el=cal.activeDiv;var target=DyCalendar.getTargetElement(ev);if(target==el||target.parentNode==el){DyCalendar.addClass(el,"hilite active");DyCalendar.addClass(el.parentNode,"rowhilite")}else{if(typeof el.navtype=="undefined"||(el.navtype!=50&&(el.navtype==0||Math.abs(el.navtype)>2)))DyCalendar.removeClass(el,"active");DyCalendar.removeClass(el,"hilite");DyCalendar.removeClass(el.parentNode,"rowhilite")}ev||(ev=window.event);if(el.navtype==50&&target!=el){var pos=DyCalendar.getAbsolutePos(el);var w=el.offsetWidth;var x=ev.clientX;var dx;var decrease=true;if(x>pos.x+w){dx=x-pos.x-w;decrease=false}else dx=pos.x-x;if(dx<0)dx=0;var range=el._range;var current=el._current;var count=Math.floor(dx/10)%range.length;for(var i=range.length;--i>=0;)if(range[i]==current)break;while(count-->0)if(decrease){if(--i<0)i=range.length-1}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime()}var mon=DyCalendar.findMonth(target);if(mon){if(mon.month!=cal.date.getMonth()){if(cal.hilitedMonth){DyCalendar.removeClass(cal.hilitedMonth,"hilite")}DyCalendar.addClass(mon,"hilite");cal.hilitedMonth=mon}else if(cal.hilitedMonth){DyCalendar.removeClass(cal.hilitedMonth,"hilite")}}else{if(cal.hilitedMonth){DyCalendar.removeClass(cal.hilitedMonth,"hilite")}var year=DyCalendar.findYear(target);if(year){if(year.year!=cal.date.getFullYear()){if(cal.hilitedYear){DyCalendar.removeClass(cal.hilitedYear,"hilite")}DyCalendar.addClass(year,"hilite");cal.hilitedYear=year}else if(cal.hilitedYear){DyCalendar.removeClass(cal.hilitedYear,"hilite")}}else if(cal.hilitedYear){DyCalendar.removeClass(cal.hilitedYear,"hilite")}}return DyCalendar.stopEvent(ev)};DyCalendar.tableMouseDown=function(ev){if(DyCalendar.getTargetElement(ev)==DyCalendar.getElement(ev)){return DyCalendar.stopEvent(ev)}};DyCalendar.calDragIt=function(ev){var cal=DyCalendar._C;if(!(cal&&cal.dragging)){return false}var posX;var posY;if(DyCalendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft}else{posX=ev.pageX;posY=ev.pageY}cal.hideShowCovered();var st=cal.element.style;st.left=(posX-cal.xOffs)+"px";st.top=(posY-cal.yOffs)+"px";return DyCalendar.stopEvent(ev)};DyCalendar.calDragEnd=function(ev){var cal=DyCalendar._C;if(!cal){return false}cal.dragging=false;with(DyCalendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev)}cal.hideShowCovered()};DyCalendar.dayMouseDown=function(ev){var el=DyCalendar.getElement(ev);if(el.disabled){return false}var cal=el.calendar;cal.activeDiv=el;DyCalendar._C=cal;if(el.navtype!=300)with(DyCalendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver)}else addEvent(document,DyCalendar.is_ie5?"mousemove":"mouseover",tableMouseOver);addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp)}else if(cal.isPopup){cal._dragStart(ev)}if(el.navtype==-1||el.navtype==1){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout("DyCalendar.showMonthsCombo()",250)}else if(el.navtype==-2||el.navtype==2){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout((el.navtype>0)?"DyCalendar.showYearsCombo(true)":"DyCalendar.showYearsCombo(false)",250)}else{cal.timeout=null}return DyCalendar.stopEvent(ev)};DyCalendar.dayMouseDblClick=function(ev){DyCalendar.cellClick(DyCalendar.getElement(ev),ev||window.event);if(DyCalendar.is_ie){document.selection.empty()}};DyCalendar.dayMouseOver=function(ev){var el=DyCalendar.getElement(ev);if(DyCalendar.isRelated(el,ev)||DyCalendar._C||el.disabled){return false}if(el.ttip){if(el.ttip.substr(0,1)=="_"){el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1)}el.calendar.tooltips.innerHTML=el.ttip}if(el.navtype!=300){DyCalendar.addClass(el,"hilite");if(el.caldate){DyCalendar.addClass(el.parentNode,"rowhilite")}}return DyCalendar.stopEvent(ev)};DyCalendar.dayMouseOut=function(ev){with(DyCalendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled)return false;removeClass(el,"hilite");if(el.caldate)removeClass(el.parentNode,"rowhilite");if(el.calendar)el.calendar.tooltips.innerHTML=_TT["SEL_DATE"];return stopEvent(ev)}};DyCalendar.cellClick=function(el,ev){var cal=el.calendar;var closing=false;var newdate=false;var date=null;if(typeof el.navtype=="undefined"){if(cal.currentDateEl){DyCalendar.removeClass(cal.currentDateEl,"selected");DyCalendar.addClass(el,"selected");closing=(cal.currentDateEl==el);if(!closing){cal.currentDateEl=el}}cal.date.setDateOnly(el.caldate);date=cal.date;var other_month=!(cal.dateClicked=!el.otherMonth);if(!other_month&&!cal.currentDateEl)cal._toggleMultipleDate(new Date(date));else newdate=!el.disabled;if(other_month)cal._init(cal.firstDayOfWeek,date)}else{if(el.navtype==200){DyCalendar.removeClass(el,"hilite");cal.callCloseHandler();return}date=new Date(cal.date);if(el.navtype==0)date.setDateOnly(new Date());cal.dateClicked=false;var year=date.getFullYear();var mon=date.getMonth();function setMonth(m){var day=date.getDate();var max=date.getMonthDays(m);if(day>max){date.setDate(max)}date.setMonth(m)};switch(el.navtype){case 400:DyCalendar.removeClass(el,"hilite");var text=DyCalendar._TT["ABOUT"];if(typeof text!="undefined"){text+=cal.showsTime?DyCalendar._TT["ABOUT_TIME"]:""}else{text="Help and about box text is not translated into this language.\n"+"If you know this language and you feel generous please update\n"+"the corresponding file in \"lang\" subdir to match calendar-en.js\n"+"and send it back to to get it into the distribution ;-)\n\n"+"Thank you!\n"+"http://dynarch.com/mishoo/calendar.epl\n"}alert(text);return;case-2:if(year>cal.minYear){date.setFullYear(year-1)}break;case-1:if(mon>0){setMonth(mon-1)}else if(year-->cal.minYear){date.setFullYear(year);setMonth(11)}break;case 1:if(mon<11){setMonth(mon+1)}else if(year=0;)if(range[i]==current)break;if(ev&&ev.shiftKey){if(--i<0)i=range.length-1}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();return;case 0:if((typeof cal.getDateStatus=="function")&&cal.getDateStatus(date,date.getFullYear(),date.getMonth(),date.getDate())){return false}break}if(!date.equalsTo(cal.date)){cal.setDate(date);newdate=true}else if(el.navtype==0)newdate=closing=true}if(newdate){ev&&cal.callHandler()}if(closing){DyCalendar.removeClass(el,"hilite");ev&&cal.callCloseHandler()}};DyCalendar.prototype.create=function(_par){var parent=null;if(!_par){parent=document.getElementsByTagName("body")[0];this.isPopup=true}else{parent=_par;this.isPopup=false}this.date=this.dateStr?new Date(this.dateStr):new Date();var table=DyCalendar.createElement("table");this.table=table;table.cellSpacing=0;table.cellPadding=0;table.calendar=this;DyCalendar.addEvent(table,"mousedown",DyCalendar.tableMouseDown);var div=DyCalendar.createElement("div");this.element=div;div.className="calendar";if(this.isPopup){div.style.position="absolute";div.style.display="none"}div.appendChild(table);var thead=DyCalendar.createElement("thead",table);var cell=null;var row=null;var cal=this;var hh=function(text,cs,navtype){cell=DyCalendar.createElement("td",row);cell.colSpan=cs;cell.className="button";if(navtype!=0&&Math.abs(navtype)<=2)cell.className+=" nav";DyCalendar._add_evs(cell);cell.calendar=cal;cell.navtype=navtype;cell.innerHTML="
"+text+"
";return cell};row=DyCalendar.createElement("tr",thead);var title_length=6;(this.isPopup)&&--title_length;(this.weekNumbers)&&++title_length;hh("?",1,400).ttip=DyCalendar._TT["INFO"];this.title=hh("",title_length,300);this.title.className="title";if(this.isPopup){this.title.ttip=DyCalendar._TT["DRAG_TO_MOVE"];this.title.style.cursor="move";hh("×",1,200).ttip=DyCalendar._TT["CLOSE"]}row=DyCalendar.createElement("tr",thead);row.className="headrow";this._nav_py=hh("«",1,-2);this._nav_py.ttip=DyCalendar._TT["PREV_YEAR"];this._nav_pm=hh("‹",1,-1);this._nav_pm.ttip=DyCalendar._TT["PREV_MONTH"];this._nav_now=hh(DyCalendar._TT["TODAY"],this.weekNumbers?4:3,0);this._nav_now.ttip=DyCalendar._TT["GO_TODAY"];this._nav_nm=hh("›",1,1);this._nav_nm.ttip=DyCalendar._TT["NEXT_MONTH"];this._nav_ny=hh("»",1,2);this._nav_ny.ttip=DyCalendar._TT["NEXT_YEAR"];row=DyCalendar.createElement("tr",thead);row.className="daynames";if(this.weekNumbers){cell=DyCalendar.createElement("td",row);cell.className="name wn";cell.innerHTML=DyCalendar._TT["WK"]}for(var i=7;i>0;--i){cell=DyCalendar.createElement("td",row);if(!i){cell.navtype=100;cell.calendar=this;DyCalendar._add_evs(cell)}}this.firstdayname=(this.weekNumbers)?row.firstChild.nextSibling:row.firstChild;this._displayWeekdays();var tbody=DyCalendar.createElement("tbody",table);this.tbody=tbody;for(i=6;i>0;--i){row=DyCalendar.createElement("tr",tbody);if(this.weekNumbers){cell=DyCalendar.createElement("td",row)}for(var j=7;j>0;--j){cell=DyCalendar.createElement("td",row);cell.calendar=this;DyCalendar._add_evs(cell)}}if(this.showsTime){row=DyCalendar.createElement("tr",tbody);row.className="time";cell=DyCalendar.createElement("td",row);cell.className="time";cell.colSpan=2;cell.innerHTML=DyCalendar._TT["TIME"]||" ";cell=DyCalendar.createElement("td",row);cell.className="time";cell.colSpan=this.weekNumbers?4:3;(function(){function makeTimePart(className,init,range_start,range_end){var part=DyCalendar.createElement("span",cell);part.className=className;part.innerHTML=init;part.calendar=cal;part.ttip=DyCalendar._TT["TIME_PART"];part.navtype=50;part._range=[];if(typeof range_start!="number")part._range=range_start;else{for(var i=range_start;i<=range_end;++i){var txt;if(i<10&&range_end>=10)txt='0'+i;else txt=''+i;part._range[part._range.length]=txt}}DyCalendar._add_evs(part);return part};var hrs=cal.date.getHours();var mins=cal.date.getMinutes();var t12=!cal.time24;var pm=(hrs>12);if(t12&&pm)hrs-=12;var H=makeTimePart("hour",hrs,t12?1:0,t12?12:23);var span=DyCalendar.createElement("span",cell);span.innerHTML=":";span.className="colon";var M=makeTimePart("minute",mins,0,59);var AP=null;cell=DyCalendar.createElement("td",row);cell.className="time";cell.colSpan=2;if(t12)AP=makeTimePart("ampm",pm?"pm":"am",["am","pm"]);else cell.innerHTML=" ";cal.onSetTime=function(){var pm,hrs=this.date.getHours(),mins=this.date.getMinutes();if(t12){pm=(hrs>=12);if(pm)hrs-=12;if(hrs==0)hrs=12;AP.innerHTML=pm?"pm":"am"}H.innerHTML=(hrs<10)?("0"+hrs):hrs;M.innerHTML=(mins<10)?("0"+mins):mins};cal.onUpdateTime=function(){var date=this.date;var h=parseInt(H.innerHTML,10);if(t12){if(/pm/i.test(AP.innerHTML)&&h<12)h+=12;else if(/am/i.test(AP.innerHTML)&&h==12)h=0}var d=date.getDate();var m=date.getMonth();var y=date.getFullYear();date.setHours(h);date.setMinutes(parseInt(M.innerHTML,10));date.setFullYear(y);date.setMonth(m);date.setDate(d);this.dateClicked=false;this.callHandler()}})()}else{this.onSetTime=this.onUpdateTime=function(){}}var tfoot=DyCalendar.createElement("tfoot",table);row=DyCalendar.createElement("tr",tfoot);row.className="footrow";cell=hh(DyCalendar._TT["SEL_DATE"],this.weekNumbers?8:7,300);cell.className="ttip";if(this.isPopup){cell.ttip=DyCalendar._TT["DRAG_TO_MOVE"];cell.style.cursor="move"}this.tooltips=cell;div=DyCalendar.createElement("div",this.element);this.monthsCombo=div;div.className="combo";for(i=0;i0;--i){var yr=DyCalendar.createElement("div");yr.className=DyCalendar.is_ie?"label-IEfix":"label";div.appendChild(yr)}this._init(this.firstDayOfWeek,this.date);parent.appendChild(this.element)};DyCalendar._keyEvent=function(ev){var cal=window._dynarch_popupDyCalendar;if(!cal||cal.multiple)return false;(DyCalendar.is_ie)&&(ev=window.event);var act=(DyCalendar.is_ie||ev.type=="keypress"),K=ev.keyCode;if(ev.ctrlKey){switch(K){case 37:act&&DyCalendar.cellClick(cal._nav_pm);break;case 38:act&&DyCalendar.cellClick(cal._nav_py);break;case 39:act&&DyCalendar.cellClick(cal._nav_nm);break;case 40:act&&DyCalendar.cellClick(cal._nav_ny);break;default:return false}}else switch(K){case 32:DyCalendar.cellClick(cal._nav_now);break;case 27:act&&cal.callCloseHandler();break;case 37:case 38:case 39:case 40:if(act){var prev,x,y,ne,el,step;prev=K==37||K==38;step=(K==37||K==39)?1:7;function setVars(){el=cal.currentDateEl;var p=el.pos;x=p&15;y=p>>4;ne=cal.ar_days[y][x]};setVars();function prevMonth(){var date=new Date(cal.date);date.setDate(date.getDate()-step);cal.setDate(date)};function nextMonth(){var date=new Date(cal.date);date.setDate(date.getDate()+step);cal.setDate(date)};while(1){switch(K){case 37:if(--x>=0)ne=cal.ar_days[y][x];else{x=6;K=38;continue}break;case 38:if(--y>=0)ne=cal.ar_days[y][x];else{prevMonth();setVars()}break;case 39:if(++x<7)ne=cal.ar_days[y][x];else{x=0;K=40;continue}break;case 40:if(++ythis.maxYear){year=this.maxYear;date.setFullYear(year)}this.firstDayOfWeek=firstDayOfWeek;this.date=new Date(date);var month=date.getMonth();var mday=date.getDate();var no_days=date.getMonthDays();date.setDate(1);var day1=(date.getDay()-this.firstDayOfWeek)%7;if(day1<0)day1+=7;date.setDate(-day1);date.setDate(date.getDate()+1);var row=this.tbody.firstChild;var MN=DyCalendar._SMN[month];var ar_days=this.ar_days=new Array();var weekend=DyCalendar._TT["WEEKEND"];var dates=this.multiple?(this.datesCells={}):null;for(var i=0;i<6;++i,row=row.nextSibling){var cell=row.firstChild;if(this.weekNumbers){cell.className="day wn";cell.innerHTML=date.getWeekNumber();cell=cell.nextSibling}row.className="daysrow";var hasdays=false,iday,dpos=ar_days[i]=[];for(var j=0;j<7;++j,cell=cell.nextSibling,date.setDate(iday+1)){iday=date.getDate();var wday=date.getDay();cell.className="day";cell.pos=i<<4|j;dpos[j]=cell;var current_month=(date.getMonth()==month);if(!current_month){if(this.showsOtherMonths){cell.className+=" othermonth";cell.otherMonth=true}else{cell.className="emptycell";cell.innerHTML=" ";cell.disabled=true;continue}}else{cell.otherMonth=false;hasdays=true}cell.disabled=false;cell.innerHTML=this.getDateText?this.getDateText(date,iday):iday;if(dates)dates[date.print("%Y%m%d")]=cell;if(this.getDateStatus){var status=this.getDateStatus(date,year,month,iday);if(this.getDateToolTip){var toolTip=this.getDateToolTip(date,year,month,iday);if(toolTip)cell.title=toolTip}if(status===true){cell.className+=" disabled";cell.disabled=true}else{if(/disabled/i.test(status))cell.disabled=true;cell.className+=" "+status}}if(!cell.disabled){cell.caldate=new Date(date);cell.ttip="_";if(!this.multiple&¤t_month&&iday==mday&&this.hiliteToday){cell.className+=" selected";this.currentDateEl=cell}if(date.getFullYear()==TY&&date.getMonth()==TM&&iday==TD){cell.className+=" today";cell.ttip+=DyCalendar._TT["PART_TODAY"]}if(weekend.indexOf(wday.toString())!=-1)cell.className+=cell.otherMonth?" oweekend":" weekend"}}if(!(hasdays||this.showsOtherMonths))row.className="emptyrow"}this.title.innerHTML=DyCalendar._MN[month]+", "+year;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates()};DyCalendar.prototype._initMultipleDates=function(){if(this.multiple){for(var i in this.multiple){var cell=this.datesCells[i];var d=this.multiple[i];if(!d)continue;if(cell)cell.className+=" selected"}}};DyCalendar.prototype._toggleMultipleDate=function(date){if(this.multiple){var ds=date.print("%Y%m%d");var cell=this.datesCells[ds];if(cell){var d=this.multiple[ds];if(!d){DyCalendar.addClass(cell,"selected");this.multiple[ds]=date}else{DyCalendar.removeClass(cell,"selected");delete this.multiple[ds]}}}};DyCalendar.prototype.setDateToolTipHandler=function(unaryFunction){this.getDateToolTip=unaryFunction};DyCalendar.prototype.setDate=function(date){if(!date.equalsTo(this.date)){this._init(this.firstDayOfWeek,date)}};DyCalendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date)};DyCalendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){this._init(firstDayOfWeek,this.date);this._displayWeekdays()};DyCalendar.prototype.setDateStatusHandler=DyCalendar.prototype.setDisabledHandler=function(unaryFunction){this.getDateStatus=unaryFunction};DyCalendar.prototype.setRange=function(a,z){this.minYear=a;this.maxYear=z};DyCalendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat))}};DyCalendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this)}this.hideShowCovered()};DyCalendar.prototype.destroy=function(){var el=this.element.parentNode;el.removeChild(this.element);DyCalendar._C=null;window._dynarch_popupDyCalendar=null};DyCalendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el);new_parent.appendChild(el)};DyCalendar._checkDyCalendar=function(ev){var calendar=window._dynarch_popupDyCalendar;if(!calendar){return false}var el=DyCalendar.is_ie?DyCalendar.getElement(ev):DyCalendar.getTargetElement(ev);for(;el!=null&&el!=calendar.element;el=el.parentNode);if(el==null){window._dynarch_popupDyCalendar.callCloseHandler();return DyCalendar.stopEvent(ev)}};DyCalendar.prototype.show=function(){var rows=this.table.getElementsByTagName("tr");for(var i=rows.length;i>0;){var row=rows[--i];DyCalendar.removeClass(row,"rowhilite");var cells=row.getElementsByTagName("td");for(var j=cells.length;j>0;){var cell=cells[--j];DyCalendar.removeClass(cell,"hilite");DyCalendar.removeClass(cell,"active")}}this.element.style.display="block";this.hidden=false;if(this.isPopup){window._dynarch_popupDyCalendar=this;DyCalendar.addEvent(document,"keydown",DyCalendar._keyEvent);DyCalendar.addEvent(document,"keypress",DyCalendar._keyEvent);DyCalendar.addEvent(document,"mousedown",DyCalendar._checkDyCalendar)}this.hideShowCovered()};DyCalendar.prototype.hide=function(){if(this.isPopup){DyCalendar.removeEvent(document,"keydown",DyCalendar._keyEvent);DyCalendar.removeEvent(document,"keypress",DyCalendar._keyEvent);DyCalendar.removeEvent(document,"mousedown",DyCalendar._checkDyCalendar)}this.element.style.display="none";this.hidden=true;this.hideShowCovered()};DyCalendar.prototype.showAt=function(x,y){var s=this.element.style;s.left=x+"px";s.top=y+"px";this.show()};DyCalendar.prototype.showAtElement=function(el,opts){var self=this;var p=DyCalendar.getAbsolutePos(el);if(!opts||typeof opts!="string"){this.showAt(p.x,p.y+el.offsetHeight);return true}function fixPosition(box){if(box.x<0)box.x=0;if(box.y<0)box.y=0;var cp=document.createElement("div");var s=cp.style;s.position="absolute";s.right=s.bottom=s.width=s.height="0px";document.body.appendChild(cp);var br=DyCalendar.getAbsolutePos(cp);document.body.removeChild(cp);if(DyCalendar.is_ie){br.y+=document.body.scrollTop;br.x+=document.body.scrollLeft}else{br.y+=window.scrollY;br.x+=window.scrollX}var tmp=box.x+box.width-br.x;if(tmp>0)box.x-=tmp;tmp=box.y+box.height-br.y;if(tmp>0)box.y-=tmp};this.element.style.display="block";DyCalendar.continuation_for_the_fucking_khtml_browser=function(){var w=self.element.offsetWidth;var h=self.element.offsetHeight;self.element.style.display="none";var valign=opts.substr(0,1);var halign="l";if(opts.length>1){halign=opts.substr(1,1)}switch(valign){case"T":p.y-=h;break;case"B":p.y+=el.offsetHeight;break;case"C":p.y+=(el.offsetHeight-h)/2;break;case"t":p.y+=el.offsetHeight-h;break;case"b":break}switch(halign){case"L":p.x-=w;break;case"R":p.x+=el.offsetWidth;break;case"C":p.x+=(el.offsetWidth-w)/2;break;case"l":p.x+=el.offsetWidth-w;break;case"r":break}p.width=w;p.height=h+40;self.monthsCombo.style.display="none";fixPosition(p);self.showAt(p.x,p.y)};if(DyCalendar.is_khtml)setTimeout("DyCalendar.continuation_for_the_fucking_khtml_browser()",10);else DyCalendar.continuation_for_the_fucking_khtml_browser()};DyCalendar.prototype.setDateFormat=function(str){this.dateFormat=str};DyCalendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str};DyCalendar.prototype.parseDate=function(str,fmt){if(!fmt)fmt=this.dateFormat;this.setDate(Date.parseDate(str,fmt))};DyCalendar.prototype.hideShowCovered=function(){if(!DyCalendar.is_ie&&!DyCalendar.is_opera)return;function getVisib(obj){var value=obj.style.visibility;if(!value){if(document.defaultView&&typeof(document.defaultView.getComputedStyle)=="function"){if(!DyCalendar.is_khtml)value=document.defaultView.getComputedStyle(obj,"").getPropertyValue("visibility");else value=''}else if(obj.currentStyle){value=obj.currentStyle.visibility}else value=''}return value};var tags=new Array("applet","iframe","select");var el=this.element;var p=DyCalendar.getAbsolutePos(el);var EX1=p.x;var EX2=el.offsetWidth+EX1;var EY1=p.y;var EY2=el.offsetHeight+EY1;for(var k=tags.length;k>0;){var ar=document.getElementsByTagName(tags[--k]);var cc=null;for(var i=ar.length;i>0;){cc=ar[--i];p=DyCalendar.getAbsolutePos(cc);var CX1=p.x;var CX2=cc.offsetWidth+CX1;var CY1=p.y;var CY2=cc.offsetHeight+CY1;if(this.hidden||(CX1>EX2)||(CX2EY2)||(CY229)?1900:2000);break;case"%b":case"%B":for(j=0;j<12;++j){if(DyCalendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break}}break;case"%H":case"%I":case"%k":case"%l":hr=parseInt(a[i],10);break;case"%P":case"%p":if(/pm/i.test(a[i])&&hr<12)hr+=12;else if(/am/i.test(a[i])&&hr>=12)hr-=12;break;case"%M":min=parseInt(a[i],10);break}}if(isNaN(y))y=today.getFullYear();if(isNaN(m))m=today.getMonth();if(isNaN(d))d=today.getDate();if(isNaN(hr))hr=today.getHours();if(isNaN(min))min=today.getMinutes();if(y!=0&&m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);y=0;m=-1;d=0;for(i=0;i31&&y==0){y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000)}else if(d==0){d=a[i]}}if(y==0)y=today.getFullYear();if(m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);return today};Date.prototype.getMonthDays=function(month){var year=this.getFullYear();if(typeof month=="undefined"){month=this.getMonth()}if(((0==(year%4))&&((0!=(year%100))||(0==(year%400))))&&month==1){return 29}else{return Date._MD[month]}};Date.prototype.getDayOfYear=function(){var now=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var then=new Date(this.getFullYear(),0,0,0,0,0);var time=now-then;return Math.floor(time/Date.DAY)};Date.prototype.getWeekNumber=function(){var d=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var DoW=d.getDay();d.setDate(d.getDate()-(DoW+6)%7+3);var ms=d.valueOf();d.setMonth(0);d.setDate(4);return Math.round((ms-d.valueOf())/(7*864e5))+1};Date.prototype.equalsTo=function(date){return((this.getFullYear()==date.getFullYear())&&(this.getMonth()==date.getMonth())&&(this.getDate()==date.getDate())&&(this.getHours()==date.getHours())&&(this.getMinutes()==date.getMinutes()))};Date.prototype.setDateOnly=function(date){var tmp=new Date(date);this.setDate(1);this.setFullYear(tmp.getFullYear());this.setMonth(tmp.getMonth());this.setDate(tmp.getDate())};Date.prototype.print=function(str){var m=this.getMonth();var d=this.getDate();var y=this.getFullYear();var wn=this.getWeekNumber();var w=this.getDay();var s={};var hr=this.getHours();var pm=(hr>=12);var ir=(pm)?(hr-12):hr;var dy=this.getDayOfYear();if(ir==0)ir=12;var min=this.getMinutes();var sec=this.getSeconds();s["%a"]=DyCalendar._SDN[w];s["%A"]=DyCalendar._DN[w];s["%b"]=DyCalendar._SMN[m];s["%B"]=DyCalendar._MN[m];s["%C"]=1+Math.floor(y/100);s["%d"]=(d<10)?("0"+d):d;s["%e"]=d;s["%H"]=(hr<10)?("0"+hr):hr;s["%I"]=(ir<10)?("0"+ir):ir;s["%j"]=(dy<100)?((dy<10)?("00"+dy):("0"+dy)):dy;s["%k"]=hr;s["%l"]=ir;s["%m"]=(m<9)?("0"+(1+m)):(1+m);s["%M"]=(min<10)?("0"+min):min;s["%n"]="\n";s["%p"]=pm?"PM":"AM";s["%P"]=pm?"pm":"am";s["%s"]=Math.floor(this.getTime()/1000);s["%S"]=(sec<10)?("0"+sec):sec;s["%t"]="\t";s["%U"]=s["%W"]=s["%V"]=(wn<10)?("0"+wn):wn;s["%u"]=w+1;s["%w"]=w;s["%y"]=(''+y).substr(2,2);s["%Y"]=y;s["%%"]="%";var re=/%./g;if(!DyCalendar.is_ie5&&!DyCalendar.is_khtml)return str.replace(re,function(par){return s[par]||par});var a=str.match(re);for(var i=0;i0;){ar[--i]=DyCalendar._DN[i].substr(0,DyCalendar._SDN_len);} +DyCalendar._SDN=ar;if(typeof DyCalendar._SMN_len=="undefined") +DyCalendar._SMN_len=3;ar=new Array();for(var i=12;i>0;){ar[--i]=DyCalendar._MN[i].substr(0,DyCalendar._SMN_len);} +DyCalendar._SMN=ar;}};DyCalendar._C=null;DyCalendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));DyCalendar.is_ie5=(DyCalendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));DyCalendar.is_opera=/opera/i.test(navigator.userAgent);DyCalendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);DyCalendar.getAbsolutePos=function(el){var SL=0,ST=0;var is_div=/^div$/i.test(el.tagName);if(is_div&&el.scrollLeft) +SL=el.scrollLeft;if(is_div&&el.scrollTop) +ST=el.scrollTop;var r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){var tmp=this.getAbsolutePos(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y;} +return r;};DyCalendar.isRelated=function(el,evt){var related=evt.relatedTarget;if(!related){var type=evt.type;if(type=="mouseover"){related=evt.fromElement;}else if(type=="mouseout"){related=evt.toElement;}} +while(related){if(related==el){return true;} +related=related.parentNode;} +return false;};DyCalendar.removeClass=function(el,className){if(!(el&&el.className)){return;} +var cls=el.className.split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=className){ar[ar.length]=cls[i];}} +el.className=ar.join(" ");};DyCalendar.addClass=function(el,className){DyCalendar.removeClass(el,className);el.className+=" "+className;};DyCalendar.getElement=function(ev){var f=DyCalendar.is_ie?window.event.srcElement:ev.currentTarget;while(f.nodeType!=1||/^div$/i.test(f.tagName)) +f=f.parentNode;return f;};DyCalendar.getTargetElement=function(ev){var f=DyCalendar.is_ie?window.event.srcElement:ev.target;while(f.nodeType!=1) +f=f.parentNode;return f;};DyCalendar.stopEvent=function(ev){ev||(ev=window.event);if(DyCalendar.is_ie){ev.cancelBubble=true;ev.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();} +return false;};DyCalendar.addEvent=function(el,evname,func){if(el.attachEvent){el.attachEvent("on"+evname,func);}else if(el.addEventListener){el.addEventListener(evname,func,true);}else{el["on"+evname]=func;}};DyCalendar.removeEvent=function(el,evname,func){if(el.detachEvent){el.detachEvent("on"+evname,func);}else if(el.removeEventListener){el.removeEventListener(evname,func,true);}else{el["on"+evname]=null;}};DyCalendar.createElement=function(type,parent){var el=null;if(document.createElementNS){el=document.createElementNS("http://www.w3.org/1999/xhtml",type);}else{el=document.createElement(type);} +if(typeof parent!="undefined"){parent.appendChild(el);} +return el;};DyCalendar._add_evs=function(el){with(DyCalendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true);}}};DyCalendar.findMonth=function(el){if(typeof el.month!="undefined"){return el;}else if(typeof el.parentNode.month!="undefined"){return el.parentNode;} +return null;};DyCalendar.findYear=function(el){if(typeof el.year!="undefined"){return el;}else if(typeof el.parentNode.year!="undefined"){return el.parentNode;} +return null;};DyCalendar.showMonthsCombo=function(){var cal=DyCalendar._C;if(!cal){return false;} +var cal=cal;var cd=cal.activeDiv;var mc=cal.monthsCombo;if(cal.hilitedMonth){DyCalendar.removeClass(cal.hilitedMonth,"hilite");} +if(cal.activeMonth){DyCalendar.removeClass(cal.activeMonth,"active");} +var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];DyCalendar.addClass(mon,"active");cal.activeMonth=mon;var s=mc.style;s.display="block";if(cd.navtype<0) +s.left=cd.offsetLeft+"px";else{var mcw=mc.offsetWidth;if(typeof mcw=="undefined") +mcw=50;s.left=(cd.offsetLeft+cd.offsetWidth-mcw)+"px";} +s.top=(cd.offsetTop+cd.offsetHeight)+"px";};DyCalendar.showYearsCombo=function(fwd){var cal=DyCalendar._C;if(!cal){return false;} +var cal=cal;var cd=cal.activeDiv;var yc=cal.yearsCombo;if(cal.hilitedYear){DyCalendar.removeClass(cal.hilitedYear,"hilite");} +if(cal.activeYear){DyCalendar.removeClass(cal.activeYear,"active");} +cal.activeYear=null;var Y=cal.date.getFullYear()+(fwd?1:-1);var yr=yc.firstChild;var show=false;for(var i=12;i>0;--i){if(Y>=cal.minYear&&Y<=cal.maxYear){yr.innerHTML=Y;yr.year=Y;yr.style.display="block";show=true;}else{yr.style.display="none";} +yr=yr.nextSibling;Y+=fwd?cal.yearStep:-cal.yearStep;} +if(show){var s=yc.style;s.display="block";if(cd.navtype<0) +s.left=cd.offsetLeft+"px";else{var ycw=yc.offsetWidth;if(typeof ycw=="undefined") +ycw=50;s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px";} +s.top=(cd.offsetTop+cd.offsetHeight)+"px";}};DyCalendar.tableMouseUp=function(ev){var cal=DyCalendar._C;if(!cal){return false;} +if(cal.timeout){clearTimeout(cal.timeout);} +var el=cal.activeDiv;if(!el){return false;} +var target=DyCalendar.getTargetElement(ev);ev||(ev=window.event);DyCalendar.removeClass(el,"active");if(target==el||target.parentNode==el){DyCalendar.cellClick(el,ev);} +var mon=DyCalendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}else{var year=DyCalendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}} +with(DyCalendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev);}};DyCalendar.tableMouseOver=function(ev){var cal=DyCalendar._C;if(!cal){return;} +var el=cal.activeDiv;var target=DyCalendar.getTargetElement(ev);if(target==el||target.parentNode==el){DyCalendar.addClass(el,"hilite active");DyCalendar.addClass(el.parentNode,"rowhilite");}else{if(typeof el.navtype=="undefined"||(el.navtype!=50&&(el.navtype==0||Math.abs(el.navtype)>2))) +DyCalendar.removeClass(el,"active");DyCalendar.removeClass(el,"hilite");DyCalendar.removeClass(el.parentNode,"rowhilite");} +ev||(ev=window.event);if(el.navtype==50&&target!=el){var pos=DyCalendar.getAbsolutePos(el);var w=el.offsetWidth;var x=ev.clientX;var dx;var decrease=true;if(x>pos.x+w){dx=x-pos.x-w;decrease=false;}else +dx=pos.x-x;if(dx<0)dx=0;var range=el._range;var current=el._current;var count=Math.floor(dx/10)%range.length;for(var i=range.length;--i>=0;) +if(range[i]==current) +break;while(count-->0) +if(decrease){if(--i<0) +i=range.length-1;}else if(++i>=range.length) +i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();} +var mon=DyCalendar.findMonth(target);if(mon){if(mon.month!=cal.date.getMonth()){if(cal.hilitedMonth){DyCalendar.removeClass(cal.hilitedMonth,"hilite");} +DyCalendar.addClass(mon,"hilite");cal.hilitedMonth=mon;}else if(cal.hilitedMonth){DyCalendar.removeClass(cal.hilitedMonth,"hilite");}}else{if(cal.hilitedMonth){DyCalendar.removeClass(cal.hilitedMonth,"hilite");} +var year=DyCalendar.findYear(target);if(year){if(year.year!=cal.date.getFullYear()){if(cal.hilitedYear){DyCalendar.removeClass(cal.hilitedYear,"hilite");} +DyCalendar.addClass(year,"hilite");cal.hilitedYear=year;}else if(cal.hilitedYear){DyCalendar.removeClass(cal.hilitedYear,"hilite");}}else if(cal.hilitedYear){DyCalendar.removeClass(cal.hilitedYear,"hilite");}} +return DyCalendar.stopEvent(ev);};DyCalendar.tableMouseDown=function(ev){if(DyCalendar.getTargetElement(ev)==DyCalendar.getElement(ev)){return DyCalendar.stopEvent(ev);}};DyCalendar.calDragIt=function(ev){var cal=DyCalendar._C;if(!(cal&&cal.dragging)){return false;} +var posX;var posY;if(DyCalendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posX=ev.pageX;posY=ev.pageY;} +cal.hideShowCovered();var st=cal.element.style;st.left=(posX-cal.xOffs)+"px";st.top=(posY-cal.yOffs)+"px";return DyCalendar.stopEvent(ev);};DyCalendar.calDragEnd=function(ev){var cal=DyCalendar._C;if(!cal){return false;} +cal.dragging=false;with(DyCalendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev);} +cal.hideShowCovered();};DyCalendar.dayMouseDown=function(ev){var el=DyCalendar.getElement(ev);if(el.disabled){return false;} +var cal=el.calendar;cal.activeDiv=el;DyCalendar._C=cal;if(el.navtype!=300)with(DyCalendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver);}else +addEvent(document,DyCalendar.is_ie5?"mousemove":"mouseover",tableMouseOver);addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp);}else if(cal.isPopup){cal._dragStart(ev);} +if(el.navtype==-1||el.navtype==1){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout("DyCalendar.showMonthsCombo()",250);}else if(el.navtype==-2||el.navtype==2){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout((el.navtype>0)?"DyCalendar.showYearsCombo(true)":"DyCalendar.showYearsCombo(false)",250);}else{cal.timeout=null;} +return DyCalendar.stopEvent(ev);};DyCalendar.dayMouseDblClick=function(ev){DyCalendar.cellClick(DyCalendar.getElement(ev),ev||window.event);if(DyCalendar.is_ie){document.selection.empty();}};DyCalendar.dayMouseOver=function(ev){var el=DyCalendar.getElement(ev);if(DyCalendar.isRelated(el,ev)||DyCalendar._C||el.disabled){return false;} +if(el.ttip){if(el.ttip.substr(0,1)=="_"){el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1);} +el.calendar.tooltips.innerHTML=el.ttip;} +if(el.navtype!=300){DyCalendar.addClass(el,"hilite");if(el.caldate){DyCalendar.addClass(el.parentNode,"rowhilite");}} +return DyCalendar.stopEvent(ev);};DyCalendar.dayMouseOut=function(ev){with(DyCalendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled) +return false;removeClass(el,"hilite");if(el.caldate) +removeClass(el.parentNode,"rowhilite");if(el.calendar) +el.calendar.tooltips.innerHTML=_TT["SEL_DATE"];return stopEvent(ev);}};DyCalendar.cellClick=function(el,ev){var cal=el.calendar;var closing=false;var newdate=false;var date=null;if(typeof el.navtype=="undefined"){if(cal.currentDateEl){DyCalendar.removeClass(cal.currentDateEl,"selected");DyCalendar.addClass(el,"selected");closing=(cal.currentDateEl==el);if(!closing){cal.currentDateEl=el;}} +cal.date.setDateOnly(el.caldate);date=cal.date;var other_month=!(cal.dateClicked=!el.otherMonth);if(!other_month&&!cal.currentDateEl) +cal._toggleMultipleDate(new Date(date));else +newdate=!el.disabled;if(other_month) +cal._init(cal.firstDayOfWeek,date);}else{if(el.navtype==200){DyCalendar.removeClass(el,"hilite");cal.callCloseHandler();return;} +date=new Date(cal.date);if(el.navtype==0) +date.setDateOnly(new Date());cal.dateClicked=false;var year=date.getFullYear();var mon=date.getMonth();function setMonth(m){var day=date.getDate();var max=date.getMonthDays(m);if(day>max){date.setDate(max);} +date.setMonth(m);};switch(el.navtype){case 400:DyCalendar.removeClass(el,"hilite");var text=DyCalendar._TT["ABOUT"];if(typeof text!="undefined"){text+=cal.showsTime?DyCalendar._TT["ABOUT_TIME"]:"";}else{text="Help and about box text is not translated into this language.\n"+"If you know this language and you feel generous please update\n"+"the corresponding file in \"lang\" subdir to match calendar-en.js\n"+"and send it back to to get it into the distribution ;-)\n\n"+"Thank you!\n"+"http://dynarch.com/mishoo/calendar.epl\n";} +alert(text);return;case-2:if(year>cal.minYear){date.setFullYear(year-1);} +break;case-1:if(mon>0){setMonth(mon-1);}else if(year-->cal.minYear){date.setFullYear(year);setMonth(11);} +break;case 1:if(mon<11){setMonth(mon+1);}else if(year=0;) +if(range[i]==current) +break;if(ev&&ev.shiftKey){if(--i<0) +i=range.length-1;}else if(++i>=range.length) +i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();return;case 0:if((typeof cal.getDateStatus=="function")&&cal.getDateStatus(date,date.getFullYear(),date.getMonth(),date.getDate())){return false;} +break;} +if(!date.equalsTo(cal.date)){cal.setDate(date);newdate=true;}else if(el.navtype==0) +newdate=closing=true;} +if(newdate){ev&&cal.callHandler();} +if(closing){DyCalendar.removeClass(el,"hilite");ev&&cal.callCloseHandler();}};DyCalendar.prototype.create=function(_par){var parent=null;if(!_par){parent=document.getElementsByTagName("body")[0];this.isPopup=true;}else{parent=_par;this.isPopup=false;} +this.date=this.dateStr?new Date(this.dateStr):new Date();var table=DyCalendar.createElement("table");this.table=table;table.cellSpacing=0;table.cellPadding=0;table.calendar=this;DyCalendar.addEvent(table,"mousedown",DyCalendar.tableMouseDown);var div=DyCalendar.createElement("div");this.element=div;div.className="calendar";if(this.isPopup){div.style.position="absolute";div.style.display="none";} +div.appendChild(table);var thead=DyCalendar.createElement("thead",table);var cell=null;var row=null;var cal=this;var hh=function(text,cs,navtype){cell=DyCalendar.createElement("td",row);cell.colSpan=cs;cell.className="button";if(navtype!=0&&Math.abs(navtype)<=2) +cell.className+=" nav";DyCalendar._add_evs(cell);cell.calendar=cal;cell.navtype=navtype;cell.innerHTML="
"+text+"
";return cell;};row=DyCalendar.createElement("tr",thead);var title_length=6;(this.isPopup)&&--title_length;(this.weekNumbers)&&++title_length;hh("?",1,400).ttip=DyCalendar._TT["INFO"];this.title=hh("",title_length,300);this.title.className="title";if(this.isPopup){this.title.ttip=DyCalendar._TT["DRAG_TO_MOVE"];this.title.style.cursor="move";hh("×",1,200).ttip=DyCalendar._TT["CLOSE"];} +row=DyCalendar.createElement("tr",thead);row.className="headrow";this._nav_py=hh("«",1,-2);this._nav_py.ttip=DyCalendar._TT["PREV_YEAR"];this._nav_pm=hh("‹",1,-1);this._nav_pm.ttip=DyCalendar._TT["PREV_MONTH"];this._nav_now=hh(DyCalendar._TT["TODAY"],this.weekNumbers?4:3,0);this._nav_now.ttip=DyCalendar._TT["GO_TODAY"];this._nav_nm=hh("›",1,1);this._nav_nm.ttip=DyCalendar._TT["NEXT_MONTH"];this._nav_ny=hh("»",1,2);this._nav_ny.ttip=DyCalendar._TT["NEXT_YEAR"];row=DyCalendar.createElement("tr",thead);row.className="daynames";if(this.weekNumbers){cell=DyCalendar.createElement("td",row);cell.className="name wn";cell.innerHTML=DyCalendar._TT["WK"];} +for(var i=7;i>0;--i){cell=DyCalendar.createElement("td",row);if(!i){cell.navtype=100;cell.calendar=this;DyCalendar._add_evs(cell);}} +this.firstdayname=(this.weekNumbers)?row.firstChild.nextSibling:row.firstChild;this._displayWeekdays();var tbody=DyCalendar.createElement("tbody",table);this.tbody=tbody;for(i=6;i>0;--i){row=DyCalendar.createElement("tr",tbody);if(this.weekNumbers){cell=DyCalendar.createElement("td",row);} +for(var j=7;j>0;--j){cell=DyCalendar.createElement("td",row);cell.calendar=this;DyCalendar._add_evs(cell);}} +if(this.showsTime){row=DyCalendar.createElement("tr",tbody);row.className="time";cell=DyCalendar.createElement("td",row);cell.className="time";cell.colSpan=2;cell.innerHTML=DyCalendar._TT["TIME"]||" ";cell=DyCalendar.createElement("td",row);cell.className="time";cell.colSpan=this.weekNumbers?4:3;(function(){function makeTimePart(className,init,range_start,range_end){var part=DyCalendar.createElement("span",cell);part.className=className;part.innerHTML=init;part.calendar=cal;part.ttip=DyCalendar._TT["TIME_PART"];part.navtype=50;part._range=[];if(typeof range_start!="number") +part._range=range_start;else{for(var i=range_start;i<=range_end;++i){var txt;if(i<10&&range_end>=10)txt='0'+i;else txt=''+i;part._range[part._range.length]=txt;}} +DyCalendar._add_evs(part);return part;};var hrs=cal.date.getHours();var mins=cal.date.getMinutes();var t12=!cal.time24;var pm=(hrs>12);if(t12&&pm)hrs-=12;var H=makeTimePart("hour",hrs,t12?1:0,t12?12:23);var span=DyCalendar.createElement("span",cell);span.innerHTML=":";span.className="colon";var M=makeTimePart("minute",mins,0,59);var AP=null;cell=DyCalendar.createElement("td",row);cell.className="time";cell.colSpan=2;if(t12) +AP=makeTimePart("ampm",pm?"pm":"am",["am","pm"]);else +cell.innerHTML=" ";cal.onSetTime=function(){var pm,hrs=this.date.getHours(),mins=this.date.getMinutes();if(t12){pm=(hrs>=12);if(pm)hrs-=12;if(hrs==0)hrs=12;AP.innerHTML=pm?"pm":"am";} +H.innerHTML=(hrs<10)?("0"+hrs):hrs;M.innerHTML=(mins<10)?("0"+mins):mins;};cal.onUpdateTime=function(){var date=this.date;var h=parseInt(H.innerHTML,10);if(t12){if(/pm/i.test(AP.innerHTML)&&h<12) +h+=12;else if(/am/i.test(AP.innerHTML)&&h==12) +h=0;} +var d=date.getDate();var m=date.getMonth();var y=date.getFullYear();date.setHours(h);date.setMinutes(parseInt(M.innerHTML,10));date.setFullYear(y);date.setMonth(m);date.setDate(d);this.dateClicked=false;this.callHandler();};})();}else{this.onSetTime=this.onUpdateTime=function(){};} +var tfoot=DyCalendar.createElement("tfoot",table);row=DyCalendar.createElement("tr",tfoot);row.className="footrow";cell=hh(DyCalendar._TT["SEL_DATE"],this.weekNumbers?8:7,300);cell.className="ttip";if(this.isPopup){cell.ttip=DyCalendar._TT["DRAG_TO_MOVE"];cell.style.cursor="move";} +this.tooltips=cell;div=DyCalendar.createElement("div",this.element);this.monthsCombo=div;div.className="combo";for(i=0;i0;--i){var yr=DyCalendar.createElement("div");yr.className=DyCalendar.is_ie?"label-IEfix":"label";div.appendChild(yr);} +this._init(this.firstDayOfWeek,this.date);parent.appendChild(this.element);};DyCalendar._keyEvent=function(ev){var cal=window._dynarch_popupDyCalendar;if(!cal||cal.multiple) +return false;(DyCalendar.is_ie)&&(ev=window.event);var act=(DyCalendar.is_ie||ev.type=="keypress"),K=ev.keyCode;if(ev.ctrlKey){switch(K){case 37:act&&DyCalendar.cellClick(cal._nav_pm);break;case 38:act&&DyCalendar.cellClick(cal._nav_py);break;case 39:act&&DyCalendar.cellClick(cal._nav_nm);break;case 40:act&&DyCalendar.cellClick(cal._nav_ny);break;default:return false;}}else switch(K){case 32:DyCalendar.cellClick(cal._nav_now);break;case 27:act&&cal.callCloseHandler();break;case 37:case 38:case 39:case 40:if(act){var prev,x,y,ne,el,step;prev=K==37||K==38;step=(K==37||K==39)?1:7;function setVars(){el=cal.currentDateEl;var p=el.pos;x=p&15;y=p>>4;ne=cal.ar_days[y][x];};setVars();function prevMonth(){var date=new Date(cal.date);date.setDate(date.getDate()-step);cal.setDate(date);};function nextMonth(){var date=new Date(cal.date);date.setDate(date.getDate()+step);cal.setDate(date);};while(1){switch(K){case 37:if(--x>=0) +ne=cal.ar_days[y][x];else{x=6;K=38;continue;} +break;case 38:if(--y>=0) +ne=cal.ar_days[y][x];else{prevMonth();setVars();} +break;case 39:if(++x<7) +ne=cal.ar_days[y][x];else{x=0;K=40;continue;} +break;case 40:if(++ythis.maxYear){year=this.maxYear;date.setFullYear(year);} +this.firstDayOfWeek=firstDayOfWeek;this.date=new Date(date);var month=date.getMonth();var mday=date.getDate();var no_days=date.getMonthDays();date.setDate(1);var day1=(date.getDay()-this.firstDayOfWeek)%7;if(day1<0) +day1+=7;date.setDate(-day1);date.setDate(date.getDate()+1);var row=this.tbody.firstChild;var MN=DyCalendar._SMN[month];var ar_days=this.ar_days=new Array();var weekend=DyCalendar._TT["WEEKEND"];var dates=this.multiple?(this.datesCells={}):null;for(var i=0;i<6;++i,row=row.nextSibling){var cell=row.firstChild;if(this.weekNumbers){cell.className="day wn";cell.innerHTML=date.getWeekNumber();cell=cell.nextSibling;} +row.className="daysrow";var hasdays=false,iday,dpos=ar_days[i]=[];for(var j=0;j<7;++j,cell=cell.nextSibling,date.setDate(iday+1)){iday=date.getDate();var wday=date.getDay();cell.className="day";cell.pos=i<<4|j;dpos[j]=cell;var current_month=(date.getMonth()==month);if(!current_month){if(this.showsOtherMonths){cell.className+=" othermonth";cell.otherMonth=true;}else{cell.className="emptycell";cell.innerHTML=" ";cell.disabled=true;continue;}}else{cell.otherMonth=false;hasdays=true;} +cell.disabled=false;cell.innerHTML=this.getDateText?this.getDateText(date,iday):iday;if(dates) +dates[date.print("%Y%m%d")]=cell;if(this.getDateStatus){var status=this.getDateStatus(date,year,month,iday);if(this.getDateToolTip){var toolTip=this.getDateToolTip(date,year,month,iday);if(toolTip) +cell.title=toolTip;} +if(status===true){cell.className+=" disabled";cell.disabled=true;}else{if(/disabled/i.test(status)) +cell.disabled=true;cell.className+=" "+status;}} +if(!cell.disabled){cell.caldate=new Date(date);cell.ttip="_";if(!this.multiple&¤t_month&&iday==mday&&this.hiliteToday){cell.className+=" selected";this.currentDateEl=cell;} +if(date.getFullYear()==TY&&date.getMonth()==TM&&iday==TD){cell.className+=" today";cell.ttip+=DyCalendar._TT["PART_TODAY"];} +if(weekend.indexOf(wday.toString())!=-1) +cell.className+=cell.otherMonth?" oweekend":" weekend";}} +if(!(hasdays||this.showsOtherMonths)) +row.className="emptyrow";} +this.title.innerHTML=DyCalendar._MN[month]+", "+year;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates();};DyCalendar.prototype._initMultipleDates=function(){if(this.multiple){for(var i in this.multiple){var cell=this.datesCells[i];var d=this.multiple[i];if(!d) +continue;if(cell) +cell.className+=" selected";}}};DyCalendar.prototype._toggleMultipleDate=function(date){if(this.multiple){var ds=date.print("%Y%m%d");var cell=this.datesCells[ds];if(cell){var d=this.multiple[ds];if(!d){DyCalendar.addClass(cell,"selected");this.multiple[ds]=date;}else{DyCalendar.removeClass(cell,"selected");delete this.multiple[ds];}}}};DyCalendar.prototype.setDateToolTipHandler=function(unaryFunction){this.getDateToolTip=unaryFunction;};DyCalendar.prototype.setDate=function(date){if(!date.equalsTo(this.date)){this._init(this.firstDayOfWeek,date);}};DyCalendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date);};DyCalendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){this._init(firstDayOfWeek,this.date);this._displayWeekdays();};DyCalendar.prototype.setDateStatusHandler=DyCalendar.prototype.setDisabledHandler=function(unaryFunction){this.getDateStatus=unaryFunction;};DyCalendar.prototype.setRange=function(a,z){this.minYear=a;this.maxYear=z;};DyCalendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat));}};DyCalendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this);} +this.hideShowCovered();};DyCalendar.prototype.destroy=function(){var el=this.element.parentNode;el.removeChild(this.element);DyCalendar._C=null;window._dynarch_popupDyCalendar=null;};DyCalendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el);new_parent.appendChild(el);};DyCalendar._checkDyCalendar=function(ev){var calendar=window._dynarch_popupDyCalendar;if(!calendar){return false;} +var el=DyCalendar.is_ie?DyCalendar.getElement(ev):DyCalendar.getTargetElement(ev);for(;el!=null&&el!=calendar.element;el=el.parentNode);if(el==null){window._dynarch_popupDyCalendar.callCloseHandler();return DyCalendar.stopEvent(ev);}};DyCalendar.prototype.show=function(){var rows=this.table.getElementsByTagName("tr");for(var i=rows.length;i>0;){var row=rows[--i];DyCalendar.removeClass(row,"rowhilite");var cells=row.getElementsByTagName("td");for(var j=cells.length;j>0;){var cell=cells[--j];DyCalendar.removeClass(cell,"hilite");DyCalendar.removeClass(cell,"active");}} +this.element.style.display="block";this.hidden=false;if(this.isPopup){window._dynarch_popupDyCalendar=this;DyCalendar.addEvent(document,"keydown",DyCalendar._keyEvent);DyCalendar.addEvent(document,"keypress",DyCalendar._keyEvent);DyCalendar.addEvent(document,"mousedown",DyCalendar._checkDyCalendar);} +this.hideShowCovered();};DyCalendar.prototype.hide=function(){if(this.isPopup){DyCalendar.removeEvent(document,"keydown",DyCalendar._keyEvent);DyCalendar.removeEvent(document,"keypress",DyCalendar._keyEvent);DyCalendar.removeEvent(document,"mousedown",DyCalendar._checkDyCalendar);} +this.element.style.display="none";this.hidden=true;this.hideShowCovered();};DyCalendar.prototype.showAt=function(x,y){var s=this.element.style;s.left=x+"px";s.top=y+"px";this.show();};DyCalendar.prototype.showAtElement=function(el,opts){var self=this;var p=DyCalendar.getAbsolutePos(el);if(!opts||typeof opts!="string"){this.showAt(p.x,p.y+el.offsetHeight);return true;} +function fixPosition(box){if(box.x<0) +box.x=0;if(box.y<0) +box.y=0;var cp=document.createElement("div");var s=cp.style;s.position="absolute";s.right=s.bottom=s.width=s.height="0px";document.body.appendChild(cp);var br=DyCalendar.getAbsolutePos(cp);document.body.removeChild(cp);if(document.body.scrollLeft){br.x+=document.body.scrollLeft;} +br.x+=window.scrollX;if(document.body.scrollTop){br.y+=document.body.scrollTop;} +br.y+=window.scrollY;var tmp=box.x+box.width-br.x;if(tmp>0)box.x-=tmp;tmp=box.y+box.height-br.y;if(tmp>0)box.y-=tmp;};this.element.style.display="block";DyCalendar.continuation_for_the_fucking_khtml_browser=function(){var w=self.element.offsetWidth;var h=self.element.offsetHeight;self.element.style.display="none";var valign=opts.substr(0,1);var halign="l";if(opts.length>1){halign=opts.substr(1,1);} +switch(valign){case"T":p.y-=h;break;case"B":p.y+=el.offsetHeight;break;case"C":p.y+=(el.offsetHeight-h)/2;break;case"t":p.y+=el.offsetHeight-h;break;case"b":break;} +switch(halign){case"L":p.x-=w;break;case"R":p.x+=el.offsetWidth;break;case"C":p.x+=(el.offsetWidth-w)/2;break;case"l":p.x+=el.offsetWidth-w;break;case"r":break;} +p.width=w;p.height=h+40;self.monthsCombo.style.display="none";fixPosition(p);self.showAt(p.x,p.y);};if(DyCalendar.is_khtml) +setTimeout("DyCalendar.continuation_for_the_fucking_khtml_browser()",10);else +DyCalendar.continuation_for_the_fucking_khtml_browser();};DyCalendar.prototype.setDateFormat=function(str){this.dateFormat=str;};DyCalendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str;};DyCalendar.prototype.parseDate=function(str,fmt){if(!fmt) +fmt=this.dateFormat;this.setDate(Date.parseDate(str,fmt));};DyCalendar.prototype.hideShowCovered=function(){if(!DyCalendar.is_ie&&!DyCalendar.is_opera) +return;function getVisib(obj){var value=obj.style.visibility;if(!value){if(document.defaultView&&typeof(document.defaultView.getComputedStyle)=="function"){if(!DyCalendar.is_khtml) +value=document.defaultView.getComputedStyle(obj,"").getPropertyValue("visibility");else +value='';}else if(obj.currentStyle){value=obj.currentStyle.visibility;}else +value='';} +return value;};var tags=new Array("applet","iframe","select");var el=this.element;var p=DyCalendar.getAbsolutePos(el);var EX1=p.x;var EX2=el.offsetWidth+EX1;var EY1=p.y;var EY2=el.offsetHeight+EY1;for(var k=tags.length;k>0;){var ar=document.getElementsByTagName(tags[--k]);var cc=null;for(var i=ar.length;i>0;){cc=ar[--i];p=DyCalendar.getAbsolutePos(cc);var CX1=p.x;var CX2=cc.offsetWidth+CX1;var CY1=p.y;var CY2=cc.offsetHeight+CY1;if(this.hidden||(CX1>EX2)||(CX2EY2)||(CY229)?1900:2000);break;case"%b":case"%B":for(j=0;j<12;++j){if(DyCalendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break;}} +break;case"%H":case"%I":case"%k":case"%l":hr=parseInt(a[i],10);break;case"%P":case"%p":if(/pm/i.test(a[i])&&hr<12) +hr+=12;else if(/am/i.test(a[i])&&hr>=12) +hr-=12;break;case"%M":min=parseInt(a[i],10);break;}} +if(isNaN(y))y=today.getFullYear();if(isNaN(m))m=today.getMonth();if(isNaN(d))d=today.getDate();if(isNaN(hr))hr=today.getHours();if(isNaN(min))min=today.getMinutes();if(y!=0&&m!=-1&&d!=0) +return new Date(y,m,d,hr,min,0);y=0;m=-1;d=0;for(i=0;i31&&y==0){y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);}else if(d==0){d=a[i];}} +if(y==0) +y=today.getFullYear();if(m!=-1&&d!=0) +return new Date(y,m,d,hr,min,0);return today;};Date.prototype.getMonthDays=function(month){var year=this.getFullYear();if(typeof month=="undefined"){month=this.getMonth();} +if(((0==(year%4))&&((0!=(year%100))||(0==(year%400))))&&month==1){return 29;}else{return Date._MD[month];}};Date.prototype.getDayOfYear=function(){var now=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var then=new Date(this.getFullYear(),0,0,0,0,0);var time=now-then;return Math.floor(time/Date.DAY);};Date.prototype.getWeekNumber=function(){var d=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var DoW=d.getDay();d.setDate(d.getDate()-(DoW+6)%7+3);var ms=d.valueOf();d.setMonth(0);d.setDate(4);return Math.round((ms-d.valueOf())/(7*864e5))+1;};Date.prototype.equalsTo=function(date){return((this.getFullYear()==date.getFullYear())&&(this.getMonth()==date.getMonth())&&(this.getDate()==date.getDate())&&(this.getHours()==date.getHours())&&(this.getMinutes()==date.getMinutes()));};Date.prototype.setDateOnly=function(date){var tmp=new Date(date);this.setDate(1);this.setFullYear(tmp.getFullYear());this.setMonth(tmp.getMonth());this.setDate(tmp.getDate());};Date.prototype.print=function(str){var m=this.getMonth();var d=this.getDate();var y=this.getFullYear();var wn=this.getWeekNumber();var w=this.getDay();var s={};var hr=this.getHours();var pm=(hr>=12);var ir=(pm)?(hr-12):hr;var dy=this.getDayOfYear();if(ir==0) +ir=12;var min=this.getMinutes();var sec=this.getSeconds();s["%a"]=DyCalendar._SDN[w];s["%A"]=DyCalendar._DN[w];s["%b"]=DyCalendar._SMN[m];s["%B"]=DyCalendar._MN[m];s["%C"]=1+Math.floor(y/100);s["%d"]=(d<10)?("0"+d):d;s["%e"]=d;s["%H"]=(hr<10)?("0"+hr):hr;s["%I"]=(ir<10)?("0"+ir):ir;s["%j"]=(dy<100)?((dy<10)?("00"+dy):("0"+dy)):dy;s["%k"]=hr;s["%l"]=ir;s["%m"]=(m<9)?("0"+(1+m)):(1+m);s["%M"]=(min<10)?("0"+min):min;s["%n"]="\n";s["%p"]=pm?"PM":"AM";s["%P"]=pm?"pm":"am";s["%s"]=Math.floor(this.getTime()/1000);s["%S"]=(sec<10)?("0"+sec):sec;s["%t"]="\t";s["%U"]=s["%W"]=s["%V"]=(wn<10)?("0"+wn):wn;s["%u"]=w+1;s["%w"]=w;s["%y"]=(''+y).substr(2,2);s["%Y"]=y;s["%%"]="%";var re=/%./g;if(!DyCalendar.is_ie5&&!DyCalendar.is_khtml) +return str.replace(re,function(par){return s[par]||par;});var a=str.match(re);for(var i=0;i - - diff --git a/common/js/iepngfix_tilebg.js b/common/js/iepngfix_tilebg.js new file mode 100644 index 000000000..1a5863011 --- /dev/null +++ b/common/js/iepngfix_tilebg.js @@ -0,0 +1,173 @@ +// IE5.5+ PNG Alpha Fix v2.0 Alpha: Background Tiling Support +// (c) 2008 Angus Turnbull http://www.twinhelix.com + +// This is licensed under the GNU LGPL, version 2.1 or later. +// For details, see: http://creativecommons.org/licenses/LGPL/2.1/ + +var IEPNGFix = window.IEPNGFix || {}; + +IEPNGFix.tileBG = function(elm, pngSrc, ready) { + // Params: A reference to a DOM element, the PNG src file pathname, and a + // hidden "ready-to-run" passed when called back after image preloading. + + var data = this.data[elm.uniqueID], + elmW = Math.max(elm.clientWidth, elm.scrollWidth), + elmH = Math.max(elm.clientHeight, elm.scrollHeight), + bgX = elm.currentStyle.backgroundPositionX, + bgY = elm.currentStyle.backgroundPositionY, + bgR = elm.currentStyle.backgroundRepeat; + + // Cache of DIVs created per element, and image preloader/data. + if (!data.tiles) { + data.tiles = { + elm: elm, + src: '', + cache: [], + img: new Image(), + old: {} + }; + } + var tiles = data.tiles, + pngW = tiles.img.width, + pngH = tiles.img.height; + + if (pngSrc) { + if (!ready && pngSrc != tiles.src) { + // New image? Preload it with a callback to detect dimensions. + tiles.img.onload = function() { + this.onload = null; + IEPNGFix.tileBG(elm, pngSrc, 1); + }; + return tiles.img.src = pngSrc; + } + } else { + // No image? + if (tiles.src) ready = 1; + pngW = pngH = 0; + } + tiles.src = pngSrc; + + if (!ready && elmW == tiles.old.w && elmH == tiles.old.h && + bgX == tiles.old.x && bgY == tiles.old.y && bgR == tiles.old.r) { + return; + } + + // Convert English and percentage positions to pixels. + var pos = { + top: '0%', + left: '0%', + center: '50%', + bottom: '100%', + right: '100%' + }, + x, + y, + pc; + x = pos[bgX] || bgX; + y = pos[bgY] || bgY; + if (pc = x.match(/(\d+)%/)) { + x = Math.round((elmW - pngW) * (parseInt(pc[1]) / 100)); + } + if (pc = y.match(/(\d+)%/)) { + y = Math.round((elmH - pngH) * (parseInt(pc[1]) / 100)); + } + x = parseInt(x); + y = parseInt(y); + + // Handle backgroundRepeat. + var repeatX = { 'repeat': 1, 'repeat-x': 1 }[bgR], + repeatY = { 'repeat': 1, 'repeat-y': 1 }[bgR]; + if (repeatX) { + x %= pngW; + if (x > 0) x -= pngW; + } + if (repeatY) { + y %= pngH; + if (y > 0) y -= pngH; + } + + // Go! + this.hook.enabled = 0; + if (!({ relative: 1, absolute: 1 }[elm.currentStyle.position])) { + elm.style.position = 'relative'; + } + var count = 0, + xPos, + maxX = repeatX ? elmW : x + 0.1, + yPos, + maxY = repeatY ? elmH : y + 0.1, + d, + s, + isNew; + if (pngW && pngH) { + for (xPos = x; xPos < maxX; xPos += pngW) { + for (yPos = y; yPos < maxY; yPos += pngH) { + isNew = 0; + if (!tiles.cache[count]) { + tiles.cache[count] = document.createElement('div'); + isNew = 1; + } + var clipR = (xPos + pngW > elmW ? elmW - xPos : pngW), + clipB = (yPos + pngH > elmH ? elmH - yPos : pngH); + d = tiles.cache[count]; + s = d.style; + s.behavior = 'none'; + s.left = xPos + 'px'; + s.top = yPos + 'px'; + s.width = clipR + 'px'; + s.height = clipB + 'px'; + s.clip = 'rect(' + + (yPos < 0 ? 0 - yPos : 0) + 'px,' + + clipR + 'px,' + + clipB + 'px,' + + (xPos < 0 ? 0 - xPos : 0) + 'px)'; + s.display = 'block'; + if (isNew) { + s.position = 'absolute'; + s.zIndex = -999; + if (elm.firstChild) { + elm.insertBefore(d, elm.firstChild); + } else { + elm.appendChild(d); + } + } + this.fix(d, pngSrc, 0); + count++; + } + } + } + while (count < tiles.cache.length) { + this.fix(tiles.cache[count], '', 0); + tiles.cache[count++].style.display = 'none'; + } + + this.hook.enabled = 1; + + // Cache so updates are infrequent. + tiles.old = { + w: elmW, + h: elmH, + x: bgX, + y: bgY, + r: bgR + }; +}; + + +IEPNGFix.update = function() { + // Update all PNG backgrounds. + for (var i in IEPNGFix.data) { + var t = IEPNGFix.data[i].tiles; + if (t && t.elm && t.src) { + IEPNGFix.tileBG(t.elm, t.src); + } + } +}; +IEPNGFix.update.timer = 0; + +if (window.attachEvent && !window.opera) { + window.attachEvent('onresize', function() { + clearTimeout(IEPNGFix.update.timer); + IEPNGFix.update.timer = setTimeout(IEPNGFix.update, 100); + }); +} diff --git a/common/js/xml_js_filter.js b/common/js/xml_js_filter.js index 5ef23d42f..a7920c56d 100644 --- a/common/js/xml_js_filter.js +++ b/common/js/xml_js_filter.js @@ -297,7 +297,7 @@ function XmlJsFilterProc(confirm_msg) { } exec_xml(this.module, this.act, params, this.user_func, response, params, this.fo_obj); - return null; + return false; } // form proc @@ -305,7 +305,32 @@ function procFilter(fo_obj, filter_func) { // form문 안에 위지윅 에디터가 세팅되어 있을 경우 에디터의 값과 지정된 content field를 sync var editor_sequence = fo_obj.getAttribute('editor_sequence'); if(typeof(editor_sequence)!='undefined' && editor_sequence && typeof(editorRelKeys)!='undefined') { - editorRelKeys[editor_sequence]['content'].value = editorGetContent(editor_sequence); + var content = editorGetContent(editor_sequence); + + var dummy = xCreateElement("div"); + xInnerHtml(dummy, content); + + // IE에서 컨텐츠 전체를 P태그로 감싸는 경우가 있어서 이 의미없는 P태그를 제거 + if(dummy.firstChild && dummy.firstChild.nodeName == 'P' && dummy.firstChild == dummy.lastChild) { + var content = xInnerHtml(dummy.firstChild); + xInnerHtml(dummy,content); + } + + // img/a 태그의 대상에 대해 경로 재설정 (IE브라우저에서 위지윅 에디터내의 경로를 절대 경로로 바꾸는 버그때문ㅇ) + var imgTags = xGetElementsByTagName('IMG', dummy); + for(var i=0;iis_active = 'Active'; $lang->is_required = 'Required Field'; + // ftp 관련 + $lang->ftp_form_title = 'FTP 정보 입력'; + $lang->ftp = 'FTP'; + $lang->ftp_port = 'FTP port'; + $lang->cmd_check_ftp_connect = 'FTP 접속 확인'; + $lang->about_ftp_info = " + FTP 정보는 다음의 경우에 이용될 수 있습니다.
+ 1. PHP의 safe_mode=On일 경우에 FTP 정보를 이용해서 XE를 정상적으로 동작할 수 있게 합니다.
+ 2. 자동 업데이트등에서 FTP 정보를 이용할 수 있습니다.
+ 이 FTP정보는 files/config/ftp.config.php 파일내에 정보가 저장됩니다.
+ 그리고 설치 후 관리자 페이지에서 FTP 정보를 변경하거나 제거할 수 있습니다.
+ FTP 정보 노출을 원하지 않으시면 입력하지 않으셔도 됩니다 + "; + + $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 접속 및 인증 성공하였습니다"; + + // Alert messages for Javascript using by XML filter $lang->filter->isnull = 'Please input a value for %s'; $lang->filter->outofrange = 'Please align the text length of %s'; diff --git a/common/lang/es.lang.php b/common/lang/es.lang.php index 0deb7f450..9a662aecb 100644 --- a/common/lang/es.lang.php +++ b/common/lang/es.lang.php @@ -235,6 +235,28 @@ $lang->is_active = 'Activado'; $lang->is_required = 'Espacio requerido'; + // ftp 관련 + $lang->ftp_form_title = 'FTP 정보 입력'; + $lang->ftp = 'FTP'; + $lang->ftp_port = 'FTP port'; + $lang->cmd_check_ftp_connect = 'FTP 접속 확인'; + $lang->about_ftp_info = " + FTP 정보는 다음의 경우에 이용될 수 있습니다.
+ 1. PHP의 safe_mode=On일 경우에 FTP 정보를 이용해서 XE를 정상적으로 동작할 수 있게 합니다.
+ 2. 자동 업데이트등에서 FTP 정보를 이용할 수 있습니다.
+ 이 FTP정보는 files/config/ftp.config.php 파일내에 정보가 저장됩니다.
+ 그리고 설치 후 관리자 페이지에서 FTP 정보를 변경하거나 제거할 수 있습니다.
+ FTP 정보 노출을 원하지 않으시면 입력하지 않으셔도 됩니다 + "; + + $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 접속 및 인증 성공하였습니다"; + + // Mensajes de alerta para Javascript usando el filtro XML $lang->filter->isnull = 'Ingresar un valor para %s'; $lang->filter->outofrange = 'Ajustar el largo del texto de %s'; diff --git a/common/lang/fr.lang.php b/common/lang/fr.lang.php index 88611ec97..8c2ea1bee 100644 --- a/common/lang/fr.lang.php +++ b/common/lang/fr.lang.php @@ -2,13 +2,13 @@ /** * @file common/lang/fr.lang.php * @author zero (zero@nzeo.com) Traduit par Pierre Duvent(PierreDuvent@gamil.com) - * @brief Paquet de La Langue Francaise (Mots de base seulement) + * @brief Paquet du langage en français **/ - // verbes et mots de base decrivant des actions + // verbes et mots fondamentaux qui décrivent des actions $lang->cmd_write = 'Ecrire'; $lang->cmd_reply = 'Répondre'; - $lang->cmd_delete = 'Effacer'; + $lang->cmd_delete = 'Supprimer'; $lang->cmd_modify = 'Modifier'; $lang->cmd_edit = 'Editer'; $lang->cmd_view = 'Voir'; @@ -58,7 +58,7 @@ $lang->cmd_scrap = 'Coupure'; $lang->cmd_preview = 'Avant-première'; $lang->cmd_reset = 'Restaurer'; - $lang->cmd_remake_cache = "Recréer la Cachette du Fichier"; + $lang->cmd_remake_cache = "Recréer l'antémémoire du Fichier"; $lang->cmd_publish = "Publier"; $lang->cmd_layout_setup = 'Configurer la Mise en page'; $lang->cmd_layout_edit = 'Editer la Mise en page'; @@ -81,7 +81,7 @@ $lang->password2 = 'Confirmer du Mot de Passe'; $lang->admin_id = 'Compte d\'Administrateur'; $lang->writer = 'Auteur'; - $lang->user_name = 'Nom d\'utilisateur'; + $lang->user_name = 'Nom'; $lang->nick_name = 'Surnom'; $lang->email_address = 'Mél'; $lang->homepage = 'Page d\'accueil'; @@ -118,9 +118,9 @@ $lang->mid = 'Nom'; $lang->layout = 'Mise en Page'; - $lang->widget = 'Widget'; + $lang->widget = 'Gadget'; $lang->module = 'Module'; - $lang->skin = 'Thème'; + $lang->skin = 'Habillage'; $lang->colorset = 'Arrangement de couleur'; $lang->extra_vars = 'Variables Supplémentaires'; @@ -131,29 +131,29 @@ $lang->document_count = ' Documents'; $lang->page_count = 'Pages'; - $lang->list_count = 'Items'; + $lang->list_count = 'Item'; $lang->search_list_count = 'Trouvés'; $lang->readed_count = ' Vues'; $lang->voted_count = 'Recommandés'; - $lang->comment_count = 'Commentairesés'; + $lang->comment_count = 'Commentaires'; $lang->member_count = 'Membres'; $lang->date = 'Jour'; $lang->regdate = 'Enrégistré'; $lang->last_update = 'Dernière Mise à Jour'; $lang->last_post = 'Dernière Affichage'; - $lang->signup_date = 'Jour de s\'inscrire'; + $lang->signup_date = 'Inscription'; $lang->last_login = 'Dernière connexion'; $lang->first_page = 'Première Page'; $lang->last_page = 'Dernière Page'; - $lang->search_target = 'Cible à Rechercher'; - $lang->search_keyword = 'Mot-clé à Recherche'; + $lang->search_target = 'Champ à Rechercher'; + $lang->search_keyword = 'Mot-clé à Rechercher'; $lang->is_default = 'Par Défaut'; - $lang->no_documents = 'Aucun Document'; + $lang->no_documents = 'Nul Document'; - $lang->board_manager = 'Arrangements des Panneau'; - $lang->member_manager = 'Arrangements des Membres'; - $lang->layout_manager = 'Arrangements de Mise en Page'; + $lang->board_manager = 'Administration des Panneaux'; + $lang->member_manager = 'Administration des Membres'; + $lang->layout_manager = 'Administration des Mises en Page'; $lang->use = 'Utiliser'; $lang->notuse = 'Pas Utilisé'; @@ -171,23 +171,23 @@ $lang->unit_year = 'année';; // Descriptions et information - $lang->about_tag = 'Vous pouvez enrégistrer plusieurs tags en utilisant ,(virgule) entre chaque tag'; + $lang->about_tag = 'Vous pouvez enrégistrer plusieurs balises en utilisant ,(virgule) entre chaque balise'; $lang->about_layout = 'Le Mise en Page décore l\'apparence des modules. Vous pouvez les configurer avec le menu de Mise en Page en haut'; // Messages et alertes - $lang->msg_call_server = 'En demandant sur le serveur, attendez svp.'; - $lang->msg_db_not_setted = 'La configuration de DB n\'est pas été établie.'; - $lang->msg_invalid_queryid = 'La valeur spécifiée de query ID est invalide.'; + $lang->msg_call_server = 'En demandant sur le serveur, attendez S.V.P.'; + $lang->msg_db_not_setted = 'La configuration de Base de Données n\'a pas été établie.'; + $lang->msg_invalid_queryid = 'La valeur spécifiée d\'identite de query est invalide.'; $lang->msg_not_permitted = 'Vous n\'avez pas le droit d\'accès.'; $lang->msg_input_password = 'Veuillez entrer votre mot de passe.'; - $lang->msg_invalid_document = 'Nombre de Document invalide'; + $lang->msg_invalid_document = 'Numéro de Document invalide'; $lang->msg_invalid_request = 'Requête invalide'; $lang->msg_invalid_password = 'Mot de passe invalide'; $lang->msg_error_occured = 'Une erreur a lieu'; - $lang->msg_not_founded = 'La cible n\'est pas trouvée.'; - $lang->msg_no_result = 'Aucun Résultat'; + $lang->msg_not_founded = 'L\'objet n\'est pas trouvé.'; + $lang->msg_no_result = 'Nul Résultat'; - $lang->msg_not_permitted_act = 'Vous n\'êtes pas autorisés à exécuter l\'action que vous demandez.'; + $lang->msg_not_permitted_act = 'Vous n\'êtes pas autorisés à exécuter l\'action que vous avez demandé.'; $lang->msg_module_is_not_exists = 'Le module demandé n\'a pas été trouvé.'; $lang->msg_module_is_not_standalone = 'Le module demandé ne peut pas être exécuté indépendamment.'; @@ -196,7 +196,7 @@ $lang->success_updated = 'Mise à jour avec succès'; $lang->success_deleted = 'Supprimé avec succès'; $lang->success_voted = 'Voté avec succès'; - $lang->success_blamed = 'Blamed success_blamed'; + $lang->success_blamed = 'Blâmé avec succès'; $lang->success_moved = 'Bougé avec succès'; $lang->success_sended = 'Envoyé avec succès'; $lang->success_reset = 'Restauré avec succès'; @@ -207,11 +207,11 @@ $lang->fail_to_move = 'N\'a pas pu être bougé'; $lang->failed_voted = 'N\'a pas pu recommander'; - $lang->failed_blamed = 'Could not blame'; + $lang->failed_blamed = 'N\'a pas pu blâmer'; $lang->failed_declared = 'N\'a pas pu accuser'; - $lang->fail_to_delete_have_children = 'Essayez encore après avoir suprimé les reponses, SVP'; + $lang->fail_to_delete_have_children = 'Essayez encore une fois après avoir suprimé les reponses, S.V.P.'; - $lang->confirm_submit = 'Vous voulez sûrement valider?'; + $lang->confirm_submit = 'Vous voulez sûrement soumettre?'; $lang->confirm_logout = 'Vous voulez sûrement fermer la session?'; $lang->confirm_vote = 'Vous voulez recommander?'; $lang->confirm_delete = 'Vous voulez sûrement supprimer?'; @@ -219,7 +219,7 @@ $lang->confirm_reset = 'Vous voulez sûrement restaurer?'; $lang->confirm_leave = 'Vous voulez sûrement supprimer votre compte?'; - $lang->column_type = 'Types des colonnes'; + $lang->column_type = 'Types de la colonne'; $lang->column_type_list['text'] = 'Texte en une seul ligne'; $lang->column_type_list['homepage'] = 'URL'; $lang->column_type_list['email_address'] = 'Mél'; @@ -234,18 +234,40 @@ $lang->column_title = 'Titre de la colonne'; $lang->default_value = 'Valeur par défaut'; $lang->is_active = 'Actif'; - $lang->is_required = 'Champ obligatoire'; + $lang->is_required = 'Item essentielle'; + + // ftp 관련 + $lang->ftp_form_title = 'FTP 정보 입력'; + $lang->ftp = 'FTP'; + $lang->ftp_port = 'FTP port'; + $lang->cmd_check_ftp_connect = 'FTP 접속 확인'; + $lang->about_ftp_info = " + FTP 정보는 다음의 경우에 이용될 수 있습니다.
+ 1. PHP의 safe_mode=On일 경우에 FTP 정보를 이용해서 XE를 정상적으로 동작할 수 있게 합니다.
+ 2. 자동 업데이트등에서 FTP 정보를 이용할 수 있습니다.
+ 이 FTP정보는 files/config/ftp.config.php 파일내에 정보가 저장됩니다.
+ 그리고 설치 후 관리자 페이지에서 FTP 정보를 변경하거나 제거할 수 있습니다.
+ FTP 정보 노출을 원하지 않으시면 입력하지 않으셔도 됩니다 + "; + + $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 접속 및 인증 성공하였습니다"; + // Messages d\'alerte de le Javascript qui est utilisé dans les filtres en XML $lang->filter->isnull = 'Entrez une valeur pour %s'; $lang->filter->outofrange = 'Aligner la longueur du texte de %s'; $lang->filter->equalto = "La valeur de %s est invalide."; $lang->filter->invalid_email = "Le format de %s est invalide. ex) zbxe@zeroboard.com"; - $lang->filter->invalid_user_id = $lang->filter->invalid_userid = "La format de %s n\'est pas convenable.\\nToutes les lettres devraient se composer des alphabets, des nombres ou du soulignage(_) Et la première lettre doit être un des alphabet."; + $lang->filter->invalid_user_id = $lang->filter->invalid_userid = "La format de %s n\'est pas convenable.\\nToutes les lettres devraient se composer des alphabets, des chiffres ou du soulignage(_) Et la première lettre doit être un de l'alphabet."; $lang->filter->invalid_homepage = "La format de %s n\'est pas convenable. ex) http://www.zeroboard.com"; - $lang->filter->invalid_korean = "La format de %s n\'est pas convenable. Entrez seulement en coréen, SVP"; - $lang->filter->invalid_korean_number = "La format de %s n\'est pas convenable. Entrez seulement en alphabet coréen ou en nombres, SVP."; - $lang->filter->invalid_alpha = "La format de %s n\'est pas convenable. Entrez seulement en alphabet, SVP."; - $lang->filter->invalid_alpha_number = "La format de %s n\'est pas convenable. Entrez seulement en alphabet ou en nombres."; - $lang->filter->invalid_number = "La format de %s n\'est pas convenable. Entrez seulement en numéros."; + $lang->filter->invalid_korean = "La format de %s n\'est pas convenable. Entrez seulement en coréen, S.V.P."; + $lang->filter->invalid_korean_number = "La format de %s n\'est pas convenable. Entrez seulement des lettres d'alphabet coréen ou des chiffres, S.V.P."; + $lang->filter->invalid_alpha = "La format de %s n\'est pas convenable. Entrez seulement en alphabet, S.V.P."; + $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."; ?> diff --git a/common/lang/ge.lang.php b/common/lang/ge.lang.php index 0fe60928d..0c0024b44 100644 --- a/common/lang/ge.lang.php +++ b/common/lang/ge.lang.php @@ -236,6 +236,28 @@ $lang->is_active = 'Aktiv'; $lang->is_required = 'Pflichtfeld'; + // ftp 관련 + $lang->ftp_form_title = 'FTP 정보 입력'; + $lang->ftp = 'FTP'; + $lang->ftp_port = 'FTP port'; + $lang->cmd_check_ftp_connect = 'FTP 접속 확인'; + $lang->about_ftp_info = " + FTP 정보는 다음의 경우에 이용될 수 있습니다.
+ 1. PHP의 safe_mode=On일 경우에 FTP 정보를 이용해서 XE를 정상적으로 동작할 수 있게 합니다.
+ 2. 자동 업데이트등에서 FTP 정보를 이용할 수 있습니다.
+ 이 FTP정보는 files/config/ftp.config.php 파일내에 정보가 저장됩니다.
+ 그리고 설치 후 관리자 페이지에서 FTP 정보를 변경하거나 제거할 수 있습니다.
+ FTP 정보 노출을 원하지 않으시면 입력하지 않으셔도 됩니다 + "; + + $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 접속 및 인증 성공하였습니다"; + + // 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'; diff --git a/common/lang/jp.lang.php b/common/lang/jp.lang.php index bb2e6cb03..4a65c85ec 100644 --- a/common/lang/jp.lang.php +++ b/common/lang/jp.lang.php @@ -236,6 +236,28 @@ $lang->is_active = '活性化'; $lang->is_required = '必須項目'; + // ftp 관련 + $lang->ftp_form_title = 'FTP 정보 입력'; + $lang->ftp = 'FTP'; + $lang->ftp_port = 'FTP port'; + $lang->cmd_check_ftp_connect = 'FTP 접속 확인'; + $lang->about_ftp_info = " + FTP 정보는 다음의 경우에 이용될 수 있습니다.
+ 1. PHP의 safe_mode=On일 경우에 FTP 정보를 이용해서 XE를 정상적으로 동작할 수 있게 합니다.
+ 2. 자동 업데이트등에서 FTP 정보를 이용할 수 있습니다.
+ 이 FTP정보는 files/config/ftp.config.php 파일내에 정보가 저장됩니다.
+ 그리고 설치 후 관리자 페이지에서 FTP 정보를 변경하거나 제거할 수 있습니다.
+ FTP 정보 노출을 원하지 않으시면 입력하지 않으셔도 됩니다 + "; + + $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 접속 및 인증 성공하였습니다"; + + // xml filterで用いられているjavascript用のアラートメッセージ $lang->filter->isnull = '%sを入力してください'; $lang->filter->outofrange = '%sの文字の長さを合わせてください'; diff --git a/common/lang/ko.lang.php b/common/lang/ko.lang.php index 06143758a..aeba3b508 100644 --- a/common/lang/ko.lang.php +++ b/common/lang/ko.lang.php @@ -236,6 +236,27 @@ $lang->is_active = '활성'; $lang->is_required = '필수항목'; + // ftp 관련 + $lang->ftp_form_title = 'FTP 정보 입력'; + $lang->ftp = 'FTP'; + $lang->ftp_port = 'FTP port'; + $lang->cmd_check_ftp_connect = 'FTP 접속 확인'; + $lang->about_ftp_info = " + FTP 정보는 다음의 경우에 이용될 수 있습니다.
+ 1. PHP의 safe_mode=On일 경우에 FTP 정보를 이용해서 XE를 정상적으로 동작할 수 있게 합니다.
+ 2. 자동 업데이트등에서 FTP 정보를 이용할 수 있습니다.
+ 이 FTP정보는 files/config/ftp.config.php 파일내에 정보가 저장됩니다.
+ 그리고 설치 후 관리자 페이지에서 FTP 정보를 변경하거나 제거할 수 있습니다.
+ FTP 정보 노출을 원하지 않으시면 입력하지 않으셔도 됩니다 + "; + + $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 접속 및 인증 성공하였습니다"; + // xml filter에서 사용되는 javascript용 alert msg $lang->filter->isnull = '%s의 값을 입력해주세요'; $lang->filter->outofrange = '%s의 글자 길이를 맞추어 주세요.'; diff --git a/common/lang/ru.lang.php b/common/lang/ru.lang.php index f92d72f08..a87785973 100644 --- a/common/lang/ru.lang.php +++ b/common/lang/ru.lang.php @@ -233,6 +233,28 @@ $lang->column_name = 'Имя колонки'; $lang->column_title = 'Название колонки'; $lang->default_value = 'Стандартное значение'; + + // ftp 관련 + $lang->ftp_form_title = 'FTP 정보 입력'; + $lang->ftp = 'FTP'; + $lang->ftp_port = 'FTP port'; + $lang->cmd_check_ftp_connect = 'FTP 접속 확인'; + $lang->about_ftp_info = " + FTP 정보는 다음의 경우에 이용될 수 있습니다.
+ 1. PHP의 safe_mode=On일 경우에 FTP 정보를 이용해서 XE를 정상적으로 동작할 수 있게 합니다.
+ 2. 자동 업데이트등에서 FTP 정보를 이용할 수 있습니다.
+ 이 FTP정보는 files/config/ftp.config.php 파일내에 정보가 저장됩니다.
+ 그리고 설치 후 관리자 페이지에서 FTP 정보를 변경하거나 제거할 수 있습니다.
+ FTP 정보 노출을 원하지 않으시면 입력하지 않으셔도 됩니다 + "; + + $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->is_active = 'Активно'; $lang->is_required = 'Требуемое поле'; diff --git a/common/lang/zh-CN.lang.php b/common/lang/zh-CN.lang.php index ca9042767..81b39fcbc 100644 --- a/common/lang/zh-CN.lang.php +++ b/common/lang/zh-CN.lang.php @@ -236,6 +236,28 @@ $lang->is_active = '激活'; $lang->is_required = '必填'; + // ftp 관련 + $lang->ftp_form_title = 'FTP 정보 입력'; + $lang->ftp = 'FTP'; + $lang->ftp_port = 'FTP port'; + $lang->cmd_check_ftp_connect = 'FTP 접속 확인'; + $lang->about_ftp_info = " + FTP 정보는 다음의 경우에 이용될 수 있습니다.
+ 1. PHP의 safe_mode=On일 경우에 FTP 정보를 이용해서 XE를 정상적으로 동작할 수 있게 합니다.
+ 2. 자동 업데이트등에서 FTP 정보를 이용할 수 있습니다.
+ 이 FTP정보는 files/config/ftp.config.php 파일내에 정보가 저장됩니다.
+ 그리고 설치 후 관리자 페이지에서 FTP 정보를 변경하거나 제거할 수 있습니다.
+ FTP 정보 노출을 원하지 않으시면 입력하지 않으셔도 됩니다 + "; + + $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 접속 및 인증 성공하였습니다"; + + // 在xml filter使用的 javascript用 alert msg $lang->filter->isnull = '请输入%s'; $lang->filter->outofrange = '请确认%s字数'; diff --git a/common/tpl/common_layout.html b/common/tpl/common_layout.html index 15f8d3845..6c66b1e64 100644 --- a/common/tpl/common_layout.html +++ b/common/tpl/common_layout.html @@ -13,7 +13,9 @@ - + + + {Context::getBrowserTitle()} diff --git a/config/config.inc.php b/config/config.inc.php index 19177c439..2238bcffe 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -14,7 +14,7 @@ * 이 내용은 제로보드XE의 버전을 관리자 페이지에 표시하기 위한 용도이며 * config.inc.php의 수정이 없더라도 공식 릴리즈시에 수정되어 함께 배포되어야 함 **/ - define('__ZBXE_VERSION__', '1.0.5'); + define('__ZBXE_VERSION__', '1.0.6'); /** * @brief 디버깅 메세지 출력 diff --git a/config/func.inc.php b/config/func.inc.php index e3690d9d5..5a81b6c01 100644 --- a/config/func.inc.php +++ b/config/func.inc.php @@ -18,6 +18,19 @@ '); } + /** + * @brief iconv 함수가 없을 경우 빈 함수를 만들어서 오류가 생기지 않도록 정의 + **/ + if(!function_exists('iconv')) { + eval(' + function iconv($in_charset, $out_charset, $str) { + return $str; + } + '); + } + + + // time zone $time_zone = array( '-1200' => '[GMT -12:00] Baker Island Time', '-1100' => '[GMT -11:00] Niue Time, Samoa Standard Time', @@ -194,21 +207,34 @@ * @param cut_size 주어진 원 문자열을 자를 크기 * @param tail 잘라졌을 경우 문자열의 제일 뒤에 붙을 꼬리 * @return string - * - * 손쉽고 확실한 변환을 위해 2byte unicode로 변형한후 처리를 한다 **/ - function cut_str($string, $cut_size, $tail='...') { - if(!$string || !$cut_size) return $string; + function cut_str($string,$cut_size=0,$tail = '...') { + if($cut_size<1 || !$string) return $string; - if(function_exists('iconv')) { - $unicode_str = iconv("UTF-8","UCS-2",$string); - if(strlen($unicode_str) < $cut_size*2) return $string; - $output_str = substr($unicode_str, 0, $cut_size*2); - return iconv("UCS-2","UTF-8",$output_str).$tail; + $char_width = Array(5,10,11,16,14,16,16,10,11,11,12,13,10,13,10,12,13,13,13,13,13,13,13,13,13,13,10,10,14,13,14,13,16,15,15,16,15,15,14,16,15,8,13,15,14,16,16,16,15,16,15,15,14,16,15,16,16,15,15,13,16,13,13,11,10,14,14,14,14,14,10,14,14,8,9,13,8,16,14,15,14,14,10,14,10,14,13,16,14,13,14,14,14,14,16); + $unicode_width = 21; + + $max_width = $cut_size*$unicode_width/2; + $char_width = 0; + + $string_length = strlen($string); + $char_count = 0; + + $idx = 0; + while($idx < $string_length && $char_count < $cut_size && $char_width < $max_width) { + $c = ord(substr($string, $idx,1)); + $char_count++; + if($c<128) { + $char_width += (int)$char_width[$c-32]; + $idx++; + } else { + $char_width += $unicode_width; + $idx += 3; + } } - - $arr = array(); - return preg_match('/.{'.$cut_size.'}/su', $string, $arr) ? $arr[0].$tail : $string; + $output = substr($string,0,$idx); + if(strlen($output)<$string_length) $output .= $tail; + return $output; } function zgap() { @@ -314,7 +340,9 @@ **/ function debugPrint($buff = null, $display_line = true) { $debug_file = _XE_PATH_."files/_debug_message.php"; - $buff = sprintf("%s\n",print_r($buff,true)); + $bt = debug_backtrace(); + if(is_array($bt)) $first = array_shift($bt); + $buff = sprintf("[%s %s:%d]\n%s\n", date("Y-m-d H:i:s"), array_pop(explode(DIRECTORY_SEPARATOR, $first["file"])), $first["line"], print_r($buff,true)); if($display_line) $buff = "\n====================================\n".$buff."------------------------------------\n"; @@ -427,12 +455,12 @@ function removeJSEvent($matches) { $tag = strtolower($matches[1]); - if($tag == "a" && preg_match('/href=("|\'?)javascript:/i',$matches[2])) $matches[0] = preg_replace('/href=("|\'?)javascript:/i','href=$1_javascript:', $matches[0]); + if(preg_match('/(src|href)=("|\'?)javascript:/i',$matches[2])) $matches[0] = preg_replace('/(src|href)=("|\'?)javascript:/i','$1=$2_javascript:', $matches[0]); return preg_replace('/ on([a-z]+)=/i',' _on$1=',$matches[0]); } function removeSrcHack($matches) { - $tag = $matches[1]; + $tag = strtolower(trim($matches[1])); $buff = trim(preg_replace('/(\/>|>)/','/>',$matches[0])); $buff = preg_replace_callback('/([^=^"^ ]*)=([^ ^>]*)/i', fixQuotation, $buff); @@ -442,6 +470,15 @@ // src값에 module=admin이라는 값이 입력되어 있으면 이 값을 무효화 시킴 $src = $xml_doc->{$tag}->attrs->src; + $dynsrc = $xml_doc->{$tag}->attrs->dynsrc; + if(_isHackedSrc($src) || _isHackedSrc($dynsrc) ) return sprintf("<%s>",$tag); + + return $matches[0]; + } + + function _isHackedSrc($src) { + if(!$src) return false; + if($src && preg_match('/javascript:/i',$src)) return true; if($src) { $url_info = parse_url($src); $query = $url_info['query']; @@ -452,12 +489,10 @@ if($pos === false) continue; $key = strtolower(trim(substr($queries[$i], 0, $pos))); $val = strtolower(trim(substr($queries[$i] ,$pos+1))); - if(($key == 'module' && $val == 'admin') || $key == 'act' && preg_match('/admin/i',$val)) return sprintf("<%s>",$tag); + if(($key == 'module' && $val == 'admin') || $key == 'act' && preg_match('/admin/i',$val)) return true; } } - - return $matches[0]; - + return false; } /** diff --git a/index.php b/index.php index 2d9b52842..ef50bf2ac 100644 --- a/index.php +++ b/index.php @@ -63,4 +63,5 @@ $oModuleHandler->init(); $oModule = &$oModuleHandler->procModule(); $oModuleHandler->displayContent($oModule); + ?> diff --git a/layouts/xe_blog/conf/info.xml b/layouts/xe_blog/conf/info.xml index b162bffe1..23d3d8b26 100644 --- a/layouts/xe_blog/conf/info.xml +++ b/layouts/xe_blog/conf/info.xml @@ -71,7 +71,7 @@ Bitte wählen Sie ein colorset Sie wollen. Выберите colorset хотите. Seleccione set de colores que desea. - + 파란색 (기본) 青 (default) 蓝色 (default) @@ -79,9 +79,8 @@ Blue (Standard) Azul (default) Blue (default) - blue - + 회색 灰色背景 灰色背景 @@ -89,9 +88,8 @@ Gray Gray Gray - gray - + 오렌지 Orange Orange @@ -99,9 +97,8 @@ Orange Orange Orange - orange - + 보라색 Violet Violet @@ -109,9 +106,8 @@ Violett Violet Violet - violet - + 초록색 绿色 @@ -119,7 +115,6 @@ Grün Verde Green - green @@ -188,7 +183,7 @@ - + 상단 메뉴 上段メニュー 菜单 @@ -196,7 +191,6 @@ Top-Menü Menú superior Главное меню - 1 \ No newline at end of file diff --git a/layouts/xe_blog/layout.html b/layouts/xe_blog/layout.html index b26780b0d..13f111a62 100644 --- a/layouts/xe_blog/layout.html +++ b/layouts/xe_blog/layout.html @@ -1,10 +1,10 @@ - + {@$layout_info->colorset = "blue"} - + @@ -14,24 +14,24 @@ - + -
-
{$content}
-
+
+
+
+
+ {$content} +
+
+
+
+
- -
- - my profile image - - profile - - -

{$layout_info->profile}

- + +
+ + my profile image + + profile + + +

{$layout_info->profile}

+ - -
-
-
- {$lang->cmd_search} - - - - {$lang->cmd_search} -
-
-
-
+ +
+
+
+ {$lang->cmd_search} - -
-

category

-
-
- -
+ + + + {$lang->cmd_search} +
+
+
+
- -
- -
+ +
+

category

+
+
+ +
- -
- -
+ +
+ +
- -
- -
+ +
+ +
- -
- -
+ +
+ +
-
+ +
+ +
+ +
powered by zbXE
- - diff --git a/layouts/xe_official/conf/info.xml b/layouts/xe_official/conf/info.xml index 5382f5ce9..11465106b 100644 --- a/layouts/xe_official/conf/info.xml +++ b/layouts/xe_official/conf/info.xml @@ -78,7 +78,7 @@ Bitte wählen Sie ein colorset Sie wollen. Выберите colorset хотите. Seleccione set de colores que desea. - + 기본 デフォルト Basic @@ -86,9 +86,8 @@ Базовые Básico 默认 - default - + 검은색 Black @@ -96,9 +95,8 @@ Черного Negro 黑色 - black - + 하얀색 white @@ -106,7 +104,6 @@ белый Blanco 白色 - white @@ -160,7 +157,7 @@ - + 상단 메뉴 上段メニュー 主菜单 @@ -168,9 +165,8 @@ Top Menü Верхнее меню Menú Principal - 3 - + 하단 메뉴 下段メニュー 底部菜单 @@ -178,7 +174,6 @@ Bottom-Menü Внизу меню Menú Inferior - 1 \ No newline at end of file diff --git a/layouts/xe_official/layout.html b/layouts/xe_official/layout.html index 518799dd0..9e2296ded 100644 --- a/layouts/xe_official/layout.html +++ b/layouts/xe_official/layout.html @@ -1,7 +1,7 @@ - + - + @@ -17,24 +17,24 @@ - {@$layout_info->colorset = "default"} + {@$layout_info->colorset = "default"}
- + +
  • onclick="window.open(this.href);return false;">{$val['link']}
  • + +
    diff --git a/libs/ftp.class.php b/libs/ftp.class.php new file mode 100644 index 000000000..3bd739f54 --- /dev/null +++ b/libs/ftp.class.php @@ -0,0 +1,522 @@ +debug = FALSE; + $this->umask = 0022; + $this->timeout = 30; + + if (!defined("FTP_BINARY")) { + define("FTP_BINARY", 1); + } + if (!defined("FTP_ASCII")) { + define("FTP_ASCII", 0); + } + + $this->ftp_resp = ""; + } + + /* Public functions */ + function ftp_connect($server, $port = 21) + { + $this->ftp_debug("Trying to ".$server.":".$port." ...\n"); + $this->ftp_sock = @fsockopen($server, $port, $errno, $errstr, $this->timeout); + + if (!$this->ftp_sock || !$this->ftp_ok()) { + $this->ftp_debug("Error : Cannot connect to remote host \"".$server.":".$port."\"\n"); + $this->ftp_debug("Error : fsockopen() ".$errstr." (".$errno.")\n"); + return FALSE; + } + $this->ftp_debug("Connected to remote host \"".$server.":".$port."\"\n"); + + return TRUE; + } + + function ftp_login($user, $pass) + { + $this->ftp_putcmd("USER", $user); + if (!$this->ftp_ok()) { + $this->ftp_debug("Error : USER command failed\n"); + return FALSE; + } + + $this->ftp_putcmd("PASS", $pass); + if (!$this->ftp_ok()) { + $this->ftp_debug("Error : PASS command failed\n"); + return FALSE; + } + $this->ftp_debug("Authentication succeeded\n"); + + return TRUE; + } + + function ftp_pwd() + { + $this->ftp_putcmd("PWD"); + if (!$this->ftp_ok()) { + $this->ftp_debug("Error : PWD command failed\n"); + return FALSE; + } + + return ereg_replace("^[0-9]{3} \"(.+)\" .+\r\n", "\\1", $this->ftp_resp); + } + + function ftp_size($pathname) + { + $this->ftp_putcmd("SIZE", $pathname); + if (!$this->ftp_ok()) { + $this->ftp_debug("Error : SIZE command failed\n"); + return -1; + } + + return ereg_replace("^[0-9]{3} ([0-9]+)\r\n", "\\1", $this->ftp_resp); + } + + function ftp_mdtm($pathname) + { + $this->ftp_putcmd("MDTM", $pathname); + if (!$this->ftp_ok()) { + $this->ftp_debug("Error : MDTM command failed\n"); + return -1; + } + $mdtm = ereg_replace("^[0-9]{3} ([0-9]+)\r\n", "\\1", $this->ftp_resp); + $date = sscanf($mdtm, "%4d%2d%2d%2d%2d%2d"); + $timestamp = mktime($date[3], $date[4], $date[5], $date[1], $date[2], $date[0]); + + return $timestamp; + } + + function ftp_systype() + { + $this->ftp_putcmd("SYST"); + if (!$this->ftp_ok()) { + $this->ftp_debug("Error : SYST command failed\n"); + return FALSE; + } + $DATA = explode(" ", $this->ftp_resp); + + return $DATA[1]; + } + + function ftp_cdup() + { + $this->ftp_putcmd("CDUP"); + $response = $this->ftp_ok(); + if (!$response) { + $this->ftp_debug("Error : CDUP command failed\n"); + } + return $response; + } + + function ftp_chdir($pathname) + { + $this->ftp_putcmd("CWD", $pathname); + $response = $this->ftp_ok(); + if (!$response) { + $this->ftp_debug("Error : CWD command failed\n"); + } + return $response; + } + + function ftp_delete($pathname) + { + $this->ftp_putcmd("DELE", $pathname); + $response = $this->ftp_ok(); + if (!$response) { + $this->ftp_debug("Error : DELE command failed\n"); + } + return $response; + } + + function ftp_rmdir($pathname) + { + $this->ftp_putcmd("RMD", $pathname); + $response = $this->ftp_ok(); + if (!$response) { + $this->ftp_debug("Error : RMD command failed\n"); + } + return $response; + } + + function ftp_mkdir($pathname) + { + $this->ftp_putcmd("MKD", $pathname); + $response = $this->ftp_ok(); + if (!$response) { + $this->ftp_debug("Error : MKD command failed\n"); + } + return $response; + } + + function ftp_file_exists($pathname) + { + if (!($remote_list = $this->ftp_nlist("-a"))) { + $this->ftp_debug("Error : Cannot get remote file list\n"); + return -1; + } + + reset($remote_list); + while (list(,$value) = each($remote_list)) { + if ($value == $pathname) { + $this->ftp_debug("Remote file ".$pathname." exists\n"); + return 1; + } + } + $this->ftp_debug("Remote file ".$pathname." does not exist\n"); + + return 0; + } + + function ftp_rename($from, $to) + { + $this->ftp_putcmd("RNFR", $from); + if (!$this->ftp_ok()) { + $this->ftp_debug("Error : RNFR command failed\n"); + return FALSE; + } + $this->ftp_putcmd("RNTO", $to); + + $response = $this->ftp_ok(); + if (!$response) { + $this->ftp_debug("Error : RNTO command failed\n"); + } + return $response; + } + + function ftp_nlist($arg = "", $pathname = "") + { + if (!($string = $this->ftp_pasv())) { + return FALSE; + } + + if ($arg == "") { + $nlst = "NLST"; + } else { + $nlst = "NLST ".$arg; + } + $this->ftp_putcmd($nlst, $pathname); + + $sock_data = $this->ftp_open_data_connection($string); + if (!$sock_data || !$this->ftp_ok()) { + $this->ftp_debug("Error : Cannot connect to remote host\n"); + $this->ftp_debug("Error : NLST command failed\n"); + return FALSE; + } + $this->ftp_debug("Connected to remote host\n"); + + while (!feof($sock_data)) { + $list[] = ereg_replace("[\r\n]", "", fgets($sock_data, 512)); + } + $this->ftp_close_data_connection($sock_data); + $this->ftp_debug(implode("\n", $list)); + + if (!$this->ftp_ok()) { + $this->ftp_debug("Error : NLST command failed\n"); + return FALSE; + } + + return $list; + } + + function ftp_rawlist($pathname = "") + { + if (!($string = $this->ftp_pasv())) { + return FALSE; + } + + $this->ftp_putcmd("LIST", $pathname); + + $sock_data = $this->ftp_open_data_connection($string); + if (!$sock_data || !$this->ftp_ok()) { + $this->ftp_debug("Error : Cannot connect to remote host\n"); + $this->ftp_debug("Error : LIST command failed\n"); + return FALSE; + } + + $this->ftp_debug("Connected to remote host\n"); + + while (!feof($sock_data)) { + $list[] = ereg_replace("[\r\n]", "", fgets($sock_data, 512)); + } + $this->ftp_debug(implode("\n", $list)); + $this->ftp_close_data_connection($sock_data); + + if (!$this->ftp_ok()) { + $this->ftp_debug("Error : LIST command failed\n"); + return FALSE; + } + + return $list; + } + + function ftp_get($localfile, $remotefile, $mode = 1) + { + umask($this->umask); + + if (@file_exists($localfile)) { + $this->ftp_debug("Warning : local file will be overwritten\n"); + } + + $fp = @fopen($localfile, "w"); + if (!$fp) { + $this->ftp_debug("Error : Cannot create \"".$localfile."\""); + $this->ftp_debug("Error : GET command failed\n"); + return FALSE; + } + + if (!$this->ftp_type($mode)) { + $this->ftp_debug("Error : GET command failed\n"); + return FALSE; + } + + if (!($string = $this->ftp_pasv())) { + $this->ftp_debug("Error : GET command failed\n"); + return FALSE; + } + + $this->ftp_putcmd("RETR", $remotefile); + + $sock_data = $this->ftp_open_data_connection($string); + if (!$sock_data || !$this->ftp_ok()) { + $this->ftp_debug("Error : Cannot connect to remote host\n"); + $this->ftp_debug("Error : GET command failed\n"); + return FALSE; + } + $this->ftp_debug("Connected to remote host\n"); + $this->ftp_debug("Retrieving remote file \"".$remotefile."\" to local file \"".$localfile."\"\n"); + while (!feof($sock_data)) { + fputs($fp, fread($sock_data, 4096)); + } + fclose($fp); + + $this->ftp_close_data_connection($sock_data); + + $response = $this->ftp_ok(); + if (!$response) { + $this->ftp_debug("Error : GET command failed\n"); + } + return $response; + } + + function ftp_put($remotefile, $localfile, $mode = 1) + { + + if (!@file_exists($localfile)) { + $this->ftp_debug("Error : No such file or directory \"".$localfile."\"\n"); + $this->ftp_debug("Error : PUT command failed\n"); + return FALSE; + } + + $fp = @fopen($localfile, "r"); + if (!$fp) { + $this->ftp_debug("Error : Cannot read file \"".$localfile."\"\n"); + $this->ftp_debug("Error : PUT command failed\n"); + return FALSE; + } + + if (!$this->ftp_type($mode)) { + $this->ftp_debug("Error : PUT command failed\n"); + return FALSE; + } + + if (!($string = $this->ftp_pasv())) { + $this->ftp_debug("Error : PUT command failed\n"); + return FALSE; + } + + $this->ftp_putcmd("STOR", $remotefile); + + $sock_data = $this->ftp_open_data_connection($string); + if (!$sock_data || !$this->ftp_ok()) { + $this->ftp_debug("Error : Cannot connect to remote host\n"); + $this->ftp_debug("Error : PUT command failed\n"); + return FALSE; + } + $this->ftp_debug("Connected to remote host\n"); + $this->ftp_debug("Storing local file \"".$localfile."\" to remote file \"".$remotefile."\"\n"); + while (!feof($fp)) { + fputs($sock_data, fread($fp, 4096)); + } + fclose($fp); + + $this->ftp_close_data_connection($sock_data); + + $response = $this->ftp_ok(); + if (!$response) { + $this->ftp_debug("Error : PUT command failed\n"); + } + return $response; + } + + function ftp_site($command) + { + $this->ftp_putcmd("SITE", $command); + $response = $this->ftp_ok(); + if (!$response) { + $this->ftp_debug("Error : SITE command failed\n"); + } + return $response; + } + + function ftp_quit() + { + $this->ftp_putcmd("QUIT"); + if (!$this->ftp_ok() || !fclose($this->ftp_sock)) { + $this->ftp_debug("Error : QUIT command failed\n"); + return FALSE; + } + $this->ftp_debug("Disconnected from remote host\n"); + return TRUE; + } + + /* Private Functions */ + + function ftp_type($mode) + { + if ($mode) { + $type = "I"; //Binary mode + } else { + $type = "A"; //ASCII mode + } + $this->ftp_putcmd("TYPE", $type); + $response = $this->ftp_ok(); + if (!$response) { + $this->ftp_debug("Error : TYPE command failed\n"); + } + return $response; + } + + function ftp_port($ip_port) + { + $this->ftp_putcmd("PORT", $ip_port); + $response = $this->ftp_ok(); + if (!$response) { + $this->ftp_debug("Error : PORT command failed\n"); + } + return $response; + } + + function ftp_pasv() + { + $this->ftp_putcmd("PASV"); + if (!$this->ftp_ok()) { + $this->ftp_debug("Error : PASV command failed\n"); + return FALSE; + } + + $ip_port = ereg_replace("^.+ \\(?([0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+)\\)?.*\r\n$", "\\1", $this->ftp_resp); + return $ip_port; + } + + function ftp_putcmd($cmd, $arg = "") + { + if ($arg != "") { + $cmd = $cmd." ".$arg; + } + + fputs($this->ftp_sock, $cmd."\r\n"); + $this->ftp_debug("> ".$cmd."\n"); + + return TRUE; + } + + function ftp_ok() + { + $this->ftp_resp = ""; + do { + $res = fgets($this->ftp_sock, 512); + $this->ftp_resp .= $res; + } while (substr($res, 3, 1) != " "); + + $this->ftp_debug(str_replace("\r\n", "\n", $this->ftp_resp)); + + if (!ereg("^[123]", $this->ftp_resp)) { + return FALSE; + } + + return TRUE; + } + + function ftp_close_data_connection($sock) + { + $this->ftp_debug("Disconnected from remote host\n"); + return fclose($sock); + } + + function ftp_open_data_connection($ip_port) + { + if (!ereg("[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+", $ip_port)) { + $this->ftp_debug("Error : Illegal ip-port format(".$ip_port.")\n"); + return FALSE; + } + + $DATA = explode(",", $ip_port); + $ipaddr = $DATA[0].".".$DATA[1].".".$DATA[2].".".$DATA[3]; + $port = $DATA[4]*256 + $DATA[5]; + $this->ftp_debug("Trying to ".$ipaddr.":".$port." ...\n"); + $data_connection = @fsockopen($ipaddr, $port, $errno, $errstr); + if (!$data_connection) { + $this->ftp_debug("Error : Cannot open data connection to ".$ipaddr.":".$port."\n"); + $this->ftp_debug("Error : ".$errstr." (".$errno.")\n"); + return FALSE; + } + + return $data_connection; + } + + function ftp_debug($message = "") + { + if ($this->debug) { + echo $message; + } + + return TRUE; + } + } +?> diff --git a/modules/addon/addon.admin.model.php b/modules/addon/addon.admin.model.php index 99d695e17..0a7b35757 100644 --- a/modules/addon/addon.admin.model.php +++ b/modules/addon/addon.admin.model.php @@ -85,21 +85,35 @@ if(!$xml_obj) return; + // DB에 설정된 내역을 가져온다 + $db_args->addon = $addon; + $output = executeQuery('addon.getAddonInfo',$db_args); + $extra_vals = unserialize($output->data->extra_vars); + + if($extra_vals->mid_list) { + $addon_info->mid_list = $extra_vals->mid_list; + } else { + $addon_info->mid_list = array(); + } + + // 애드온 정보 if($xml_obj->version && $xml_obj->attrs->version == '0.2') { - // addon format 0.2 + // addon format v0.2 + sscanf($xml_obj->date->body, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d); + $addon_info->date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d); + + $addon_info->addon_name = $addon; $addon_info->title = $xml_obj->title->body; $addon_info->description = trim($xml_obj->description->body); $addon_info->version = $xml_obj->version->body; $addon_info->homepage = $xml_obj->link->body; - sscanf($xml_obj->date->body, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d); - $addon_info->date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d); $addon_info->license = $xml_obj->license->body; $addon_info->license_link = $xml_obj->license->attrs->link; if(!is_array($xml_obj->author)) $author_list[] = $xml_obj->author; else $author_list = $xml_obj->author; - + foreach($author_list as $author) { unset($author_obj); $author_obj->name = $author->name->body; @@ -108,6 +122,90 @@ $addon_info->author[] = $author_obj; } + // 확장변수를 정리 + if($xml_obj->extra_vars) { + $extra_var_groups = $xml_obj->extra_vars->group; + if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars; + if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups); + + foreach($extra_var_groups as $group) { + $extra_vars = $group->var; + if(!is_array($group->var)) $extra_vars = array($group->var); + + foreach($extra_vars as $key => $val) { + unset($obj); + if(!$val->attrs->type) { $val->attrs->type = 'text'; } + + $obj->group = $group->title->body; + $obj->name = $val->attrs->name; + $obj->title = $val->title->body; + $obj->type = $val->attrs->type; + $obj->description = $val->description->body; + $obj->value = $extra_vals->{$obj->name}; + if(strpos($obj->value, '|@|') != false) { $obj->value = explode('|@|', $obj->value); } + if($obj->type == 'mid_list' && !is_array($obj->value)) { $obj->value = array($obj->value); } + + // 'select'type에서 option목록을 구한다. + if(is_array($val->options)) { + $option_count = count($val->options); + + for($i = 0; $i < $option_count; $i++) { + $obj->options[$i]->title = $val->options[$i]->title->body; + $obj->options[$i]->value = $val->options[$i]->attrs->value; + } + } else { + $obj->options[0]->title = $val->options[0]->title->body; + $obj->options[0]->value = $val->options[0]->attrs->value; + } + + $addon_info->extra_vars[] = $obj; + } + } + } + + // history + if($xml_obj->history) { + if(!is_array($xml_obj->history)) $history[] = $xml_obj->history; + else $history = $xml_obj->history; + + foreach($history as $item) { + unset($obj); + + if($item->author) { + (!is_array($item->author)) ? $obj->author_list[] = $item->author : $obj->author_list = $item->author; + + foreach($obj->author_list as $author) { + unset($author_obj); + $author_obj->name = $author->name->body; + $author_obj->email_address = $author->attrs->email_address; + $author_obj->homepage = $author->attrs->link; + $obj->author[] = $author_obj; + } + } + + $obj->name = $item->name->body; + $obj->email_address = $item->attrs->email_address; + $obj->homepage = $item->attrs->link; + $obj->version = $item->attrs->version; + $obj->date = $item->attrs->date; + $obj->description = $item->description->body; + + if($item->log) { + (!is_array($item->log)) ? $obj->log[] = $item->log : $obj->log = $item->log; + + foreach($obj->log as $log) { + unset($log_obj); + $log_obj->text = $log->body; + $log_obj->link = $log->attrs->link; + $obj->logs[] = $log_obj; + } + } + + $addon_info->history[] = $obj; + } + } + + } else { // addon format 0.1 $addon_info->addon_name = $addon; @@ -121,95 +219,47 @@ $author_obj->homepage = $xml_obj->author->attrs->link; $addon_info->author[] = $author_obj; - } + if($xml_obj->extra_vars) { + // 확장변수를 정리 + $extra_var_groups = $xml_obj->extra_vars->group; + if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars; + if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups); + foreach($extra_var_groups as $group) { + $extra_vars = $group->var; + if(!is_array($group->var)) $extra_vars = array($group->var); - // history - if($xml_obj->history) { - if(!is_array($xml_obj->history)) $history[] = $xml_obj->history; - else $history = $xml_obj->history; + foreach($extra_vars as $key => $val) { + unset($obj); + if(!$val->type->body) { $val->type->body = 'text'; } - foreach($history as $item) { - unset($obj); + $obj->group = $group->title->body; + $obj->name = $val->attrs->name; + $obj->title = $val->title->body; + $obj->type = $val->type->body; + $obj->description = $val->description->body; + $obj->value = $extra_vals->{$obj->name}; + if(strpos($obj->value, '|@|') != false) { $obj->value = explode('|@|', $obj->value); } + if($obj->type == 'mid_list' && !is_array($obj->value)) { $obj->value = array($obj->value); } - if($item->author) { - (!is_array($item->author)) ? $obj->author_list[] = $item->author : $obj->author_list = $item->author; + // 'select'type에서 option목록을 구한다. + if(is_array($val->options)) { + $option_count = count($val->options); - foreach($obj->author_list as $author) { - unset($author_obj); - $author_obj->name = $author->name->body; - $author_obj->email_address = $author->attrs->email_address; - $author_obj->homepage = $author->attrs->link; - $obj->author[] = $author_obj; - } - } - - $obj->name = $item->name->body; - $obj->email_address = $item->attrs->email_address; - $obj->homepage = $item->attrs->link; - $obj->version = $item->attrs->version; - $obj->date = $item->attrs->date; - $obj->description = $item->description->body; - - if($item->log) { - (!is_array($item->log)) ? $obj->log[] = $item->log : $obj->log = $item->log; - - foreach($obj->log as $log) { - $obj->logs[] = $log->body; - } - } - - $addon_info->history[] = $obj; - } - } - - // DB에 설정된 내역을 가져온다 - $db_args->addon = $addon; - $output = executeQuery('addon.getAddonInfo',$db_args); - $extra_vals = unserialize($output->data->extra_vars); - - if($extra_vals->mid_list) { - $addon_info->mid_list = $extra_vals->mid_list; - } else { - $addon_info->mid_list = array(); - } - - if($xml_obj->extra_vars) { - // 확장변수를 정리 - $extra_var_groups = $xml_obj->extra_vars->group; - if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars; - if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups); - foreach($extra_var_groups as $group) { - $extra_vars = $group->var; - if(!is_array($group->var)) $extra_vars = array($group->var); - - foreach($extra_vars as $key => $val) { - unset($obj); - if(!$val->type->body) { $val->type->body = 'text'; } - - $obj->group = $group->title->body; - $obj->name = $val->attrs->name; - $obj->title = $val->title->body; - $obj->type = $val->type->body; - $obj->description = $val->description->body; - $obj->value = $extra_vals->{$obj->name}; - if(strpos($obj->value, '|@|') != false) { $obj->value = explode('|@|', $obj->value); } - if($obj->type == 'mid_list' && !is_array($obj->value)) { $obj->value = array($obj->value); } - - // 'select'type에서 option목록을 구한다. - if(is_array($val->options)) { - $option_count = count($val->options); - - for($i = 0; $i < $option_count; $i++) { - $obj->options[$i]->title = $val->options[$i]->title->body; - $obj->options[$i]->value = $val->options[$i]->value->body; + for($i = 0; $i < $option_count; $i++) { + $obj->options[$i]->title = $val->options[$i]->title->body; + $obj->options[$i]->value = $val->options[$i]->value->body; + } } - } - $addon_info->extra_vars[] = $obj; + $addon_info->extra_vars[] = $obj; + } } } + } + + return $addon_info; } diff --git a/modules/addon/conf/info.xml b/modules/addon/conf/info.xml index bbe4c58b6..54fa92098 100644 --- a/modules/addon/conf/info.xml +++ b/modules/addon/conf/info.xml @@ -17,6 +17,7 @@ 0.1 2007-02-28 manager + http://www.zeroboard.com 제로 diff --git a/modules/addon/lang/fr.lang.php b/modules/addon/lang/fr.lang.php index 7feae3b77..4e2dfb5b2 100644 --- a/modules/addon/lang/fr.lang.php +++ b/modules/addon/lang/fr.lang.php @@ -2,16 +2,16 @@ /** * @file modules/addon/lang/fr.lang.php * @author zero (zero@nzeo.com) Traduit par Pierre Duvent(PierreDuvent@gamil.com) - * @brief Paquet de la Langue francaise + * @brief Paquet du langage en français pour le module de Compagnon **/ $lang->addon = "Compagnon"; $lang->addon_info = 'Le résumé de la Compagnon'; $lang->addon_maker = 'L\'Auteur de la Compagnon'; - $lang->addon_license = 'License'; + $lang->addon_license = 'Licence'; $lang->addon_history = 'L\'Histoire de la Compagnon'; $lang->about_addon_mid = "On peut choisir des objets dans lesquels la Compagnon soit utilisé.
    (Tout sera choisi quand rien n'est choisi.)"; - $lang->about_addon = 'La Compagnon, c\'est pour contrôler les actions plutôt d\'imprimer des résultats de HTML.
    Par la Touche à Bascule des compagnons que vous voulez faire marcher ou arrêter, vous pouvez appliquer les fonctions très utiles à administrer votre site web.'; + $lang->about_addon = 'La Compagnon, c\'est pour contrôler les actions plutôt d\'imprimer des résultats de HTML.
    Par la Touche à Bascule des compagnons que vous voulez faire marcher ou arrêter, vous pouvez appliquer les fonctions très utiles à administrer votre site Web.'; ?> \ No newline at end of file diff --git a/modules/addon/lang/ko.lang.php b/modules/addon/lang/ko.lang.php index 0b471e5fa..9200a3c58 100644 --- a/modules/addon/lang/ko.lang.php +++ b/modules/addon/lang/ko.lang.php @@ -9,7 +9,7 @@ $lang->addon_info = '애드온정보'; $lang->addon_maker = '애드온 제작자'; - $lang->addon_license = '라이센스'; + $lang->addon_license = '라이선스'; $lang->addon_history = '변경 이력'; $lang->about_addon_mid = "애드온이 사용될 대상을 지정할 수 있습니다.
    (모두 해제시 모든 대상에서 사용 가능합니다)"; diff --git a/modules/addon/tpl/addon_info.html b/modules/addon/tpl/addon_info.html index d4553c6a7..49994c1f5 100644 --- a/modules/addon/tpl/addon_info.html +++ b/modules/addon/tpl/addon_info.html @@ -19,14 +19,17 @@ + {$lang->homepage} {$addon_info->homepage} + {$lang->regdate} {zdate($addon_info->date, 'Y-m-d')} + {$lang->addon_license} @@ -36,6 +39,7 @@ + {$lang->description} {nl2br(trim($addon_info->description))} @@ -64,12 +68,18 @@

    {$author->name} ({$author->homepage} / {$author->email_address})

    - +

    {nl2br(trim($history->description))}

    diff --git a/modules/addon/tpl/setup_addon.html b/modules/addon/tpl/setup_addon.html index cb9b8eb95..b0b3c65d7 100644 --- a/modules/addon/tpl/setup_addon.html +++ b/modules/addon/tpl/setup_addon.html @@ -25,10 +25,12 @@ + - {$addon_info->homepage} + {$addon_info->homepage} + @@ -89,7 +91,7 @@
    - mid_list))-->checked="checked" /> + mid_list))-->checked="checked" />
    diff --git a/modules/admin/conf/info.xml b/modules/admin/conf/info.xml index c75bd3b0b..3c688517c 100644 --- a/modules/admin/conf/info.xml +++ b/modules/admin/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-02-28 base + http://www.zeroboard.com 제로 diff --git a/modules/admin/lang/fr.lang.php b/modules/admin/lang/fr.lang.php index e5efc28bb..913ea29bc 100644 --- a/modules/admin/lang/fr.lang.php +++ b/modules/admin/lang/fr.lang.php @@ -2,7 +2,7 @@ /** * @file modules/admin/lang/fr.lang.php * @author zero (zero@nzeo.com) Traduit par Pierre Duvent(PierreDuvent@gamil.com) - * @brief Paquet de la Langue franaise (Les Mots base seulement sont inclus ici) + * @brief Paquet du langage en français pour le module d\'Administration **/ $lang->admin_info = 'Informations d\'Administrateur'; @@ -12,8 +12,8 @@ 'service' => 'Modules de Service', 'manager' => 'Modules Administratif', 'utility' => 'Modules d\'Utilité', - 'accessory' => 'Modules Accessoires', - 'base' => 'Modules par Défaut', + 'accessory' => 'Modules Additionnels', + 'base' => 'Modules Fondamentaux', ); $lang->newest_news = "Dernières Nouvelles"; @@ -28,25 +28,25 @@ $lang->item_module = "Liste des Modules"; $lang->item_addon = "Liste des Compagnons"; - $lang->item_widget = "Liste des Widgets"; + $lang->item_widget = "Liste des Gadgets"; $lang->item_layout = "Liste des Mises en Pages"; $lang->module_name = "Nom de Module"; $lang->addon_name = "Nom de Compagnon"; $lang->version = "Version"; $lang->author = "Auteur"; - $lang->table_count = "Nombres de Tables"; + $lang->table_count = "Somme de Tables"; $lang->installed_path = "Chemin Installé"; $lang->cmd_shortcut_management = "Editer le Menu"; $lang->msg_is_not_administrator = 'Administrateur seulement'; - $lang->msg_manage_module_cannot_delete = 'On ne peut pas effacer les raccourcis pour les modules, les compagnons, les mises en page ou les widgets'; - $lang->msg_default_act_is_null = 'on ne peut pas enrégistrer les raccourcis parce que les Actions Par Défaut de l\'Administrateur ne sont pas établis'; + $lang->msg_manage_module_cannot_delete = 'On ne peut pas supprimer les raccourcis pour les modules, les compagnons, les mises en page ou les gadgets'; + $lang->msg_default_act_is_null = 'on ne peut pas enrégistrer les raccourcis parce que les Actions Par Défaut de l\'Administrateur ne sont pas établies'; $lang->welcome_to_zeroboard_xe = 'Bienvenue sur la Page d\'Administration du Zeroboard XE'; $lang->about_admin_page = "La Page d\'Administration est encore en train de développer,\nNous allons ajouter des contenus essentiels par accepter beauoup de bons suggestions pendant Béta Proche."; - $lang->about_lang_env = "Vous pouvez fixer la Langue Par Défaut par cliquer le boutton [Conserver] au-dessous. Les visiteurs vont voir toutes les menus et les messages en la langue que vous choisissez."; + $lang->about_lang_env = "Vous pouvez fixer la Langue Par Défaut par cliquer le boutton [Conserver] au-dessous. Les visiteurs vont voir tous les menus et les messages en langue que vous choisissez."; $lang->zeroboard_xe_user_links = 'Liens pour les Utilisateurs'; $lang->zeroboard_xe_developer_links = 'Liens pour les Développeur'; @@ -56,33 +56,33 @@ //'Site Web Beta Proche' => 'http://spring.zeroboard.com', //'Conservation des Modules' => 'http://www.zeroboard.com', //'Conservation des Compagnons' => 'http://www.zeroboard.com', - //'Conservation des Widgets' => 'http://www.zeroboard.com', - //'Conservation des Thèmes des Modules' => 'http://www.zeroboard.com', - //Conservation des Thèmes des 'Widgets' => 'http://www.zeroboard.com', - //'Conservation des Thèmes des Mises en Page' => 'http://www.zeroboard.com', + //'Conservation des gadgets' => 'http://www.zeroboard.com', + //'Conservation des habillages des Modules' => 'http://www.zeroboard.com', + //Conservation des habillages des 'gadgets' => 'http://www.zeroboard.com', + //'Conservation des habillages des Mises en Page' => 'http://www.zeroboard.com', ); $lang->xe_developer_links = array( 'Manuel' => 'http://www.zeroboard.com/manual', //"Forum pour les Dveloppeurs" => 'http://spring.zeroboard.com', 'Traque des Issues' => 'http://trac.zeroboard.com', - 'Répertoir de SVN' => 'http://svn.zeroboard.com', + 'Répertoire de SVN' => 'http://svn.zeroboard.com', 'Documents de Doxygen' => 'http://doc.zeroboard.com', 'Documentation de PDF' => 'http://doc.zeroboard.com/zeroboard_xe.pdf', ); $lang->zeroboard_xe_usefulness_module = 'Modules Utiles'; $lang->xe_usefulness_modules = array( - 'dispEditorAdminIndex' => 'Arrangement de l\'Editeur', - 'dispDocumentAdminList' => 'Arrangement des Articles', - 'dispCommentAdminList' => 'Arrangement des Commentaires', - 'dispFileAdminList' => 'Arrangement des Rattachements', - 'dispPollAdminList' => 'Arrangement des Enquêtes', - 'dispSpamfilterAdminConfig' => 'Arrangement du Filtre contre Pourriel', + 'dispEditorAdminIndex' => 'Administration de l\'Editeur', + 'dispDocumentAdminList' => 'Administration des Articles', + 'dispCommentAdminList' => 'Administration des Commentaires', + 'dispFileAdminList' => 'Administration des Annexes', + 'dispPollAdminList' => 'Administration des Enquêtes', + 'dispSpamfilterAdminConfig' => 'Administration du Filtre contre Polluriel', 'dispCounterAdminIndex' => 'Journal de Compteur', ); $lang->xe_license = 'Zeroboard XE s\'applique la GPL'; - $lang->about_shortcut = 'Vous pouvez effacer les raccourcis pour les modules qui sont enrgistrés sur le liste des modules utilisés fréquemment'; + $lang->about_shortcut = 'Vous pouvez supprimer les raccourcis pour les modules qui sont enrgistrés sur le liste des modules qui sont utilisés fréquemment'; ?> diff --git a/modules/admin/tpl/index.html b/modules/admin/tpl/index.html index f74e7b6f2..4e86851dc 100644 --- a/modules/admin/tpl/index.html +++ b/modules/admin/tpl/index.html @@ -58,29 +58,29 @@ - - + +

    {$lang->about_lang_env}

    - - - {$lang->time_zone} - - -

    {$lang->about_time_zone}

    - - - - {$lang->qmail_compatibility} - - checked="checked" /> -

    {$lang->about_qmail_compatibility}

    - + + + {$lang->time_zone} + + +

    {$lang->about_time_zone}

    + + + + {$lang->qmail_compatibility} + + checked="checked" /> +

    {$lang->about_qmail_compatibility}

    + @@ -104,14 +104,14 @@ {zdate($val->date,"Y-m-d H:i")} {$val->title} - + - +
    - +
    diff --git a/modules/board/skins/xe_guestbook/css/common.css b/modules/board/skins/xe_guestbook/css/common.css index 1522def10..faff01d2e 100644 --- a/modules/board/skins/xe_guestbook/css/common.css +++ b/modules/board/skins/xe_guestbook/css/common.css @@ -15,10 +15,10 @@ Jeong, Chan Myeong 070601~070630 .boardHeader h3 { margin:0; float:left; padding:15px 15px 12px 15px; font-size:1.2em; background:#ffffff url(../images/common/lineH3.gif) no-repeat right bottom;} /* board Description */ -.boardDescription { color:#AEAEAE; border:1px solid #DDDDDD; overflow:hidden; padding:10px; margin-top:5px; background-color:#FFFFFF;} +.boardDescription { color:#AEAEAE; border:1px solid #DDDDDD; overflow:hidden; padding:10px; margin:5px 0; background-color:#FFFFFF;} /* board Information */ -.boardInformation { width:100%; clear:both; margin:10px 0 2px 0; overflow:hidden; color:#666666;} +.boardInformation { width:100%; clear:both; margin:5px 0 2px 0; overflow:hidden; color:#666666;} .articleNum { float:left; padding:0 0 0 15px; } /* account Navigation */ diff --git a/modules/board/skins/xe_guestbook/extra_var_form.html b/modules/board/skins/xe_guestbook/extra_var_form.html index 6ce56dc09..c76387fe1 100644 --- a/modules/board/skins/xe_guestbook/extra_var_form.html +++ b/modules/board/skins/xe_guestbook/extra_var_form.html @@ -1,6 +1,6 @@ - + - + @@ -18,40 +18,40 @@ - - - {@ $val->default = explode(',',$val->default) } + + + {@ $val->default = explode(',', $val->default) } - + {@ $val->column_name = "extra_vars".$key} - + {@ $val->value = $oDocument->getExtraValue($key)} - + - + - + - + - + - +
      @@ -61,7 +61,7 @@
    - + - +
    {zdate($val->value,"Y-m-d")}
    diff --git a/modules/board/skins/xe_guestbook/extra_var_value.html b/modules/board/skins/xe_guestbook/extra_var_value.html index 7a0ae8d24..78fff79df 100644 --- a/modules/board/skins/xe_guestbook/extra_var_value.html +++ b/modules/board/skins/xe_guestbook/extra_var_value.html @@ -1,17 +1,17 @@ - + - + {@ $val->column_name = "extra_vars".$key} - + {@ $val->value = $oDocument->getExtraValue($key)} {@ $_tmp_value = array(); } - + {htmlspecialchars($val->value)} - + {$val->value} @@ -19,7 +19,7 @@   - + {$val->value} @@ -27,7 +27,7 @@   - + {htmlspecialchars($val->value[0])} - @@ -36,12 +36,12 @@ {htmlspecialchars($val->value[2])}   - + {nl2br(htmlspecialchars($val->value))}   - + {@ $val->value = array($val->value) } @@ -50,12 +50,12 @@ {implode(",",$_tmp_value)}   - + {htmlspecialchars($val->value)}   - + {zdate($val->value,"Y-m-d")}   diff --git a/modules/board/skins/xe_guestbook/header.html b/modules/board/skins/xe_guestbook/header.html index 265ac6348..cf27a394b 100644 --- a/modules/board/skins/xe_guestbook/header.html +++ b/modules/board/skins/xe_guestbook/header.html @@ -1,12 +1,12 @@ - + - + {@$module_info->colorset = "white"} - + @@ -17,10 +17,10 @@ - + {$module_info->header_text} - +
    @@ -45,26 +45,26 @@
      - + - +
    • {$lang->cmd_setup}
    • - +
    • {$lang->cmd_management}
    • - +
    • {$lang->cmd_view_member_info}
    • {$lang->cmd_logout}
    • - +
    • {$lang->cmd_signup}
    • {$lang->cmd_login}
    • diff --git a/modules/board/skins/xe_guestbook/list.html b/modules/board/skins/xe_guestbook/list.html index 13faa3601..7a907262a 100644 --- a/modules/board/skins/xe_guestbook/list.html +++ b/modules/board/skins/xe_guestbook/list.html @@ -1,12 +1,12 @@ - + - + - + - +
      @@ -14,7 +14,7 @@ - +
      @@ -24,7 +24,7 @@ - +
      diff --git a/modules/board/skins/xe_guestbook/skin.xml b/modules/board/skins/xe_guestbook/skin.xml index 5ab619a24..d854f7557 100644 --- a/modules/board/skins/xe_guestbook/skin.xml +++ b/modules/board/skins/xe_guestbook/skin.xml @@ -1,91 +1,97 @@ - - - zbXE 방명록 기본 스킨 + + + zbXE 방명록 기본 스킨 zbXE 留言本默认皮肤 - zbXE ゲストブックのデフォルトスキン + zbXE ゲストブックのデフォルトスキン zbXE Basic Guestbook Skin Zeroboard XE básicos piel Libro de visitas - - 제로 - Zero - Zero + board모듈의 기본 방명록 스킨 + 留言本模块的默认皮肤。 + ボード(board)モジュールのデフォルトスキンです。 + This is the basic guestbook skin of Zeroboard XE. + Este es el libro de visitas de la piel Zeroboard XE. + 0.1 + 2008-02-28 + http://www.zeroboard.com + + + 제로 + Zero + Zero Zero Zero - board모듈의 기본 방명록 스킨 - 留言本模块的默认皮肤。 - ボード(board)モジュールのデフォルトスキンです。 - This is the basic guestbook skin of Zeroboard XE. - Este es el libro de visitas de la piel Zeroboard XE. - - - - 하얀색(기본) - 白(デフォルト) - 白色(基本) - White (default) + + + + + 하얀색(기본) + 白(デフォルト) + 白色(基本) + White (default) Blanco (por defecto) - - - 청록색 - 青緑 - 青绿色 - Cyan + + + 청록색 + 青緑 + 青绿色 + Cyan Cian - - - 초록색 - - 绿色 - Green + + + 초록색 + + 绿色 + Green Verde - - - 빨간색 - - 红色 - Red + + + 빨간색 + + 红色 + Red Roja - - - 보라색 - - 紫色 - Purple + + + 보라색 + + 紫色 + Purple Púrpura - - - 검은색 - - Black - Черного - Negro - 黑色 - - - - - 제목 - 标题 - タイトル + + + 검은색 + + Black + Черного + Negro + 黑色 + + + + + + 제목 + 标题 + タイトル Title Título - 방명록의 제목을 적어주세요. - 请输入留言本标题。 - ゲストブックのタイトルを入力してください。 + 방명록의 제목을 적어주세요. + 请输入留言本标题。 + ゲストブックのタイトルを入力してください。 Please input the title of guestbook. Introduce el título del libro de visitas. - - - 방명록 설명 - 留言本说明 - ゲストブックの説明 + + + 방명록 설명 + 留言本说明 + ゲストブックの説明 Description Description - 내용의 기본값 - 内容默认值 - 内容のデフォルト値 - Default value of content - Valor por defecto de contenido - - - + 내용의 기본값 + 内容默认值 + 内容のデフォルト値 + Default value of content + Valor por defecto de contenido + + + \ No newline at end of file diff --git a/modules/board/skins/xe_guestbook/tag_list.html b/modules/board/skins/xe_guestbook/tag_list.html index 66206c6bb..5773170c5 100644 --- a/modules/board/skins/xe_guestbook/tag_list.html +++ b/modules/board/skins/xe_guestbook/tag_list.html @@ -1,4 +1,4 @@ - + diff --git a/modules/board/skins/xe_guestbook/view_document.html b/modules/board/skins/xe_guestbook/view_document.html index 4d507db47..b38463bea 100644 --- a/modules/board/skins/xe_guestbook/view_document.html +++ b/modules/board/skins/xe_guestbook/view_document.html @@ -51,7 +51,7 @@ {$val->name} - + diff --git a/modules/board/tpl/skin_info.html b/modules/board/tpl/skin_info.html index 59cc575de..fff69ff31 100644 --- a/modules/board/tpl/skin_info.html +++ b/modules/board/tpl/skin_info.html @@ -1,6 +1,6 @@ - + @@ -16,20 +16,37 @@ {$skin_info->title} - {$lang->skin_maker} - {$skin_info->maker->name} ({$skin_info->maker->email_address}) + {$lang->skin_author} + + + {$author->name} ({$author->homepage}, {$author->email_address})
      + + + - {$lang->skin_maker_homepage} - {$skin_info->maker->homepage} + {$lang->homepage} + {$skin_info->homepage} + {$lang->date} - {$skin_info->maker->date} + {zdate($skin_info->date, 'Y-m-d')} + + + {$lang->skin_license} + + {nl2br(trim($skin_info->license))} + +

      {$skin_info->license_link}

      + + + + {$lang->description} - {nl2br($skin_info->maker->description)} + {nl2br($skin_info->description)} @@ -73,17 +90,17 @@ {$val->title} - + - + - + @@ -99,19 +116,18 @@ value)-->checked="checked"/> - + + +
      +
      + + +
      + - -
      -
      - - -
      - - - + diff --git a/modules/comment/conf/info.xml b/modules/comment/conf/info.xml index fed10ca33..a758a6338 100644 --- a/modules/comment/conf/info.xml +++ b/modules/comment/conf/info.xml @@ -1,27 +1,28 @@ - 댓글 - コメント - 评论 - Comment - Commentarios - Комментарии - 게시판이나 블로그등의 댓글을 관리하는 모듈입니다. - 掲示板やブログなどのコメントを管理するモジュールです。 - 管理版面或博客评论的模块。 - Module for managing board/blog's comments - Es el módulo para manejar commentarios en blog o boletínes. - Модуль для управления комментариями форума/блога. - 0.1 - 2007-02-28 - utility + 댓글 + コメント + 评论 + Comment + Commentarios + Комментарии + 게시판이나 블로그등의 댓글을 관리하는 모듈입니다. + 掲示板やブログなどのコメントを管理するモジュールです。 + 管理版面或博客评论的模块。 + Module for managing board/blog's comments + Es el módulo para manejar commentarios en blog o boletínes. + Модуль для управления комментариями форума/блога. + 0.1 + 2007-02-28 + utility + http://www.zeroboard.com - - 제로 - Zero - zero - zero - zero - zero - + + 제로 + Zero + zero + zero + zero + zero + \ No newline at end of file diff --git a/modules/comment/lang/fr.lang.php b/modules/comment/lang/fr.lang.php index a6d326e84..7fbc3e761 100644 --- a/modules/comment/lang/fr.lang.php +++ b/modules/comment/lang/fr.lang.php @@ -2,7 +2,7 @@ /** * @file modules/comment/lang/fr.lang.php * @author zero Traduit par Pierre Duvent - * @brief Paquet de la langue fondamentale pour le module de commentaire + * @brief Paquet du langage en français pour le module de Commentaire **/ $lang->cmd_comment_do = 'Vous voudriez...'; @@ -11,22 +11,22 @@ $lang->cmd_toggle_checked_comment = 'Renverser les choisis'; $lang->cmd_delete_checked_comment = 'Supprimer les choisis'; - $lang->comment_count = 'Nombres de Commentaires'; + $lang->comment_count = 'Limite de Commentaires'; $lang->about_comment_count = 'Quand il y a plus de commentaires, ils seront bougés sur le liste.'; - $lang->msg_cart_is_null = 'Choisissez un article à supprimer, SVP.'; + $lang->msg_cart_is_null = 'Choisissez un article à supprimer, S.V.P.'; $lang->msg_checked_comment_is_deleted = '%d commentaire(s) est(sont) supprimé(s) avec succés.'; $lang->search_target_list = array( 'content' => 'Contenu', - 'user_id' => 'ID', + 'user_id' => 'Compte', 'user_name' => 'Nom', 'nick_name' => 'Surnom', - 'member_srl' => 'Member Serial', + 'member_srl' => 'Numéro de Série du Membre', 'email_address' => 'Mél', 'homepage' => 'Page d\'Accueil', 'regdate' => 'Jour', 'last_update' => 'Mise à Jour', - 'ipaddress' => 'Addresse IP', + 'ipaddress' => 'Adresse IP', ); ?> diff --git a/modules/communication/communication.view.php b/modules/communication/communication.view.php index 58ea86774..185d0d431 100644 --- a/modules/communication/communication.view.php +++ b/modules/communication/communication.view.php @@ -119,7 +119,7 @@ $option->content_key_name = 'content'; $option->allow_fileupload = false; $option->enable_autosave = false; - $option->enable_default_component = false; + $option->enable_default_component = true;// false; $option->enable_component = false; $option->resizable = false; $option->disable_html = true; diff --git a/modules/communication/conf/info.xml b/modules/communication/conf/info.xml index c4f26bb7b..b9e03531f 100644 --- a/modules/communication/conf/info.xml +++ b/modules/communication/conf/info.xml @@ -1,18 +1,19 @@ - 커뮤니케이션 - 会员交流 - Communication - 회원들간의 쪽지, 친구기능을 담당하는 모듈입니다. - 管理在线会员间短信息及好友功能的模块。 - This module is for managing message, friend functions. - 0.1 - 2008-05-30 - utility + 커뮤니케이션 + 会员交流 + Communication + 회원들간의 쪽지, 친구기능을 담당하는 모듈입니다. + 管理在线会员间短信息及好友功能的模块。 + This module is for managing message, friend functions. + 0.1 + 2008-05-30 + utility + http://www.zeroboard.com - - 제로 - Zero - Zero - + + 제로 + Zero + Zero + \ No newline at end of file diff --git a/modules/communication/lang/fr.lang.php b/modules/communication/lang/fr.lang.php index a6788867c..de1ca6145 100644 --- a/modules/communication/lang/fr.lang.php +++ b/modules/communication/lang/fr.lang.php @@ -1,12 +1,12 @@ communication = 'Communication'; - $lang->about_communication = 'Ce module exécute fonctions communicatives comme les messages ou les amis'; + $lang->about_communication = 'Ce module exécute des fonctions communicatives comme Messages ou Amis'; $lang->allow_message = 'Recevoir les Messages'; $lang->allow_message_type = array( @@ -20,7 +20,7 @@ 'S' => 'Envoyé', 'T' => 'Boîte aux Lettres', ); - $lang->readed_date = "Jour"; + $lang->readed_date = "Jour lu"; $lang->sender = 'Envoyeur'; $lang->receiver = 'Receveur'; @@ -33,16 +33,16 @@ $lang->cmd_add_friend = 'Inscrire des Amis'; $lang->cmd_view_message_box = 'Lire des Messages'; $lang->cmd_store = "Conserver"; - $lang->cmd_add_friend_group = 'Ajouter Groupe des Amis'; + $lang->cmd_add_friend_group = 'Ajouter un Groupe des Amis'; $lang->cmd_rename_friend_group = 'Modifier le Nom du Groupe des Amis'; - $lang->msg_no_message = 'Aucun Message'; + $lang->msg_no_message = 'Nul Message'; $lang->message_received = 'Nouveau message'; $lang->msg_title_is_null = 'Entrez le titre du message, S.V.P.'; $lang->msg_content_is_null = 'Entrez le contenu, S.V.P.'; - $lang->msg_allow_message_to_friend = "Echoué à envoyer parce que le receveur permet seulement les messages des amis."; + $lang->msg_allow_message_to_friend = "Echoué à envoyer parce que le receveur permet seulement les messages des Amis."; $lang->msg_disallow_message = 'Echoué à envoyer parce que le receveur refuse la réception des messages'; - $lang->about_allow_message = 'Vous pouvez décider la réception des messages'; + $lang->about_allow_message = 'Vous pouvez refuser la réception des messages'; ?> diff --git a/modules/communication/skins/default/skin.xml b/modules/communication/skins/default/skin.xml index a8412ddf1..9957a125e 100644 --- a/modules/communication/skins/default/skin.xml +++ b/modules/communication/skins/default/skin.xml @@ -1,83 +1,88 @@ - - + + 기본 스킨 默认皮肤 기본 스킨 Default Skin - Por defecto piel - 기본 스킨 - + Por defecto piel + 기본 스킨 + + 디자인 : 서기정 (http://blog.naver.com/addcozy) + HTML/CSS : 정찬명 (http://naradesign.net) + + + 设计 : Ki-Jeong Seo (http://blog.naver.com/addcozy) + HTML/CSS : Chan-Myung Jeong (http://naradesign.net) + + + デザイン:ソギジョン (http://blog.naver.com/addcozy) + HTML/CSS:ジョンチャンミョン (http://naradesign.net) + + + Design : Ki-Jeong Seo (http://blog.naver.com/addcozy) + HTML/CSS : Chan-Myung Jeong (http://naradesign.net) + + + Diseño: Ki-Jeong Seo (http://blog.naver.com/addcozy) + HTML / CSS: Jeong Chan-Myung (http://naradesign.net) + + + Дизайн: Ги Чен Се (http://blog.naver.com/addcozy) + HTML / CSS: Чен-Чен Мен (http://naradesign.net) + + 0.1 + 2008-05-28 + http://www.zeroboard.com + + (주)NHN (株)NHN (株)NHN NHN Corp - NHN Corp - NHN Корп - - 디자인 : 서기정 (http://blog.naver.com/addcozy) - HTML/CSS : 정찬명 (http://naradesign.net) - - - 设计 : Ki-Jeong Seo (http://blog.naver.com/addcozy) - HTML/CSS : Chan-Myung Jeong (http://naradesign.net) - - - デザイン:ソギジョン (http://blog.naver.com/addcozy) - HTML/CSS:ジョンチャンミョン (http://naradesign.net) - - - Design : Ki-Jeong Seo (http://blog.naver.com/addcozy) - HTML/CSS : Chan-Myung Jeong (http://naradesign.net) - - - Diseño: Ki-Jeong Seo (http://blog.naver.com/addcozy) - HTML / CSS: Jeong Chan-Myung (http://naradesign.net) - - - Дизайн: Ги Чен Се (http://blog.naver.com/addcozy) - HTML / CSS: Чен-Чен Мен (http://naradesign.net) - - + NHN Corp + NHN Корп + + 기본 默认 デフォルト default - Por defecto - умолчанию + Por defecto + умолчанию 청록색 青緑 - 青绿色 + 青绿色 cyan - Cian - бирюзовый + Cian + бирюзовый 초록색 - 绿色 + 绿色 green - Verde - зеленый + Verde + зеленый 빨간색 - 红色 + 红色 red - Roja - красный + Roja + красный 보라색 - 紫色 + 紫色 purple - Púrpura - Лиловый + Púrpura + Лиловый 검은색 @@ -88,4 +93,4 @@ 黑色 - + \ No newline at end of file diff --git a/modules/counter/conf/info.xml b/modules/counter/conf/info.xml index 01dbb31f3..89697a1b1 100644 --- a/modules/counter/conf/info.xml +++ b/modules/counter/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-02-28 accessory + http://www.zeroboard.com 제로 diff --git a/modules/counter/lang/fr.lang.php b/modules/counter/lang/fr.lang.php index 3e2b8cf10..d769ab4a4 100644 --- a/modules/counter/lang/fr.lang.php +++ b/modules/counter/lang/fr.lang.php @@ -2,7 +2,7 @@ /** * @file modules/counter/lang/fr.lang.php * @author zero Traduit par Pierre Duvent - * @brief Paquet de la langue française (Contenu fondamental seulement) + * @brief Paquet du langage en français pour le module de Comppteur **/ $lang->counter = "Coumpteur"; diff --git a/modules/counter/tpl/index.html b/modules/counter/tpl/index.html index 53cc03713..107ef4774 100644 --- a/modules/counter/tpl/index.html +++ b/modules/counter/tpl/index.html @@ -1,6 +1,6 @@ - + @@ -44,7 +44,7 @@ {$lang->total_counter} Visitor {number_format($total_counter->unique_visitor)}  /  Pageview : {number_format($total_counter->pageview)} - {zdate($selected_date, "Y-m-d")} | + {zdate($selected_date, "Y-m-d")} | calendar diff --git a/modules/editor/skins/msword2007/skin.xml b/modules/editor/skins/msword2007/skin.xml index 536e89941..c608ba250 100644 --- a/modules/editor/skins/msword2007/skin.xml +++ b/modules/editor/skins/msword2007/skin.xml @@ -1,20 +1,18 @@ - - - MS Word 2007 테마 - MS Word 2007 テーマ - MS Word 2007样式皮肤 - - Simulz - Simulz - Simulz - - MS Word 2007 테마입니다. - - - MS Word 2007 テーマです。 - - - MS Word 2007样式皮肤。 - - - + + + MS Word 2007 테마 + MS Word 2007 テーマ + MS Word 2007样式皮肤 + MS Word 2007 테마입니다. + MS Word 2007 テーマです。 + MS Word 2007样式皮肤。 + 0.1 + 2007-09-10 + http://www.zeroboard.com + + + Simulz + Simulz + Simulz + + \ No newline at end of file diff --git a/modules/editor/skins/textarea/editor.html b/modules/editor/skins/textarea/editor.html index ff2f9d35a..f617ab50e 100644 --- a/modules/editor/skins/textarea/editor.html +++ b/modules/editor/skins/textarea/editor.html @@ -1,7 +1,7 @@ - + - + diff --git a/modules/editor/skins/textarea/skin.xml b/modules/editor/skins/textarea/skin.xml index a63fbde28..ae1a6030d 100644 --- a/modules/editor/skins/textarea/skin.xml +++ b/modules/editor/skins/textarea/skin.xml @@ -1,19 +1,23 @@ - - - 제로보드XE textarea 에디터 스킨 - zeroboard XE textarea 编辑器皮肤 - - zero - zero - - 위지윅에디터가 아닌 가벼운 글 편집을 원할 경우 사용되는 스킨입니다. - 에디터컴포넌트나 파일첨부등의 기능이 모두 되지 않고 단순히 글로 된 컨텐츠만 사용할 수 있습니다. - 개발 : zero (http://www.zeroboard.com) - + + + 제로보드XE textarea 에디터 스킨 + zeroboard XE textarea 编辑器皮肤 + + 위지윅에디터가 아닌 가벼운 글 편집을 원할 경우 사용되는 스킨입니다. + 에디터컴포넌트나 파일첨부등의 기능이 모두 되지 않고 단순히 글로 된 컨텐츠만 사용할 수 있습니다. + 개발 : zero (http://www.zeroboard.com) + - 适用于编辑纯文本形式内容时使用的皮肤。 - 不支持编辑器组件及上传文件功能,只能处理纯文本形式的内容。 - 开发 : zero (http://www.zeroboard.com) - - - + 适用于编辑纯文本形式内容时使用的皮肤。 + 不支持编辑器组件及上传文件功能,只能处理纯文本形式的内容。 + 开发 : zero (http://www.zeroboard.com) + + 0.1 + 2008-01-21 + http://www.zeroboard.com + + + zero + zero + + \ No newline at end of file diff --git a/modules/editor/skins/xquared/editor.html b/modules/editor/skins/xquared/editor.html index e7f3b76bc..d710a5018 100644 --- a/modules/editor/skins/xquared/editor.html +++ b/modules/editor/skins/xquared/editor.html @@ -1,11 +1,11 @@ - + - + @@ -52,7 +52,7 @@ ', Context::getLang($message)); + Context::addHtmlHeader( $script ); + } + + function dispIssuetrackerDeleteTrackback() { + $trackback_srl = Context::get('trackback_srl'); + + $oTrackbackModel = &getModel('trackback'); + $output = $oTrackbackModel->getTrackback($trackback_srl); + $trackback = $output->data; + + if(!$trackback) return $this->dispIssuetrackerMessage('msg_invalid_request'); + + Context::set('trackback',$trackback); + + $this->setTemplateFile('delete_trackback'); + } + + } +?> diff --git a/modules/issuetracker/lang/en.lang.php b/modules/issuetracker/lang/en.lang.php new file mode 100644 index 000000000..4ab07c8d3 --- /dev/null +++ b/modules/issuetracker/lang/en.lang.php @@ -0,0 +1,92 @@ +issuetracker = 'Issue Tracker'; + $lang->about_issuetracker = 'Issue Tracker manages milestones, codes, issues and releases'; + + $lang->cmd_project_list = 'Project List'; + $lang->cmd_view_info = 'Project Info'; + $lang->cmd_project_setting = 'Project Setting'; + $lang->cmd_release_setting = 'Release Setting'; + $lang->cmd_insert_package = 'Add Package'; + $lang->cmd_insert_release = 'Add Release'; + $lang->cmd_attach_file = 'Attach File'; + $lang->cmd_display_item = 'Display Item'; + + $lang->cmd_resolve_as = 'Modify Status'; + $lang->cmd_reassign = 'Modify Assignee'; + $lang->cmd_accept = 'Accept'; + + $lang->svn_url = 'SVN URL'; + $lang->about_svn_url = "Please input SVN URL where project's version is managed"; + $lang->svn_cmd = 'SVN Command Location'; + $lang->about_svn_cmd = 'Please input the location of svn client to link with SVN. (ex: /usr/bin/svn)'; + $lang->diff_cmd = 'DIFF Command Location'; + $lang->about_diff_cmd = 'Please input the location of diff to compare SVN revisions. (ex: /usr/bin/diff)'; + + $lang->issue = 'Issue'; + $lang->total_issue = 'All Issues'; + $lang->milestone = $lang->milestone_srl = 'Milestone'; + $lang->priority = $lang->priority_srl = 'Priority'; + $lang->type = $lang->type_srl = 'Type'; + $lang->component = $lang->component_srl = 'Components'; + $lang->assignee = 'Assignee'; + $lang->status = 'Status'; + $lang->action = 'Action'; + + $lang->history_format_not_source = '[key] Modify to [target]'; + $lang->history_format = '[key] Modify from [source] to [target]'; + + $lang->project = 'Project'; + + $lang->deadline = 'Deadline'; + $lang->name = 'Name'; + $lang->complete = 'Complete'; + $lang->completed_date = 'Completed Date'; + $lang->order = 'Order'; + $lang->package = $lang->package_srl = 'Package'; + $lang->release = $lang->release_srl = 'Release'; + $lang->release_note = 'Release Note'; + $lang->release_changes = 'Release Changes'; + $lang->occured_version = $lang->occured_version_srl = 'Occured Version'; + $lang->attached_file = 'Attached File'; + $lang->filename = 'File Name'; + $lang->filesize = 'File Size'; + + $lang->status_list = array( + 'new' => 'New', + 'reviewing' => 'Reviewing', + 'assign' => 'Assign', + 'resolve' => 'Resolve', + 'reopen' => 'Reopen', + 'postponed' => 'Postponed', + 'duplicated' => 'Duplicated', + 'invalid' => 'Invalid', + ); + + $lang->about_milestone = 'This sets milestones.'; + $lang->about_priority = 'This sets priority.'; + $lang->about_type = 'This selects type of issues (ex. issue, development)'; + $lang->about_component = 'This sets components of issues'; + + $lang->project_menus = array( + 'dispIssuetrackerViewIssue' => 'View Issue', + 'dispIssuetrackerNewIssue' => 'New Issue', + 'dispIssuetrackerViewMilestone' => 'Milestone', + 'dispIssuetrackerViewSource' => 'View Source', + 'dispIssuetrackerDownload' => 'Download', + 'dispIssuetrackerAdminProjectSetting' => 'Settings', + ); + + $lang->msg_not_attched = 'No file is attached'; + $lang->msg_attached = 'File has been attached'; + $lang->msg_no_releases = 'No release is registered'; + + $lang->cmd_document_do = 'You would...'; + $lang->not_assigned = 'Unassigned'; + $lang->not_assigned_description = 'List of unassigned issues.'; +?> diff --git a/modules/issuetracker/lang/ko.lang.php b/modules/issuetracker/lang/ko.lang.php new file mode 100644 index 000000000..3be378ba8 --- /dev/null +++ b/modules/issuetracker/lang/ko.lang.php @@ -0,0 +1,92 @@ +issuetracker = '이슈트래커'; + $lang->about_issuetracker = '프로젝트 관리를 위한 계획표, 코드열람, 문제관리와 배포판을 관리할 수 있는 모듈입니다'; + + $lang->cmd_project_list = '프로젝트 목록'; + $lang->cmd_view_info = '프로젝트 정보'; + $lang->cmd_project_setting = '프로젝트 설정'; + $lang->cmd_release_setting = '배포 설정'; + $lang->cmd_insert_package = '패키지 추가'; + $lang->cmd_insert_release = '배포 추가'; + $lang->cmd_attach_file = '파일 첨부'; + $lang->cmd_display_item = '대상 표시'; + + $lang->cmd_resolve_as = '상태 변경'; + $lang->cmd_reassign = '소유자 변경'; + $lang->cmd_accept = '수락하기'; + + $lang->svn_url = 'SVN 주소'; + $lang->about_svn_url = '프로젝트의 버전관리가 이루어지는 SVN 주소를 입력해주세요'; + $lang->svn_cmd = 'SVN 실행파일 위치'; + $lang->about_svn_cmd = 'SVN 연동을 위해 svn client 실행파일의 위치를 입력해주세요. (ex: /usr/bin/svn)'; + $lang->diff_cmd = 'DIFF 실행파일 위치'; + $lang->about_diff_cmd = 'SVN revision들의 비교를 위한 diff 실행파일의 위치를 입력해주세요. (ex: /usr/bin/diff)'; + + $lang->issue = '문제'; + $lang->total_issue = '전체 문제'; + $lang->milestone = $lang->milestone_srl = '계획'; + $lang->priority = $lang->priority_srl = '우선순위'; + $lang->type = $lang->type_srl = '종류'; + $lang->component = $lang->component_srl = '구성요소'; + $lang->assignee = '소유자'; + $lang->status = '상태'; + $lang->action = '동작'; + + $lang->history_format_not_source = '[target] 으로 [key] 변경'; + $lang->history_format = '[source] 에서 [target] 으로 [key] 변경'; + + $lang->project = '프로젝트'; + + $lang->deadline = '완료기한'; + $lang->name = '이름'; + $lang->complete = '완료'; + $lang->completed_date = '완료일'; + $lang->order = '순서'; + $lang->package = $lang->package_srl = '패키지'; + $lang->release = $lang->release_srl = '배포판'; + $lang->release_note = '배포 기록'; + $lang->release_changes = '변경 사항'; + $lang->occured_version = $lang->occured_version_srl = '발생버전'; + $lang->attached_file = '첨부 파일'; + $lang->filename = '파일이름'; + $lang->filesize = '파일크기'; + + $lang->status_list = array( + 'new' => '신규', + 'reviewing' => '검토중', + 'assign' => '할당', + 'resolve' => '해결', + 'reopen' => '재발', + 'postponed' => '보류', + 'duplicated' => '중복', + 'invalid' => '문제아님', + ); + + $lang->about_milestone = '개발계획을 설정합니다'; + $lang->about_priority = '우선순위를 설정합니다.'; + $lang->about_type = '문제의 종류를 설정합니다 (ex. 문제, 개선사항)'; + $lang->about_component = '문제의 대상 구성요소를 설정합니다'; + + $lang->project_menus = array( + 'dispIssuetrackerViewIssue' => '문제 열람', + 'dispIssuetrackerNewIssue' => '문제 작성', + 'dispIssuetrackerViewMilestone' => '개발계획', + 'dispIssuetrackerViewSource' => '코드 열람', + 'dispIssuetrackerDownload' => '다운로드', + 'dispIssuetrackerAdminProjectSetting' => '설정', + ); + + $lang->msg_not_attched = '파일을 첨부해주세요'; + $lang->msg_attached = '파일이 등록되었습니다'; + $lang->msg_no_releases = '등록된 배포판이 없습니다'; + + $lang->cmd_document_do = '이 문제를.. '; + $lang->not_assigned = '할당 안됨'; + $lang->not_assigned_description = '할당 안된 문제들의 목록입니다.'; +?> diff --git a/modules/issuetracker/queries/clearComponentsDefault.xml b/modules/issuetracker/queries/clearComponentsDefault.xml new file mode 100644 index 000000000..ad71f2448 --- /dev/null +++ b/modules/issuetracker/queries/clearComponentsDefault.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/modules/issuetracker/queries/clearMilestoneDefault.xml b/modules/issuetracker/queries/clearMilestoneDefault.xml new file mode 100644 index 000000000..f8871f634 --- /dev/null +++ b/modules/issuetracker/queries/clearMilestoneDefault.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/clearPrioritiesDefault.xml b/modules/issuetracker/queries/clearPrioritiesDefault.xml new file mode 100644 index 000000000..59990f765 --- /dev/null +++ b/modules/issuetracker/queries/clearPrioritiesDefault.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/clearTypeDefault.xml b/modules/issuetracker/queries/clearTypeDefault.xml new file mode 100644 index 000000000..78e780b7b --- /dev/null +++ b/modules/issuetracker/queries/clearTypeDefault.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/deleteComponent.xml b/modules/issuetracker/queries/deleteComponent.xml new file mode 100644 index 000000000..a0fcb9176 --- /dev/null +++ b/modules/issuetracker/queries/deleteComponent.xml @@ -0,0 +1,8 @@ + + +
      + + + + + diff --git a/modules/issuetracker/queries/deleteComponents.xml b/modules/issuetracker/queries/deleteComponents.xml new file mode 100644 index 000000000..1ab226b6d --- /dev/null +++ b/modules/issuetracker/queries/deleteComponents.xml @@ -0,0 +1,8 @@ + + +
      + + + + + diff --git a/modules/issuetracker/queries/deleteIssue.xml b/modules/issuetracker/queries/deleteIssue.xml new file mode 100644 index 000000000..d649a8772 --- /dev/null +++ b/modules/issuetracker/queries/deleteIssue.xml @@ -0,0 +1,8 @@ + + +
      + + + + + diff --git a/modules/issuetracker/queries/deleteMilestone.xml b/modules/issuetracker/queries/deleteMilestone.xml new file mode 100644 index 000000000..83c99a13d --- /dev/null +++ b/modules/issuetracker/queries/deleteMilestone.xml @@ -0,0 +1,8 @@ + + +
      + + + + + diff --git a/modules/issuetracker/queries/deleteMilestones.xml b/modules/issuetracker/queries/deleteMilestones.xml new file mode 100644 index 000000000..a195d87c0 --- /dev/null +++ b/modules/issuetracker/queries/deleteMilestones.xml @@ -0,0 +1,8 @@ + + +
      + + + + + diff --git a/modules/issuetracker/queries/deletePackage.xml b/modules/issuetracker/queries/deletePackage.xml new file mode 100644 index 000000000..504734a55 --- /dev/null +++ b/modules/issuetracker/queries/deletePackage.xml @@ -0,0 +1,8 @@ + + +
      + + + + + diff --git a/modules/issuetracker/queries/deletePriorities.xml b/modules/issuetracker/queries/deletePriorities.xml new file mode 100644 index 000000000..628e5024d --- /dev/null +++ b/modules/issuetracker/queries/deletePriorities.xml @@ -0,0 +1,8 @@ + + +
      + + + + + diff --git a/modules/issuetracker/queries/deletePriority.xml b/modules/issuetracker/queries/deletePriority.xml new file mode 100644 index 000000000..b962a7dd7 --- /dev/null +++ b/modules/issuetracker/queries/deletePriority.xml @@ -0,0 +1,8 @@ + + +
      + + + + + diff --git a/modules/issuetracker/queries/deleteRelease.xml b/modules/issuetracker/queries/deleteRelease.xml new file mode 100644 index 000000000..df3da6686 --- /dev/null +++ b/modules/issuetracker/queries/deleteRelease.xml @@ -0,0 +1,8 @@ + + +
      + + + + + diff --git a/modules/issuetracker/queries/deleteType.xml b/modules/issuetracker/queries/deleteType.xml new file mode 100644 index 000000000..53387135c --- /dev/null +++ b/modules/issuetracker/queries/deleteType.xml @@ -0,0 +1,8 @@ + + +
      + + + + + diff --git a/modules/issuetracker/queries/deleteTypes.xml b/modules/issuetracker/queries/deleteTypes.xml new file mode 100644 index 000000000..32cfbfbb6 --- /dev/null +++ b/modules/issuetracker/queries/deleteTypes.xml @@ -0,0 +1,8 @@ + + +
      + + + + + diff --git a/modules/issuetracker/queries/getComponent.xml b/modules/issuetracker/queries/getComponent.xml new file mode 100644 index 000000000..726603260 --- /dev/null +++ b/modules/issuetracker/queries/getComponent.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/getComponents.xml b/modules/issuetracker/queries/getComponents.xml new file mode 100644 index 000000000..8d74ea815 --- /dev/null +++ b/modules/issuetracker/queries/getComponents.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/getDocumentList.xml b/modules/issuetracker/queries/getDocumentList.xml new file mode 100644 index 000000000..73014421b --- /dev/null +++ b/modules/issuetracker/queries/getDocumentList.xml @@ -0,0 +1,68 @@ + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/issuetracker/queries/getGroupMembers.xml b/modules/issuetracker/queries/getGroupMembers.xml new file mode 100644 index 000000000..a832ac2df --- /dev/null +++ b/modules/issuetracker/queries/getGroupMembers.xml @@ -0,0 +1,13 @@ + + +
      +
      + + + + + + + + + diff --git a/modules/issuetracker/queries/getHistories.xml b/modules/issuetracker/queries/getHistories.xml new file mode 100644 index 000000000..e3d34725c --- /dev/null +++ b/modules/issuetracker/queries/getHistories.xml @@ -0,0 +1,14 @@ + + +
      + + + + + + + + + + + diff --git a/modules/issuetracker/queries/getHistoryCount.xml b/modules/issuetracker/queries/getHistoryCount.xml new file mode 100644 index 000000000..7b693c490 --- /dev/null +++ b/modules/issuetracker/queries/getHistoryCount.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/getIssue.xml b/modules/issuetracker/queries/getIssue.xml new file mode 100644 index 000000000..cdce9925a --- /dev/null +++ b/modules/issuetracker/queries/getIssue.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/getIssueList.xml b/modules/issuetracker/queries/getIssueList.xml new file mode 100644 index 000000000..684f56363 --- /dev/null +++ b/modules/issuetracker/queries/getIssueList.xml @@ -0,0 +1,56 @@ + + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/issuetracker/queries/getIssueListWithinTag.xml b/modules/issuetracker/queries/getIssueListWithinTag.xml new file mode 100644 index 000000000..fc9f33fe3 --- /dev/null +++ b/modules/issuetracker/queries/getIssueListWithinTag.xml @@ -0,0 +1,35 @@ + + +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/issuetracker/queries/getIssues.xml b/modules/issuetracker/queries/getIssues.xml new file mode 100644 index 000000000..f20a29df5 --- /dev/null +++ b/modules/issuetracker/queries/getIssues.xml @@ -0,0 +1,27 @@ + + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/issuetracker/queries/getIssuesCount.xml b/modules/issuetracker/queries/getIssuesCount.xml new file mode 100644 index 000000000..452eb06a0 --- /dev/null +++ b/modules/issuetracker/queries/getIssuesCount.xml @@ -0,0 +1,20 @@ + + +
      + + + + + + + + + + + + + + + + + diff --git a/modules/issuetracker/queries/getMilestone.xml b/modules/issuetracker/queries/getMilestone.xml new file mode 100644 index 000000000..455ecd544 --- /dev/null +++ b/modules/issuetracker/queries/getMilestone.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/getMilestones.xml b/modules/issuetracker/queries/getMilestones.xml new file mode 100644 index 000000000..4137e583b --- /dev/null +++ b/modules/issuetracker/queries/getMilestones.xml @@ -0,0 +1,15 @@ + + +
      + + + + + + + + + + + + diff --git a/modules/issuetracker/queries/getPackage.xml b/modules/issuetracker/queries/getPackage.xml new file mode 100644 index 000000000..6376febd1 --- /dev/null +++ b/modules/issuetracker/queries/getPackage.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/getPackages.xml b/modules/issuetracker/queries/getPackages.xml new file mode 100644 index 000000000..b66bfee92 --- /dev/null +++ b/modules/issuetracker/queries/getPackages.xml @@ -0,0 +1,15 @@ + + +
      + + + + + + + + + + + + diff --git a/modules/issuetracker/queries/getPriorities.xml b/modules/issuetracker/queries/getPriorities.xml new file mode 100644 index 000000000..bf4c1634f --- /dev/null +++ b/modules/issuetracker/queries/getPriorities.xml @@ -0,0 +1,14 @@ + + +
      + + + + + + + + + + + diff --git a/modules/issuetracker/queries/getPriority.xml b/modules/issuetracker/queries/getPriority.xml new file mode 100644 index 000000000..827da3af7 --- /dev/null +++ b/modules/issuetracker/queries/getPriority.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/getPriorityCount.xml b/modules/issuetracker/queries/getPriorityCount.xml new file mode 100644 index 000000000..f3b8e1d3a --- /dev/null +++ b/modules/issuetracker/queries/getPriorityCount.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/getPriorityMaxListorder.xml b/modules/issuetracker/queries/getPriorityMaxListorder.xml new file mode 100644 index 000000000..d8dc24854 --- /dev/null +++ b/modules/issuetracker/queries/getPriorityMaxListorder.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/getProjectList.xml b/modules/issuetracker/queries/getProjectList.xml new file mode 100644 index 000000000..68f2b8d86 --- /dev/null +++ b/modules/issuetracker/queries/getProjectList.xml @@ -0,0 +1,24 @@ + + +
      + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/issuetracker/queries/getRelease.xml b/modules/issuetracker/queries/getRelease.xml new file mode 100644 index 000000000..ac52e45dd --- /dev/null +++ b/modules/issuetracker/queries/getRelease.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/getReleaseCount.xml b/modules/issuetracker/queries/getReleaseCount.xml new file mode 100644 index 000000000..4902a8a2c --- /dev/null +++ b/modules/issuetracker/queries/getReleaseCount.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/getReleaseList.xml b/modules/issuetracker/queries/getReleaseList.xml new file mode 100644 index 000000000..ff89060b0 --- /dev/null +++ b/modules/issuetracker/queries/getReleaseList.xml @@ -0,0 +1,17 @@ + + +
      + + + + + + + + + + + + + + diff --git a/modules/issuetracker/queries/getReleases.xml b/modules/issuetracker/queries/getReleases.xml new file mode 100644 index 000000000..d617805cf --- /dev/null +++ b/modules/issuetracker/queries/getReleases.xml @@ -0,0 +1,15 @@ + + +
      + + + + + + + + + + + + diff --git a/modules/issuetracker/queries/getReleasesWithPackage.xml b/modules/issuetracker/queries/getReleasesWithPackage.xml new file mode 100644 index 000000000..c81ec12bb --- /dev/null +++ b/modules/issuetracker/queries/getReleasesWithPackage.xml @@ -0,0 +1,15 @@ + + +
      +
      + + + + + + + + + + + diff --git a/modules/issuetracker/queries/getType.xml b/modules/issuetracker/queries/getType.xml new file mode 100644 index 000000000..688910b28 --- /dev/null +++ b/modules/issuetracker/queries/getType.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/getTypes.xml b/modules/issuetracker/queries/getTypes.xml new file mode 100644 index 000000000..efbfd56c0 --- /dev/null +++ b/modules/issuetracker/queries/getTypes.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/insertComponent.xml b/modules/issuetracker/queries/insertComponent.xml new file mode 100644 index 000000000..c20c9f2c8 --- /dev/null +++ b/modules/issuetracker/queries/insertComponent.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/insertHistory.xml b/modules/issuetracker/queries/insertHistory.xml new file mode 100644 index 000000000..a0541cbe0 --- /dev/null +++ b/modules/issuetracker/queries/insertHistory.xml @@ -0,0 +1,16 @@ + + +
      + + + + + + + + + + + + + diff --git a/modules/issuetracker/queries/insertIssue.xml b/modules/issuetracker/queries/insertIssue.xml new file mode 100644 index 000000000..0ad2edcf2 --- /dev/null +++ b/modules/issuetracker/queries/insertIssue.xml @@ -0,0 +1,14 @@ + + +
      + + + + + + + + + + + diff --git a/modules/issuetracker/queries/insertMilestone.xml b/modules/issuetracker/queries/insertMilestone.xml new file mode 100644 index 000000000..fad1a9767 --- /dev/null +++ b/modules/issuetracker/queries/insertMilestone.xml @@ -0,0 +1,14 @@ + + +
      + + + + + + + + + + + diff --git a/modules/issuetracker/queries/insertPackage.xml b/modules/issuetracker/queries/insertPackage.xml new file mode 100644 index 000000000..5b7c3ac89 --- /dev/null +++ b/modules/issuetracker/queries/insertPackage.xml @@ -0,0 +1,12 @@ + + +
      + + + + + + + + + diff --git a/modules/issuetracker/queries/insertPriority.xml b/modules/issuetracker/queries/insertPriority.xml new file mode 100644 index 000000000..759bdc4f9 --- /dev/null +++ b/modules/issuetracker/queries/insertPriority.xml @@ -0,0 +1,12 @@ + + +
      + + + + + + + + + diff --git a/modules/issuetracker/queries/insertRelease.xml b/modules/issuetracker/queries/insertRelease.xml new file mode 100644 index 000000000..c6ecb2ba4 --- /dev/null +++ b/modules/issuetracker/queries/insertRelease.xml @@ -0,0 +1,14 @@ + + +
      + + + + + + + + + + + diff --git a/modules/issuetracker/queries/insertType.xml b/modules/issuetracker/queries/insertType.xml new file mode 100644 index 000000000..945714646 --- /dev/null +++ b/modules/issuetracker/queries/insertType.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/updateComponent.xml b/modules/issuetracker/queries/updateComponent.xml new file mode 100644 index 000000000..721da1c3c --- /dev/null +++ b/modules/issuetracker/queries/updateComponent.xml @@ -0,0 +1,12 @@ + + +
      + + + + + + + + + diff --git a/modules/issuetracker/queries/updateIssue.xml b/modules/issuetracker/queries/updateIssue.xml new file mode 100644 index 000000000..9a1c59de3 --- /dev/null +++ b/modules/issuetracker/queries/updateIssue.xml @@ -0,0 +1,19 @@ + + +
      + + + + + + + + + + + + + + + + diff --git a/modules/issuetracker/queries/updateMilestone.xml b/modules/issuetracker/queries/updateMilestone.xml new file mode 100644 index 000000000..cc647c7ee --- /dev/null +++ b/modules/issuetracker/queries/updateMilestone.xml @@ -0,0 +1,16 @@ + + +
      + + + + + + + + + + + + + diff --git a/modules/issuetracker/queries/updatePackage.xml b/modules/issuetracker/queries/updatePackage.xml new file mode 100644 index 000000000..d8ada23f4 --- /dev/null +++ b/modules/issuetracker/queries/updatePackage.xml @@ -0,0 +1,12 @@ + + +
      + + + + + + + + + diff --git a/modules/issuetracker/queries/updatePriority.xml b/modules/issuetracker/queries/updatePriority.xml new file mode 100644 index 000000000..506e7cc51 --- /dev/null +++ b/modules/issuetracker/queries/updatePriority.xml @@ -0,0 +1,13 @@ + + +
      + + + + + + + + + + diff --git a/modules/issuetracker/queries/updateRelease.xml b/modules/issuetracker/queries/updateRelease.xml new file mode 100644 index 000000000..88cafadfd --- /dev/null +++ b/modules/issuetracker/queries/updateRelease.xml @@ -0,0 +1,13 @@ + + +
      + + + + + + + + + + diff --git a/modules/issuetracker/queries/updateReleaseFile.xml b/modules/issuetracker/queries/updateReleaseFile.xml new file mode 100644 index 000000000..7a7fca8b5 --- /dev/null +++ b/modules/issuetracker/queries/updateReleaseFile.xml @@ -0,0 +1,11 @@ + + +
      + + + + + + + + diff --git a/modules/issuetracker/queries/updateType.xml b/modules/issuetracker/queries/updateType.xml new file mode 100644 index 000000000..bd9d7db00 --- /dev/null +++ b/modules/issuetracker/queries/updateType.xml @@ -0,0 +1,12 @@ + + +
      + + + + + + + + + diff --git a/modules/issuetracker/schemas/issue_components.xml b/modules/issuetracker/schemas/issue_components.xml new file mode 100644 index 000000000..f73f720b2 --- /dev/null +++ b/modules/issuetracker/schemas/issue_components.xml @@ -0,0 +1,6 @@ +
      + + + + +
      diff --git a/modules/issuetracker/schemas/issue_milestones.xml b/modules/issuetracker/schemas/issue_milestones.xml new file mode 100644 index 000000000..b9dabe656 --- /dev/null +++ b/modules/issuetracker/schemas/issue_milestones.xml @@ -0,0 +1,10 @@ + + + + + + + + + +
      diff --git a/modules/issuetracker/schemas/issue_packages.xml b/modules/issuetracker/schemas/issue_packages.xml new file mode 100644 index 000000000..b87db0e19 --- /dev/null +++ b/modules/issuetracker/schemas/issue_packages.xml @@ -0,0 +1,7 @@ + + + + + + +
      diff --git a/modules/issuetracker/schemas/issue_priorities.xml b/modules/issuetracker/schemas/issue_priorities.xml new file mode 100644 index 000000000..dcb336c84 --- /dev/null +++ b/modules/issuetracker/schemas/issue_priorities.xml @@ -0,0 +1,7 @@ + + + + + + +
      diff --git a/modules/issuetracker/schemas/issue_releases.xml b/modules/issuetracker/schemas/issue_releases.xml new file mode 100644 index 000000000..313071c0c --- /dev/null +++ b/modules/issuetracker/schemas/issue_releases.xml @@ -0,0 +1,9 @@ + + + + + + + + +
      diff --git a/modules/issuetracker/schemas/issue_resolutions.xml b/modules/issuetracker/schemas/issue_resolutions.xml new file mode 100644 index 000000000..a371ab3f2 --- /dev/null +++ b/modules/issuetracker/schemas/issue_resolutions.xml @@ -0,0 +1,6 @@ + + + + + +
      diff --git a/modules/issuetracker/schemas/issue_types.xml b/modules/issuetracker/schemas/issue_types.xml new file mode 100644 index 000000000..bb0979cf3 --- /dev/null +++ b/modules/issuetracker/schemas/issue_types.xml @@ -0,0 +1,6 @@ + + + + + +
      diff --git a/modules/issuetracker/schemas/issues.xml b/modules/issuetracker/schemas/issues.xml new file mode 100644 index 000000000..1a2617561 --- /dev/null +++ b/modules/issuetracker/schemas/issues.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + +
      diff --git a/modules/issuetracker/schemas/issues_history.xml b/modules/issuetracker/schemas/issues_history.xml new file mode 100644 index 000000000..b9b460e1a --- /dev/null +++ b/modules/issuetracker/schemas/issues_history.xml @@ -0,0 +1,11 @@ + + + + + + + + + + +
      diff --git a/modules/issuetracker/skins/xe_issuetracker/css/common.css b/modules/issuetracker/skins/xe_issuetracker/css/common.css new file mode 100644 index 000000000..12a978837 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/css/common.css @@ -0,0 +1,210 @@ +@charset "utf-8"; + +td.vtop { vertical-align:top; } + +/* skin Title */ +.skinTitle { border:3px solid #DDDDDD; background-color:#FEFFF0; padding:15px; margin-bottom:15px; color:#666666; font-weight:bold; } +.skinTitle blockquote { margin:5px 0 0 0; padding:5px 0 0 0; font-weight:normal; border-top:1px solid #DDDDDD; } + +/* main navigation */ +div.issueNav { clear:both; overflow:hidden; height:23px; margin-bottom:10px; position:relative;} +.issueNav ul { position:absolute; top:0; right:0; height:23px; margin:0; padding:0;z-index:2;} +.issueNav li { float:left; list-style:none; margin:0 0 0 10px; padding:5px 7px 0 7px; height:16px; border:1px solid #AAAAAA; border-bottom:none;} +.issueNav li.unselected { border-bottom:1px solid #AAAAAA; background-color:#FFFCF0;} +.issueNav li a { text-decoration:none; color:#7D6608; } +.issueNav li a:hover { color:#544301;} +.issueNav li.selected { font-weight:bold; color:#544301; border-bottom:1px solid #FFFFFF;} +.issueNav li.selected a { font-weight:bold; } +.issueNav .bottomLine { height:22px; position:absolute; top:0; left:0; width:100%; border-bottom:1px solid #AAAAAA; z-index:1;} + +/* issue list */ +form.close { display:none; } + +form.issueSearch { padding:0; margin:0 0 10px 0; overflow:hidden; } +form.issueSearch ul { margin:0; padding: 0; } +form.issueSearch ul li { list-style:none; float:left; padding:5px 10px 0 0; white-space:nowrap; } +form.issueSearch ul li.displayOpt { clear:left; width:100%; } +form.issueSearch ul li.keywordSearch { clear:left; } +form.issueSearch select { width:130px; } +form.issueSearch input.inputTypeText { width:124px; } +form.issueSearch input.inputTypeSubmit { width:130px; border:1px solid; border-color:#d8d8d8 #a6a6a6 #a6a6a6 #d8d8d8; height:20px; background:#EFEFEF; font-size:1em; _font-size:9pt; } +form.issueSearch ul li ol { margin:0 2px 0 0; padding:0; border-bottom:none; } +form.issueSearch ul li ol li { list-style:none; white-space:nowrap; overflow:hidden; float:left; letter-spacing:-2px;} + +table.issues { border:0; border-spacing:0; border:1px solid #333333; overflow:hidden; } +table.issues thead tr { background:url("../images/tableHeader.gif") repeat left top; height:20px; color:#FFFFFF; } +table.issues thead tr th { width:10px;} +table.issues thead tr th div { white-space:nowrap; margin:0; } +table.issues thead tr th.title { width:100%; } +table.issues tbody td { white-space:nowrap; padding:5px 2px; text-align:center; border-bottom:1px solid #EEEEEE; } +table.issues tbody td a { text-decoration:none; color:#555555; } +table.issues tbody td.no { text-align:center; font-family:tahoma; font-size:8pt; } +table.issues tbody td.title { white-space:normal; font-weight:bold; text-align:left; } +table.issues tbody td.title strong.comment { background:url("../images/iconComment.gif") no-repeat left 1px; padding-left:15px; font-size:8pt; font-family:tahoma; font-weight:normal; } +table.issues tbody td.title strong.trackback { background:url("../images/iconTrackback.gif") no-repeat left 1px; padding-left:15px; font-size:8pt; font-family:tahoma; font-weight:normal; color:#8CCF3C;} +table.issues tbody td.regdate { text-align:center; font-family:tahoma; font-size:8pt; } +table.issues tbody td.nick_name { text-align:left; } + +div.pageNavigation { margin:10px 0 0 0; text-align:center; padding:5px 3px; height:30px; } +div.pageNavigation span { padding:3px 5px; border:1px solid #DDDDDD; color:#888888; margin:0 3px; } +div.pageNavigation span:hover { border-color:#888888; } +div.pageNavigation span a { text-decoration:none; color:#888888; } +div.pageNavigation span a:hover { color:#444444; } +div.pageNavigation span.current { text-decoration:none; padding:3px; margin:0 3px; color:#888888; font-weight:bold; border:none; } + +/* milestone */ +table.milestones { width:100%; clear:both; border:0; border-spacing:0; table-layout:fixed; border:1px solid #333333; border-bottom:none; } +table.milestones thead tr { background:url("../images/tableHeader.gif") repeat left top; height:20px; color:#FFFFFF; } +table.milestones thead tr th { white-space:nowrap; } +table.milestones tbody tr.title td { background-color:#EFEFEF; padding:7px; } +table.milestones tbody td { padding:5px; text-align:center; border-bottom:1px solid #EEEEEE; } +table.milestones tbody td.title { font-weight:bold; text-align:left; font-size:10pt;} +table.milestones tbody td.title a { text-decoration:none; color:#444444; } +table.milestones tbody td.deadline { color:#0A6E03; font-family:tahoma; font-size:9pt; white-space:nowrap;} +table.milestones tbody td.status a { text-decoration:none; font-family:tahoma; font-size:8pt; font-weight:bold;} +table.milestones tbody td.total a { text-decoration:none; color:#444444; font-family:tahoma; font-size:8pt; font-weight:bold;} +table.milestones tbody td.description { text-align:left; padding-left:10px; border-bottom:1px solid #333333; } +table.milestones tbody td.completed { text-decoration:line-through; } +table.milestones tbody td.released_date { text-align:right; color:#EF4B18; font-family:tahoma; font-size:9pt; white-space:nowrap;} + +/* download */ +table.downloads { width:100%; clear:both; border:0; border-spacing:0; table-layout:fixed; border:1px solid #333333;} +table.downloads thead tr { background:url("../images/tableHeader.gif") repeat left top; height:20px; color:#FFFFFF; } + +table.downloads td.package { background-color:#EFEFEF; padding:3px 0 5px 5px; border-top:1px solid #333333; } +table.downloads td.package h3 { color:#030C83; font-size:9pt; font-weight:bold; margin:0; padding:0; float:left; } +table.downloads td.package blockquote { clear:both; padding:5px; border:1px dotted #AAAAAA; background-color:#F3F3F3; margin:5px 5px 5px 0; } +table.downloads td.packageLeft { background-color:#EFEFEF; } +table.downloads td.null { background-color:#EFEFEF; } +table.downloads td.nullLine { background-color:#EFEFEF; border-top:1px solid #AAAAAA; } +table.downloads td.moreRelease { background-color:#EFEFEF; border-top:1px solid #333333; text-align:right; padding:5px; } +table.downloads td.moreRelease a { color:#4753EE; text-decoration:none; } + +table.downloads td.release { padding:5px; border-left:1px solid #AAAAAA; border-top:1px solid #AAAAAA; background-color:#ECEDF5; } +table.downloads td.release h3 { font-size:9pt; font-weight:bold; margin:0; padding:0; float:left; } +table.downloads td.release h3 a { text-decoration:none; color:#444444; } +table.downloads td.release h3 a:hover { text-decoration:underline; } +table.downloads td.release span { float:left; margin:0 0 0 10px; font-size:8pt; font-family:tahoma; color:#AAAAAA; } +table.downloads td.releaseLeft { border-left:1px solid #AAAAAA; } +table.downloads td.none_release { padding:5px; border-left:1px solid #AAAAAA; border-top:1px solid #AAAAAA; background-color:#EEEEEE; color:#888888;} + +table.downloads td.releaseNoteTitle { border-left:1px solid #AAAAAA; background-color:#EFEFEF; padding:5px; border-top:1px solid #DDDDDD; font-weight:bold; color:#058FC2;} +table.downloads td.releaseNote { border-left:1px solid #AAAAAA; padding:5px; border-top:1px dotted #DDDDDD; } +table.downloads td.releaseChangesTitle { border-left:1px solid #AAAAAA; background-color:#EFEFEF; padding:5px; border-top:1px solid #DDDDDD; font-weight:bold; color:#C24305;} +table.downloads td.releaseChanges { border-left:1px solid #AAAAAA; padding:5px; border-top:1px dotted #DDDDDD; border-bottom:1px solid #DDDDDD;} +table.downloads td.releaseFilesTitle { border-left:1px solid #AAAAAA; background-color:#EFEFEF; padding:5px; border-top:1px solid #DDDDDD; font-weight:bold; color:#444444;} + +table.downloads td.filename { padding:5px 5px 5px 15px; background:url("../images/file.gif") no-repeat left 5px; } +table.downloads td.filename a { padding:5px; color:#000000; text-decoration:none; } +table.downloads td.filename a:hover { text-decoration:underline; } +table.downloads td.filename a:visited { color:#AAAAAA; } +table.downloads td.filesize { padding:5px; color:#999999; font-family:tahoma; font-size:8pt; text-align:center;} +table.downloads td.download_count { padding:5px; color:#999999; font-family:tahoma; font-size:8pt; text-align:center;} + +table td.summaryText div { line-height:20px; padding-left:20px; cursor:pointer;} +table td.summaryText div.open { background:url("../images/opener.gif") no-repeat left 4px; overflow:visible; } +table td.summaryText div.close { background:url("../images/closer.gif") no-repeat left 4px; height:20px; overflow:hidden; } + +/* alertMessage */ +blockquote.alertMessage { margin:50px auto 20px auto; width:300px; border-bottom:1px solid #DDDDDD; padding:10px; color:#555555; } +ul.alertNav { margin:0 auto; width:300px; padding:0; } +ul.alertNav li { list-style:none; float:right; margin:0; padding:0; } + +/* new Issue */ + +.newIssue table { border:0; border-spacing:0; overflow:hidden; width:100%; border-top:1px solid #EEEEEE; } +.newIssue table tr th { text-align:right; border-bottom:1px solid #EEEEEE; padding:8px 0 5px 0; vertical-align:top; } +.newIssue table tr td { border-bottom:1px solid #EEEEEE; padding:5px 0 5px 0; } +.newIssue table tr th label { white-space:nowrap; font-weight:normal; color:#DB7201; margin:0 10px 0 10px; } +.newIssue table tr td input.wide { width:98%; } +.newIssue table tr td textarea.wide { width:98%; height:80px; } +.newIssue table tr td ul { margin:0; padding:0; } +.newIssue table tr td ol { margin:0; padding:0; } +.newIssue table tr td li { list-style:none; border-bottom:1px solid #EFEFEF; padding-bottom:3px; } +.newIssue table tr td p { margin:5px 0 0 0; padding:0; color:#888888; } + +.newIssue dl.option { margin:0 !important; padding:0 !important; } +.newIssue dl.option dd { margin:0 10px 0 0 !important; padding:0 !important; float:left; } + +div.display_date { cursor:pointer; width:80px; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; height:1em; padding:3px; margin-right:10px;} + +div.editor table { width:95%; } + +/* view Issue */ + +.viewIssue { } +.viewIssue table { border-spacing:0; overflow:hidden; width:100%; border:1px solid #AAAAAA; background-color:#FFFFF6;} +.viewIssue table tr th { text-align:right; border-bottom:1px solid #EEEEEE; padding:8px 10px 5px 10px; vertical-align:top; color:#898700; font-weight:normal;} +.viewIssue table tr th.title { color:#444444; font-size:13pt; text-align:left; font-weight:bold; } +.viewIssue table tr th.title span { font-size:9pt; color:#4F86B0;} +.viewIssue table tr td { border-bottom:1px solid #EEEEEE; padding:5px 0 5px 0; color:#3B3A00; } +.viewIssue table tr td.description { color:#444444; text-align:left; padding:20px; } +.viewIssue table tr td.description a { color:#3A945E; text-decoration:none; } +.viewIssue table tr td.description a:hover { text-decoration:underline; } +.viewIssue table tr td ul.tag { margin:0; padding:0; } +.viewIssue table tr td ul.tag li { list-style:none; float:left; } +.viewIssue table tr td ul.tag li a { text-decoration:none; color:#3B3A00; } +.viewIssue table tr td.inputPassword { padding:20px; text-align:center; } +.viewIssue table tr td.inputPassword form input.inputTypeText { height:15px; } +.viewIssue table tr td.inputPassword form input.inputTypeSubmit { border:1px solid; border-color:#d8d8d8 #a6a6a6 #a6a6a6 #d8d8d8; height:20px; background:#EFEFEF; } +.viewIssue div.button { clear:both; float:right; margin-top:10px; } +.viewIssue div.button ul { margin:0; padding:0; } +.viewIssue div.button ul li { list-style:none; color:#AAAAAA; float:left; margin-left:10px; } +.viewIssue div.button ul li a { text-decoration:none; color:#666666; font-weight:bold; } + +fieldset.history { border:1px solid #CCCCCC; margin-top:10px; } +fieldset.history legend { padding:0 10px; } +fieldset.history legend span.date { font-size:8pt; font-family:tahoma; color:#AAAAAA; margin-right:10px; } +fieldset.history ul { margin:0; padding:0; } +fieldset.history ul li { list-style:none; } +fieldset.history ul li a { color:#3A945E; text-decoration:none; } +fieldset.history ul li a:hover { text-decoration:underline; } +fieldset.history ul li ol { margin:5px 0 0 0; padding:0; } +fieldset.history ul li ol li { margin-left:10px; padding-left:14px; list-style:none; margin-bottom:8px; background:url("../images/bul.gif") no-repeat left 1px;} +fieldset.history ul li ol li span.source { color:#B04F4F; } +fieldset.history ul li ol li span.target { color:#4F86B0; font-weight:bold; } +fieldset.history ul li ol li span.key { color:#888888; font-weight:bold; } +fieldset.history ul li.content { padding:10px; color:#444444;} + +.document_popup_menu { cursor:pointer; text-align:right; background:none; background:url(../images/document_menu.gif) no-repeat right top; padding:0 15px 0 0; height:18px; margin-top:20px; } + +/* delete Issue */ +.deleteIssue { width:40%; margin:0 auto; } +.deleteIssue h3 { text-align:center; margin:30px 0 10px 0; padding:0 0 10px 0; border-bottom:1px solid #DDDDDD; } +.deleteIssue ul.button { margin:0 0 20px 0; padding:0; text-align:center; } +.deleteIssue ul.button li { list-style:none; display:inline; margin-left:10px; } + +/* view Trackback */ +.viewTrackback { border:1px solid #C3D5A5; margin-top:10px; padding:10px; } +.viewTrackback h3 { margin:0; padding:0; font-size:9pt; font-weight:normal; color:#335000; } +.viewTrackback h3 a { font-weight:bold; text-decoration:none; color:#335000; } +.viewTrackback h3 address { display:inline; font-size:8pt; font-family:tahoma; color:#4A931D; } +.viewTrackback ul { padding:5px 0; margin:5px 0; border-top:1px solid #C3D5A5; overflow:hidden;} +.viewTrackback ul li { list-style:none; color:#558404; float:left; margin-right:10px; } +.viewTrackback ul li address { margin-bottom:5px; } +.viewTrackback ul li a { text-decoration:none; color:#558404; } +.viewTrackback ul li.date { font-size:8pt; font-family:tahoma; } +.viewTrackback ul li.excerpt { clear:both; color:#335000; } + +/* histories */ +.issueHistories { border:1px solid #BABABA; padding:10px; margin-top:10px; } + +.newHistory { border:1px solid #BABABA; padding:10px; margin-top:10px; } +.newHistory table { border-top:none; } +.newHistory table tr th { border-bottom:none; } +.newHistory table tr td { border-bottom:none; } +.newHistory table tr td ul li { border-bottom:none; margin-bottom:5px; } +.newHistory table tr td ul li label { margin:0 10px 0 10px; color:#444444; } +.newHistory table tr td ul li label { margin:0 10px 0 10px; color:#444444; } +.newHistory table tr td textarea { height:200px !important; } + +/* issue status color */ +.issue_new, .issue_new a { color:#333333 !important; } +.issue_assign, .issue_assign a { color:#0A7DBE !important; } +.issue_resolve, .issue_resolve a { color:#079B2D !important; } +.issue_reopen, .issue_reopen a { color:#9B5A07 !important; } +.issue_postponed, .issue_postponed a { color:#9E9425 !important; } +.issue_invalid, .issue_invalid a { color:#949494 !important; } +.issue_duplicated, .issue_duplicted a { color:#949494 !important; } +.issue_reviewing, .issue_reviewing a { color:#DD075A !important; } + diff --git a/modules/issuetracker/skins/xe_issuetracker/css/svn.css b/modules/issuetracker/skins/xe_issuetracker/css/svn.css new file mode 100644 index 000000000..27f5635f9 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/css/svn.css @@ -0,0 +1,45 @@ +@charset "utf-8"; + +.sourceBrowser h3 { background:url("../images/tableHeader.gif") repeat left top; height:20px; font-size:10pt; font-family:tahoma; color:#FFFFFF; margin:0; padding:0 0 0 10px; clear:both; } +.sourceBrowser h1 { background-color:#EEEEEE; padding:10px; font-size:11pt; font-family:tahoma; color:#444444; clear:both; margin:0 0 10px 0; text-decoration:underline; } + +.sourceBrowser blockquote { border:1px solid #444444; background-color:#444444; margin:0 0 10px 0; padding:5px; font-size:9pt; color:#EFEFEF; clear:both; } +.sourceBrowser blockquote strong { margin-bottom:10px; display:block;} + +.sourceBrowser ul { border:1px solid #888888; background-color:#AAAAAA; margin:0 0 5px 0; padding:5px 0 0 5px; height:20px; overflow:hidden; } +.sourceBrowser ul li { float:left; list-style:none; padding:0; margin:0 10px 0 0; color:#CCCCCC; } +.sourceBrowser ul li a { font-weight:bold; color:green; text-decoration:none; color:#FFFFFF;} +.sourceBrowser ul li.file a { float:left; list-style:none; padding:0; margin:0 10px 0 0; color:#B5FFC1;} + +.sourceBrowser ol { margin:0; padding:0; float:right; overflow:hidden; height:30px; } +.sourceBrowser ol li { float:left; list-style:none; padding:0; margin:0 10px 0 0; color:#AAAAAA; font-size:9pt; } +.sourceBrowser ol li a { font-weight:normal; color:#555555;; text-decoration:none; } + +.sourceBrowser table { width:100%; clear:both; border:0; border-spacing:0; table-layout:fixed; border:1px solid #333333; margin-bottom:10px; } +.sourceBrowser table thead tr { background:url("../images/tableHeader.gif") repeat left top; height:20px; color:#FFFFFF; font-family:tahoma; font-size:8pt; font-weight:bold; } +.sourceBrowser table tr th.filename {color:#ffffff; padding:4px; font-size:9pt; font-family:tahoma; text-align:left;} +.sourceBrowser table tr.revision td { text-align:center; font-weight:bold; font-size:8pt; font-family:tahoma;} +.sourceBrowser table tr.line td { font-size:8pt; font-family:tahoma;} +.sourceBrowser table tr.line td.deleted { color:red; } +.sourceBrowser table tr.line td.modified { color:green; } +.sourceBrowser table tr.line td.added { color:blue; } +.sourceBrowser table tr.code td { color:#222222; font-size:9pt; } +.sourceBrowser table tr td { border-bottom:1px solid #EEEEEE; vertical-align:top; padding-top:3px; color:#888888; font-family:tahoma; font-size:9pt; background-color:#FFFFFF; } +.sourceBrowser table tbody tr.revision td { background-color:#DDDDDD; } +.sourceBrowser table tbody tr.line td { background-color:#F3F3F3; border-bottom:1px solid #EEEEEE; text-align:center;} +.sourceBrowser table tr.over td { background-color:#EFEFEF; } +.sourceBrowser table td a { text-decoration:none; } +.sourceBrowser table td.before { color:red; } +.sourceBrowser table td.after { color:blue; } +.sourceBrowser table td.directory { background:url("../images/folder.gif") no-repeat 4px 3px; padding-left:22px;} +.sourceBrowser table td.file { background:url("../images/fileItem.gif") no-repeat 4px 3px; padding-left:22px;} +.sourceBrowser table td.directory a { color:#333333; } +.sourceBrowser table td.file a { color:#222222; } +.sourceBrowser table td.log { white-space:nowrap; color:red; text-align:center;} +.sourceBrowser table td.age { white-space:nowrap; text-align:left;} +.sourceBrowser table td.log a { color:red;} +.sourceBrowser table td span.author { font-weight:bold; color:#000000; } + +.sourceBrowser pre { clear:both; font-size:9pt; font-family:tahoma; border:1px dotted #DDDDDD; background-color:#F3F3F3; padding:5px; color:#444444; } + +.sourceBrowser input.btnCompare { margin-bottom:10px; } diff --git a/modules/issuetracker/skins/xe_issuetracker/css/white.css b/modules/issuetracker/skins/xe_issuetracker/css/white.css new file mode 100644 index 000000000..8e53e47a6 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/css/white.css @@ -0,0 +1,2 @@ +@charset "utf-8"; + diff --git a/modules/issuetracker/skins/xe_issuetracker/delete_form.html b/modules/issuetracker/skins/xe_issuetracker/delete_form.html new file mode 100644 index 000000000..83c72cedb --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/delete_form.html @@ -0,0 +1,21 @@ + + + +
      + +

      {$lang->confirm_delete}

      + + + + + + +
        +
      • +
      • +
      + + +
      + + diff --git a/modules/issuetracker/skins/xe_issuetracker/delete_trackback.html b/modules/issuetracker/skins/xe_issuetracker/delete_trackback.html new file mode 100644 index 000000000..847ddd45c --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/delete_trackback.html @@ -0,0 +1,21 @@ + + + +
      + +

      {$lang->confirm_delete}

      + +
      + + + + + +
        +
      • +
      • +
      + +
      +
      + diff --git a/modules/issuetracker/skins/xe_issuetracker/download.html b/modules/issuetracker/skins/xe_issuetracker/download.html new file mode 100644 index 000000000..a2c991d65 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/download.html @@ -0,0 +1,90 @@ + + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      {$lang->package}{$lang->release}{$lang->filename}{$lang->filesize}{$lang->download_count}
      +
      +

      {$val->title} ({count($val->releases)}/{$val->release_count})

      +
      {nl2br($val->description)}
      +
      +
      + + {$lang->cmd_back} + + {$lang->cmd_back} + + {$lang->cmd_view_all} + +
       

      {$v->title}

      ({zdate($v->regdate, "Y-m-d H:i")})
       {$lang->release_note}
       {str_replace(' ','  ',nl2br($release->release_note))} 
       {$lang->release_changes}
       {str_replace(' ','  ',nl2br($release->release_changes))} 
       {$lang->attached_file}
        comment)-->rel="{str_replace("\n","
      ",htmlspecialchars($file->comment))}">{$file->source_filename}
      {FileHandler::filesize($file->file_size)}{$file->download_count}
        
       {$lang->msg_no_releases}
        
      diff --git a/modules/issuetracker/skins/xe_issuetracker/extra_var_form.html b/modules/issuetracker/skins/xe_issuetracker/extra_var_form.html new file mode 100644 index 000000000..2f2a8963b --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/extra_var_form.html @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + {@ $val->default = explode(',',$val->default) } + + + +{@ $val->column_name = "extra_vars".$key} + + +{@ $val->value = $oIssue->getExtraValue($key)} + + + + + + + + + + + + + + + + - + - + + + + + + + + + +
        + +
      • value||is_array($val->value)&&in_array($v, $val->value))-->checked="checked"/> {$v}
      • + +
      + + + + + + + + + +
      {zdate($val->value,"Y-m-d")}
      + + + + + +

      {$val->desc}

      + diff --git a/modules/issuetracker/skins/xe_issuetracker/extra_var_value.html b/modules/issuetracker/skins/xe_issuetracker/extra_var_value.html new file mode 100644 index 000000000..66d6f14a0 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/extra_var_value.html @@ -0,0 +1,64 @@ + + + +{@ $val->column_name = "extra_vars".$key} + + +{@ $val->value = $oIssue->getExtraValue($key)} +{@ $_tmp_value = array(); } + + + + {htmlspecialchars($val->value)} + + + + + {$val->value} + +   + + + + + + {$val->value} + +   + + + + + {htmlspecialchars($val->value[0])} + - + {htmlspecialchars($val->value[1])} + - + {htmlspecialchars($val->value[2])} +   + + + + {nl2br(htmlspecialchars($val->value))} +   + + + + {@ $val->value = array($val->value) } + + {@ $_tmp_value[] = htmlspecialchars($v)} + + {implode(",",$_tmp_value)} +   + + + + {htmlspecialchars($val->value)} +   + + + + {zdate($val->value,"Y-m-d")} +   + + +  diff --git a/modules/issuetracker/skins/xe_issuetracker/filter/delete_issue.xml b/modules/issuetracker/skins/xe_issuetracker/filter/delete_issue.xml new file mode 100644 index 000000000..70c8efd2f --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/filter/delete_issue.xml @@ -0,0 +1,16 @@ + +
      + + + + + + + + + + + + + +
      diff --git a/modules/issuetracker/skins/xe_issuetracker/filter/delete_trackback.xml b/modules/issuetracker/skins/xe_issuetracker/filter/delete_trackback.xml new file mode 100644 index 000000000..f0124a8be --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/filter/delete_trackback.xml @@ -0,0 +1,18 @@ + +
      + + + + + + + + + + + + + + + +
      diff --git a/modules/issuetracker/skins/xe_issuetracker/filter/input_password.xml b/modules/issuetracker/skins/xe_issuetracker/filter/input_password.xml new file mode 100644 index 000000000..14fa4e313 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/filter/input_password.xml @@ -0,0 +1,16 @@ + +
      + + + + + + + + + + + + + +
      diff --git a/modules/issuetracker/skins/xe_issuetracker/filter/insert.xml b/modules/issuetracker/skins/xe_issuetracker/filter/insert.xml new file mode 100644 index 000000000..a5794c81a --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/filter/insert.xml @@ -0,0 +1,20 @@ + +
      + + + + + + + + + + + + + + + + + +
      diff --git a/modules/issuetracker/skins/xe_issuetracker/filter/insert_history.xml b/modules/issuetracker/skins/xe_issuetracker/filter/insert_history.xml new file mode 100644 index 000000000..858856740 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/filter/insert_history.xml @@ -0,0 +1,22 @@ + +
      + + + + + + + + + + + + + + + + + + + +
      diff --git a/modules/issuetracker/skins/xe_issuetracker/header.html b/modules/issuetracker/skins/xe_issuetracker/header.html new file mode 100644 index 000000000..2c2ae4751 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/header.html @@ -0,0 +1,33 @@ + + + + + + {@$module_info->colorset = "white"} + + + + + + + + +
      + {$module_info->projectTitle} + +
      {nl2br($module_info->projectDescription)}
      + +
      + + + +
      + +
      +
      diff --git a/modules/issuetracker/skins/xe_issuetracker/images/bul.gif b/modules/issuetracker/skins/xe_issuetracker/images/bul.gif new file mode 100644 index 000000000..c4fbfe276 Binary files /dev/null and b/modules/issuetracker/skins/xe_issuetracker/images/bul.gif differ diff --git a/modules/issuetracker/skins/xe_issuetracker/images/buttonDeleteX.gif b/modules/issuetracker/skins/xe_issuetracker/images/buttonDeleteX.gif new file mode 100644 index 000000000..037c521cb Binary files /dev/null and b/modules/issuetracker/skins/xe_issuetracker/images/buttonDeleteX.gif differ diff --git a/modules/issuetracker/skins/xe_issuetracker/images/closer.gif b/modules/issuetracker/skins/xe_issuetracker/images/closer.gif new file mode 100644 index 000000000..e596462af Binary files /dev/null and b/modules/issuetracker/skins/xe_issuetracker/images/closer.gif differ diff --git a/modules/issuetracker/skins/xe_issuetracker/images/document_menu.gif b/modules/issuetracker/skins/xe_issuetracker/images/document_menu.gif new file mode 100644 index 000000000..548e48ec7 Binary files /dev/null and b/modules/issuetracker/skins/xe_issuetracker/images/document_menu.gif differ diff --git a/modules/issuetracker/skins/xe_issuetracker/images/file.gif b/modules/issuetracker/skins/xe_issuetracker/images/file.gif new file mode 100644 index 000000000..359808b6e Binary files /dev/null and b/modules/issuetracker/skins/xe_issuetracker/images/file.gif differ diff --git a/modules/issuetracker/skins/xe_issuetracker/images/fileItem.gif b/modules/issuetracker/skins/xe_issuetracker/images/fileItem.gif new file mode 100644 index 000000000..0f02cdf34 Binary files /dev/null and b/modules/issuetracker/skins/xe_issuetracker/images/fileItem.gif differ diff --git a/modules/issuetracker/skins/xe_issuetracker/images/folder.gif b/modules/issuetracker/skins/xe_issuetracker/images/folder.gif new file mode 100644 index 000000000..3517c3ec1 Binary files /dev/null and b/modules/issuetracker/skins/xe_issuetracker/images/folder.gif differ diff --git a/modules/issuetracker/skins/xe_issuetracker/images/iconComment.gif b/modules/issuetracker/skins/xe_issuetracker/images/iconComment.gif new file mode 100644 index 000000000..a5796cd7e Binary files /dev/null and b/modules/issuetracker/skins/xe_issuetracker/images/iconComment.gif differ diff --git a/modules/issuetracker/skins/xe_issuetracker/images/iconTag.gif b/modules/issuetracker/skins/xe_issuetracker/images/iconTag.gif new file mode 100644 index 000000000..ecfdb5585 Binary files /dev/null and b/modules/issuetracker/skins/xe_issuetracker/images/iconTag.gif differ diff --git a/modules/issuetracker/skins/xe_issuetracker/images/iconTrackback.gif b/modules/issuetracker/skins/xe_issuetracker/images/iconTrackback.gif new file mode 100644 index 000000000..a189acf05 Binary files /dev/null and b/modules/issuetracker/skins/xe_issuetracker/images/iconTrackback.gif differ diff --git a/modules/issuetracker/skins/xe_issuetracker/images/opener.gif b/modules/issuetracker/skins/xe_issuetracker/images/opener.gif new file mode 100644 index 000000000..d440a53f0 Binary files /dev/null and b/modules/issuetracker/skins/xe_issuetracker/images/opener.gif differ diff --git a/modules/issuetracker/skins/xe_issuetracker/images/tableHeader.gif b/modules/issuetracker/skins/xe_issuetracker/images/tableHeader.gif new file mode 100644 index 000000000..bbc663d08 Binary files /dev/null and b/modules/issuetracker/skins/xe_issuetracker/images/tableHeader.gif differ diff --git a/modules/issuetracker/skins/xe_issuetracker/input_password_form.html b/modules/issuetracker/skins/xe_issuetracker/input_password_form.html new file mode 100644 index 000000000..2dcf436b6 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/input_password_form.html @@ -0,0 +1,24 @@ + + + +
      + +
      +

      {$lang->msg_input_password}

      +
      + +
      + + + + + + + +
      + +
      diff --git a/modules/issuetracker/skins/xe_issuetracker/issue_list.html b/modules/issuetracker/skins/xe_issuetracker/issue_list.html new file mode 100644 index 000000000..f864fc1d2 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/issue_list.html @@ -0,0 +1,182 @@ + + +
      + + + +
        +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      • + + checked="checked" id="status_{$key}"/> + +
      • +
      +
        +
      • + +
      • +
      • +
      • +
      • +
      • +
          + +
        1. checked)-->checked="checked" disabled="disabled" />
        2. + +
        +
      • +
      +
      +
      + +
      + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      {$v->title}
      {$no} + {$val->getTitle()} + {$val->printExtraImages(60*60*24)} + + {$val->getCommentCount()} + + + + {$val->getTrackbackCount()} + + {$val->getMilestoneTitle()}{$val->getPriorityTitle()}{$val->getTypeTitle()}{$val->getComponentTitle()}{$val->getStatus()}{$val->getOccuredVersionTitle()}{$val->getPackageTitle()}{$val->getRegdate("Y-m-d")} + + {$val->get('assignee_name')} + +   + + {$val->getNickName()}
      + + + + diff --git a/modules/issuetracker/skins/xe_issuetracker/js/issuetracker.js b/modules/issuetracker/skins/xe_issuetracker/js/issuetracker.js new file mode 100644 index 000000000..abc8d322c --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/js/issuetracker.js @@ -0,0 +1,133 @@ +/** + * @file modules/board/js/board.js + * @author zero (zero@nzeo.com) + * @brief board 모듈의 javascript + **/ + +/* 글쓰기 작성후 */ +function completeIssueInserted(ret_obj) { + var error = ret_obj['error']; + var message = ret_obj['message']; + var mid = ret_obj['mid']; + var document_srl = ret_obj['document_srl']; + + //alert(message); + + var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','dispIssuetrackerViewIssue'); + location.href = url; +} + +/* 히스토리 작성후 */ +function completeHistoryInserted(ret_obj) { + var error = ret_obj['error']; + var message = ret_obj['message']; + var mid = ret_obj['mid']; + var document_srl = ret_obj['document_srl']; + + var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','dispIssuetrackerViewIssue'); + location.href = url; +} + +/* 글 삭제 */ +function completeDeleteIssue(ret_obj) { + var error = ret_obj['error']; + var message = ret_obj['message']; + var mid = ret_obj['mid']; + var page = ret_obj['page']; + + var url = current_url.setQuery('mid',mid).setQuery('act','dispIssuetrackerViewIssue').setQuery('document_srl',''); + if(page) url = url.setQuery('page',page); + + //alert(message); + + location.href = url; +} + +/* 트랙백 삭제 */ +function completeDeleteTrackback(ret_obj) { + var error = ret_obj['error']; + var message = ret_obj['message']; + var mid = ret_obj['mid']; + var document_srl = ret_obj['document_srl']; + var page = ret_obj['page']; + + var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','dispIssuetrackerViewIssue'); + if(page) url = url.setQuery('page',page); + + location.href = url; +} + +/* 내용 숨김/열기 */ +xAddEventListener(document,'click',openSummaryText); +function openSummaryText(evt) { + var e = new xEvent(evt); + if(!e.target) return; + var pObj = e.target; + while(pObj) { + if(pObj.nodeName == "DIV" && (pObj.className == "open" || pObj.className == "close")) { + if(pObj.className == 'open') { + pObj.className = 'close'; + } else if(pObj.className == 'close') { + pObj.className = 'open'; + } + } + pObj = pObj.parentNode; + } +} + +/* title 레이어 */ +xAddEventListener(document,'mouseover',showTitleLayer); +function showTitleLayer(evt) { + var e = new xEvent(evt); + var obj = e.target; + var layer = xGetElementById("titleLayer"); + + if(!obj || obj.nodeName != 'A' || !obj.getAttribute('rel')) { + if(layer) layer.style.visibility = "hidden"; + return; + } + + if(!layer) { + layer = xCreateElement("DIV"); + layer.id = "titleLayer"; + layer.style.border = "1px solid #F3B95E"; + layer.style.backgroundColor = "#FBF2E4"; + layer.style.padding = "5px"; + layer.style.color = "#000000"; + layer.style.visibility = "hidden"; + layer.style.position = "absolute"; + window.document.body.appendChild(layer); + } + + var text = obj.getAttribute('rel'); + xInnerHtml(layer, text); + xLeft(layer, e.pageX+5); + xTop(layer, e.pageY+5); + layer.style.visibility = "visible"; + + evt.cancel = true; + //evt.returnValue = false; +} + +/* issue list에서 배포판 선택 */ +function showRelease(obj, fo_obj) { + var packge_srl = obj.options[obj.selectedIndex].value; + var target = xGetElementById('release_'+packge_srl); + if(!packge_srl || !target) return; + + var sel = fo_obj.release_srl; + while(sel.options.length) { + sel.remove(0); + } + + for(var i=0;i0) eObj[i-1].checked = true; + else { + eObj[0].checked = true; + bObj[1].checked = true; + } + break; + } + } + + } +} diff --git a/modules/issuetracker/skins/xe_issuetracker/message.html b/modules/issuetracker/skins/xe_issuetracker/message.html new file mode 100644 index 000000000..c2cb6de66 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/message.html @@ -0,0 +1,10 @@ + + +
      {$message}
      + + diff --git a/modules/issuetracker/skins/xe_issuetracker/milestone.html b/modules/issuetracker/skins/xe_issuetracker/milestone.html new file mode 100644 index 000000000..f6d76cc91 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/milestone.html @@ -0,0 +1,40 @@ + + + + + +{@ $col_count = 3 } + + + + {@ $col_count += 1 } + + + + + + + + +{@ $val->title = $lang->not_assigned} +{@ $val->description = $lang->not_assigned_description} + + + + + + + + + + + + + + + + + +
      {$lang->completed_date}{$lang->deadline}{$v}{$lang->total_issue}
      + {$val->title} +
      {zdate($val->released_date, "Y-m-d")} {zdate($val->deadline, 'Y-m-d')}  {number_format($val->issues[$k])} {number_format($val->issues['total'])}
      {nl2br($val->description)} 
      diff --git a/modules/issuetracker/skins/xe_issuetracker/newissue.html b/modules/issuetracker/skins/xe_issuetracker/newissue.html new file mode 100644 index 000000000..346bd3ab7 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/newissue.html @@ -0,0 +1,166 @@ + + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + + + {@ $_color = array('555555','222288','226622','2266EE','8866CC','88AA66','EE2222','EE6622','EEAA22','EEEE22') } + + +   +
      +
      + +
      + get('title_bold')=='Y')-->checked="checked" /> + +
      +
      + isLocked())-->checked="checked" id="lock_comment" /> + +
      + +
      + isSecret())-->checked="checked" id="is_secret" /> + +
      +
      + allowComment())-->checked="checked" id="allow_comment" /> + +
      +
      + allowTrackback())-->checked="checked" id="allow_trackback" /> + +
      + +
      + useNotify())-->checked="checked" id="notify_message" /> + +
      + +
      +
      + + + +
      + + +
      {$oIssue->getEditor()}
      + + +
      +
      + +
      +
      + + + +
      diff --git a/modules/issuetracker/skins/xe_issuetracker/skin.xml b/modules/issuetracker/skins/xe_issuetracker/skin.xml new file mode 100644 index 000000000..e9a0e044e --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/skin.xml @@ -0,0 +1,44 @@ + + + XE IssueTracker 기본 스킨 + Basic Skin of XE IssueTracker + XE IssueTracker의 기본 스킨입니다. + This is the basic skin of XE IssueTracker. + 0.1 + 2008-08-11 + + + zero + zero + + + + + 일반 + General + + + 검은색 배경용 + For Black Background + + + + + + 기본 설정 + Default Settings + + 이슈트래커 제목 + Issue Tracker Name + 이슈트래커의 상단에 큰 제목으로 표시가 됩니다. + It will be displayed on top of the issue tracker. + + + 이슈트래커 설명 + Description + 입력하시면 이슈트래커의 메인에 설명이 노출됩니다. + It will be displayed on main of the issue tracker if you input the description. + + + + diff --git a/modules/issuetracker/skins/xe_issuetracker/source_compare.html b/modules/issuetracker/skins/xe_issuetracker/source_compare.html new file mode 100644 index 000000000..45fb273b7 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/source_compare.html @@ -0,0 +1,42 @@ + + +

      Diff between revs {$brev} to revs {$erev}

      +

      {$path}

      + +
        +
      1. [view log]
      2. +
      + + + + +++ + + + + + + + + + + + + + + + + + + + + + + +
      {$item->filename}
      Rev. {$item->before_revision}Rev. {$item->after_revision}
      line {$change->before_line}line {$change->after_line}
      {nl2br(str_replace(' ','  ',htmlspecialchars($change->before_code[$i])))}{nl2br(str_replace(' ','  ',htmlspecialchars($change->after_code[$i])))}
      + + + + diff --git a/modules/issuetracker/skins/xe_issuetracker/source_diff.html b/modules/issuetracker/skins/xe_issuetracker/source_diff.html new file mode 100644 index 000000000..77f4daa04 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/source_diff.html @@ -0,0 +1,40 @@ + + +

      Diff between revs {$brev} to revs {$erev}

      +

      {$path}

      + +
        +
      1. [view log]
      2. +
      3. [view code]
      4. +
      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      StatusRev. {$brev}Rev. {$erev}
      {$item->diff_type}line {$item->before_line}line {$item->after_line}
      {nl2br(htmlspecialchars($item->before_code))}{nl2br(htmlspecialchars($item->after_code))}
      + + + + diff --git a/modules/issuetracker/skins/xe_issuetracker/source_file_view.html b/modules/issuetracker/skins/xe_issuetracker/source_file_view.html new file mode 100644 index 000000000..8bd9ab65e --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/source_file_view.html @@ -0,0 +1,20 @@ + + +

      Revision {$content->revision} (checked in by {$content->author}, {$content->ago} ago)

      + +

      {$path}

      + + +
      {$content->msg}
      + + +
        +
      1. [view log]
      2. + +
      3. [compare with previous]
      4. + +
      + +
      {htmlspecialchars($content->content)}
      + + diff --git a/modules/issuetracker/skins/xe_issuetracker/source_footer.html b/modules/issuetracker/skins/xe_issuetracker/source_footer.html new file mode 100644 index 000000000..04f5b8449 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/source_footer.html @@ -0,0 +1 @@ +
      diff --git a/modules/issuetracker/skins/xe_issuetracker/source_header.html b/modules/issuetracker/skins/xe_issuetracker/source_header.html new file mode 100644 index 000000000..71197ef51 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/source_header.html @@ -0,0 +1,28 @@ + + + + + +
      + + + +
      + + diff --git a/modules/issuetracker/skins/xe_issuetracker/source_list.html b/modules/issuetracker/skins/xe_issuetracker/source_list.html new file mode 100644 index 000000000..94db4fb8c --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/source_list.html @@ -0,0 +1,33 @@ + + + +++++ + + + + + + + + + + + {@ $type = 'file' } + + {@ $type = '' } + + + + + + + + + +
      NameRevisionAgeLast Change
      {$item->name}{$item->revision}{$item->gap}
      {$item->author} {$item->msg?': '.$item->msg:''}
      + + diff --git a/modules/issuetracker/skins/xe_issuetracker/source_log.html b/modules/issuetracker/skins/xe_issuetracker/source_log.html new file mode 100644 index 000000000..419d73997 --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/source_log.html @@ -0,0 +1,62 @@ + + +

      {$path}

      + + +
      + Revision {$current->revision} (checked in by {$current->author}, {$current->ago} ago) + {$current->msg} +
      + + + + + {@ $type = 'compare'} + + {@ $type = 'diff'} + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + {@ $brev = $item->revision } + {@ $p = $item->paths[0]->path} {@ $p = $path } + + + + + + + + + +
      RevisionERBRMessageAuthorAge/ Date
      {$item->revision}revision)-->checked="checked" />revision)-->checked="checked" />
      {$item->msg} 
      {$item->author}{$item->gap} ({$item->date})
      + + +
      + + diff --git a/modules/issuetracker/skins/xe_issuetracker/view_issue.html b/modules/issuetracker/skins/xe_issuetracker/view_issue.html new file mode 100644 index 000000000..6915303ac --- /dev/null +++ b/modules/issuetracker/skins/xe_issuetracker/view_issue.html @@ -0,0 +1,265 @@ + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {@ $tag_list = $oIssue->get('tag_list') } + + + + + + + + + + + + + + +
      {$oIssue->getTitle()} - {$oIssue->getStatus()}{$oIssue->getNickName()}
      {$lang->milestone} :{$oIssue->getMilestoneTitle()}{$lang->priority} :{$oIssue->getPriorityTitle()}
      {$lang->type} :{$oIssue->getTypeTitle()}{$lang->component} :{$oIssue->getComponentTitle()}
      {$lang->package} :{$oIssue->getPackageTitle()}{$lang->occured_version} :{$oIssue->getReleaseTitle()}
      {$lang->status} :{$oIssue->getStatus()}{$lang->assignee} : + + {$oIssue->get('assignee_name')} + +   + +
      {$val->name} :
      + +
      {$oIssue->getContent()}
      + +
      + + + + {$lang->password} : + + + +
      +
      + + +
      +
      + + +
      +

      {$lang->trackback} : {$oIssue->getTrackbackUrl()}
      ({$oIssue->getTrackbackCount()})

      + + + +
      + + +
      + + +{@ $histories = $oIssue->get('histories') } + + +
      + + {zdate($history->regdate, "Y-m-d H:i")} + {$history->nick_name} + +
        + +
      • +
          + +
        1. {$val}
        2. + +
        +
      • + + +
      • {nl2br($history->content)}
      • + +
      +
      + + + + + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + + +
      + + + +
      + + +
      +
        +
      • + + +
      • +
      • + + +
      • +
      • +
      +
      + +
      + +
      +
      +
      + diff --git a/modules/issuetracker/tpl/addition_setup.html b/modules/issuetracker/tpl/addition_setup.html new file mode 100644 index 000000000..944e5adb1 --- /dev/null +++ b/modules/issuetracker/tpl/addition_setup.html @@ -0,0 +1,3 @@ + + +{$setup_content} diff --git a/modules/issuetracker/tpl/attach_release.html b/modules/issuetracker/tpl/attach_release.html new file mode 100644 index 000000000..60aea9ef6 --- /dev/null +++ b/modules/issuetracker/tpl/attach_release.html @@ -0,0 +1,35 @@ + + + + + +
      + + + + + + + + + + +++ + + + + + + + + + + +
      {$release->title}
      {$lang->cmd_attach_file}
      {$lang->description}
      + +
      + +
      + diff --git a/modules/issuetracker/tpl/attached.html b/modules/issuetracker/tpl/attached.html new file mode 100644 index 000000000..2e2097004 --- /dev/null +++ b/modules/issuetracker/tpl/attached.html @@ -0,0 +1,12 @@ + diff --git a/modules/issuetracker/tpl/css/issuetracker.css b/modules/issuetracker/tpl/css/issuetracker.css new file mode 100644 index 000000000..d96336217 --- /dev/null +++ b/modules/issuetracker/tpl/css/issuetracker.css @@ -0,0 +1,24 @@ +.top1 { clear:both; } +.top2 { clear:both; } +.projectHalf { width:380px; } +.left { float:left; } +.right { float:right; } +.vtop { vertical-align: top; } +.display_date { cursor:pointer; width:80px; float:left; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; height:1em; padding:3px; } +.ht30 { height: 30px; } +.ht60 { height: 60px; } + +input.btnSubmit { background:url("../images/buttonInsert.gif") no-repeat 3px 2px; line-height:150%; height:23px; padding:2px 3px 2px 18px; border:1px solid; border-color:#d8d8d8 #a6a6a6 #a6a6a6 #d8d8d8; } + +table thead th { text-align:center !important; } +table tbody td.button { padding-left:16px; } +table tbody td.strike { text-decoration:line-through; } + +td.summaryText div { line-height:20px; padding-left:20px; cursor:pointer;} +td.summaryText div.open { background:url("../images/opener.gif") no-repeat left 4px; overflow:visible; } +td.summaryText div.close { background:url("../images/closer.gif") no-repeat left 4px; height:20px; overflow:hidden; } + +img.btnDelete { vertical-align:middle; } + +td.filename { background-color:#EFEFEF; } +td.filename a { font-weight:bold;} diff --git a/modules/issuetracker/tpl/filter/delete_component.xml b/modules/issuetracker/tpl/filter/delete_component.xml new file mode 100644 index 000000000..daa73efb3 --- /dev/null +++ b/modules/issuetracker/tpl/filter/delete_component.xml @@ -0,0 +1,13 @@ + +
      + + + + + + + + + + +
      diff --git a/modules/issuetracker/tpl/filter/delete_file.xml b/modules/issuetracker/tpl/filter/delete_file.xml new file mode 100644 index 000000000..54d9e0607 --- /dev/null +++ b/modules/issuetracker/tpl/filter/delete_file.xml @@ -0,0 +1,13 @@ + +
      + + + + + + + + + + +
      diff --git a/modules/issuetracker/tpl/filter/delete_issuetracker.xml b/modules/issuetracker/tpl/filter/delete_issuetracker.xml new file mode 100644 index 000000000..b0b8961df --- /dev/null +++ b/modules/issuetracker/tpl/filter/delete_issuetracker.xml @@ -0,0 +1,10 @@ + +
      + + + + + + + +
      diff --git a/modules/issuetracker/tpl/filter/delete_milestone.xml b/modules/issuetracker/tpl/filter/delete_milestone.xml new file mode 100644 index 000000000..46e2e00b3 --- /dev/null +++ b/modules/issuetracker/tpl/filter/delete_milestone.xml @@ -0,0 +1,13 @@ + +
      + + + + + + + + + + +
      diff --git a/modules/issuetracker/tpl/filter/delete_package.xml b/modules/issuetracker/tpl/filter/delete_package.xml new file mode 100644 index 000000000..b84cb5506 --- /dev/null +++ b/modules/issuetracker/tpl/filter/delete_package.xml @@ -0,0 +1,13 @@ + +
      + + + + + + + + + + +
      diff --git a/modules/issuetracker/tpl/filter/delete_priority.xml b/modules/issuetracker/tpl/filter/delete_priority.xml new file mode 100644 index 000000000..6eb98a74a --- /dev/null +++ b/modules/issuetracker/tpl/filter/delete_priority.xml @@ -0,0 +1,13 @@ + +
      + + + + + + + + + + +
      diff --git a/modules/issuetracker/tpl/filter/delete_release.xml b/modules/issuetracker/tpl/filter/delete_release.xml new file mode 100644 index 000000000..8fc74c275 --- /dev/null +++ b/modules/issuetracker/tpl/filter/delete_release.xml @@ -0,0 +1,13 @@ + +
      + + + + + + + + + + +
      diff --git a/modules/issuetracker/tpl/filter/delete_type.xml b/modules/issuetracker/tpl/filter/delete_type.xml new file mode 100644 index 000000000..5c1c9efe5 --- /dev/null +++ b/modules/issuetracker/tpl/filter/delete_type.xml @@ -0,0 +1,13 @@ + +
      + + + + + + + + + + +
      diff --git a/modules/issuetracker/tpl/filter/insert_component.xml b/modules/issuetracker/tpl/filter/insert_component.xml new file mode 100644 index 000000000..9054b077f --- /dev/null +++ b/modules/issuetracker/tpl/filter/insert_component.xml @@ -0,0 +1,13 @@ + +
      + + + + + + + + + +
      + diff --git a/modules/issuetracker/tpl/filter/insert_grant.xml b/modules/issuetracker/tpl/filter/insert_grant.xml new file mode 100644 index 000000000..c84295c3d --- /dev/null +++ b/modules/issuetracker/tpl/filter/insert_grant.xml @@ -0,0 +1,11 @@ + +
      + + + + + + + + +
      diff --git a/modules/issuetracker/tpl/filter/insert_milestone.xml b/modules/issuetracker/tpl/filter/insert_milestone.xml new file mode 100644 index 000000000..17dd0b3ae --- /dev/null +++ b/modules/issuetracker/tpl/filter/insert_milestone.xml @@ -0,0 +1,13 @@ + +
      + + + + + + + + + +
      + diff --git a/modules/issuetracker/tpl/filter/insert_package.xml b/modules/issuetracker/tpl/filter/insert_package.xml new file mode 100644 index 000000000..c416c0d7c --- /dev/null +++ b/modules/issuetracker/tpl/filter/insert_package.xml @@ -0,0 +1,11 @@ + +
      + + + + + + + + +
      diff --git a/modules/issuetracker/tpl/filter/insert_priority.xml b/modules/issuetracker/tpl/filter/insert_priority.xml new file mode 100644 index 000000000..0e86d49ea --- /dev/null +++ b/modules/issuetracker/tpl/filter/insert_priority.xml @@ -0,0 +1,13 @@ + +
      + + + + + + + + + +
      + diff --git a/modules/issuetracker/tpl/filter/insert_project.xml b/modules/issuetracker/tpl/filter/insert_project.xml new file mode 100644 index 000000000..e935038b2 --- /dev/null +++ b/modules/issuetracker/tpl/filter/insert_project.xml @@ -0,0 +1,148 @@ + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      diff --git a/modules/issuetracker/tpl/filter/insert_release.xml b/modules/issuetracker/tpl/filter/insert_release.xml new file mode 100644 index 000000000..c3ed41509 --- /dev/null +++ b/modules/issuetracker/tpl/filter/insert_release.xml @@ -0,0 +1,13 @@ + +
      + + + + + + + + + + +
      diff --git a/modules/issuetracker/tpl/filter/insert_type.xml b/modules/issuetracker/tpl/filter/insert_type.xml new file mode 100644 index 000000000..2e6307318 --- /dev/null +++ b/modules/issuetracker/tpl/filter/insert_type.xml @@ -0,0 +1,13 @@ + +
      + + + + + + + + + +
      + diff --git a/modules/issuetracker/tpl/grant_list.html b/modules/issuetracker/tpl/grant_list.html new file mode 100644 index 000000000..0a78131e2 --- /dev/null +++ b/modules/issuetracker/tpl/grant_list.html @@ -0,0 +1,45 @@ + + + +
      + + + + +++++ + + + + + + + + + + + + + + + + + + + + +
      {$lang->about_grant}
      {$lang->grant}{$lang->target}
      {$val->title} + +
      + grants[$key])&&in_array($v->group_srl,$module_info->grants[$key]))-->checked="checked"/> + +
      + +
      {$lang->cmd_select_all}{$lang->cmd_unselect_all}
      + + +
      +
      diff --git a/modules/issuetracker/tpl/header.html b/modules/issuetracker/tpl/header.html new file mode 100644 index 000000000..4bdd77528 --- /dev/null +++ b/modules/issuetracker/tpl/header.html @@ -0,0 +1,33 @@ + + +

      {$lang->issuetracker} {$lang->project}{$lang->cmd_management}

      + +
      {nl2br($lang->about_issuetracker)}
      + + +
      + +

      {$module_info->mid} ({$lang->is_default}) | View

      + + + +
      + + diff --git a/modules/issuetracker/tpl/images/btnDelete.gif b/modules/issuetracker/tpl/images/btnDelete.gif new file mode 100644 index 000000000..c066e49be Binary files /dev/null and b/modules/issuetracker/tpl/images/btnDelete.gif differ diff --git a/modules/issuetracker/tpl/images/buttonAttach.gif b/modules/issuetracker/tpl/images/buttonAttach.gif new file mode 100644 index 000000000..359808b6e Binary files /dev/null and b/modules/issuetracker/tpl/images/buttonAttach.gif differ diff --git a/modules/issuetracker/tpl/images/buttonDeleteX.gif b/modules/issuetracker/tpl/images/buttonDeleteX.gif new file mode 100644 index 000000000..037c521cb Binary files /dev/null and b/modules/issuetracker/tpl/images/buttonDeleteX.gif differ diff --git a/modules/issuetracker/tpl/images/buttonInsert.gif b/modules/issuetracker/tpl/images/buttonInsert.gif new file mode 100644 index 000000000..5e661616f Binary files /dev/null and b/modules/issuetracker/tpl/images/buttonInsert.gif differ diff --git a/modules/issuetracker/tpl/images/buttonModify.gif b/modules/issuetracker/tpl/images/buttonModify.gif new file mode 100644 index 000000000..203b25e3e Binary files /dev/null and b/modules/issuetracker/tpl/images/buttonModify.gif differ diff --git a/modules/issuetracker/tpl/images/closer.gif b/modules/issuetracker/tpl/images/closer.gif new file mode 100644 index 000000000..e596462af Binary files /dev/null and b/modules/issuetracker/tpl/images/closer.gif differ diff --git a/modules/issuetracker/tpl/images/opener.gif b/modules/issuetracker/tpl/images/opener.gif new file mode 100644 index 000000000..d440a53f0 Binary files /dev/null and b/modules/issuetracker/tpl/images/opener.gif differ diff --git a/modules/issuetracker/tpl/index.html b/modules/issuetracker/tpl/index.html new file mode 100644 index 000000000..a5b0c339c --- /dev/null +++ b/modules/issuetracker/tpl/index.html @@ -0,0 +1,92 @@ + + + +
      + Total {number_format($total_count)}, Page {number_format($page)}/{number_format($total_page)} +
      + + +
      + + +{@ $col_width = array(50,150,0,65,45,45)} + +{@ $col_width = array(50,150,0,80,45,55)} + +{@ $col_width = array(50,150,0,65,45,45)} + +{@ $col_width = array(50,150,0,65,45,45)} + +{@ $col_width = array(50,150,0,80,40,70)} + +{@ $col_width = array(50,150,0,90,95,70)} + +{@ $col_width = array(50,150,0,75,40,55)} + + + +width="{$width}" /> + + + + + + + + + + + + + + + + + + + + + + + +
      {$lang->no} + + + + + {$lang->mid} / {$lang->browser_title}{$lang->regdate}{$lang->cmd_view}{$lang->cmd_delete}
      {$no} + + {$lang->not_exists} + + {$module_category[$val->module_category_srl]->title} + + + {$val->mid} - + {htmlspecialchars($val->browser_title)} + {zdate($val->regdate,"Y-m-d")}{$lang->cmd_view}{$lang->cmd_delete} 
      +
      + + + + + + diff --git a/modules/issuetracker/tpl/issuetracker_delete.html b/modules/issuetracker/tpl/issuetracker_delete.html new file mode 100644 index 000000000..3e7e215d4 --- /dev/null +++ b/modules/issuetracker/tpl/issuetracker_delete.html @@ -0,0 +1,32 @@ + + + + +
      + + + + + + + + + + + + + + + + + + + +
      {$lang->confirm_delete}
      {$lang->module_name}{$module_info->mid}
      {$lang->module}{$module_info->module}
      {$lang->document_count}{$module_info->document_count}
      + + + +
      diff --git a/modules/issuetracker/tpl/js/issue_admin.js b/modules/issuetracker/tpl/js/issue_admin.js new file mode 100644 index 000000000..31cadcda9 --- /dev/null +++ b/modules/issuetracker/tpl/js/issue_admin.js @@ -0,0 +1,327 @@ +/** + * @file modules/board/js/board_admin.js + * @author zero (zero@nzeo.com) + * @brief 관리자용 javascript + **/ + +/* 모듈 생성 후 */ +function completeInsertProject(ret_obj) { + var error = ret_obj['error']; + var message = ret_obj['message']; + + var page = ret_obj['page']; + var module_srl = ret_obj['module_srl']; + + alert(message); + + var url = current_url.setQuery('act','dispIssuetrackerAdminProjectInfo'); + if(module_srl) url = url.setQuery('module_srl',module_srl); + if(page) url.setQuery('page',page); + location.href = url; +} + +function deleteByFilter(target_srl, filter) +{ + var e = xGetElementById('target_srl'); + e.value= target_srl; + var hF = xGetElementById("deleteForm"); + procFilter(hF, filter); +} + +function completeInsertSetting(ret_obj) { + var error = ret_obj['error']; + var message = ret_obj['message']; + var module_srl = ret_obj['module_srl']; + var url = current_url.setQuery('act','dispIssuetrackerAdminProjectSetting'); + if(module_srl) url = url.setQuery('module_srl',module_srl); + location.href = url; +} + + +function completeReleaseInsertSetting(ret_obj) { + var error = ret_obj['error']; + var message = ret_obj['message']; + var url = current_url.setQuery('act','dispIssuetrackerAdminReleaseSetting'); + location.href = url; +} + + + + + + + + + + + + + + +/* 모듈 삭제 후 */ +function completeDeleteIssuetracker(ret_obj) { + var error = ret_obj['error']; + var message = ret_obj['message']; + var page = ret_obj['page']; + alert(message); + + var url = current_url.setQuery('act','dispIssuetrackerAdminContent').setQuery('module_srl',''); + if(page) url = url.setQuery('page',page); + location.href = url; +} + +/* 카테고리 관련 작업들 */ +function doUpdateCategory(category_srl, mode, message) { + if(typeof(message)!='undefined'&&!confirm(message)) return; + + var fo_obj = xGetElementById('fo_category_info'); + fo_obj.category_srl.value = category_srl; + fo_obj.mode.value = mode; + + procFilter(fo_obj, update_category); +} + +/* 카테고리 정보 수정 후 */ +function completeUpdateCategory(ret_obj) { + var error = ret_obj['error']; + var message = ret_obj['message']; + var module_srl = ret_obj['module_srl']; + var page = ret_obj['page']; + alert(message); + + var url = current_url.setQuery('module_srl',module_srl).setQuery('act','dispIssuetrackerAdminCategoryInfo'); + if(page) url.setQuery('page',page); + location.href = url; +} + +/* 권한 관련 */ +function doSelectAll(obj, key) { + var fo_obj = obj.parentNode; + while(fo_obj.nodeName != 'FORM') { + fo_obj = fo_obj.parentNode; + } + + for(var i=0;i200) { + obj.style.marginTop = ( xScrollTop() - 210 )+'px'; + } else { + obj.style.marginTop = '0px'; + } + + var tpl = ret_obj['tpl']; + xInnerHtml(obj, tpl); + obj.style.display = 'block'; + + var fo_obj = xGetElementById("fo_category"); + fo_obj.category_title.focus(); +} + +/* 카테고리 아이템 입력후 */ +function completeInsertCategory(ret_obj) { + var xml_file = ret_obj['xml_file']; + var category_srl = ret_obj['category_srl']; + var module_srl = ret_obj['module_srl']; + var parent_srl = ret_obj['parent_srl']; + + if(!xml_file) return; + + loadTreeMenu(xml_file, 'category', 'zone_category', category_title, '',doGetCategoryInfo, category_srl, doMoveTree); + + if(!category_srl) { + xInnerHtml("category_info", ""); + } else { + var params = {node_srl:category_srl, parent_srl:parent_srl} + doGetCategoryInfo(null, params) + } + + if(typeof('fixAdminLayoutFooter')=="function") fixAdminLayoutFooter(); +} + + +/* 카테고리를 드래그하여 이동한 후 실행할 함수 , 이동하는 category_srl과 대상 category_srl을 받음 */ +function doMoveTree(category_id, source_category_srl, target_category_srl) { + source_category_srl = source_category_srl.replace(/menu_category_/,''); + target_category_srl = target_category_srl.replace(/menu_category_/,''); + var p_fo_obj = xGetElementById("fo_category"); + + var fo_obj = xGetElementById("fo_move_category"); + fo_obj.source_category_srl.value = source_category_srl; + fo_obj.target_category_srl.value = target_category_srl; + fo_obj.module_srl.value = p_fo_obj.module_srl.value; + + // 이동 취소를 선택하였을 경우 다시 그림;; + if(!procFilter(fo_obj, move_category)) { + var params = new Array(); + params["xml_file"] = xGetElementById('fo_category').xml_file.value; + params["source_category_srl"] = source_category_srl; + completeMoveCategory(params); + } +} + +function completeMoveCategory(ret_obj) { + var source_category_srl = ret_obj['source_category_srl']; + var xml_file = ret_obj['xml_file']; + + loadTreeMenu(xml_file, 'category', "zone_category", category_title, '', doGetCategoryInfo, source_category_srl, doMoveTree); +} + +/* 카테고리 목록 갱신 */ +function doReloadTreeCategory(module_srl) { + var params = new Array(); + params["module_srl"] = module_srl; + + // 서버에 요청하여 해당 노드의 정보를 수정할 수 있도록 한다. + var response_tags = new Array('error','message', 'xml_file'); + exec_xml('board', 'procIssuetrackerAdminMakeXmlFile', params, completeInsertCategory, response_tags, params); +} + +/* 카테고리 삭제 */ +function doDeleteCategory(category_srl) { + var fo_obj = xGetElementById("fo_category"); + if(!fo_obj) return; + + procFilter(fo_obj, delete_category); +} + +/* 카테고리 아이템 삭제 후 */ +function completeDeleteCategory(ret_obj) { + var module_srl = ret_obj['module_srl']; + var category_srl = ret_obj['category_srl']; + var xml_file = ret_obj['xml_file']; + alert(ret_obj['message']); + + loadTreeMenu(xml_file, 'category', 'zone_category', category_title, '', doGetCategoryInfo, category_srl, doMoveTree); + + var obj = xGetElementById('category_info'); + xInnerHtml(obj, ""); + obj.style.display = 'none'; +} + + +/* 내용 숨김/열기 */ +xAddEventListener(document,'click',openSummaryText); +function openSummaryText(evt) { + var e = new xEvent(evt); + if(!e.target) return; + var pObj = e.target; + while(pObj) { + if(pObj.nodeName == "DIV" && (pObj.className == "open" || pObj.className == "close")) { + if(pObj.className == 'open') { + pObj.className = 'close'; + } else if(pObj.className == 'close') { + pObj.className = 'open'; + } + } + pObj = pObj.parentNode; + } +} diff --git a/modules/issuetracker/tpl/modify_component.html b/modules/issuetracker/tpl/modify_component.html new file mode 100644 index 000000000..7a6426e23 --- /dev/null +++ b/modules/issuetracker/tpl/modify_component.html @@ -0,0 +1,41 @@ + + + + + + +
      + + + + + ++++ + + + + + + + + + + + + + + +
      {$lang->name}{$lang->cmd_default} 
      + + {$lang->is_default} + + + + + +
      +
      + diff --git a/modules/issuetracker/tpl/modify_milestone.html b/modules/issuetracker/tpl/modify_milestone.html new file mode 100644 index 000000000..ea0ce74c8 --- /dev/null +++ b/modules/issuetracker/tpl/modify_milestone.html @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
      + + + + + ++++++ + + + + + + + + + + + + + + + + + + + + + + +
      {$lang->name} {$lang->deadline} {$lang->complete}{$lang->completed_date}{$lang->is_default}
      + +
      {zdate("Ymd",$milestone->deadline)}
      + +
      is_completed == 'Y')-->checked /> + +
      {zdate("Ymd",$milestone->released_date)}
      + +
      + + {$lang->is_default} + + + +
      + +
      +
      + diff --git a/modules/issuetracker/tpl/modify_package.html b/modules/issuetracker/tpl/modify_package.html new file mode 100644 index 000000000..3db55ec28 --- /dev/null +++ b/modules/issuetracker/tpl/modify_package.html @@ -0,0 +1,29 @@ + + + + + +
      + + + + + +++ + + + + + + + + + + +
      {$lang->name}
      {$lang->description}
      + +
      + +
      diff --git a/modules/issuetracker/tpl/modify_priority.html b/modules/issuetracker/tpl/modify_priority.html new file mode 100644 index 000000000..ba99c96ca --- /dev/null +++ b/modules/issuetracker/tpl/modify_priority.html @@ -0,0 +1,44 @@ + + + + + + +
      + + + + + +++++ + + + + + + + + + + + + + + + + +
      {$lang->name}{$lang->order}{$lang->cmd_default} 
      + + {$lang->is_default} + + + + + +
      +
      + diff --git a/modules/issuetracker/tpl/modify_release.html b/modules/issuetracker/tpl/modify_release.html new file mode 100644 index 000000000..1c61e6f35 --- /dev/null +++ b/modules/issuetracker/tpl/modify_release.html @@ -0,0 +1,34 @@ + + + + + +
      + + + + + + +++ + + + + + + + + + + + + + + +
      {$lang->name}
      {$lang->release_note}
      {$lang->release_changes}
      + +
      + +
      diff --git a/modules/issuetracker/tpl/modify_type.html b/modules/issuetracker/tpl/modify_type.html new file mode 100644 index 000000000..0b3df1ad8 --- /dev/null +++ b/modules/issuetracker/tpl/modify_type.html @@ -0,0 +1,41 @@ + + + + + + +
      + + + + + ++++ + + + + + + + + + + + + + + +
      {$lang->name}{$lang->cmd_default} 
      + + {$lang->is_default} + + + + + +
      +
      + diff --git a/modules/issuetracker/tpl/project_info.html b/modules/issuetracker/tpl/project_info.html new file mode 100644 index 000000000..707ee8649 --- /dev/null +++ b/modules/issuetracker/tpl/project_info.html @@ -0,0 +1,104 @@ + + + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      {$lang->module_category} + + {$lang->not_exists} + + {$module_category[$module_info->module_category_srl]->title} + +
      {$lang->layout} + + {$module_info->layout_title} ({$module_info->layout}) + + {$lang->not_exists} + +
      {$lang->skin}{$module_info->skin_title} ({$module_info->skin})
      {$lang->browser_title}{htmlspecialchars($module_info->browser_title)}
      {$lang->svn_url}{$module_info->svn_url} 
      {$lang->svn_cmd}{$module_info->svn_cmd} 
      {$lang->diff_cmd}{$module_info->diff_cmd} 
      {$lang->description}{nl2br(htmlspecialchars($module_info->description))} 
      {$lang->admin_id}{implode(",",$module_info->admin_id)} 
      + {$lang->cmd_modify} + + {$lang->cmd_list} + +
      + + + + {@ $extra_vars_name = $module_info->extra_vars[$i]->name} + {@ $extra_vars_type = $module_info->extra_vars[$i]->type} + {@ $extra_vars_is_required = $module_info->extra_vars[$i]->is_required=='Y'?'Y':'N'} + {@ $extra_vars_default_value = $module_info->extra_vars[$i]->default?$module_info->extra_vars[$i]->default:' '} + {@ $extra_vars_desc = $module_info->extra_vars[$i]->desc?$module_info->extra_vars[$i]->desc:' '} + {@ $extra_vars_search = $module_info->extra_vars[$i]->search=='Y'?'Y':'N'} + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      {$lang->extra_vars} {$i}
      {$lang->column_name}{$extra_vars_name}
      {$lang->column_type}{$extra_vars_type}
      {$lang->is_required}{$extra_vars_is_required}
      {$lang->default_value}{$extra_vars_default_value}
      {$lang->description}{$extra_vars_desc}
      {$lang->cmd_search}{$extra_vars_search}
      + + diff --git a/modules/issuetracker/tpl/project_insert.html b/modules/issuetracker/tpl/project_insert.html new file mode 100644 index 000000000..b1879fc20 --- /dev/null +++ b/modules/issuetracker/tpl/project_insert.html @@ -0,0 +1,183 @@ + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      {$lang->mid} + +

      {$lang->about_mid}

      +
      {$lang->is_default} + is_default=='Y')-->checked="checked" id="fld_for_default" class="checkbox" /> + +
      {$lang->module_category} + +

      {$lang->about_module_category}

      +
      {$lang->browser_title} + +

      {$lang->about_browser_title}

      +
      {$lang->layout} + +

      {$lang->about_layout}

      +
      {$lang->skin} + +

      {$lang->about_skin}

      +
      {$lang->svn_url} + +

      {$lang->about_svn_url}

      +
      {$lang->svn_cmd} + +

      {$lang->about_svn_cmd}

      +
      {$lang->diff_cmd} + +

      {$lang->about_diff_cmd}

      +
      {$lang->description} + +

      {$lang->about_description}

      +
      {$lang->admin_id} + +

      {$lang->about_admin_id}

      +
      + + +
      + + + +
      + {@ $extra_vars_name = ''} + {@ $extra_vars_type = ''} + {@ $extra_vars_is_required = ''} + {@ $extra_vars_default_value = ''} + {@ $extra_vars_desc = ''} + {@ $extra_vars_search = ''} + + {@ $extra_vars_name = $module_info->extra_vars[$i]->name} + {@ $extra_vars_type = $module_info->extra_vars[$i]->type} + {@ $extra_vars_is_required = $module_info->extra_vars[$i]->is_required} + {@ $extra_vars_default_value = $module_info->extra_vars[$i]->default} + {@ $extra_vars_desc = $module_info->extra_vars[$i]->desc} + {@ $extra_vars_search = $module_info->extra_vars[$i]->search} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      {$lang->extra_vars} {$i}
      {$lang->column_name}
      {$lang->column_type} + +
      {$lang->is_required}checked="checked" />
      {$lang->default_value}

      {$lang->about_extra_vars_default_value}

      {$lang->description}
      {$lang->cmd_search}checked="checked" />
      + + + + +
      diff --git a/modules/issuetracker/tpl/project_setting.html b/modules/issuetracker/tpl/project_setting.html new file mode 100644 index 000000000..e1a2867ab --- /dev/null +++ b/modules/issuetracker/tpl/project_setting.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      {$lang->milestone}
      {$lang->name}{$lang->completed_date}{$lang->deadline}{$lang->is_default} 
      is_completed=='Y')-->class="strike">{$val->title}{zdate($val->released_date,"Y-m-d")}{zdate($val->deadline,"Y-m-d")}{$lang->is_default}  +   +   +
      +
      +
      + +
      + +
      + +
      + +
      +
      +
      + + +
      + +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      {$lang->priority}
      {$lang->name}{$lang->order}{$lang->is_default} 
      {$val->title}{$val->listorder}{$lang->is_default}  +   +   +
       
      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      {$lang->type}
      {$lang->type}{$lang->is_default} 
      {$val->title}{$lang->is_default}  +   +   +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      {$lang->component}
      {$lang->component}{$lang->is_default} 
      {$val->title}{$lang->is_default}  +   +   +
      +
      +
      + + diff --git a/modules/issuetracker/tpl/release_setting.html b/modules/issuetracker/tpl/release_setting.html new file mode 100644 index 000000000..0abe29cb0 --- /dev/null +++ b/modules/issuetracker/tpl/release_setting.html @@ -0,0 +1,131 @@ + + + + + + + +
      + +
      + +
      + + + + + + + + + + + + + + + +
      {$lang->package}
      {$val->title}
      {nl2br($val->description)}
      +   +   +
      +
      +
      + + + + + +
      +
      +
      +
      + + + {@ $package = $package_list[$package_srl] } +
      + + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      {$lang->package} : {$package->title}
      +
      +
      + + + + + + +
      +
      +
      {$val->title} + {$lang->regdate}{zdate($val->regdate)} + + + +
      {$lang->release_note}
      {nl2br($val->release_note)}
      {$lang->release_changes}
      {nl2br($val->release_changes)}
      {$lang->attached_file} + + + + + + + + + + + + + + + +
      + + {$file->source_filename} +
      {FileHandler::filesize($file->file_size)} / {$file->download_count}{nl2br($file->comment)} 
      + + +
      +
      +
      + + + + + + +
      +
      +
      + diff --git a/modules/issuetracker/tpl/skin_info.html b/modules/issuetracker/tpl/skin_info.html new file mode 100644 index 000000000..9b93c5021 --- /dev/null +++ b/modules/issuetracker/tpl/skin_info.html @@ -0,0 +1,155 @@ + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      {$lang->skin_default_info}
      {$lang->skin}{$skin_info->title}
      {$lang->skin_author} + + {$author->name} ({$author->homepage}, {$author->email_address})
      + +
      {$lang->homepage}{$skin_info->homepage}
      {$lang->date}{zdate($skin_info->date, 'Y-m-d')}
      {$lang->skin_license} + {nl2br(trim($skin_info->license))} + +

      {$skin_info->license_link}

      + +
      {$lang->description}{nl2br($skin_info->description)}
      + + + + + + + + + + + + + + {@$group = $val->group} +
      {$lang->extra_vars}
      {$lang->colorset} + + + {@ $_img_info = getImageSize($val->screenshot); $_height = $_img_info[1]+40; $_width = $_img_info[0]+20; $_talign = "center"; } + + {@ $_width = 200; $_height = 20; $_talign = "left"; } + +
      + colorset==$val->name)-->checked="checked"/> + + +
      + {$val->title} + +
      + +
      + + + + + + + + + + + + + +
      {$group}
      {$val->title} + + + + + + + + + + + + + value))-->checked="checked" class="checkbox" /> + + + + + + + + value)-->checked="checked"/> + + + + + + +
      +
      + + +
      + + + + + + +

      {nl2br(trim($val->description))}

      + +
      + + + + + + + + +
      + +
      + +
      + + diff --git a/modules/krzip/conf/info.xml b/modules/krzip/conf/info.xml index 9457bdb3d..01aa0d6f9 100644 --- a/modules/krzip/conf/info.xml +++ b/modules/krzip/conf/info.xml @@ -33,6 +33,7 @@ 0.1 2007-02-28 accessory + http://www.zeroboard.com 제로 diff --git a/modules/krzip/lang/fr.lang.php b/modules/krzip/lang/fr.lang.php index 651667273..bf8dcf120 100644 --- a/modules/krzip/lang/fr.lang.php +++ b/modules/krzip/lang/fr.lang.php @@ -2,7 +2,7 @@ /** * @file modules/krzip/lang/fr.lang.php * @author zero Traduit par Pierre Duvent - * @brief Paquet de la langue franaise (Contenus fondamentals seulement sont lists) + * @brief Paque du langage en français pour le module de Code postal coréen **/ // mots normaux @@ -12,9 +12,9 @@ $lang->krzip_server_query = "Chemin de serveur pour vérifier le code postal"; // descriptions - $lang->about_krzip_server_hostname = "Entrez le domaine de serveur pour vérifier le code postal et recevoir le liste des résultats, SVP."; - $lang->about_krzip_server_port = "Entrez le nombre de port de serveur pour vérifier le code postal, SVP"; - $lang->about_krzip_server_query = "Entrez l'URL à requérir qui sera requis pour vérifier le code postal"; + $lang->about_krzip_server_hostname = "Entrez le domaine de serveur pour vérifier le code postal et recevoir le liste des résultats, S.V.P."; + $lang->about_krzip_server_port = "Entrez le numéro de port de serveur pour vérifier le code postal, SVP"; + $lang->about_krzip_server_query = "Entrez l'URL à Requérir qui sera requis pour vérifier le code postal"; // messages des erreurs $lang->msg_not_exists_addr = "Objectifs à rechercher n'existe pas"; diff --git a/modules/layout/conf/info.xml b/modules/layout/conf/info.xml index 11d79f945..0425422e4 100644 --- a/modules/layout/conf/info.xml +++ b/modules/layout/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-02-28 manager + http://www.zeroboard.com 제로 diff --git a/modules/layout/lang/fr.lang.php b/modules/layout/lang/fr.lang.php index 7676f1f71..b63c71b78 100644 --- a/modules/layout/lang/fr.lang.php +++ b/modules/layout/lang/fr.lang.php @@ -2,7 +2,7 @@ /** * @file modules/layout/lang/fr.lang.php * @author zero Traduit par Pierre Duvent - * @brief Paquet de la langue fondamentale du module pour Mise en Page + * @brief Paquet du langage en français pour le module de Mise en Page **/ $lang->cmd_layout_management = 'Configuration du Mise en Page'; @@ -10,7 +10,7 @@ $lang->layout_name = 'Nom du Mise en Page'; $lang->layout_maker = "Développeur du Mise en Page"; - $lang->layout_license = 'License'; + $lang->layout_license = 'Licence'; $lang->layout_history = "Mise à Jour"; $lang->layout_info = "Informations du Mise en Page"; $lang->layout_list = 'Liste des Mises en Page'; @@ -22,12 +22,12 @@ $lang->cmd_move_to_installed_list = "Mises en Page créés"; $lang->about_downloaded_layouts = "Mises en Page téléchargés"; - $lang->about_title = 'Entrez le titre facile pour distinguer quand vous le liez à un module.'; - $lang->about_not_apply_menu = 'Tous les Mises en Page qui sont liés sur le menu seront changés par cliquer cette option.'; + $lang->about_title = 'Entrez le titre pour distinguer facilement quand vous le liez à un module.'; + $lang->about_not_apply_menu = 'Tous les Mises en Page qui sont liés sur le menu seront changés si vous cochez cette option.'; - $lang->about_layout = "Le module de Mise en Page vous aide à créer facilement le Mise en Page du site.
      Vous pouvez présentez la forme du site web complèté par les modules divers en utilisant la configuration du Mise en Page et la connexion sur le menu.
      * Les Mises en Page qui ne sont pas possibles à supprimer ou à modifier sont ceux des blogues ou d'autres Mises en Page."; + $lang->about_layout = "Le module de Mise en Page vous aide à créer facilement le Mise en Page du site.
      Vous pouvez présentez la forme du site Web complété par les modules divers en utilisant la configuration du Mise en Page et la connexion sur le menu.
      * Les Mises en Page qui ne sont pas possibles à supprimer ou à modifier sont propres à ceux des blogues ou d'autres Mises en Page. Essayez à modifier/supprimer en dedans elles-mêmes"; $lang->about_layout_code = "Vous conservez la code de Mise en Page après l'éditer, la code sera appliquée sur le service. - Utilisez [Avant-première] avant conserver la code SVP. - Vous pouvez référer la grammaire de modèle de Zeroboard XE sur ZeroboardXE Template."; + Utilisez [Avant-première] avant conserver la code S.V.P. + Vous pouvez référer la grammaire de modèle de Zeroboard XE sur Modèle du ZeroboardXE."; ?> diff --git a/modules/layout/lang/ko.lang.php b/modules/layout/lang/ko.lang.php index 2bd20c936..707ffc4bf 100644 --- a/modules/layout/lang/ko.lang.php +++ b/modules/layout/lang/ko.lang.php @@ -10,7 +10,7 @@ $lang->layout_name = '레이아웃 이름'; $lang->layout_maker = "레이아웃 제작자"; - $lang->layout_license = '라이센스'; + $lang->layout_license = '라이선스'; $lang->layout_history = '변경 이력'; $lang->layout_info = "레이아웃 정보"; $lang->layout_list = '레이아웃 목록'; diff --git a/modules/layout/layout.model.php b/modules/layout/layout.model.php index daf6d7a01..dbe3d7438 100644 --- a/modules/layout/layout.model.php +++ b/modules/layout/layout.model.php @@ -141,10 +141,11 @@ $buff .= sprintf('$layout_info->description = "%s";', $xml_obj->description->body); $buff .= sprintf('$layout_info->version = "%s";', $xml_obj->version->body); $buff .= sprintf('$layout_info->date = "%s";', $date); + $buff .= sprintf('$layout_info->homepage = "%s";', $xml_obj->link->body); $buff .= sprintf('$layout_info->layout_srl = $layout_srl;'); $buff .= sprintf('$layout_info->layout_title = $layout_title;'); $buff .= sprintf('$layout_info->license = "%s";', $xml_obj->license->body); - $buff .= sprintf('$layout_info->license_link = "%S";', $xml_obj->license->attrs->link); + $buff .= sprintf('$layout_info->license_link = "%s";', $xml_obj->license->attrs->link); // 작성자 정보 if(!is_array($xml_obj->author)) $author_list[] = $xml_obj->author; @@ -156,6 +157,65 @@ $buff .= sprintf('$layout_info->author['.$i.']->homepage = "%s";', $author_list[$i]->attrs->link); } + + + // 추가 변수 (템플릿에서 사용할 제작자 정의 변수) + $extra_var_groups = $xml_obj->extra_vars->group; + if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars; + if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups); + foreach($extra_var_groups as $group){ + $extra_vars = $group->var; + if($extra_vars) { + if(!is_array($extra_vars)) $extra_vars = array($extra_vars); + + $extra_var_count = count($extra_vars); + + $buff .= sprintf('$layout_info->extra_var_count = "%s";', $extra_var_count); + for($i=0;$i<$extra_var_count;$i++) { + unset($var); + unset($options); + $var = $extra_vars[$i]; + $name = $var->attrs->name; + + $buff .= sprintf('$layout_info->extra_var->%s->group = "%s";', $name, $group->title->body); + $buff .= sprintf('$layout_info->extra_var->%s->title = "%s";', $name, $var->title->body); + $buff .= sprintf('$layout_info->extra_var->%s->type = "%s";', $name, $var->attrs->type); + $buff .= sprintf('$layout_info->extra_var->%s->value = $vars->%s;', $name, $name); + $buff .= sprintf('$layout_info->extra_var->%s->description = "%s";', $name, str_replace('"','\"',$var->description->body)); + + $options = $var->options; + if(!$options) continue; + + if(!is_array($options)) $options = array($options); + $options_count = count($options); + for($j=0;$j<$options_count;$j++) { + $buff .= sprintf('$layout_info->extra_var->%s->options["%s"] = "%s";', $var->attrs->name, $options[$j]->attrs->value, $options[$j]->title->body); + } + } + } + } + + // 메뉴 + if($xml_obj->menus->menu) { + $menus = $xml_obj->menus->menu; + if(!is_array($menus)) $menus = array($menus); + + $menu_count = count($menus); + $buff .= sprintf('$layout_info->menu_count = "%s";', $menu_count); + for($i=0;$i<$menu_count;$i++) { + $name = $menus[$i]->attrs->name; + if($menus[$i]->attrs->default == "true") $buff .= sprintf('$layout_info->default_menu = "%s";', $name); + $buff .= sprintf('$layout_info->menu->%s->name = "%s";',$name, $menus[$i]->attrs->name); + $buff .= sprintf('$layout_info->menu->%s->title = "%s";',$name, $menus[$i]->title->body); + $buff .= sprintf('$layout_info->menu->%s->maxdepth = "%s";',$name, $menus[$i]->attrs->maxdepth); + + $buff .= sprintf('$layout_info->menu->%s->menu_srl = $vars->%s;', $name, $name); + $buff .= sprintf('$layout_info->menu->%s->xml_file = "./files/cache/menu/".$vars->%s.".xml.php";',$name, $name); + $buff .= sprintf('$layout_info->menu->%s->php_file = "./files/cache/menu/".$vars->%s.".php";',$name, $name); + } + } + + // history if($xml_obj->history) { if(!is_array($xml_obj->history)) $history_list[] = $xml_obj->history; @@ -209,64 +269,66 @@ $buff .= sprintf('$layout_info->author[0]->name = "%s";', $xml_obj->author->name->body); $buff .= sprintf('$layout_info->author[0]->email_address = "%s";', $xml_obj->author->attrs->email_address); $buff .= sprintf('$layout_info->author[0]->homepage = "%s";', $xml_obj->author->attrs->link); - } - // 추가 변수 (템플릿에서 사용할 제작자 정의 변수) - $extra_var_groups = $xml_obj->extra_vars->group; - if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars; - if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups); - foreach($extra_var_groups as $group){ - $extra_vars = $group->var; - if($extra_vars) { - if(!is_array($extra_vars)) $extra_vars = array($extra_vars); + // 추가 변수 (템플릿에서 사용할 제작자 정의 변수) + $extra_var_groups = $xml_obj->extra_vars->group; + if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars; + if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups); + foreach($extra_var_groups as $group){ + $extra_vars = $group->var; + if($extra_vars) { + if(!is_array($extra_vars)) $extra_vars = array($extra_vars); - $extra_var_count = count($extra_vars); + $extra_var_count = count($extra_vars); - $buff .= sprintf('$layout_info->extra_var_count = "%s";', $extra_var_count); - for($i=0;$i<$extra_var_count;$i++) { - unset($var); - unset($options); - $var = $extra_vars[$i]; - $name = $var->attrs->name; + $buff .= sprintf('$layout_info->extra_var_count = "%s";', $extra_var_count); + for($i=0;$i<$extra_var_count;$i++) { + unset($var); + unset($options); + $var = $extra_vars[$i]; + $name = $var->attrs->name; - $buff .= sprintf('$layout_info->extra_var->%s->group = "%s";', $name, $group->title->body); - $buff .= sprintf('$layout_info->extra_var->%s->title = "%s";', $name, $var->title->body); - $buff .= sprintf('$layout_info->extra_var->%s->type = "%s";', $name, $var->attrs->type); - $buff .= sprintf('$layout_info->extra_var->%s->value = $vars->%s;', $name, $name); - $buff .= sprintf('$layout_info->extra_var->%s->description = "%s";', $name, str_replace('"','\"',$var->description->body)); + $buff .= sprintf('$layout_info->extra_var->%s->group = "%s";', $name, $group->title->body); + $buff .= sprintf('$layout_info->extra_var->%s->title = "%s";', $name, $var->title->body); + $buff .= sprintf('$layout_info->extra_var->%s->type = "%s";', $name, $var->attrs->type); + $buff .= sprintf('$layout_info->extra_var->%s->value = $vars->%s;', $name, $name); + $buff .= sprintf('$layout_info->extra_var->%s->description = "%s";', $name, str_replace('"','\"',$var->description->body)); - $options = $var->options; - if(!$options) continue; + $options = $var->options; + if(!$options) continue; - if(!is_array($options)) $options = array($options); - $options_count = count($options); - for($j=0;$j<$options_count;$j++) { - $buff .= sprintf('$layout_info->extra_var->%s->options["%s"] = "%s";', $var->attrs->name, $options[$j]->value->body, $options[$j]->title->body); + if(!is_array($options)) $options = array($options); + $options_count = count($options); + for($j=0;$j<$options_count;$j++) { + $buff .= sprintf('$layout_info->extra_var->%s->options["%s"] = "%s";', $var->attrs->name, $options[$j]->value->body, $options[$j]->title->body); + } } } } - } - // 메뉴 - if($xml_obj->menus->menu) { - $menus = $xml_obj->menus->menu; - if(!is_array($menus)) $menus = array($menus); + // 메뉴 + if($xml_obj->menus->menu) { + $menus = $xml_obj->menus->menu; + if(!is_array($menus)) $menus = array($menus); - $menu_count = count($menus); - $buff .= sprintf('$layout_info->menu_count = "%s";', $menu_count); - for($i=0;$i<$menu_count;$i++) { - $name = $menus[$i]->attrs->name; - if($menus[$i]->attrs->default == "true") $buff .= sprintf('$layout_info->default_menu = "%s";', $name); - $buff .= sprintf('$layout_info->menu->%s->name = "%s";',$name, $menus[$i]->attrs->name); - $buff .= sprintf('$layout_info->menu->%s->title = "%s";',$name, $menus[$i]->title->body); - $buff .= sprintf('$layout_info->menu->%s->maxdepth = "%s";',$name, $menus[$i]->maxdepth->body); + $menu_count = count($menus); + $buff .= sprintf('$layout_info->menu_count = "%s";', $menu_count); + for($i=0;$i<$menu_count;$i++) { + $name = $menus[$i]->attrs->name; + if($menus[$i]->attrs->default == "true") $buff .= sprintf('$layout_info->default_menu = "%s";', $name); + $buff .= sprintf('$layout_info->menu->%s->name = "%s";',$name, $menus[$i]->attrs->name); + $buff .= sprintf('$layout_info->menu->%s->title = "%s";',$name, $menus[$i]->title->body); + $buff .= sprintf('$layout_info->menu->%s->maxdepth = "%s";',$name, $menus[$i]->maxdepth->body); - $buff .= sprintf('$layout_info->menu->%s->menu_srl = $vars->%s;', $name, $name); - $buff .= sprintf('$layout_info->menu->%s->xml_file = "./files/cache/menu/".$vars->%s.".xml.php";',$name, $name); - $buff .= sprintf('$layout_info->menu->%s->php_file = "./files/cache/menu/".$vars->%s.".php";',$name, $name); + $buff .= sprintf('$layout_info->menu->%s->menu_srl = $vars->%s;', $name, $name); + $buff .= sprintf('$layout_info->menu->%s->xml_file = "./files/cache/menu/".$vars->%s.".xml.php";',$name, $name); + $buff .= sprintf('$layout_info->menu->%s->php_file = "./files/cache/menu/".$vars->%s.".php";',$name, $name); + } } + } + // header_script $oModuleModel = &getModel('module'); $layout_config = $oModuleModel->getModuleConfig('layout'); diff --git a/modules/layout/tpl/downloaded_layout_list.html b/modules/layout/tpl/downloaded_layout_list.html index be28f4344..aabd0e60a 100644 --- a/modules/layout/tpl/downloaded_layout_list.html +++ b/modules/layout/tpl/downloaded_layout_list.html @@ -35,7 +35,7 @@ - + @@ -58,7 +58,7 @@ {nl2br(trim($val->description))} - + {$val->layout} diff --git a/modules/lifepod/conf/info.xml b/modules/lifepod/conf/info.xml index f0c4d3f63..f8f8db850 100644 --- a/modules/lifepod/conf/info.xml +++ b/modules/lifepod/conf/info.xml @@ -15,6 +15,7 @@ 0.12 2007-12-10 service + http://www.zeroboard.com haneul diff --git a/modules/lifepod/lang/fr.lang.php b/modules/lifepod/lang/fr.lang.php index c9833c7ce..4329b6d7d 100644 --- a/modules/lifepod/lang/fr.lang.php +++ b/modules/lifepod/lang/fr.lang.php @@ -2,12 +2,12 @@ /** * @file fr.lang.php * @author haneul (haneul0318@gmail.com) Traduit par Pierre Duvent (PierreDuvent@gmail.com) - * @brief default language pack of lifepod module + * @brief Paque du langage primaire pour le module de Lifepod **/ $lang->lifepod = "Lifepod"; - $lang->calendar_address = "Addresse de XML du Calendrier"; + $lang->calendar_address = "Adresse de XML du Calendrier"; $lang->cmd_lifepod_list = 'Liste de Lifepod'; $lang->cmd_view_info = 'Information de Lifepod.'; diff --git a/modules/lifepod/skins/xe_official/list.html b/modules/lifepod/skins/xe_official/list.html index e3d7cbee8..619a24462 100644 --- a/modules/lifepod/skins/xe_official/list.html +++ b/modules/lifepod/skins/xe_official/list.html @@ -32,26 +32,26 @@ xAddEventListener(window, 'load', startLifepod);
        - + - +
      • {$lang->cmd_setup}
      • - +
      • {$lang->cmd_management}
      • - +
      • {$lang->cmd_view_member_info}
      • {$lang->cmd_logout}
      • - +
      • {$lang->cmd_signup}
      • {$lang->cmd_login}
      • diff --git a/modules/lifepod/skins/xe_official/skin.xml b/modules/lifepod/skins/xe_official/skin.xml index 9559c9554..df0288567 100644 --- a/modules/lifepod/skins/xe_official/skin.xml +++ b/modules/lifepod/skins/xe_official/skin.xml @@ -1,65 +1,75 @@ - - + + 라이프팟 연동 기본 스킨 Lifepod默认皮肤 Lifepod Module Basic Skin - Lifepod módulo básico piel - Lifepod модуль базовой кожи + Lifepod módulo básico piel + Lifepod модуль базовой кожи ライフポッド連動のデフォルトスキン - + 라이프팟 노트 연동 모듈의 기본 스킨 + Lifepod默认皮肤。 + Default Skin of Lifepod Module + Por defecto de la piel Lifepod módulo + По умолчанию кожи Lifepod модуль + ライフポッドノート連動モジュールのデフォルトスキン + 0.1 + 2007-11-30 + http://www.zeroboard.com + + haneul haneul haneul - haneul - haneul + haneul + haneul haneul - 라이프팟 노트 연동 모듈의 기본 스킨 - Lifepod默认皮肤。 - Default Skin of Lifepod Module - Por defecto de la piel Lifepod módulo - По умолчанию кожи Lifepod модуль - ライフポッドノート連動モジュールのデフォルトスキン - + + 하얀색(기본) 白色(默认) White (default) - Blanco (por defecto) - Белые (по умолчанию) + Blanco (por defecto) + Белые (по умолчанию) 白(デフォルト) + 게시판 제목 版面标题 Title of Board - Título de la Junta - Название совета + Título de la Junta + Название совета 掲示板のタイトル 게시판의 제목을 적어주세요. 请输入版面标题。 Please input the title of board. - Introduce el título de la junta. - Введите название борту. + Introduce el título de la junta. + Введите название борту. 掲示板のタイトルを記入してください。 한국 기념일 표시 显示韩国纪念日 Display Korean Anniversary - Mostrar Korean aniversario - Дисплей корейский летие + Mostrar Korean aniversario + Дисплей корейский летие 韓国記念日表示 한국의 기념일을 표시합니다. 设置是否要显示韩国纪念日。 It will display Korean anniversaries. - Su función es mostrar de Korea aniversarios. - Он будет показывать корейский годовщин. + Su función es mostrar de Korea aniversarios. + Он будет показывать корейский годовщин. 韓国の記念日を表示します。 - use - notuse + + 사용 + + + 사용 안 함 + - + \ No newline at end of file diff --git a/modules/lifepod/tpl/skin_info.html b/modules/lifepod/tpl/skin_info.html index 65a2369e3..5d7d8691f 100644 --- a/modules/lifepod/tpl/skin_info.html +++ b/modules/lifepod/tpl/skin_info.html @@ -1,6 +1,6 @@ -
        + @@ -16,20 +16,37 @@ {$skin_info->title} - {$lang->skin_maker} - {$skin_info->maker->name} ({$skin_info->maker->email_address}) + {$lang->skin_author} + + + {$author->name} ({$author->homepage}, {$author->email_address})
        + + + - {$lang->skin_maker_homepage} - {$skin_info->maker->homepage} + {$lang->homepage} + {$skin_info->homepage} + {$lang->date} - {$skin_info->maker->date} + {zdate($skin_info->date, 'Y-m-d')} + + + {$lang->skin_license} + + {nl2br(trim($skin_info->license))} + +

        {$skin_info->license_link}

        + + + + {$lang->description} - {nl2br($skin_info->maker->description)} + {nl2br($skin_info->description)} @@ -39,36 +56,51 @@ {$lang->extra_vars} {$lang->colorset} - + -
        - {$val->title} + {@ $_img_info = getImageSize($val->screenshot); $_height = $_img_info[1]+40; $_width = $_img_info[0]+20; $_talign = "center"; } + + {@ $_width = 200; $_height = 20; $_talign = "left"; } - +
        colorset==$val->name)-->checked="checked"/> + +
        + {$val->title} +
        + + + {@$group = $val->group} + + + + + + + + + +
        {$group}
        {$val->title} - + - + - + @@ -84,33 +116,41 @@ value)-->checked="checked"/> - + + +
        +
        + + +
        + - -
        -
        - - -
        - - - + -

        {nl2br($val->description)}

        +

        {nl2br(trim($val->description))}

        + + + + +
        + diff --git a/modules/member/conf/info.xml b/modules/member/conf/info.xml index 957486bac..222dbee14 100644 --- a/modules/member/conf/info.xml +++ b/modules/member/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-02-28 service + http://www.zeroboard.com 제로 diff --git a/modules/member/lang/en.lang.php b/modules/member/lang/en.lang.php index 6f2bda070..bf80d26b1 100644 --- a/modules/member/lang/en.lang.php +++ b/modules/member/lang/en.lang.php @@ -148,7 +148,7 @@ $lang->about_allow_mailing = "If you don't join mailing, you will not able to receive group mail"; $lang->about_denied = 'Check to prohibit the ID'; $lang->about_is_admin = 'Check to give Superadmin permission'; - $lang->about_description = "Administrator's memo about members"; + $lang->about_member_description = "Administrator's memo about members"; $lang->about_group = 'An ID can belong to many groups'; $lang->about_column_type = 'Please set the format of additional sign up form'; diff --git a/modules/member/lang/es.lang.php b/modules/member/lang/es.lang.php index d1104b259..f1ccd5445 100644 --- a/modules/member/lang/es.lang.php +++ b/modules/member/lang/es.lang.php @@ -147,7 +147,7 @@ $lang->about_allow_mailing = "Si usted no se ha registrado el envío de email, usted no podrá recibir el email del grupo"; $lang->about_denied = 'Si selecciona esta opción prohibirá el uso del ID'; $lang->about_is_admin = 'Si selecciona esta opción para obtener la atribución del administrador superior'; - $lang->about_description = "Nota del administrador acerca de los usuarios"; + $lang->about_member_description = "Nota del administrador acerca de los usuarios"; $lang->about_group = 'Un ID puede pertenecer a muchos grupos'; $lang->about_column_type = 'Definir el estilo de la forma de registro que desea agregar'; diff --git a/modules/member/lang/fr.lang.php b/modules/member/lang/fr.lang.php index 90c189b0c..b4b69a8a4 100644 --- a/modules/member/lang/fr.lang.php +++ b/modules/member/lang/fr.lang.php @@ -2,26 +2,26 @@ /** * @file fr.lang.php * @author zero (zero@nzeo.com) Traduit par Pierre Duvent (PierreDuvent@gmail.com) - * @brief Paquet de la langue française (Choses fondamentales seulement) + * @brief Paquet du langage en français pour le module de Membre **/ $lang->member = 'Membre'; - $lang->member_default_info = 'Informations fondamentales'; - $lang->member_extend_info = 'Informations additionnelles'; + $lang->member_default_info = 'Information fondamentale'; + $lang->member_extend_info = 'Information additionnelle'; $lang->default_group_1 = "Membre Associé"; $lang->default_group_2 = "Membre Régulier"; $lang->admin_group = "Groupe des administrateurs"; - $lang->keep_signed = 'Gardez la session ouverte'; + $lang->keep_signed = 'Garder la session ouverte'; $lang->remember_user_id = 'Mémorisez mon Compte'; - $lang->already_logged = "Vous avez déjà ouvert une session"; - $lang->denied_user_id = 'Vous avez entré un comte interdit.'; - $lang->null_user_id = 'Entrez votre compte'; - $lang->null_password = 'Entrez le mot de passe'; - $lang->invalid_authorization = 'Votre compte n\'est pas certifié.'; - $lang->invalid_user_id= "Vous avez entré un compte invalide"; - $lang->invalid_password = 'Vous avez entré un mot de passe invalide'; - $lang->allow_mailing = 'Joindre au Mailing'; - $lang->denied = 'Interdit'; + $lang->already_logged = "La session est déjà ouverte"; + $lang->denied_user_id = 'C\'est un comte interdit.'; + $lang->null_user_id = 'Entrez le compte, S.V.P.'; + $lang->null_password = 'Entrez le mot de passe, S.V.P.'; + $lang->invalid_authorization = 'Le compte n\'est pas encore certifié.'; + $lang->invalid_user_id= "C'est un compte qui n'existe pas."; + $lang->invalid_password = 'C\'est un mot de passe invalide'; + $lang->allow_mailing = 'Inscrire au Mailing'; + $lang->denied = 'Arrêté à utiliser'; $lang->is_admin = 'Permission Superadministrative'; $lang->group = 'Groupe assigné'; $lang->group_title = 'Nom du Groupe'; @@ -38,7 +38,7 @@ $lang->image_mark_max_height = 'Hauteur Maximum'; $lang->signature_max_height = 'Hauteur Maximum de la Signature'; $lang->enable_openid = 'Permettre OpenID'; - $lang->enable_join = 'Permettre à s\'inscrire'; + $lang->enable_join = 'Permettre l\'inscription'; $lang->enable_confirm = 'Utiliser Authentification par mél'; $lang->enable_ssl = 'Utiliser SSL'; $lang->security_sign_in = 'Ouvrir une Session en utilisant sécurité rehaussé'; @@ -46,140 +46,141 @@ $lang->limit_date = 'Jour de Limite'; $lang->after_login_url = 'URL après la connexion'; $lang->after_logout_url = 'URL après la déconnexion '; - $lang->redirect_url = 'URL après Inscription'; - $lang->agreement = 'Accord d\'Inscription comme Membre'; + $lang->redirect_url = 'URL après l\'Inscription'; + $lang->agreement = 'Accord de l\'Inscription comme Membre'; $lang->accept_agreement = 'D\'accord'; - $lang->member_info = 'Informations du Membre'; - $lang->current_password = 'Mot de Passe courrant'; + $lang->member_info = 'Information de Membre'; + $lang->current_password = 'Mot de Passe courant'; $lang->openid = 'OpenID'; $lang->webmaster_name = "Nom de Webmestre"; $lang->webmaster_email = "Mél de Webmestre"; - $lang->about_keep_signed = 'Malgré que le navigateur est fermé, votre session peut être ouverte. \n\nSi vous utilisez cette fonction sur l\'ordinateur commun, vos informations privé peut être exposé. Nous vous recommandons de ne pas utiliser cette fonctions sur l\'ordinateur commun.'; + $lang->about_keep_signed = 'Malgré que le navigateur est fermé, votre session peut rester ouverte. \n\nSi vous utilisez cette fonction sur l\'ordinateur publique, vos informations privé peut être exposé. Nous vous recommandons de ne pas utiliser cette fonctions sur l\'ordinateur publique.'; $lang->about_webmaster_name = "Entrez le nom de webmestre qui va être utilisé pour le mél de certification ou l\'autre administration du site. (défaut : webmestre)"; - $lang->about_webmaster_email = "Entrez l\'address du mél de webmestre, S.V.P."; + $lang->about_webmaster_email = "Entrez l\'adresse du mél de webmestre, S.V.P."; $lang->search_target_list = array( 'user_id' => 'Compte', 'user_name' => 'Nom', 'nick_name' => 'Surnom', 'email_address' => 'Mél', - 'regdate' => 'Jour d\'enregistrer', + 'regdate' => 'Jour d\'Inscription', 'last_login' => 'Jour de la connexion dernière', - 'extra_vars' => 'Variables extra ', + 'extra_vars' => 'Variables additionnels ', ); - $lang->cmd_login = 'Login'; - $lang->cmd_logout = 'Logout'; - $lang->cmd_signup = 'Join'; - $lang->cmd_modify_member_info = 'Modify Member Info'; - $lang->cmd_modify_member_password = 'Modify Password'; - $lang->cmd_view_member_info = 'Member Info'; - $lang->cmd_leave = 'Leave'; - $lang->cmd_find_member_account = 'Find Account Info'; + $lang->cmd_login = 'Connexion'; + $lang->cmd_logout = 'Déconnexion'; + $lang->cmd_signup = 'Inscription'; + $lang->cmd_modify_member_info = 'Modifier Mon Information'; + $lang->cmd_modify_member_password = 'Modifier le Mot de Passe'; + $lang->cmd_view_member_info = 'Voir Mon Information'; + $lang->cmd_leave = 'Quitter'; + $lang->cmd_find_member_account = 'J\'ai perdu le compte / le mot de passe'; - $lang->cmd_member_list = 'Member List'; - $lang->cmd_module_config = 'Default Setting'; - $lang->cmd_member_group = 'Manage Groups'; - $lang->cmd_send_mail = 'Send Mail'; - $lang->cmd_manage_id = 'Manage Prohibited IDs'; - $lang->cmd_manage_form = 'Manage Join Form'; - $lang->cmd_view_own_document = 'Written Articles'; - $lang->cmd_trace_document = 'Trace Written Articles'; - $lang->cmd_trace_comment = 'Trace Written Comments'; - $lang->cmd_view_scrapped_document = 'Scraps'; - $lang->cmd_view_saved_document = 'Saved Articles'; - $lang->cmd_send_email = 'Send Mail'; + $lang->cmd_member_list = 'Liste de Membres'; + $lang->cmd_module_config = 'Configuration par Défaut'; + $lang->cmd_member_group = 'Administrer des Groupes'; + $lang->cmd_send_mail = 'Envoyer des Méls'; + $lang->cmd_manage_id = 'Administrer les Comptes Interdits'; + $lang->cmd_manage_form = 'Administrer la Forme d\'Inscription'; + $lang->cmd_view_own_document = 'Voir les Articles écrits'; + $lang->cmd_trace_document = 'Tracer les Articles écrits'; + $lang->cmd_trace_comment = 'Tracer les Commentaires écrits'; + $lang->cmd_view_scrapped_document = 'Voir les Coupures'; + $lang->cmd_view_saved_document = 'Voir les Articles conservés'; + $lang->cmd_send_email = 'Envoyer des Méls'; - $lang->msg_email_not_exists = "You have entered an invalid email address"; + $lang->msg_email_not_exists = "L'adresse mél n'existe pas."; - $lang->msg_alreay_scrapped = 'This article is already scrapped'; + $lang->msg_alreay_scrapped = 'Cet article est déjà coupé.'; - $lang->msg_cart_is_null = 'Please select the target'; - $lang->msg_checked_file_is_deleted = '%d attached file(s) is(are) deleted'; + $lang->msg_cart_is_null = 'Choisissez l\'Objet, S.V.P.'; + $lang->msg_checked_file_is_deleted = '%d fichier(s) attaché(s) est(sont) supprimé(s)'; - $lang->msg_find_account_title = 'Account Info'; - $lang->msg_find_account_info = 'This is requested account info.'; - $lang->msg_find_account_comment = 'The password will be modified as above one as you click below link.
        Please modify the password after login.'; - $lang->msg_confirm_account_title = 'Authentication confirmation mail'; - $lang->msg_confirm_account_info = 'This is the registered account information:'; - $lang->msg_confirm_account_comment = 'Click the following confirmation link to complete your sign up.'; - $lang->msg_auth_mail_sent = 'The certification mail has been sent to %s. Please check your mail.'; - $lang->msg_confirm_mail_sent = 'We just sent you a confirmation email to %s. Click on the confirmation link in the email to complete your sign up.'; - $lang->msg_invalid_auth_key = 'This is an invalid request of certification.
        Please retry finding account info or contact to administrator.'; - $lang->msg_success_authed = 'Your account has been successfully certificated and logged on.\n Please modify the password to your own one with the password in the mail.'; - $lang->msg_success_confirmed = 'The autentication completed successfully.'; + $lang->msg_find_account_title = 'Information de compte'; + $lang->msg_find_account_info = 'Voilà votre information de compte.'; + $lang->msg_find_account_comment = 'Le Mot de Passe sera modifié comme celui ci-dessus si vous cliquez le lien ci-dessous.
        Modifiez le Mot de Passe après ouvrir la connexion, S.V.P.'; + $lang->msg_confirm_account_title = 'Mél à confirmer l\'Authentification'; + $lang->msg_confirm_account_info = 'Voilà votre Information de l\'inscription du Compte:'; + $lang->msg_confirm_account_comment = 'Cliquez le lien de confirmation suivant pour compléter votre inscription.'; + $lang->msg_auth_mail_sent = 'Le mél de certification a été envoyé à %s. Vérifiez votre mél.'; + $lang->msg_confirm_mail_sent = 'On a justement envoyé un mél de confirmation à %s. Cliquez sur le lien de confirmation dans le mél pour compléter l\'inscription.'; + $lang->msg_invalid_auth_key = 'Cette Requête à Certifier est invalide.
        Essayez encore une fois à retrouver votre information de compte ou contactez l\'administrateur.'; + $lang->msg_success_authed = 'Votre compte a été certifié avec succès et ouvert une session. \n Modifiez le Mot de Passe après vous ouvrez une session en utilisant le Mot de Passe dans le mél.'; + $lang->msg_success_confirmed = 'L\'authentification est complétée avec succèss.'; - $lang->msg_new_member = 'Add Member'; - $lang->msg_update_member = 'Modify Member Info'; - $lang->msg_leave_member = 'Leave'; - $lang->msg_group_is_null = 'There is no registered group'; - $lang->msg_not_delete_default = 'Default items cannot be deleted'; - $lang->msg_not_exists_member = "Invalid member"; - $lang->msg_cannot_delete_admin = 'Admin ID cannot be deleted. Please remove the ID from administration and try again.'; - $lang->msg_exists_user_id = 'This ID already exists. Please try with another one.'; - $lang->msg_exists_email_address = 'This email address already exists. Please try with another one.'; - $lang->msg_exists_nick_name = 'This nickname already exists. Please try with another one.'; - $lang->msg_signup_disabled = 'You are not able to sign up'; - $lang->msg_already_logged = 'You have already signed up'; - $lang->msg_not_logged = 'Please login first'; - $lang->msg_insert_group_name = 'Please input the name of group'; - $lang->msg_check_group = 'Please select the group'; + $lang->msg_new_member = 'Ajouter un membre'; + $lang->msg_update_member = 'Modifier l\'Information de Membre'; + $lang->msg_leave_member = 'Sécession'; + $lang->msg_group_is_null = 'Il n\'y a pas de groupe enrégistré'; + $lang->msg_not_delete_default = 'Elément fondamental ne pourra pas être supprimé'; + $lang->msg_not_exists_member = "Membre Invalide"; + $lang->msg_cannot_delete_admin = 'Le Compte de l\'Administrateur ne pourra pas être supprimé. Annulez l\'administration du compte et essayez encore une fois.'; + $lang->msg_exists_user_id = 'Le compte existe déjà. Essayez un autre.'; + $lang->msg_exists_email_address = 'L\'adresse mél existe déjà. Essayez une autre.'; + $lang->msg_exists_nick_name = 'Le surnom existe déjà. Essayez un autre.'; + $lang->msg_signup_disabled = 'Vous ne pouvez pas vous inscrire.'; + $lang->msg_already_logged = 'Vous vous êtes déjà inscrit(e).'; + $lang->msg_not_logged = 'Ouvrez une session d\'abord'; + $lang->msg_insert_group_name = 'Entrez le nom de groupe, S.V.P.'; + $lang->msg_check_group = 'Choisissez le groupe'; - $lang->msg_not_uploaded_profile_image = 'Profile image could not be registered'; - $lang->msg_not_uploaded_image_name = 'Image name could not be registered'; - $lang->msg_not_uploaded_image_mark = 'Image mark could not be registered'; + $lang->msg_not_uploaded_profile_image = 'L\'image de Profil n\'a pas pu être enrégistré'; + $lang->msg_not_uploaded_image_name = 'Le nom d\'image n\'a pas pu être enrégistré'; + $lang->msg_not_uploaded_image_mark = 'La marque en image n\'a pas pu être enrégistrée'; - $lang->msg_accept_agreement = 'You have to agree the agreement'; + $lang->msg_accept_agreement = 'Vous devez agréer l\'accord'; - $lang->msg_user_denied = 'You have entered a prohibited ID'; - $lang->msg_user_not_confirmed = 'You are not authenticated yet. Please check your email.'; - $lang->msg_user_limited = 'You have entered an ID that can be used after %s'; + $lang->msg_user_denied = 'Le compte que vous avez entré est suspendu'; + $lang->msg_user_not_confirmed = 'Vous n\'avez pas encore authentifié. Verifiez votre mél, S.V.P.'; + $lang->msg_user_limited = 'Vous avez entré un compte qui peut être utilisé depuis %s'; - $lang->about_user_id = 'User ID should be 3~20 letters long and consist of alphabet+number with alphabet as first letter.'; - $lang->about_password = 'Password should be 6~20 letters long'; - $lang->about_user_name = 'Name should be 2~20 letters long'; - $lang->about_nick_name = 'Nickname should be 2~20 letters long'; - $lang->about_email_address = 'Email address will be used to modify/find password after email certification'; - $lang->about_homepage = 'Please input if you have your websites'; - $lang->about_blog_url = 'Please input if you have your blogs'; - $lang->about_birthday = 'Please input your birth date'; - $lang->about_allow_mailing = "If you don't join mailing, you will not able to receive group mail"; - $lang->about_denied = 'Check to prohibit the ID'; - $lang->about_is_admin = 'Check to give Superadmin permission'; - $lang->about_description = "Administrator's memo about members"; - $lang->about_group = 'An ID can belong to many groups'; + $lang->about_user_id = 'Le compte d\'utilisateur doit être long de 3~20 lettres et se composer des alphabets et des chiffres avec un alphabet au premier.'; + $lang->about_password = 'Le Mot de Passe doit être long de 6~20 lettres.'; + $lang->about_user_name = 'Le Nom doit être long de 2~20 lettres.'; + $lang->about_nick_name = 'Le Surnom doit être long de 2~20 lettres.'; + $lang->about_email_address = 'L\'Adresse mél sera utilisé à modifier/trouver le Mot de Passe après la certification en mél.'; + $lang->about_homepage = 'Entrez si vous avez un site Web.'; + $lang->about_blog_url = 'Entrez si vous avez un blogue.'; + $lang->about_birthday = 'Entrez votre anniversaire.'; + $lang->about_allow_mailing = "Si vous ne vous inscrivez pas sur mailing, vous ne pouvez pas recevoir le mél du groupe."; + $lang->about_denied = 'Cocher pour interdire le compte'; + $lang->about_is_admin = 'Cocher pour autoriser la permission de Superadministrateur'; + $lang->about_member_description = "La description de l\'Administrateur sur le membre"; + $lang->about_group = 'Un compte peut appartenir aux plusieurs groupes.'; - $lang->about_column_type = 'Please set the format of additional sign up form'; - $lang->about_column_name = 'Please input English name that can be used in template (name as variable)'; - $lang->about_column_title = 'This will be displayed on sign up or modifying/viewing member info form'; - $lang->about_default_value = 'You can set default values'; - $lang->about_active = 'You have to check on active items to show on sign up form'; - $lang->about_form_description = 'If you input in description form, it will be displayed on sign up form'; - $lang->about_required = 'If you check, it will be essential item for sign up'; + $lang->about_column_type = 'Choisissez la format que vous voulez ajouter'; + $lang->about_column_name = 'Entrez le nom composé en alphabet qui peut être utilisé dans le modèle (nom comme variable)'; + $lang->about_column_title = 'Ce titre sera exposé sur la formule d\'inscription ou sur l\'écran pour modifier/voir les informations de membre'; + $lang->about_default_value = 'Vous pouvez mettre les valeurs par défaut'; + $lang->about_active = 'Cochez si vous voulez l\'exposer sur la formule d\'inscription'; + $lang->about_form_description = 'Si vous entrez la description, elle sera exposé sur la formule d\'incription'; + $lang->about_required = 'Si vous cochez, ce sera obligatoire'; - $lang->about_enable_openid = 'Allow users to sign up as OpenID'; - $lang->about_enable_join = 'Allow users to sign up'; - $lang->about_enable_confirm = 'Send confirmation email to complete signup.'; - $lang->about_enable_ssl = 'Personal information from Join/Modify Member Info/Login can be sent as SSL(https) mode if server provides SSL service.'; - $lang->about_limit_day = 'You can limit certification date after sign up'; - $lang->about_limit_date = 'User cannot login until assigned date'; - $lang->about_after_login_url = 'You can set URL after login. Blank means current page.'; - $lang->about_after_logout_url = 'You can set URL after logout. Blank means current page.'; - $lang->about_redirect_url = 'Please input URL where users will go after sign up. When this is empty, it will be set as the previous page of sign up page.'; - $lang->about_agreement = "Sign up agreement will only be displayed when it's not empty"; + $lang->about_enable_openid = 'Cochez si vous voulez permettre OpenID'; + $lang->about_enable_join = 'Cochez si vous voulez permettre l\'inscription'; + $lang->about_enable_confirm = 'Envoyer mél de confirmation pour compléter l\'inscription.'; + $lang->about_enable_ssl = 'Les informations personnelles (Inscription / Modification des informations du membre / Connexion) peuvent être envoyées comme mode SSL(https) si le serveur offre le service SSL.'; + $lang->about_limit_day = 'Vous pouvez limiter le jour de certification après l\'inscription'; + $lang->about_limit_date = 'Utilisateur ne peut pas ouverir la connexion jusqu\'au jour assigné'; + $lang->about_after_login_url = 'Vous pouvez indiquer URL où l\'on va après la connexion. Le vide signifie la page courante.'; + $lang->about_after_logout_url = 'Vous pouvez indiquer URL où l\'on va après la déconnexion. Le vide signifie la page courrante.'; + $lang->about_redirect_url = 'Entrez URL où l\'utilisateur irra après l\'inscription, S.V.P. Si c\'est vide, ce sera la page précédente de la page d\'inscription.'; + $lang->about_agreement = "L'Accord d'Inscription comme Membre sera exposé seulement quand il n'est pas vide."; - $lang->about_image_name = "Allow users to use image name instead of text name"; - $lang->about_image_mark = "Allow users to use mark in front of their names"; - $lang->about_profile_image = 'Allow users to use profile images'; - $lang->about_accept_agreement = "I have read the agreement and agree"; + $lang->about_image_name = "Permettre aux utilisateurs d'utiliser une image pour présenter leurs noms au lieu des lettres"; + $lang->about_image_mark = "Permettre aux utilisateurs d'utiliser une marque devent leurs noms"; + $lang->about_profile_image = 'Permettre aux utilisateurs d\'utiliser une image de profil'; + $lang->about_accept_agreement = "J'ai lu l'Accord et je suis d'accord."; - $lang->about_member_default = 'It will be set as default group on sign up'; + $lang->about_member_default = 'On sera par défaut dans ce groupe après l\'inscription'; - $lang->about_openid = 'When you join as OpenID, basic info like ID or email address will be saved on this site, process for password and certification management will be done on current OpenID offering service'; - $lang->about_openid_leave = 'The secession of OpenID means deletion of your member info from this site.
        If you login after secession, it will be recognized as a new member, so you will no longer have the permission for your ex-written articles.'; + $lang->about_openid = 'Si vous vous inscrivez avec OpenID, vos informations primaires comme le Compte(ID) ou l\'adresse mél sera gardés sur ce site. Mais le procès pour le Mot de Passe et la certification sera fait sur le service courant qui offre OpenID'; + $lang->about_openid_leave = 'La sécession de OpenID nous fait supprimer vos informations du membre dans notre site.
        Si vous ouvrez la connexion après la sécession, nous vous reconnaîtrons comme un nouveau membre, c\'est-à-dire, vous n\'aurez plus la permission sur les articles que vous avez écrits avant.'; - $lang->about_member = "This is a module for creating/modifying/deleting members and managing group or join form.\nYou can manage members by creating new groups, and get additional information by managing join form"; - $lang->about_find_member_account = 'Your account info will be noticed by registered email address.
        Please input email address which you have input on registration, and press "Find Account Info" button.
        '; + $lang->about_find_member_account = 'L\information de votre compte sera annoncé par le mél sur l\'inscription.
        Entrez l\'adresse mél que vous avez entré sur l\'inscription et appuyez le bouton "Recherce l\'Information du Compte".
        '; + + $lang->about_member = "C'est le module pour administrer des membres avec lequel vous pouvez créer/modifier/supprimer des membres ou administrer les groupes et la formule d'inscription.\nVous pouvez administrer membres par création un nouveau groupe, ou gagner les informations additionnelles par l'administration la formule d'inscrioption."; ?> diff --git a/modules/member/lang/jp.lang.php b/modules/member/lang/jp.lang.php index b30290379..6151b33c1 100644 --- a/modules/member/lang/jp.lang.php +++ b/modules/member/lang/jp.lang.php @@ -26,10 +26,10 @@ $lang->group = '所属グループ'; $lang->group_title = 'グループタイトル'; $lang->group_srl = 'グループ番号'; - $lang->signature = '著名'; + $lang->signature = '署名'; $lang->profile_image = 'プロフィール写真'; $lang->profile_image_max_width = '横幅サイズ制限'; - $lang->profile_image_max_height = '縦幅製図制限'; + $lang->profile_image_max_height = '縦幅サイズ制限'; $lang->image_name = 'イメージ名'; $lang->image_name_max_width = '横幅制限サイズ'; $lang->image_name_max_height = '縦幅制限サイズ'; @@ -39,9 +39,9 @@ $lang->signature_max_height = '署名欄の高さの制限'; $lang->enable_openid = 'OpenID使用'; $lang->enable_join = '会員加入を許可する'; - $lang->enable_confirm = '메일 인증 사용'; + $lang->enable_confirm = 'メール認証を使用'; $lang->enable_ssl = 'SSL使用'; - $lang->security_sign_in = 'Sign in using enhanced security'; + $lang->security_sign_in = 'セキュア(SSL)'; $lang->limit_day = '臨時制限日'; $lang->limit_date = '制限日'; $lang->after_login_url = 'ログイン後表示するページのURL'; @@ -56,7 +56,7 @@ $lang->webmaster_name = 'ウェブマスターの名前'; $lang->webmaster_email = 'ウェブマスターのメール'; - $lang->about_keep_signed = '브라우저를 닫더라도 로그인이 계속 유지될 수 있습니다.\n\n로그인 유지 기능을 사용할 경우 다음 접속부터는 로그인을 하실 필요가 없습니다.\n\n단, 게임방, 학교 등 공공장소에서 이용시 개인정보가 유출될 수 있으니 꼭 로그아웃을 해주세요'; + $lang->about_keep_signed = 'ブラウザを閉じてもログイン状態が維持されます。\n\nログイン維持機能を利用すると、次回からログインする必要がなくなります。\n\nただ、インターネットカフェ、学校など公共場所で利用する場合、個人情報が流出する恐れがありますので、必ずログアウトしてください。'; $lang->about_webmaster_name = '認証メールまたはサイト管理時に使用されるウェブマスターの名前を入力してください(デフォルト : webmaster)'; $lang->about_webmaster_email = 'ウェブマスターのメールアドレスを入力してください。'; @@ -102,14 +102,14 @@ $lang->msg_find_account_title = '会員IDどパスワードの情報'; $lang->msg_find_account_info = '登録された会員情報は下記の通りです。'; $lang->msg_find_account_comment = '下のリンクをクリックすると上のパスワードに変更されます。
        ログインしてからパスワードを変更してください。'; - $lang->msg_confirm_account_title = '가입 인증 메일 입니다'; - $lang->msg_confirm_account_info = '가입하신 계정 정보는 아래와 같습니다'; - $lang->msg_confirm_account_comment = '아래 링크를 클릭하시면 가입 인증이 이루어집니다.'; + $lang->msg_confirm_account_title = '認証メールです。'; + $lang->msg_confirm_account_info = '作成した会員の情報'; + $lang->msg_confirm_account_comment = '下記のURLをクリックして会員登録を完了してください。'; $lang->msg_auth_mail_sent = '%s メールでは認証情報を含んだ内容が送信されました。 メールを確認してください。'; $lang->msg_confirm_mail_sent = '%s 메일로 가입 인증 메일이 발송되었습니다. 메일을 확인하세요.'; $lang->msg_invalid_auth_key = '正しくないアカウントの認証要求です。
        IDとパスワードの検索を行うか、サイト管理者にアカウント情報をお問い合わせください。'; $lang->msg_success_authed = '認証が正常に行われ、ログインできました。\n必ず認証メールに記載されたパスワードを利用してお好みのパスワードに変更してください。.'; - $lang->msg_success_confirmed = '가입 인증이 정상적으로 처리 되었습니다.'; + $lang->msg_success_confirmed = '会員登録いただきましてありがとうございます。'; $lang->msg_new_member = '会員追加'; $lang->msg_update_member = '会員情報修正'; @@ -131,7 +131,7 @@ $lang->msg_not_uploaded_image_name = 'イメージ名を登録することができません。'; $lang->msg_not_uploaded_image_mark = 'イメージマークを登録することができません。'; - $lang->msg_accept_agreement = '規約に同意しなければなりません。'; + $lang->msg_accept_agreement = '規約に同意しなければなりません。'; $lang->msg_user_denied = '入力されたユーザIDは使用が中止されました。'; $lang->msg_user_not_confirmed = '아직 메일 인증이 이루어지지 않았습니다. 메일을 확인해 주세요'; @@ -148,7 +148,7 @@ $lang->about_allow_mailing = 'メーリングリストにチェックされていない場合は、全体メールの送信時にメールを受け取りません。'; $lang->about_denied = 'チェックするとユーザIDを使用できないようにします。'; $lang->about_is_admin = 'チェックすると最高管理者権限が取得できます。'; - $lang->about_description = '会員に対する管理者のメモ帳です。'; + $lang->about_member_description = '会員に対する管理者のメモ帳です。'; $lang->about_group = '一つのユーザIDは多数のグループに属することができます。'; $lang->about_column_type = '追加する加入フォームのタイプを指定してください。'; @@ -174,7 +174,7 @@ $lang->about_image_mark = '使用者の名前の前にマークを付けることができます。'; $lang->about_profile_image = 'ユーザのプロフィールイメージが使用できるようにします。'; $lang->about_signature_max_height = '署名欄の高さのサイズを制限します。 (0 もしくは空の場合は制限なし。)'; - $lang->about_accept_agreement = '加入規約をすべて読んだ上で同意します。'; + $lang->about_accept_agreement = '加入規約をすべて読んだ上で同意します。'; $lang->about_member_default = '会員加入時に基本グループとして設定されます。'; diff --git a/modules/member/lang/ko.lang.php b/modules/member/lang/ko.lang.php index a423a554e..04884faf0 100644 --- a/modules/member/lang/ko.lang.php +++ b/modules/member/lang/ko.lang.php @@ -148,7 +148,7 @@ $lang->about_allow_mailing = '메일링 가입이 체크되지 않으면 단체메일 발송시 메일을 받지 않습니다'; $lang->about_denied = '체크시 아이디를 사용할 수 없도록 합니다'; $lang->about_is_admin = '체크시 최고 관리자 권한을 가지게 됩니다'; - $lang->about_description = '회원에 대한 관리자 메모입니다'; + $lang->about_member_description = '회원에 대한 관리자 메모입니다'; $lang->about_group = '한 아이디는 여러개의 group에 속할 수 있습니다'; $lang->about_column_type = '추가하실 가입폼의 형식을 지정해주세요'; diff --git a/modules/member/lang/ru.lang.php b/modules/member/lang/ru.lang.php index 189c0c18f..e716a7d5e 100644 --- a/modules/member/lang/ru.lang.php +++ b/modules/member/lang/ru.lang.php @@ -147,7 +147,7 @@ $lang->about_allow_mailing = "Если Вы не присоединитесь к списку рассылки, Вы не сможете получать почтовые сообщения, направленные Вашей группе"; $lang->about_denied = 'Запретить ID'; $lang->about_is_admin = 'Наделить Суперадминистративными правами'; - $lang->about_description = "Заметки администратора о пользователях"; + $lang->about_member_description = "Заметки администратора о пользователях"; $lang->about_group = 'ID может принадлежать нескольким группам'; $lang->about_column_type = 'Пожалуйста, установите формат дополнительной формы регистрации'; diff --git a/modules/member/lang/zh-CN.lang.php b/modules/member/lang/zh-CN.lang.php index 0c472a9bd..0c00a04bb 100644 --- a/modules/member/lang/zh-CN.lang.php +++ b/modules/member/lang/zh-CN.lang.php @@ -149,7 +149,7 @@ $lang->about_allow_mailing = '如不选择此项,以后不能接收站内发送的重要信息。'; $lang->about_denied = '选择时不能使用此用户名。'; $lang->about_is_admin = '选择时将具有最高管理权限。'; - $lang->about_description = '管理员对会员的笔记。'; + $lang->about_member_description = '管理员对会员的笔记。'; $lang->about_group = '一个用户名可属多个用户组。'; $lang->about_column_type = '请选择要添加的注册表单格式。'; diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 40c228def..423b3752c 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -97,7 +97,7 @@ $args->email_address = Context::get('openid_sreg_email'); $args->user_name = Context::get('openid_sreg_fullname'); if(!$args->user_name) list($args->user_name) = explode('@', $args->email_address); - $args->birthday = Context::get('openid_sreg_dob'); + $args->birthday = str_replace('-','',Context::get('openid_sreg_dob')); // 자체 인증 시도 $output = $this->doLogin($args->user_id); @@ -832,7 +832,7 @@ function putSignature($member_srl, $signature) { $signature = trim(removeHackTag($signature)); - $check_signature = trim(str_replace(array(' ',"\n","\r"),'',strip_tags($signature))); + $check_signature = trim(str_replace(array(' ',"\n","\r"),'',strip_tags($signature,''))); $path = sprintf('files/member_extra_info/signature/%s/', getNumberingPath($member_srl)); $filename = sprintf('%s%d.signature.php', $path, $member_srl); diff --git a/modules/member/openid_lib/class_HTTPRetriever.php b/modules/member/openid_lib/class_HTTPRetriever.php index 5f5d79434..8793919f2 100755 --- a/modules/member/openid_lib/class_HTTPRetriever.php +++ b/modules/member/openid_lib/class_HTTPRetriever.php @@ -409,7 +409,7 @@ class HTTPRetriever { if ($this->caching_highvolume) { $cache_dir .= substr($token,0,2) . '/'; - if (!is_dir($cache_dir)) @mkdir($cache_dir); + if (!is_dir($cache_dir)) @FileHandler::makeDir($cache_dir); } $filename = $cache_dir.$token.'.tmp'; diff --git a/modules/member/skins/default/modify_info.html b/modules/member/skins/default/modify_info.html index a371b09fe..6b1488292 100644 --- a/modules/member/skins/default/modify_info.html +++ b/modules/member/skins/default/modify_info.html @@ -16,7 +16,7 @@ - + @@ -166,29 +166,29 @@ - + - + - + - + - + - +
          @@ -198,7 +198,7 @@
        - + - +
        @@ -230,11 +230,11 @@
        - + - +
        {zdate($val->value,"Y-m-d")}
        diff --git a/modules/member/skins/default/signup_form.html b/modules/member/skins/default/signup_form.html index 6fe437841..b02509d74 100644 --- a/modules/member/skins/default/signup_form.html +++ b/modules/member/skins/default/signup_form.html @@ -2,7 +2,7 @@ - + @@ -127,29 +127,29 @@ - + - + - + - + - + - +
          @@ -159,7 +159,7 @@
        - + - +
        @@ -191,11 +191,11 @@
        - + - +
        {zdate($val->value,"Y-m-d")}
        diff --git a/modules/member/skins/default/skin.xml b/modules/member/skins/default/skin.xml index 20a6d239b..e2b477dbb 100644 --- a/modules/member/skins/default/skin.xml +++ b/modules/member/skins/default/skin.xml @@ -1,89 +1,94 @@ - - + + 회원 기본 스킨 会员模块默认皮肤 会員デフォルトスキン Default Member Skin - Por defecto miembro piel - По умолчанию членом кожи - + Por defecto miembro piel + По умолчанию членом кожи + + 회원모듈의 default스킨 + 디자인 : 서기정 (http://blog.naver.com/addcozy) + HTML/CSS : 정찬명 (http://naradesign.net) + + + 会员模块的默认皮肤。 + 设计 : Ki-Jeong Seo (http://blog.naver.com/addcozy) + HTML/CSS : Chan-Myung Jeong (http://naradesign.net) + + + 会員モジュールのデフォルトスキン + デザイン:ソギジョン (http://blog.naver.com/addcozy) + HTML/CSS:ジョンチャンミョン (http://naradesign.net) + + + default skin of member module + Design : Ki-Jeong Seo (http://blog.naver.com/addcozy) + HTML/CSS : Chan-Myung Jeong (http://naradesign.net) + + + Por defecto de la piel miembro módulo + Diseño: Ki-Jeong Seo (http://blog.naver.com/addcozy) + HTML / CSS: Jeong Chan-Myung (http://naradesign.net) + + + умолчанию кожу члена модуль + Дизайн: Ги Чен Се (http://blog.naver.com/addcozy) + HTML / CSS: Чен-Чен Мен (http://naradesign.net) + + 0.1 + 2007-02-28 + http://www.zeroboard.com + + (주)NHN (株)NHN (株)NHN NHN Corp - NHN Corp - NHN Корп - - 회원모듈의 default스킨 - 디자인 : 서기정 (http://blog.naver.com/addcozy) - HTML/CSS : 정찬명 (http://naradesign.net) - - - 会员模块的默认皮肤。 - 设计 : Ki-Jeong Seo (http://blog.naver.com/addcozy) - HTML/CSS : Chan-Myung Jeong (http://naradesign.net) - - - 会員モジュールのデフォルトスキン - デザイン:ソギジョン (http://blog.naver.com/addcozy) - HTML/CSS:ジョンチャンミョン (http://naradesign.net) - - - default skin of member module - Design : Ki-Jeong Seo (http://blog.naver.com/addcozy) - HTML/CSS : Chan-Myung Jeong (http://naradesign.net) - - - Por defecto de la piel miembro módulo - Diseño: Ki-Jeong Seo (http://blog.naver.com/addcozy) - HTML / CSS: Jeong Chan-Myung (http://naradesign.net) - - - умолчанию кожу члена модуль - Дизайн: Ги Чен Се (http://blog.naver.com/addcozy) - HTML / CSS: Чен-Чен Мен (http://naradesign.net) - - + NHN Corp + NHN Корп + + 기본 默认 デフォルト default - Por defecto - умолчанию + Por defecto + умолчанию - 청록색 - 青緑 - 青绿色 - cyan - Cian - бирюзовый + 청록색 + 青緑 + 青绿色 + cyan + Cian + бирюзовый - 초록색 - - 绿色 - green - Verde - зеленый + 초록색 + + 绿色 + green + Verde + зеленый - 빨간색 - - 红色 - red - Roja - красный + 빨간색 + + 红色 + red + Roja + красный - 보라색 - - 紫色 - purple - Púrpura - Лиловый + 보라색 + + 紫色 + purple + Púrpura + Лиловый 검은색 @@ -94,4 +99,4 @@ 黑色 - + \ No newline at end of file diff --git a/modules/member/tpl/insert_member.html b/modules/member/tpl/insert_member.html index 44188d4e3..b5bd59781 100644 --- a/modules/member/tpl/insert_member.html +++ b/modules/member/tpl/insert_member.html @@ -2,7 +2,7 @@ - + @@ -148,7 +148,7 @@ {$lang->description} -

        {$lang->about_description}

        +

        {$lang->about_member_description}

        @@ -181,29 +181,29 @@ - + - + - + - + - - - + - + @@ -211,7 +211,7 @@ - + - +
        @@ -241,11 +241,11 @@
        - + - +
        {zdate($val->value,"Y-m-d")}
        diff --git a/modules/menu/conf/info.xml b/modules/menu/conf/info.xml index abde57a47..f74346f76 100644 --- a/modules/menu/conf/info.xml +++ b/modules/menu/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-02-28 manager + http://www.zeroboard.com 제로 diff --git a/modules/menu/lang/fr.lang.php b/modules/menu/lang/fr.lang.php new file mode 100644 index 000000000..887d8a941 --- /dev/null +++ b/modules/menu/lang/fr.lang.php @@ -0,0 +1,53 @@ + Traduit par Pierre Duvent + * @brief Paque du langage en français pour le module de Menu + **/ + + $lang->cmd_menu_insert = 'Créer un Menu'; + $lang->cmd_menu_management = 'Administer des Menus'; + + $lang->menu = 'Menu'; + $lang->menu_count = 'Somme de menu'; + $lang->menu_management = 'Administration de Menu'; + $lang->depth = 'Niveau'; + $lang->parent_menu_name = 'Nom de Menu supérieur'; + $lang->menu_name = 'Nom de Menu'; + $lang->menu_srl = 'Numéro de série de Menu'; + $lang->menu_id = 'Nom d\'Identité de Menu'; + $lang->menu_url = 'URL de Menu'; + $lang->menu_open_window = 'Ouvrire une nouvelle fenêtre'; + $lang->menu_expand = 'Étendre'; + $lang->menu_img_btn = 'Bouton en Image'; + $lang->menu_normal_btn = 'Normal'; + $lang->menu_hover_btn = 'Survolé'; + $lang->menu_active_btn = 'Choisi'; + $lang->menu_group_srls = 'Groupes qui peuvent accéder'; + $lang->layout_maker = "Auteur de la Mise en Page"; + $lang->layout_history = "Histoire des Mises à Jour"; + $lang->layout_info = "Information de la Mise en Page"; + $lang->layout_list = 'Liste des Mises en Page'; + $lang->downloaded_list = 'Liste de Téléchargement'; + $lang->limit_menu_depth = 'Niveau permis d\'exposer'; + + $lang->cmd_make_child = 'Ajouter un menu inférieur'; + $lang->cmd_move_to_installed_list = "Voir la liste créé"; + $lang->cmd_enable_move_menu = "Bouger le Menu (glisser-déposer un menu après cocher)"; + $lang->cmd_search_mid = "Rechercher mid"; + + $lang->msg_cannot_delete_for_child = 'Un menu qui a des menus inférieurs ne peut pas être supprimé.'; + + $lang->about_title = 'Entrez un titre facile à vérifier quand on le connecte à un module.'; + $lang->about_menu_management = "Administration de Menu vous permet de composer le menu dans la Mise en Page que vous choisissez.\nVous pouvez créer le menu jusqu'au niveau permis et entrer des informations détaillées si vou cliquez le menu.\nMenu sera étendu si vous cliquez l'image de dossier.\nSi le menu n'est pas représenté normalement, rafraîchir les informations en cliquant le bouton \"Recréer \'antémémoire de fichier\".\n* Menu cré qui passe plus que le niveau permis pourra être représenté incorrectement."; + $lang->about_menu_name = 'Ce nom sera représenté comme le nom de menu si ce n\'est pas le bouton en image ou le bouton pour administrer.'; + $lang->about_menu_url = "C'est le URL où l'on bouge quand on choisit le menu.
        Vous pouvez entrer la valeur d'identité(nom d'idendité) seulement pour lier à un autre module.
        Si nul contenu n'existe, rien n'aura lieu même si l'on clique le menu."; + $lang->about_menu_open_window = 'Vous pouvez faire ouvrir une page dans une nouvelle fenêtre quand le menu est cliqué.'; + $lang->about_menu_expand = 'L\'Arbre de Menu(tree_menu.js) peut faire resté le menu étendu toujours.'; + $lang->about_menu_img_btn = 'Si vous enrégistez un bouton en image, l\'image remplacera automatiquement le bouton en texte, et ce sera représenté dans la Mise en Page.'; + $lang->about_menu_group_srls = 'Si vous choisissez un groupe, les membres de ce groupe seulement peuvent voir le menu. (Si l\'on ouvre un fichier xml, le fichier sera exposé.)'; + + $lang->about_menu = "Le Module de Menu vous aidrera à établir un site complet par l'administration confortable qui arrange les modules créés et liens à la mise en page sans aucun travaux manuels.\nMenu n'est pas un administrateur du Site, mais il a seulement l'information qui peut lier les modules à la mise en page, et on peut représenter les menu en formes diverses par la mise en page."; + + $lang->alert_image_only = "Fichiers d'image seulement peuvent être enrégistrés."; +?> diff --git a/modules/message/conf/info.xml b/modules/message/conf/info.xml index 312b702d6..0d19b8be8 100644 --- a/modules/message/conf/info.xml +++ b/modules/message/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-02-28 base + http://www.zeroboard.com 제로 diff --git a/modules/message/lang/fr.lang.php b/modules/message/lang/fr.lang.php new file mode 100644 index 000000000..cdbec06c6 --- /dev/null +++ b/modules/message/lang/fr.lang.php @@ -0,0 +1,10 @@ + traduit par Pierre Duvent + * @brief Paque du langage en français pour le module de Message + **/ + + $lang->message = 'Montrer Erreurs'; + $lang->about_skin = "Vous pouvez choisir un habillage pour le message des erreurs"; +?> diff --git a/modules/module/conf/info.xml b/modules/module/conf/info.xml index ccddd9976..aa93a4b2a 100644 --- a/modules/module/conf/info.xml +++ b/modules/module/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-02-28 base + http://www.zeroboard.com 제로 diff --git a/modules/module/lang/en.lang.php b/modules/module/lang/en.lang.php index cb32ff66c..b0956b248 100644 --- a/modules/module/lang/en.lang.php +++ b/modules/module/lang/en.lang.php @@ -21,8 +21,9 @@ $lang->category_title = 'Category Title'; $lang->checked_count = 'Number of Checked Articles'; $lang->skin_default_info = 'Default Skin Info'; - $lang->skin_maker = 'Skin Developer'; - $lang->skin_maker_homepage = "Skin Developer's Homepage"; + $lang->skin_author = 'Skin Developer'; + $lang->skin_license = 'License'; + $lang->skin_history = 'Update history'; $lang->module_copy = "Duplicate Module"; $lang->header_script = "Header Script"; diff --git a/modules/module/lang/es.lang.php b/modules/module/lang/es.lang.php index dffe52186..d10dabf6c 100644 --- a/modules/module/lang/es.lang.php +++ b/modules/module/lang/es.lang.php @@ -21,8 +21,9 @@ $lang->category_title = 'Título de categoría'; $lang->checked_count = 'Múmero de los documentos selecionados'; $lang->skin_default_info = 'información del tema predefinido'; - $lang->skin_maker = 'Desarrollador de temas'; - $lang->skin_maker_homepage = "Página Web del desarrollador de temas"; + $lang->skin_author = 'Desarrollador de tema'; + $lang->skin_license = 'License'; + $lang->skin_history = 'Historia de actualización'; $lang->module_copy = "Copy Module"; $lang->header_script = "헤더 스크립트"; diff --git a/modules/module/lang/fr.lang.php b/modules/module/lang/fr.lang.php new file mode 100644 index 000000000..490922a64 --- /dev/null +++ b/modules/module/lang/fr.lang.php @@ -0,0 +1,67 @@ + + * @brief Paque du langage en français pour le module de Module + **/ + + $lang->module_list = "Liste des Modules"; + $lang->module_index = "Liste des Modules"; + $lang->module_category = "Catégorie des Modules"; + $lang->module_info = "Information de Module"; + $lang->add_shortcut = "Ajouter un raccourci dans le menu pour l'administrateur"; + $lang->module_action = "Actions"; + $lang->module_maker = "Développeur du Module"; + $lang->module_license = 'Licence'; + $lang->module_history = "Histoire de Mise à Jour"; + $lang->category_title = "Titre de la Catégorie"; + $lang->header_text = 'Texte en-tête'; + $lang->footer_text = 'Text au bas de page'; + $lang->use_category = 'Utiliser catégorie'; + $lang->category_title = 'Titre de la Catégorie'; + $lang->checked_count = 'somme des Articles choisis'; + $lang->skin_default_info = 'Information fondamental de l\'habillage'; + $lang->skin_author = 'Developpeur de l\'habillage'; + $lang->skin_license = 'Licence'; + $lang->skin_history = 'Histoire des Mises à jour'; + $lang->module_copy = "Copier un Module"; + + $lang->header_script = "Script en-tête"; + $lang->about_header_script = "Vous pouvez entrer un script en html par vous-même entre <header> et </header>.
        Vous pouvez utiliser <script, <style ou <meta tag"; + + $lang->cmd_add_shortcut = "Ajouter un raccourci"; + $lang->cmd_install = "Installer"; + $lang->cmd_update = "Mettre à Jour"; + $lang->cmd_manage_category = 'Administrer des Catégories'; + $lang->cmd_manage_grant = 'Administrer des Permissions'; + $lang->cmd_manage_skin = 'Administrer des Habillages'; + $lang->cmd_manage_document = 'Administrer des Articles'; + + $lang->msg_new_module = "Créer un module"; + $lang->msg_update_module = "Modifier un module"; + $lang->msg_module_name_exists = "Le nom existe déjà. Essayez un autre nom, S.V.P."; + $lang->msg_category_is_null = 'Il n\'y a pas de catégorie enrégistrée.'; + $lang->msg_grant_is_null = 'Il n\'y a pas de liste de permission.'; + $lang->msg_no_checked_document = 'Pas un article est choisi.'; + $lang->msg_move_failed = 'Echoué de bouger'; + $lang->msg_cannot_delete_for_child = 'On ne peut pas supprimer une catégorie qui a des catégories inférieures.'; + + $lang->about_browser_title = "C'est la valeur qui se représentera dans le titre de navigateur Web. Ce sera encore utilisé dans RSS/Rétrolien."; + $lang->about_mid = "Le nom de module sera utilisé comme http://adresse/?mid=ModuleName.\n(alphabet anglais + [alphabet anglais, nombres, et soulignement(_)] sont seulement permis)"; + $lang->about_default = "Si c'est coché, on verra ce module quand on connecte ce site sans aucune valeur de mid(mid=Nulle Valeur)."; + $lang->about_module_category = "Ça vous permet d'administrer le module par la catégorie.\nOn peut administrer la classification des modules à Administration des modules > Catégorie des Modules ."; + $lang->about_description= 'C\'est la description pour la facilité à administrer.'; + $lang->about_default = 'Si c\'est coché, on verra ce module quand on connecte ce site sans aucune valeur de mid(mid=Nulle Valeur).'; + $lang->about_header_text = 'Ce contenu sera exposé en tête du module.(balise en html est disponible)'; + $lang->about_footer_text = 'Ce contenu sera exposé en bas du module.(balise en html est disponible)'; + $lang->about_skin = 'Vous pouvez choisir un habillage pour le module.'; + $lang->about_use_category = 'Cochez pour utiliser la fonction de catégorie, .'; + $lang->about_list_count = 'Vous pouvez configurer combien d\'articles soient exposés dans une page.(20 par défaut)'; + $lang->about_search_list_count = 'Vous pouvez configurer combien d\'articles soient exposés quand vous utilisez la fonction de recherche ou de catégorie. (20 par défaut)'; + $lang->about_page_count = 'Vous pouvez configurer combien de liens pour les Pages à Bouger en bas de chaque page.(10 par défaut)'; + $lang->about_admin_id = 'Vous pouvez désigner un directeur qui aura tous les permissions sur le module.\nVous pouvez entrer plusieurs compte en utilisant
        ,(virgule) \n(mais le directeur ne peut pas encore approcher de la page d\'administrer du site.)'; + $lang->about_grant = 'Si vous ne donnez pas la permission à aucune personne, même les membres qui n\'a pas ouvert la connexion auront la permission. '; + $lang->about_module = "Zeroboard XE se compose des modules sauf la bibliothèque fondamental.\nLe module [Administration des Modules] montera tous les modules installés et vous aidera les administrer."; + + $lang->about_extra_vars_default_value = 'Si plusieurs valeurs sont nécessaires, vous pouvez les connecter avec la virgule(,).'; +?> diff --git a/modules/module/lang/jp.lang.php b/modules/module/lang/jp.lang.php index fbead5517..85f3c99d0 100644 --- a/modules/module/lang/jp.lang.php +++ b/modules/module/lang/jp.lang.php @@ -21,8 +21,9 @@ $lang->category_title = 'カテゴリ名'; $lang->checked_count = '選択された書き込み数'; $lang->skin_default_info = 'スキン基本情報'; - $lang->skin_maker = 'スキン作者'; - $lang->skin_maker_homepage = '作者ホームページ'; + $lang->skin_author = 'スキン作者'; + $lang->skin_license = 'License'; + $lang->skin_history = '変更内容'; $lang->module_copy = "モジュールコピー"; $lang->header_script = "ヘッダースクリプト"; diff --git a/modules/module/lang/ko.lang.php b/modules/module/lang/ko.lang.php index b4502dd91..1e33a3036 100644 --- a/modules/module/lang/ko.lang.php +++ b/modules/module/lang/ko.lang.php @@ -12,7 +12,7 @@ $lang->add_shortcut = "관리자 메뉴에 추가"; $lang->module_action = "동작"; $lang->module_maker = "모듈 제작자"; - $lang->module_license = '라이센스'; + $lang->module_license = '라이선스'; $lang->module_history = '변경 이력 '; $lang->category_title = "분류 이름"; $lang->header_text = '상단 내용'; @@ -21,8 +21,9 @@ $lang->category_title = '분류명'; $lang->checked_count = '선택된 글 수'; $lang->skin_default_info = '스킨 기본정보'; - $lang->skin_maker = '스킨제작자'; - $lang->skin_maker_homepage = '제작자 홈페이지'; + $lang->skin_author = '스킨 제작자'; + $lang->skin_license = '라이선스'; + $lang->skin_history = '변경 이력'; $lang->module_copy = "모듈 복사"; $lang->header_script = "헤더 스크립트"; diff --git a/modules/module/lang/ru.lang.php b/modules/module/lang/ru.lang.php index 39870fa44..054c3fdd7 100644 --- a/modules/module/lang/ru.lang.php +++ b/modules/module/lang/ru.lang.php @@ -21,8 +21,9 @@ $lang->category_title = 'Название категории'; $lang->checked_count = 'Число выбранных статей'; // translator's note: возможно "checked" следует перевести как "проверенных" $lang->skin_default_info = 'Информация стандартного скина'; - $lang->skin_maker = 'Разработчик скина'; - $lang->skin_maker_homepage = "Домашняя страница разработчика"; + $lang->skin_author = 'Разработчик скина'; + $lang->skin_license = 'License'; + $lang->skin_history = 'История обновлений'; $lang->module_copy = "Копировать модуль"; $lang->header_script = "헤더 스크립트"; diff --git a/modules/module/lang/zh-CN.lang.php b/modules/module/lang/zh-CN.lang.php index 6bae1a39c..b7fd5126c 100644 --- a/modules/module/lang/zh-CN.lang.php +++ b/modules/module/lang/zh-CN.lang.php @@ -21,8 +21,9 @@ $lang->category_title = '分类名'; $lang->checked_count = '被选择的主题数'; $lang->skin_default_info = '皮肤默认信息'; - $lang->skin_maker = '皮肤作者'; - $lang->skin_maker_homepage = '作者主页'; + $lang->skin_author = '皮肤作者'; + $lang->skin_license = 'License'; + $lang->skin_history = '更新事项'; $lang->module_copy = "Copy Module"; $lang->header_script = "文件头部脚本"; diff --git a/modules/module/module.model.php b/modules/module/module.model.php index d3e75a860..652c7ecd8 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -236,12 +236,184 @@ // 스킨이름 $skin_info->title = $xml_obj->title->body; + // 작성자 정보 - $skin_info->maker->name = $xml_obj->maker->name->body; - $skin_info->maker->email_address = $xml_obj->maker->attrs->email_address; - $skin_info->maker->homepage = $xml_obj->maker->attrs->link; - $skin_info->maker->date = $xml_obj->maker->attrs->date; - $skin_info->maker->description = $xml_obj->maker->description->body; + if($xml_obj->version && $xml_obj->attrs->version == '0.2') { + // skin format v0.2 + sscanf($xml_obj->date->body, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d); + $skin_info->version = $xml_obj->version->body; + $skin_info->date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d); + $skin_info->homepage = $xml_obj->link->body; + $skin_info->license = $xml_obj->license->body; + $skin_info->license_link = $xml_obj->license->attrs->link; + $skin_info->description = $xml_obj->description->body; + + if(!is_array($xml_obj->author)) $author_list[] = $xml_obj->author; + else $author_list = $xml_obj->author; + + foreach($author_list as $author) { + unset($author_obj); + $author_obj->name = $author->name->body; + $author_obj->email_address = $author->attrs->email_address; + $author_obj->homepage = $author->attrs->link; + $skin_info->author[] = $author_obj; + } + + // 확장변수를 정리 + if($xml_obj->extra_vars) { + $extra_var_groups = $xml_obj->extra_vars->group; + if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars; + if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups); + + foreach($extra_var_groups as $group) { + $extra_vars = $group->var; + if(!is_array($group->var)) $extra_vars = array($group->var); + + foreach($extra_vars as $key => $val) { + unset($obj); + if(!$val->attrs->type) { $val->attrs->type = 'text'; } + + $obj->group = $group->title->body; + $obj->name = $val->attrs->name; + $obj->title = $val->title->body; + $obj->type = $val->attrs->type; + $obj->description = $val->description->body; + $obj->value = $extra_vals->{$obj->name}; + $obj->default = $val->attrs->default; + if(strpos($obj->value, '|@|') != false) { $obj->value = explode('|@|', $obj->value); } + if($obj->type == 'mid_list' && !is_array($obj->value)) { $obj->value = array($obj->value); } + + // 'select'type에서 option목록을 구한다. + if(is_array($val->options)) { + $option_count = count($val->options); + + for($i = 0; $i < $option_count; $i++) { + $obj->options[$i]->title = $val->options[$i]->title->body; + $obj->options[$i]->value = $val->options[$i]->attrs->value; + } + } else { + $obj->options[0]->title = $val->options[0]->title->body; + $obj->options[0]->value = $val->options[0]->attrs->value; + } + + $skin_info->extra_vars[] = $obj; + } + } + } + + // history + if($xml_obj->history) { + if(!is_array($xml_obj->history)) $history[] = $xml_obj->history; + else $history = $xml_obj->history; + + foreach($history as $item) { + unset($obj); + + if($item->author) { + (!is_array($item->author)) ? $obj->author_list[] = $item->author : $obj->author_list = $item->author; + + foreach($obj->author_list as $author) { + unset($author_obj); + $author_obj->name = $author->name->body; + $author_obj->email_address = $author->attrs->email_address; + $author_obj->homepage = $author->attrs->link; + $obj->author[] = $author_obj; + } + } + + $obj->name = $item->name->body; + $obj->email_address = $item->attrs->email_address; + $obj->homepage = $item->attrs->link; + $obj->version = $item->attrs->version; + $obj->date = $item->attrs->date; + $obj->description = $item->description->body; + + if($item->log) { + (!is_array($item->log)) ? $obj->log[] = $item->log : $obj->log = $item->log; + + foreach($obj->log as $log) { + unset($log_obj); + $log_obj->text = $log->body; + $log_obj->link = $log->attrs->link; + $obj->logs[] = $log_obj; + } + } + + $skin_info->history[] = $obj; + } + } + + + } else { + + // skin format v0.1 + sscanf($xml_obj->maker->attrs->date, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d); + + $skin_info->version = $xml_obj->version->body; + $skin_info->date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d); + $skin_info->homepage = $xml_obj->link->body; + $skin_info->license = $xml_obj->license->body; + $skin_info->license_link = $xml_obj->license->attrs->link; + $skin_info->description = $xml_obj->maker->description->body; + + $skin_info->author[0]->name = $xml_obj->maker->name->body; + $skin_info->author[0]->email_address = $xml_obj->maker->attrs->email_address; + $skin_info->author[0]->homepage = $xml_obj->maker->attrs->link; + + // 스킨에서 사용되는 변수들 + $extra_var_groups = $xml_obj->extra_vars->group; + if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars; + if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups); + + foreach($extra_var_groups as $group){ + $extra_vars = $group->var; + + if($extra_vars) { + + if(!is_array($extra_vars)) $extra_vars = array($extra_vars); + + foreach($extra_vars as $var) { + unset($obj); + unset($options); + + $group = $group->title->body; + $name = $var->attrs->name; + $type = $var->attrs->type; + $title = $var->title->body; + $description = $var->description->body; + + // 'select'type에서 option목록을 구한다. + if(is_array($var->default)) { + $option_count = count($var->default); + + for($i = 0; $i < $option_count; $i++) { + $options[$i]->title = $var->default[$i]->body; + $options[$i]->value = $var->default[$i]->body; + } + } else { + $options[0]->title = $var->default->body; + $options[0]->value = $var->default->body; + } + + $width = $var->attrs->width; + $height = $var->attrs->height; + + unset($obj); + $obj->group = $group; + $obj->title = $title; + $obj->description = $description; + $obj->name = $name; + $obj->type = $type; + $obj->options = $options; + $obj->width = $width; + $obj->height = $height; + $obj->default = $options[0]->value; + + $skin_info->extra_vars[] = $obj; + } + } + } + } // colorset $colorset = $xml_obj->colorset->color; @@ -265,54 +437,6 @@ } } - // 스킨에서 사용되는 변수들 - $extra_var_groups = $xml_obj->extra_vars->group; - if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars; - if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups); - - foreach($extra_var_groups as $group){ - $extra_vars = $group->var; - - if($extra_vars) { - - if(!is_array($extra_vars)) $extra_vars = array($extra_vars); - - foreach($extra_vars as $var) { - unset($obj); - - $group = $group->title->body; - $name = $var->attrs->name; - $type = $var->attrs->type; - $title = $var->title->body; - $description = $var->description->body; - - if($var->default) { - unset($default); - if(is_array($var->default)) { - for($i=0;$idefault);$i++) $default[] = $var->default[$i]->body; - } else { - $default = $var->default->body; - } - } - - $width = $var->attrs->width; - $height = $var->attrs->height; - - unset($obj); - $obj->group = $group; - $obj->title = $title; - $obj->description = $description; - $obj->name = $name; - $obj->type = $type; - $obj->default = $default; - $obj->width = $width; - $obj->height = $height; - - $skin_info->extra_vars[] = $obj; - } - } - } - // 메뉴 종류 (레이아웃을 위한 설정) if($xml_obj->menus->menu) { $menus = $xml_obj->menus->menu; @@ -520,6 +644,49 @@ $module_info->author[] = $author_obj; } + // history + if($xml_obj->history) { + if(!is_array($xml_obj->history)) $history[] = $xml_obj->history; + else $history = $xml_obj->history; + + foreach($history as $item) { + unset($obj); + + if($item->author) { + (!is_array($item->author)) ? $obj->author_list[] = $item->author : $obj->author_list = $item->author; + + foreach($obj->author_list as $author) { + unset($author_obj); + $author_obj->name = $author->name->body; + $author_obj->email_address = $author->attrs->email_address; + $author_obj->homepage = $author->attrs->link; + $obj->author[] = $author_obj; + } + } + + $obj->name = $item->name->body; + $obj->email_address = $item->attrs->email_address; + $obj->homepage = $item->attrs->link; + $obj->version = $item->attrs->version; + $obj->date = $item->attrs->date; + $obj->description = $item->description->body; + + if($item->log) { + (!is_array($item->log)) ? $obj->log[] = $item->log : $obj->log = $item->log; + + foreach($obj->log as $log) { + unset($logs_obj); + $logs_obj->text = $log->body; + $logs_obj->link = $log->attrs->link; + $obj->logs[] = $logs_obj; + } + } + + $module_info->history[] = $obj; + } + } + + } else { // module format 0.1 $module_info->title = $xml_obj->title->body; @@ -535,45 +702,6 @@ $module_info->author[] = $author_obj; } - // history - if($xml_obj->history) { - if(!is_array($xml_obj->history)) $history[] = $xml_obj->history; - else $history = $xml_obj->history; - - foreach($history as $item) { - unset($obj); - - if($item->author) { - (!is_array($item->author)) ? $obj->author_list[] = $item->author : $obj->author_list = $item->author; - - foreach($obj->author_list as $author) { - unset($author_obj); - $author_obj->name = $author->name->body; - $author_obj->email_address = $author->attrs->email_address; - $author_obj->homepage = $author->attrs->link; - $obj->author[] = $author_obj; - } - } - - $obj->name = $item->name->body; - $obj->email_address = $item->attrs->email_address; - $obj->homepage = $item->attrs->link; - $obj->version = $item->attrs->version; - $obj->date = $item->attrs->date; - $obj->description = $item->description->body; - - if($item->log) { - (!is_array($item->log)) ? $obj->log[] = $item->log : $obj->log = $item->log; - - foreach($obj->log as $log) { - $obj->logs[] = $log->body; - } - } - - $module_info->history[] = $obj; - } - } - // action 정보를 얻어서 admin_index를 추가 $action_info = $this->getModuleActionXml($module); $module_info->admin_index_act = $action_info->admin_index_act; diff --git a/modules/module/tpl/module_info.html b/modules/module/tpl/module_info.html index 8301904a9..ff0136312 100644 --- a/modules/module/tpl/module_info.html +++ b/modules/module/tpl/module_info.html @@ -34,7 +34,7 @@ {$lang->module_license} {nl2br(trim($module_info->license))} - +

        {$module_info->license_link}

        @@ -73,7 +73,13 @@ diff --git a/modules/module/tpl/skin_info.html b/modules/module/tpl/skin_info.html index 457407e0d..41f90128d 100644 --- a/modules/module/tpl/skin_info.html +++ b/modules/module/tpl/skin_info.html @@ -13,23 +13,81 @@ - {$skin_info->maker->name} + + + {$author->name} ({$author->homepage}, {$author->email_address})
        + + + - {$skin_info->maker->homepage} + {$skin_info->homepage} + - {$skin_info->maker->date} + {zdate($skin_info->date, 'Y-m-d')} + + + {$lang->skin_license} + + {nl2br(trim($skin_info->license))} + +

        {$skin_info->license_link}

        + + + + {$lang->description} - {nl2br(trim($skin_info->maker->description))} + {nl2br(trim($skin_info->description))} + +
        +

        {$lang->skin_history}

        +
        + +
        + + + + + + + + + + +
        + {$history->version}
        + {$history->date} +
        + +

        {$author->name} ({$author->homepage} / {$author->email_address})

        + + +

        {nl2br(trim($history->description))}

        + + + + +
        +
        + + diff --git a/modules/opage/conf/info.xml b/modules/opage/conf/info.xml index 5053ceb21..c17f33f32 100644 --- a/modules/opage/conf/info.xml +++ b/modules/opage/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-09-17 service + http://www.zeroboard.com 제로 diff --git a/modules/opage/lang/fr.lang.php b/modules/opage/lang/fr.lang.php new file mode 100644 index 000000000..62c65f634 --- /dev/null +++ b/modules/opage/lang/fr.lang.php @@ -0,0 +1,15 @@ +opage = "Page Extérieure"; + $lang->opage_path = "Localisation du Document Extérieur"; + $lang->opage_caching_interval = "Temps de antémémoire"; + + $lang->about_opage = "Ce module vous fait pouvoir utiliser des documents extérieurs en html ou en php dans Zeroboard XE.
        Il est possible d'utiliser le chemin absolu ou relatif, et si l'URL commence avec 'http://' , il est possible de représenter des pages extérieurs du serveur."; + $lang->about_opage_path= "Entrez la localisation du document extérieur.
        Non seulement le chemin absolu comme '/path1/path2/sample.php' mais aussi le chemin relatif comme '../path2/sample.php' peuvent être utilisés.
        Si vous entrez le chemin comme 'http://url/sample.php', le résultat sera reçu et puis exposé
        Le chemin suivant, c'est le chemin absolu de Zeroboard Xe.
        "; + $lang->about_opage_caching_interval = "L'unité est minute, et ça exposera des données conservées temporairement pendant le temps assigné.
        Il est recommandé d'utiliser l'antémémoire pendant le temps convenable si beaucoup de ressource est nécessaire pour représenter les données ou l'information d'autre serveur.
        La valeur 0 signifie de ne pas utiliser antémémoire."; +?> diff --git a/modules/page/conf/info.xml b/modules/page/conf/info.xml index fafb2d91e..a00dcd543 100644 --- a/modules/page/conf/info.xml +++ b/modules/page/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-02-28 service + http://www.zeroboard.com 제로 diff --git a/modules/page/lang/fr.lang.php b/modules/page/lang/fr.lang.php new file mode 100644 index 000000000..0972ce0b9 --- /dev/null +++ b/modules/page/lang/fr.lang.php @@ -0,0 +1,11 @@ +page = "Page"; + $lang->about_page = "C'est un module qui peut créer une page complet.\nVous pouvez créer une page dynamique en utilisant des gadgets des Documents derniers ou d'autres. Vous pouvez aussi créer une page avec variété par le composant d'editeur.\nL'URL d'accès est égal celui d'autre module comme mid=module.\nSi c'est choisi par défaut, ce sera la première page du site."; + $lang->cmd_page_modify = "Modifier"; +?> diff --git a/modules/point/conf/info.xml b/modules/point/conf/info.xml index 0f800330b..a645bb050 100644 --- a/modules/point/conf/info.xml +++ b/modules/point/conf/info.xml @@ -39,6 +39,7 @@ 0.1 2007-07-26 accessory + http://www.zeroboard.com 제로 diff --git a/modules/point/lang/fr.lang.php b/modules/point/lang/fr.lang.php new file mode 100644 index 000000000..d5ec5232d --- /dev/null +++ b/modules/point/lang/fr.lang.php @@ -0,0 +1,64 @@ + Traduit par Pierre Duvent + * @brief Paquet du langage en français pour le module de Point + **/ + + $lang->point = "Point"; + $lang->level = "Niveau"; + + $lang->about_point_module = "Vous pouvez donnez des poins sur l'action d'écrire/d'ajouter commentaire/de télécharger vers le serveur/de télécharger vers le PC etc.
        Mais le Module de Point fait seulement de la configuration, et le point sera accumulé quand le Gadget de point est activé."; + $lang->about_act_config = "Chaque module comme celui de panneau ou de blogue a les actions propres comme \"écrire/supprimer/ajouter un commentaire/supprimer un commentaire\".
        Vous pouvez ajouter seulement les valeurs des actions pour appliquer le Système de Point au module excepté celui de panneau ou de blogue.
        Vous pouvez délimiter chaque valeur avec virgule(,)."; + + $lang->max_level = 'Niveau le plus haut'; + $lang->about_max_level = 'Vous pouvez configurer le niveau le plus haut. Les icônes des niveaux doit être réflechissés et le niveau de 1 000 est la valeur maximum que vous pouvez configurer.'; + + $lang->level_icon = 'Icône de Niveau'; + $lang->about_level_icon = 'Le Chemin d\'icône est "./module/point/icons/[niveau].gif" et le niveau le plus haut peut différer de l\'ensemble des icônes. Alors faites attention, S.V.P.'; + + $lang->point_name = 'Nom de Point'; + $lang->about_point_name = 'Vous pouvez nommer le point ou configurer l\'unité du point'; + + $lang->level_point = 'Point de niveau'; + $lang->about_level_point = 'Le Niveau sera ajusté quand le point devient les valeurs aux Points de Niveaux ci-dessous.'; + + $lang->disable_download = 'Interdire de télécharger'; + $lang->about_disable_download = "Il est impossible de télécharger quand il n'y a pas de points suffisants. (Sauf les fichier d'images)"; + + $lang->level_point_calc = 'Calcul des Points par Niveau'; + $lang->expression = 'Entrez la formule en Javascript en utilisant la Variable de Niveau i. ex) Math.pow(i, 2) * 90'; + $lang->cmd_exp_calc = 'Calculer'; + $lang->cmd_exp_reset = 'Restaurer'; + + $lang->cmd_point_recal = 'Restaurer le Point'; + $lang->about_cmd_point_recal = 'Tous les points seront recalculés basé seulement sur les points des articles/commentaires/annexes/inscription.
        Après la restauration, Les membres gagneront le point d\'inscription seulement quand il fait de l\'activité dans le site Web.
        Utilisez cette fonction seulement quand l\'initialisation complète est necessaire comme le cas de transfert des données etc.'; + + $lang->point_link_group = 'Changement du Groupe lié à celui du Niveau'; + $lang->about_point_link_group = 'Si vous designez un niveau à un groupe particulier, les utilisateur s sont assignés dans le groupe quand ils s\'avancent au groupe en gagnant des points. Quand un nouveau groupe est assigné, l\'utilisateur est supprimé du groupe assigné dernierement.'; + + $lang->about_module_point = "Vous pouvez configurer les points pour chaque module. Le module qui n'a pas de valeurs utilisera les points par défaut.
        Tous les points seront restaurés quand on fait de l'action inverse."; + + $lang->point_signup = 'Inscription'; + $lang->point_insert_document = 'Écrire'; + $lang->point_delete_document = 'Supprimer'; + $lang->point_insert_comment = 'Ajouter un Commentaire'; + $lang->point_delete_comment = 'Supprimer un Commentaire'; + $lang->point_upload_file = 'Télécharger les Fichiers sur Serveur'; + $lang->point_delete_file = 'Supprimer un Fichier'; + $lang->point_download_file = 'Télécharger les Fichiers sur PC(Sauf des images)'; + $lang->point_read_document = 'lire'; + $lang->point_voted = 'Être Recommandé'; + $lang->point_blamed = 'Être Blâmé'; + + + $lang->cmd_point_config = 'Configuration primaire'; + $lang->cmd_point_module_config = 'Configuration du Module'; + $lang->cmd_point_act_config = 'Configuration des Actions de chaque fonction'; + $lang->cmd_point_member_list = 'Liste des Points des Membres'; + + $lang->msg_cannot_download = "Vous n'avez pas assez de point pour télécharger"; + + $lang->point_recal_message = 'En train d\'Adjuster le Point. (%d / %d)'; + $lang->point_recal_finished = 'Recalcul des Points est fini.'; +?> diff --git a/modules/point/point.controller.php b/modules/point/point.controller.php index 7ba55e0b3..d159b58c9 100644 --- a/modules/point/point.controller.php +++ b/modules/point/point.controller.php @@ -116,8 +116,8 @@ $comment_point = $config->module_point[$module_srl]['insert_comment']; if(!isset($comment_point)) $comment_point = $config->insert_comment; - // 댓글 포인트가 있으면 처리 - if(!$comment_point) return new Object(); + // 댓글 포인트가 있으면 증감(+) 이면 차감 시도 + if($comment_point>0) return new Object(); // 해당 글에 포함된 모든 댓글을 추출 $cp_args->document_srl = $document_srl; @@ -176,6 +176,9 @@ $point = $config->module_point[$module_srl]['insert_document']; if(!isset($point)) $point = $config->insert_document; + + // 포인트가 마이너스 즉 글을 작성시 마다 차감되는 경우라면 글 삭제시 증가시켜주지 않도록 수정 + if($point < 0) return new Object(); $cur_point -= $point; // 첨부파일 삭제에 대한 포인트 추가 @@ -240,6 +243,9 @@ $point = $config->module_point[$module_srl]['insert_comment']; if(!isset($point)) $point = $config->insert_comment; + // 포인트가 마이너스 즉 댓글을 작성시 마다 차감되는 경우라면 댓글 삭제시 증가시켜주지 않도록 수정 + if($point < 0) return new Object(); + // 포인트 증감 $cur_point -= $point; $this->setPoint($member_srl,$cur_point); diff --git a/modules/point/skins/default/skin.xml b/modules/point/skins/default/skin.xml index 65f3fccd7..4f17c8e64 100644 --- a/modules/point/skins/default/skin.xml +++ b/modules/point/skins/default/skin.xml @@ -1,25 +1,30 @@ - - - 설문조사 기본 스킨 - アンケート調査デフォルトスキン - 投票调查默认皮肤 - Default Skin of Poll - - 제로 - Zero - zero - zero + + + 설문조사 기본 스킨 + アンケート調査デフォルトスキン + 投票调查默认皮肤 + Default Skin of Poll 설문조사 기본 스킨 アンケート調査デフォルトスキン 投票调查默认皮肤 Default Skin of Poll - - - - 기본 - デフォルト - 默认 - Default - - - + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + Zero + zero + zero + + + + + 기본 + デフォルト + 默认 + Default + + + \ No newline at end of file diff --git a/modules/poll/conf/info.xml b/modules/poll/conf/info.xml index 9e3938fe5..8dad02a69 100644 --- a/modules/poll/conf/info.xml +++ b/modules/poll/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-02-28 accessory + http://www.zeroboard.com 제로 diff --git a/modules/poll/lang/fr.lang.php b/modules/poll/lang/fr.lang.php new file mode 100644 index 000000000..b884c3d06 --- /dev/null +++ b/modules/poll/lang/fr.lang.php @@ -0,0 +1,38 @@ + Traduit par Pierre Duvent + * @brief paquet du langage en français pour le module d\'Enquête + **/ + + $lang->poll = "Enquête"; + $lang->poll_stop_date = "Jour d'Expiration"; + $lang->poll_join_count = "Participants"; + $lang->poll_checkcount = "Nombre obligé à choisir"; + + $lang->cmd_poll_list = 'Voir la liste des Enquêtes'; + $lang->cmd_delete_checked_poll = 'Supprimer l\'Enquête choisi'; + $lang->cmd_apply_poll = 'Participer(Soumettre)'; + $lang->cmd_view_result = 'Voir le Résultat'; + $lang->cmd_delete_checked_poll = 'Supprimer l\'Enquête choisi'; http://www.duvent.net/sandbox/?module=module&act=dispModuleAdminInfo&selected_module=poll# + + $lang->success_poll = 'Merci pour participer.'; + + $lang->msg_already_poll = 'Vous avez déjà participé!'; + $lang->msg_cart_is_null = 'Choisissez des Enquêtes à supprimer.'; + $lang->msg_checked_poll_is_deleted = '%d Enquête(s) est(sont) supprimée(s).'; + $lang->msg_check_poll_item = 'Choisissez un des item.\n(Nombre obligé à choisir peut être différent par chaque Enquête.)'; + $lang->msg_cart_is_null = 'Choisissez des Enquêtes à supprimer.'; + $lang->msg_checked_poll_is_deleted = '%d Enquête(s) est(sont) supprimée(s).'; + $lang->msg_poll_not_exists = 'L\'Enquête choisi n\'existe pas.'; + + $lang->cmd_null_item = "Aucune valeur à enrégistrer comme enquête n'existe pas. Essayez encore une fois, S.V.P."; + + $lang->confirm_poll_submit = "Vous voulez sûrement soumettre?"; + + $lang->search_target_list = array( + 'title' => 'Titre', + 'regdate' => 'Jour posté', + 'ipaddress' => 'Adresse IP', + ); +?> diff --git a/modules/poll/skins/default/skin.xml b/modules/poll/skins/default/skin.xml index 69544789b..7ef98c63c 100644 --- a/modules/poll/skins/default/skin.xml +++ b/modules/poll/skins/default/skin.xml @@ -1,25 +1,30 @@ - - - 설문조사 기본 스킨 - 投票系统默认皮肤 - アンケート調査デフォルトスキン - Default Skin of Poll - - 제로 - zero - Zero - zero + + + 설문조사 기본 스킨 + 投票系统默认皮肤 + アンケート調査デフォルトスキン + Default Skin of Poll 설문조사 기본 스킨 投票系统默认皮肤。 アンケート調査デフォルトスキン Default Skin of Poll - - - - 기본 - 默认 - デフォルト - Default - - - + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + zero + Zero + zero + + + + + 기본 + 默认 + デフォルト + Default + + + \ No newline at end of file diff --git a/modules/poll/skins/simple/skin.xml b/modules/poll/skins/simple/skin.xml index 3dd612026..933c99fc1 100644 --- a/modules/poll/skins/simple/skin.xml +++ b/modules/poll/skins/simple/skin.xml @@ -1,19 +1,24 @@ - - - 설문조사 간단한 스킨 - 投票系统简易皮肤 - - 제로 - zero + + + 설문조사 간단한 스킨 + 投票系统简易皮肤 설문조사 간단한 스킨 - 投票系统简易皮肤。 - - - - 기본 - 默认 - デフォルト - Default - - - + 投票系统简易皮肤。 + 0.1 + 2008-04-16 + http://www.zeroboard.com + + + 제로 + zero + + + + + 기본 + 默认 + デフォルト + Default + + + \ No newline at end of file diff --git a/modules/referer/conf/info.xml b/modules/referer/conf/info.xml index 31e6a9070..7cca6f00f 100644 --- a/modules/referer/conf/info.xml +++ b/modules/referer/conf/info.xml @@ -13,6 +13,7 @@ 0.15 2007-11-29 accessory + http://www.zeroboard.com haneul diff --git a/modules/referer/lang/fr.lang.php b/modules/referer/lang/fr.lang.php new file mode 100644 index 000000000..0f5496bc1 --- /dev/null +++ b/modules/referer/lang/fr.lang.php @@ -0,0 +1,10 @@ + Traduit par Pierre Duvent + * @brief Paquet du langage en français pour le Module de référeur + */ + + $lang->referer = "Référeur"; + $lang->ranking = "Rang"; +?> diff --git a/modules/rss/conf/info.xml b/modules/rss/conf/info.xml index 17fc45e4b..5d9ce0c17 100644 --- a/modules/rss/conf/info.xml +++ b/modules/rss/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-02-28 utility + http://www.zeroboard.com 제로 diff --git a/modules/rss/lang/fr.lang.php b/modules/rss/lang/fr.lang.php new file mode 100644 index 000000000..5ff966da5 --- /dev/null +++ b/modules/rss/lang/fr.lang.php @@ -0,0 +1,25 @@ + Traduit par Pierre Duvent + * @brief Paquet du langage en français pour le module de RSS + **/ + + // general words + $lang->rss_disable = "Invalider RSS"; + $lang->rss_type = "Le Format pour imprimer RSS"; + $lang->open_rss = 'Exposer RSS'; + $lang->open_rss_types = array( + 'Y' => 'Exposer Tout', + 'H' => 'Exposer Résumé', + 'N' => 'Ne pas exposer', + ); + + // for description + $lang->about_rss_disable = "Si vous cochez, RSS sera invalidé."; + $lang->about_rss_type = "Vous pouvez désignez le format pour inprimer RSS."; + $lang->about_open_rss = 'Vous pouvez exposez au publique le RSS du module courant ou non.\nN\'importe comment est la permission de l\'article, RSS sera exposé au publique selon son option.'; + + // for error message + $lang->msg_rss_is_disabled = "La fonction RSS est invalidé."; +?> diff --git a/modules/rss/rss.view.php b/modules/rss/rss.view.php index dfd6aa71f..837390879 100644 --- a/modules/rss/rss.view.php +++ b/modules/rss/rss.view.php @@ -42,7 +42,7 @@ // rss config에 등록된 모듈중 rss 공개하는 것들의 module_srl을 고름 if($rss_config->module_config && count($rss_config->module_config)) { foreach($rss_config->module_config as $key => $val) { - if($val->open_rss == 'N') continue; + if($val->open_rss == 'N' || !$val->open_rss) continue; $module_srl_list[] = $val->module_srl; } } @@ -75,6 +75,7 @@ // 해당 모듈이 rss를 사용하는지 확인 $rss_module_config = $rss_config->module_config[$module_info->module_srl]; + if(!$rss_module_config->open_rss) $rss_module_config->open_rss = 'N'; // RSS 비활성화 되었는지 체크하여 비활성화시 에러 출력 if($rss_module_config->open_rss == 'N') return $this->dispError(); diff --git a/modules/rss/tpl/error.html b/modules/rss/tpl/error.html index 9cd7c2cbc..e8fd4b44c 100644 --- a/modules/rss/tpl/error.html +++ b/modules/rss/tpl/error.html @@ -1,4 +1,4 @@ -{''} +{''} {$error} diff --git a/modules/rss/tpl/rss10.html b/modules/rss/tpl/rss10.html index e4c0ee4fa..d4cc8bf5f 100644 --- a/modules/rss/tpl/rss10.html +++ b/modules/rss/tpl/rss10.html @@ -1,4 +1,4 @@ -{''} +{''} diff --git a/modules/rss/tpl/rss20.html b/modules/rss/tpl/rss20.html index 0e0dde531..7bbe62843 100644 --- a/modules/rss/tpl/rss20.html +++ b/modules/rss/tpl/rss20.html @@ -1,4 +1,4 @@ -{''} +{''} diff --git a/modules/rss/tpl/xe_rss.html b/modules/rss/tpl/xe_rss.html index 2d12dbc94..d82d3e089 100644 --- a/modules/rss/tpl/xe_rss.html +++ b/modules/rss/tpl/xe_rss.html @@ -1,4 +1,4 @@ -{''} +{''} diff --git a/modules/session/conf/info.xml b/modules/session/conf/info.xml index 8c5a4f3bb..dc5f9a97a 100644 --- a/modules/session/conf/info.xml +++ b/modules/session/conf/info.xml @@ -18,6 +18,7 @@ 0.1 2008-06-18 base + http://www.zeroboard.com zero diff --git a/modules/session/lang/fr.lang.php b/modules/session/lang/fr.lang.php new file mode 100644 index 000000000..6779aa0ec --- /dev/null +++ b/modules/session/lang/fr.lang.php @@ -0,0 +1,13 @@ + Traduit par Pierre Duvent + * @brief Paquet du langage en français pour le module de la Session + **/ + + $lang->session = 'Session'; + $lang->about_session = "Ce module administre les sessions\nL'arrangement fréquent des sessions pourvoira de meilleur environnement pour votre site Web."; + + $lang->cmd_clear_session = 'Arranger la Session'; + $lang->session_cleared = 'Les données de Session sont arrangées avec succès'; +?> diff --git a/modules/spamfilter/conf/info.xml b/modules/spamfilter/conf/info.xml index c69f43b70..d1c6b5537 100644 --- a/modules/spamfilter/conf/info.xml +++ b/modules/spamfilter/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-02-28 accessory + http://www.zeroboard.com 제로 diff --git a/modules/spamfilter/lang/fr.lang.php b/modules/spamfilter/lang/fr.lang.php new file mode 100644 index 000000000..7fdf47549 --- /dev/null +++ b/modules/spamfilter/lang/fr.lang.php @@ -0,0 +1,32 @@ + Traduit par Pierre Duvent + * @brief Paquet du langage en français pour le module du Filtre contre polluriel + **/ + + // de l'action + $lang->cmd_denied_ip = "Liste noire d'Address IP"; + $lang->cmd_denied_word = "Liste noire des Mots"; + + // mots générals + $lang->spamfilter = "Filtre contre Polluriel"; + $lang->denied_ip = "IP à bloquer"; + $lang->interval = "Intervalle à filtrer contre polluriel"; + $lang->limit_count = "Limite d'affichage"; + $lang->check_trackback = "Vérifier les Rétroliens"; + $lang->word = "Mot"; + + // descriptions + $lang->about_interval = "L'affichage sera bloqué pendant le temps designé."; + $lang->about_limit_count = "Si l'on excéde la limite d'affichage pendant le temps désigné,\nles articles en plus seront reconnus comme polluriel, et l'adresse IP sera bloqué."; + $lang->about_denied_ip = "Vous pouvez bloquer l'étendue de l'adresse IP comme 127.0.0.* en utilisant *."; + $lang->about_denied_word = "Quand vous enrégistrez un mot dans la liste noire, \nl'article qui comporte le mot ne sera pas affichagé."; + $lang->about_check_trackback = "Le rétrolien peut être permis à un seul IP par article."; + + // messages + $lang->msg_alert_limited_by_config = 'L\'Affichage d\'un article en %s secondes n\'est pas permis.\n Si vous essayez encore, votre adresse IP peut être enrégistré dans la liste noire.'; + $lang->msg_alert_denied_word = 'Le mot "%s" n\'est pas permis d\'afficher.'; + $lang->msg_alert_registered_denied_ip = 'Your IP address is blacklisted,\n so you may have limitations on normal using of this site.\n If you have any questions on that matter, please contact to the site administrator. Votre adresse IP est dans la liste noire, \nvous pouvez donc avoir limitation d\'activité dans ce site. Si vous avez quelque question sur ce fait, contactez l\'administrateur du site, S.V.P.'; + $lang->msg_alert_trackback_denied = 'Un seul rétrolien par article est permis.'; +?> diff --git a/modules/spamfilter/spamfilter.controller.php b/modules/spamfilter/spamfilter.controller.php index 76d681210..fc7528492 100644 --- a/modules/spamfilter/spamfilter.controller.php +++ b/modules/spamfilter/spamfilter.controller.php @@ -132,12 +132,14 @@ } // 30분 이내에 1개 이상의 한 C클래스의 ip에서 엮인글 등록 시도시 금지 아이피로 지정하고 해당 ip의 글을 모두 삭제 + /* 호스팅 환경을 감안하여 일단 이 부분은 동작하지 않도록 주석 처리 $count = $oTrackbackModel->getRegistedTrackback(30*60, $ipaddress, $obj->url, $obj->blog_name, $obj->title, $obj->excerpt); if($count > 1) { $oTrackbackController->deleteTrackbackSender(3*60, $ipaddress, $obj->url, $obj->blog_name, $obj->title, $obj->excerpt); $this->insertIP($ipaddress.'.*'); return new Object(-1,'msg_alert_trackback_denied'); } + */ return new Object(); } diff --git a/modules/spamfilter/spamfilter.model.php b/modules/spamfilter/spamfilter.model.php index 3cc2d2e87..49db60dab 100644 --- a/modules/spamfilter/spamfilter.model.php +++ b/modules/spamfilter/spamfilter.model.php @@ -47,7 +47,7 @@ $patterns = array(); for($i=0;$i<$count;$i++) { $ip = str_replace('*','',$ip_list[$i]->ipaddress); - $patterns[] = $ip; + $patterns[] = preg_quote($ip); } $pattern = '/^('.implode($patterns,'|').')/'; @@ -78,7 +78,7 @@ $count = count($word_list); for($i=0;$i<$count;$i++) { $word = $word_list[$i]->word; - if(preg_match('/'.$word.'/is', $text)) return new Object(-1,sprintf(Context::getLang('msg_alert_denied_word'), $word)); + if(preg_match('/'.preg_quote($word,'/').'/is', $text)) return new Object(-1,sprintf(Context::getLang('msg_alert_denied_word'), $word)); } return new Object(); diff --git a/modules/springnote/conf/info.xml b/modules/springnote/conf/info.xml index 9cac8a273..52da38487 100644 --- a/modules/springnote/conf/info.xml +++ b/modules/springnote/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-11-30 service + http://www.zeroboard.com 제로 diff --git a/modules/springnote/lang/fr.lang.php b/modules/springnote/lang/fr.lang.php new file mode 100644 index 000000000..fef1f0bf5 --- /dev/null +++ b/modules/springnote/lang/fr.lang.php @@ -0,0 +1,30 @@ +springnote = "Springnote"; + $lang->springnote_openid = "OpenID"; + $lang->springnote_userkey = "Clé d'Utilisateur"; + $lang->springnote_pageid = "Numéro de Page"; + $lang->springnote_pageid_setup = 'Configurer Numéro de Page'; + $lang->springnote_pageid_option_only = 'Exposer seulement la page choisie (cacher la liste)'; + $lang->springnote_pageid_option_list = 'Exposer de la Page choisie (montrer la list)'; + $lang->springnote_domain = "Désigner le Domaine"; + + $lang->page_url = "URL d'original"; + $lang->page_modified = "Modification dernière"; + $lang->page_modifier = "Modificateur dernier"; + + $lang->cmd_springnote_list = 'Liste des Springnotes'; + $lang->cmd_view_info = 'Information des Springnotes'; + + $lang->about_springnote = "Springnote est un Service de Wiki qui est pourvu par Openmaru.
        Le module de Springnote représente une page particulier du Springnote comme un document interne"; + $lang->about_springnote_openid = "Entrez votre OpenID qui a créé le Springnote, S.V.P."; + $lang->about_springnote_userkey = 'Le Clé d\'Utilisateur est necessaire pour valider le module de Springnote.
        Entrez le Clé d\'Utilisateur produit après avoir entré votre OpenID à [Get User Key], S.V.P.'; + $lang->about_springnote_pageid = 'Entrez pageid(identité de page) si vous voulez représenter une page particulière premièrement.'; + $lang->about_springnote_pageid_setup = "Vous pouvez désigner 'Exposer seulement la page choisie (cacher la liste)', 'Exposer de la Page choisie (montrer la list)' etc quand vous désignez le numéro de page."; + $lang->about_springnote_domain = "Vous pouvez aussi désigner Springnote d'autre domaine. (Entrez seulement la valeur de DOMAINE dans la formule de 'http://DOMAINE.springnote.com' )"; +?> diff --git a/modules/springnote/skins/xe_official/list.html b/modules/springnote/skins/xe_official/list.html index e5ca5f051..e65ebfb35 100644 --- a/modules/springnote/skins/xe_official/list.html +++ b/modules/springnote/skins/xe_official/list.html @@ -1,12 +1,12 @@ - + - + {@$module_info->colorset = "white"} - + @@ -16,7 +16,7 @@ - + {$module_info->header_text} @@ -35,26 +35,26 @@
          - + - +
        • {$lang->cmd_setup}
        • - +
        • {$lang->cmd_management}
        • - +
        • {$lang->cmd_view_member_info}
        • {$lang->cmd_logout}
        • - +
        • {$lang->cmd_signup}
        • {$lang->cmd_login}
        • diff --git a/modules/springnote/skins/xe_official/skin.xml b/modules/springnote/skins/xe_official/skin.xml index fd570b50f..2c4d3216e 100644 --- a/modules/springnote/skins/xe_official/skin.xml +++ b/modules/springnote/skins/xe_official/skin.xml @@ -1,19 +1,24 @@ - - + + 스프링 노트 연동 기본 스킨 SpringNote連動のデフォルトスキン Springnote API默认皮肤 Springnote Module Basic Skin - + 스프링 노트 연동 모듈의 기본 스킨 + SpringNote連動のデフォルトスキン + Springnote API默认皮肤。 + Default Skin of Springnote Module + 0.1 + 2007-11-30 + http://www.zeroboard.com + + 제로 Zero - Zero - Zero - 스프링 노트 연동 모듈의 기본 스킨 - SpringNote連動のデフォルトスキン - Springnote API默认皮肤。 - Default Skin of Springnote Module - + Zero + Zero + + 하얀색(기본) @@ -46,6 +51,7 @@ Purple + 게시판 제목 @@ -58,4 +64,4 @@ Please input the title of board. - + \ No newline at end of file diff --git a/modules/springnote/tpl/skin_info.html b/modules/springnote/tpl/skin_info.html index 6f22d40f3..5e5157d07 100644 --- a/modules/springnote/tpl/skin_info.html +++ b/modules/springnote/tpl/skin_info.html @@ -1,6 +1,6 @@ -
          + @@ -16,20 +16,37 @@ {$skin_info->title} - {$lang->skin_maker} - {$skin_info->maker->name} ({$skin_info->maker->email_address}) + {$lang->skin_author} + + + {$author->name} ({$author->homepage}, {$author->email_address})
          + + + - {$lang->skin_maker_homepage} - {$skin_info->maker->homepage} + {$lang->homepage} + {$skin_info->homepage} + {$lang->date} - {$skin_info->maker->date} + {zdate($skin_info->date, 'Y-m-d')} + + + {$lang->skin_license} + + {nl2br(trim($skin_info->license))} + +

          {$skin_info->license_link}

          + + + + {$lang->description} - {nl2br($skin_info->maker->description)} + {nl2br($skin_info->description)} @@ -39,36 +56,51 @@ {$lang->extra_vars} {$lang->colorset} - + -
          - {$val->title} + {@ $_img_info = getImageSize($val->screenshot); $_height = $_img_info[1]+40; $_width = $_img_info[0]+20; $_talign = "center"; } + + {@ $_width = 200; $_height = 20; $_talign = "left"; } - +
          colorset==$val->name)-->checked="checked"/> + +
          + {$val->title} +
          + + + {@$group = $val->group} + + + + + + + + + +
          {$group}
          {$val->title} - + - + - + @@ -84,33 +116,41 @@ value)-->checked="checked"/> - + + +
          +
          + + +
          + - -
          -
          - - -
          - - - + -

          {nl2br($val->description)}

          +

          {nl2br(trim($val->description))}

          + + + + +
          + diff --git a/modules/tag/conf/info.xml b/modules/tag/conf/info.xml index 41e6bcdf0..038e47e17 100644 --- a/modules/tag/conf/info.xml +++ b/modules/tag/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-02-28 utility + http://www.zeroboard.com 제로 diff --git a/modules/tccommentnotify/ReleaseNote b/modules/tccommentnotify/ReleaseNote deleted file mode 100644 index c82be839d..000000000 --- a/modules/tccommentnotify/ReleaseNote +++ /dev/null @@ -1,4 +0,0 @@ -2008.06.26 v0.2.0 본문에 대한 댓글알림 추가- 기본패키지에 추가 -2008.06.18 v0.1.3 queue에서 잘 안 빠지는 문제 수정 -2008.06.18 v0.1.2 page module로 들어오는 noti가 반영이 안되는 문제 수정 -2008.06.17 v0.1.1 tag strip안되는 문제 수정 diff --git a/modules/tccommentnotify/conf/info.xml b/modules/tccommentnotify/conf/info.xml index 02d27b7e0..20c9f15f3 100644 --- a/modules/tccommentnotify/conf/info.xml +++ b/modules/tccommentnotify/conf/info.xml @@ -1,15 +1,58 @@ - + 댓글알리미 Comment Notifier 댓글알리미 모듈입니다. Comment Notifier will tell you when there's a new comment - 0.2 - 2008-06-02 + 0.2.1 + 2008-07-31 accessory + http://www.zeroboard.com haneul haneul - \ No newline at end of file + + + + haneul + haneul + + 중복 댓글알림 제거 추가 + + + + + + haneul + haneul + + 본문에 대한 댓글알림 추가 + zbXE 기본패키지에 추가 + + + + + haneul + haneul + + queue에서 잘 안 빠지는 문제 수정 + + + + + haneul + haneul + + page module로 들어오는 noti가 반영이 안되는 문제 수정 + + + + + haneul + haneul + + tag strip안되는 문제 수정 + + diff --git a/modules/tccommentnotify/lang/fr.lang.php b/modules/tccommentnotify/lang/fr.lang.php new file mode 100644 index 000000000..5c994da81 --- /dev/null +++ b/modules/tccommentnotify/lang/fr.lang.php @@ -0,0 +1,5 @@ +commentnotify = 'Annonceur de Commentaire'; + $lang->msg_checked_comment_is_deleted = '%d commentaire(s) a(ont) est(sont) supprimé(s)'; + $lang->cmd_delete_checked_comment = 'Supprimer les Item choisis'; +?> diff --git a/modules/tccommentnotify/queries/getChildId.xml b/modules/tccommentnotify/queries/getChildId.xml new file mode 100644 index 000000000..90e272c36 --- /dev/null +++ b/modules/tccommentnotify/queries/getChildId.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/modules/tccommentnotify/tccommentnotify.controller.php b/modules/tccommentnotify/tccommentnotify.controller.php index dd6c47f39..a4a919fb4 100644 --- a/modules/tccommentnotify/tccommentnotify.controller.php +++ b/modules/tccommentnotify/tccommentnotify.controller.php @@ -32,7 +32,7 @@ } } - function insertParent($obj, $siteid, $module_srl) + function insertParent(&$obj, $siteid, $module_srl) { $parentid = getNextSequence(); $args->notified_srl = $parentid; @@ -121,7 +121,7 @@ { if(!file_exists($this->cachedir)) { - mkdir($this->cachedir); + FileHandler::makeDir($this->cachedir); } $fp = fopen($this->cachedir.$this->cachefile, "w"); fwrite($fp, "aa"); @@ -137,6 +137,11 @@ return executeQuery("tccommentnotify.insertQueue", $args); } + function procTestSendComment() + { + $this->sendCommentNotify(16775); + } + function sendCommentNotify($comment_srl) { set_include_path("./libs/PEAR"); @@ -200,14 +205,14 @@ $oModuleModel = &getModel('module'); $module_info = $oModuleModel->getModuleInfoByDocumentSrl($document_srl); - if($this->SendNotifyRequest($parentHomepage, &$module_info, &$oDocument, &$oParent, $parentHomepage, &$oChild, $childHomepage) != 200) + if($this->SendNotifyRequest($parentHomepage, $module_info, $oDocument, $oParent, $parentHomepage, $oChild, $childHomepage) != 200) { $indexedPage = rtrim($parentHomepage, '/').'/index.php'; - $this->SendNotifyRequest($indexedPage, &$module_info, &$oDocument, &$oParent, $parentHomepage, &$oChild, $childHomepage); + $this->SendNotifyRequest($indexedPage, $module_info, $oDocument, $oParent, $parentHomepage, $oChild, $childHomepage); } } - function SendNotifyRequest($target, $module_info, $oDocument, $oParent, $parentHomepage, $oChild, $childHomepage) + function SendNotifyRequest($target, &$module_info, &$oDocument, &$oParent, $parentHomepage, &$oChild, $childHomepage) { $oReq = new HTTP_Request(); $oReq->setURL($target); @@ -262,7 +267,7 @@ return $code; } - function insertCommentNotify($obj, $siteid, $parentid, $module_srl) + function insertCommentNotify(&$obj, $siteid, $parentid, $module_srl) { $myid = getNextSequence(); $args->notified_srl = $myid; @@ -318,6 +323,7 @@ } $parentid = $oModel->GetParentID( $obj->s_no, $siteid, $module_srl, $obj->r1_no ); + $commentid = -1; if( $parentid == -2 ) { $oDB->rollback(); @@ -325,7 +331,7 @@ } else if ( $parentid == -1 ) { - $parentid = $this->insertParent( &$obj, $siteid, $module_srl ); + $parentid = $this->insertParent( $obj, $siteid, $module_srl ); if($parentid == -1) { $oDB->rollback(); @@ -334,10 +340,16 @@ } else { + $commentid = $oModel->GetCommentID( $parentid, $obj->r2_no ); + if($commentid != -1) + { + $oDB->rollback(); + return; + } $this->updateParent($parentid); } - if(!$this->insertCommentNotify(&$obj, $siteid, $parentid, $module_srl)) + if(!$this->insertCommentNotify($obj, $siteid, $parentid, $module_srl)) { $oDB->rollback(); return; diff --git a/modules/tccommentnotify/tccommentnotify.model.php b/modules/tccommentnotify/tccommentnotify.model.php index 44b0871eb..af2c71bf0 100644 --- a/modules/tccommentnotify/tccommentnotify.model.php +++ b/modules/tccommentnotify/tccommentnotify.model.php @@ -47,6 +47,24 @@ return $siteid; } + function GetCommentID( $parent_srl, $remoteid ) + { + $args->parent_srl = $parent_srl; + $args->remoteid = $remoteid; + $output = executeQuery('tccommentnotify.getChildId', $args); + if(!$output->data) + { + return -1; + } + + $commentid = $output->data->notified_srl; + if( is_array($commentid) ) + { + $commentid = array_shift($commentid); + } + return $commentid; + } + function GetParentID( $entry, $siteid, $module_srl, $remoteid ) { $args->entry = $entry; diff --git a/modules/trackback/conf/info.xml b/modules/trackback/conf/info.xml index 9c08aed8d..8d85a2dbe 100644 --- a/modules/trackback/conf/info.xml +++ b/modules/trackback/conf/info.xml @@ -15,6 +15,7 @@ 0.12007-02-28utility + http://www.zeroboard.com 제로 diff --git a/modules/trackback/lang/fr.lang.php b/modules/trackback/lang/fr.lang.php new file mode 100644 index 000000000..0d16fe29a --- /dev/null +++ b/modules/trackback/lang/fr.lang.php @@ -0,0 +1,28 @@ + Traduit par Pierre Duvent + * @brief Paquet du langage en français pour le module de Rétrolien + **/ + $lang->cmd_toggle_checked_trackback = 'Renverser les rétroliens choisis'; + $lang->cmd_delete_checked_trackback = 'Supprimer les rétroliens choisis'; + + $lang->msg_cart_is_null = 'Choisissez un rétrolien à supprimer, S.V.P.'; + $lang->msg_checked_trackback_is_deleted = '%d rétrolien(s) est(sont) supprimé(s).'; + + $lang->send_trackback_url = 'URL de Destination'; + $lang->msg_trackback_url_is_invalid = 'URL de Destination est invalide'; + $lang->msg_trackback_send_success = 'Envoyé avec succès'; + + $lang->search_target_list = array( + 'url' => 'URL objectif', + 'blog_name' => 'Nom du Site objectif', + 'title' => 'Titre', + 'excerpt' => 'Contenu', + 'regdate' => 'Jour', + 'ipaddress' => 'Adresse IP', + ); + + $lang->enable_trackback = "Utiliser le Rétrolien"; + $lang->about_enable_trackback = "Si vous annulez la coché, on arrêtera de ramasser les rétroliens de tous les articles du site"; +?> diff --git a/modules/widget/conf/info.xml b/modules/widget/conf/info.xml index a9b427af9..2c0b19f54 100644 --- a/modules/widget/conf/info.xml +++ b/modules/widget/conf/info.xml @@ -15,6 +15,7 @@ 0.1 2007-02-28 manager + http://www.zeroboard.com 제로 diff --git a/modules/widget/lang/en.lang.php b/modules/widget/lang/en.lang.php index 3c5b7a7c9..97a5ed4eb 100644 --- a/modules/widget/lang/en.lang.php +++ b/modules/widget/lang/en.lang.php @@ -9,6 +9,7 @@ $lang->widget_name = 'Widget Name'; $lang->widget_maker = 'Developer'; + $lang->widget_license = 'License'; $lang->widget_history = 'Update History'; $lang->widget_info = 'Widget Info'; $lang->widget_code = 'Code'; diff --git a/modules/widget/lang/es.lang.php b/modules/widget/lang/es.lang.php index 243640bed..5e0194534 100644 --- a/modules/widget/lang/es.lang.php +++ b/modules/widget/lang/es.lang.php @@ -9,6 +9,7 @@ $lang->widget_name = 'Nombre de Widget'; $lang->widget_maker = 'Desarrollador de Widget'; + $lang->widget_license = 'License'; $lang->widget_history = 'Actualizar la historia'; $lang->widget_info = 'información de Widget'; $lang->widget_code = 'Código'; diff --git a/modules/widget/lang/fr.lang.php b/modules/widget/lang/fr.lang.php new file mode 100644 index 000000000..7dfa0e391 --- /dev/null +++ b/modules/widget/lang/fr.lang.php @@ -0,0 +1,66 @@ + Traduit par Pierre Duvent + * @brief Paquet du langage en français pour le module de gadget + **/ + + $lang->cmd_generate_code = 'Générer le Code'; + + $lang->widget_name = 'Nom de Gadget'; + $lang->widget_maker = 'Développeur'; + $lang->widget_license = 'Licence'; + $lang->widget_history = 'Histoire de Mise à jours'; + $lang->widget_info = 'Information de Gadget'; + $lang->widget_code = 'Code'; + $lang->widget_cache = 'Antémémoire'; + + $lang->widget_fix_width = 'Fixer Largeur'; + $lang->widget_width = 'Largeur'; + $lang->widget_position = 'Position'; + $lang->widget_position_none = 'Ligne suivante'; + $lang->widget_position_left = 'Gauche'; + $lang->widget_position_right = 'Droite'; + $lang->widget_margin = 'Marge'; + $lang->widget_margin_top = 'Marge en tête'; + $lang->widget_margin_right = 'Marge à droite'; + $lang->widget_margin_bottom = 'Marge en pied'; + $lang->widget_margin_left= 'Marge à gauche'; + $lang->about_widget_fix_width = 'Cochez pour fixer la largeur, S.V.P.'; + $lang->about_widget_width = 'Configurez la largeur du gadget, S.V.P.'; + $lang->about_widget_position = 'Choisissez la position si vous voulez représenter plusieurs gadgets dans une ligne, S.V.P.'; + $lang->about_widget_margin = "Vous pouvez désigner la marge de gadget 'de tête, en pied, à droite et à gauche."; + $lang->about_widget_cache = 'Les données d\'antémémoire peuvent être utilisées pendant le temps que vous désignez.'; + + $lang->generated_code = 'Code généré'; + + $lang->msg_widget_is_not_exists = "Le Gadget de(d') '%s' n'existe pas."; + $lang->msg_widget_object_is_null = "L'Objet de '%s' n'a pas pu être créé."; + $lang->msg_widget_proc_is_null = "proc() de '%s' n'a pas pu être exécuté."; + + $lang->about_widget_code = 'Entrez les valeurs qui sont requises par le gadget choisi, et puis cliquz le bouton [Générer le Code] pour générer le code. Le code à appliquer au fichier de modèl se présentera en bas.'; + $lang->about_widget_code_in_page = 'Après entrer les valeurs requies, cliquez le bouton [Ajouter] pour insérer le gadjet dans la page.'; + $lang->about_widget = "Un gadjet est un petit application indépendant qui est utilisé dans une Mise en Page ou dans une module de Page. Un gajet peut être lié avec un module intérieur ou avec un API extérieur ouvert. L'application divers est possible par la configuration. \nVous pouvez directement ajouter un gadget en utilisant la fonction [Générer le Code] sans utiliser un module de Page de Zeroboard XE ni un module de Mise en Page."; + + $lang->cmd_content_insert = "Insérer le Contenu par vous-même"; + $lang->cmd_box_widget_insert = "Insérer le Gadget de Boîte"; + $lang->cmd_remove_all_widgets = "Enlever Tous les Gadgets"; + + $lang->cmd_widget_size = "Taille du Gadget"; + $lang->cmd_widget_align = "Alignement des Gadget"; + $lang->cmd_widget_align_left = "Gauche"; + $lang->cmd_widget_align_right = "Droite"; + $lang->cmd_widget_margin = "Marge"; + $lang->cmd_widget_padding = "Remplissage"; + $lang->cmd_widget_border = "Bordure"; + $lang->cmd_widget_border_solid = "Solide"; + $lang->cmd_widget_border_dotted = "Pointillé"; + $lang->cmd_widget_background_color = "Couleur d'arrière-plan"; + $lang->cmd_widget_background_image_url = "Image d'arrière-plan"; + $lang->cmd_widget_background_image_repeat = "Répéter"; + $lang->cmd_widget_background_image_no_repeat = "Ne pas répéter"; + $lang->cmd_widget_background_image_x_repeat = "X Répéter"; + $lang->cmd_widget_background_image_y_repeat = "Y Répéter"; + $lang->cmd_widget_background_image_x = "X Position"; + $lang->cmd_widget_background_image_y = "Y Position"; +?> diff --git a/modules/widget/lang/jp.lang.php b/modules/widget/lang/jp.lang.php index b693b8575..37ae47b38 100644 --- a/modules/widget/lang/jp.lang.php +++ b/modules/widget/lang/jp.lang.php @@ -9,6 +9,7 @@ $lang->widget_name = 'ウィジェット名'; $lang->widget_maker = 'ウィジェット作者'; + $lang->widget_license = 'License'; $lang->widget_history = '変更内容'; $lang->widget_info = 'ウィジェット情報'; $lang->widget_code = 'コード'; diff --git a/modules/widget/lang/ko.lang.php b/modules/widget/lang/ko.lang.php index 1b0d4ede3..c15cdb712 100644 --- a/modules/widget/lang/ko.lang.php +++ b/modules/widget/lang/ko.lang.php @@ -9,7 +9,8 @@ $lang->widget_name = '위젯 이름'; $lang->widget_maker = '위젯 제작자'; - $lang->widget_history = '변경사항'; + $lang->widget_license = '라이선스'; + $lang->widget_history = '변경 이력'; $lang->widget_info = '위젯 정보'; $lang->widget_code = '코드'; $lang->widget_cache = '캐시'; diff --git a/modules/widget/lang/ru.lang.php b/modules/widget/lang/ru.lang.php index fc54ebf8d..4ccbc873d 100644 --- a/modules/widget/lang/ru.lang.php +++ b/modules/widget/lang/ru.lang.php @@ -9,6 +9,7 @@ $lang->widget_name = 'Имя виджета'; $lang->widget_maker = 'Разработчик виджета'; + $lang->widget_license = 'License'; $lang->widget_history = 'История обновлений'; $lang->widget_info = 'Информация виджета'; $lang->widget_code = 'Код'; diff --git a/modules/widget/lang/zh-CN.lang.php b/modules/widget/lang/zh-CN.lang.php index c641c5aa4..b521f8157 100644 --- a/modules/widget/lang/zh-CN.lang.php +++ b/modules/widget/lang/zh-CN.lang.php @@ -9,6 +9,7 @@ $lang->widget_name = '控件名称'; $lang->widget_maker = '控件作者'; + $lang->widget_license = 'License'; $lang->widget_history = '更新事项'; $lang->widget_info = '控件信息'; $lang->widget_code = '代码'; diff --git a/modules/widget/tpl/downloaded_widget_list.html b/modules/widget/tpl/downloaded_widget_list.html index ec207dcdd..d3630e427 100644 --- a/modules/widget/tpl/downloaded_widget_list.html +++ b/modules/widget/tpl/downloaded_widget_list.html @@ -6,7 +6,7 @@
          -{@ $col_width = array(0,80,120,80,140,70)} +{@ $col_width = array(0,50,120,80,140,70)} {@ $col_width = array(0,80,120,80,140,80)} @@ -42,14 +42,18 @@ ({$val->widget}) - - + + diff --git a/modules/widget/tpl/widget_detail_info.html b/modules/widget/tpl/widget_detail_info.html index 76467bc88..5db6accdf 100644 --- a/modules/widget/tpl/widget_detail_info.html +++ b/modules/widget/tpl/widget_detail_info.html @@ -12,23 +12,79 @@ - + + - + + - + + + + + + + - +
          {$val->version}{$val->author->name}{$val->author->date} + + {$author->name} + + {zdate($val->date, 'Y-m-d')} {$val->path} {$lang->cmd_generate_code}
          - {nl2br(trim($val->author->description))} + {nl2br(trim($val->description))}
          {$lang->author}{$widget_info->author->name} + + {$author->name} ({$author->homepage}, {$author->email_address})
          + +
          {$lang->homepage}{$widget_info->author->homepage}{$widget_info->homepage}
          {$lang->regdate}{$widget_info->author->date}{zdate($widget_info->date, 'Y-m-d')}
          {$lang->widget_license} + {nl2br(trim($widget_info->license))} + +

          {$widget_info->license_link}

          + +
          {$lang->description}{nl2br(trim($widget_info->author->description))}{nl2br(trim($widget_info->description))}
          + +
          +

          {$lang->widget_history}

          +
          + +
          + + + + + + + + + + +
          + {$history->version}
          + {$history->date} +
          + + +

          {$author->name} ({$author->homepage} / {$author->email_address})

          + + + + +

          {nl2br(trim($history->description))}

          + + + +
            +
          • {$log->text}
          • +
          + +
          +
          + + diff --git a/modules/widget/widget.model.php b/modules/widget/widget.model.php index 5f937b26a..d3e8f0278 100644 --- a/modules/widget/widget.model.php +++ b/modules/widget/widget.model.php @@ -19,7 +19,7 @@ **/ function getWidgetPath($widget_name) { $path = sprintf('./widgets/%s/', $widget_name); - if(is_dir($path)) return $path; + if(is_dir($path)) return $path; return ""; } @@ -50,7 +50,7 @@ /** * @brief 모듈의 conf/info.xml 을 읽어서 정보를 구함 - * 이것 역시 캐싱을 통해서 xml parsing 시간을 줄인다.. + * 이것 역시 캐싱을 통해서 xml parsing 시간을 줄인다.. **/ function getWidgetInfo($widget) { // 요청된 모듈의 경로를 구한다. 없으면 return @@ -77,20 +77,85 @@ $buff = ''; - // 위젯의 제목, 버전 - $buff .= sprintf('$widget_info->widget = "%s";', $widget); - $buff .= sprintf('$widget_info->path = "%s";', $widget_path); - $buff .= sprintf('$widget_info->title = "%s";', $xml_obj->title->body); - $buff .= sprintf('$widget_info->version = "%s";', $xml_obj->attrs->version); - $buff .= sprintf('$widget_info->widget_srl = $widget_srl;'); - $buff .= sprintf('$widget_info->widget_title = $widget_title;'); + if($xml_obj->version && $xml_obj->attrs->version == '0.2') { + // 위젯의 제목, 버전 + $buff .= sprintf('$widget_info->widget = "%s";', $widget); + $buff .= sprintf('$widget_info->path = "%s";', $widget_path); + $buff .= sprintf('$widget_info->title = "%s";', $xml_obj->title->body); + $buff .= sprintf('$widget_info->description = "%s";', $xml_obj->description->body); + $buff .= sprintf('$widget_info->version = "%s";', $xml_obj->version->body); + sscanf($xml_obj->date->body, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d); + $date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d); + $buff .= sprintf('$widget_info->date = "%s";', $date); + $buff .= sprintf('$widget_info->homepage = "%s";', $xml_obj->link->body); + $buff .= sprintf('$widget_info->license = "%s";', $xml_obj->license->body); + $buff .= sprintf('$widget_info->license_link = "%s";', $xml_obj->license->attrs->link); + $buff .= sprintf('$widget_info->widget_srl = $widget_srl;'); + $buff .= sprintf('$widget_info->widget_title = $widget_title;'); + + // 작성자 정보 + if(!is_array($xml_obj->author)) $author_list[] = $xml_obj->author; + else $author_list = $xml_obj->author; + + for($i=0; $i < count($author_list); $i++) { + $buff .= sprintf('$widget_info->author['.$i.']->name = "%s";', $author_list[$i]->name->body); + $buff .= sprintf('$widget_info->author['.$i.']->email_address = "%s";', $author_list[$i]->attrs->email_address); + $buff .= sprintf('$widget_info->author['.$i.']->homepage = "%s";', $author_list[$i]->attrs->link); + } + + // history + if($xml_obj->history) { + if(!is_array($xml_obj->history)) $history_list[] = $xml_obj->history; + else $history_list = $xml_obj->history; + + for($i=0; $i < count($history_list); $i++) { + sscanf($history_list[$i]->attrs->date, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d); + $date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d); + $buff .= sprintf('$widget_info->history['.$i.']->description = "%s";', $history_list[$i]->description->body); + $buff .= sprintf('$widget_info->history['.$i.']->version = "%s";', $history_list[$i]->attrs->version); + $buff .= sprintf('$widget_info->history['.$i.']->date = "%s";', $date); + + if($history_list[$i]->author) { + (!is_array($history_list[$i]->author)) ? $obj->author_list[] = $history_list[$i]->author : $obj->author_list = $history_list[$i]->author; + + for($j=0; $j < count($obj->author_list); $j++) { + $buff .= sprintf('$widget_info->history['.$i.']->author['.$j.']->name = "%s";', $obj->author_list[$j]->name->body); + $buff .= sprintf('$widget_info->history['.$i.']->author['.$j.']->email_address = "%s";', $obj->author_list[$j]->attrs->email_address); + $buff .= sprintf('$widget_info->history['.$i.']->author['.$j.']->homepage = "%s";', $obj->author_list[$j]->attrs->link); + } + } + + if($history_list[$i]->log) { + (!is_array($history_list[$i]->log)) ? $obj->log_list[] = $history_list[$i]->log : $obj->log_list = $history_list[$i]->log; + + for($j=0; $j < count($obj->log_list); $j++) { + $buff .= sprintf('$widget_info->history['.$i.']->logs['.$j.']->text = "%s";', $obj->log_list[$j]->body); + $buff .= sprintf('$widget_info->history['.$i.']->logs['.$j.']->link = "%s";', $obj->log_list[$j]->attrs->link); + } + } + } + } + + } else { + + // 위젯의 제목, 버전 + $buff .= sprintf('$widget_info->widget = "%s";', $widget); + $buff .= sprintf('$widget_info->path = "%s";', $widget_path); + $buff .= sprintf('$widget_info->title = "%s";', $xml_obj->title->body); + $buff .= sprintf('$widget_info->description = "%s";', $xml_obj->author->description->body); + $buff .= sprintf('$widget_info->version = "%s";', $xml_obj->attrs->version); + sscanf($xml_obj->author->attrs->date, '%d. %d. %d', $date_obj->y, $date_obj->m, $date_obj->d); + $date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d); + $buff .= sprintf('$widget_info->date = "%s";', $date); + $buff .= sprintf('$widget_info->widget_srl = $widget_srl;'); + $buff .= sprintf('$widget_info->widget_title = $widget_title;'); + + // 작성자 정보 + $buff .= sprintf('$widget_info->author[0]->name = "%s";', $xml_obj->author->name->body); + $buff .= sprintf('$widget_info->author[0]->email_address = "%s";', $xml_obj->author->attrs->email_address); + $buff .= sprintf('$widget_info->author[0]->homepage = "%s";', $xml_obj->author->attrs->link); + } - // 작성자 정보 - $buff .= sprintf('$widget_info->author->name = "%s";', $xml_obj->author->name->body); - $buff .= sprintf('$widget_info->author->email_address = "%s";', $xml_obj->author->attrs->email_address); - $buff .= sprintf('$widget_info->author->homepage = "%s";', $xml_obj->author->attrs->link); - $buff .= sprintf('$widget_info->author->date = "%s";', $xml_obj->author->attrs->date); - $buff .= sprintf('$widget_info->author->description = "%s";', $xml_obj->author->description->body); // 추가 변수 (템플릿에서 사용할 제작자 정의 변수) $extra_var_groups = $xml_obj->extra_vars->group; @@ -99,10 +164,10 @@ foreach($extra_var_groups as $group){ $extra_vars = $group->var; if(!is_array($group->var)) $extra_vars = array($group->var); - + if($extra_vars[0]->attrs->id || $extra_vars[0]->attrs->name) { $extra_var_count = count($extra_vars); - + $buff .= sprintf('$widget_info->extra_var_count = "%s";', $extra_var_count); for($i=0;$i<$extra_var_count;$i++) { unset($var); @@ -118,7 +183,7 @@ $buff .= sprintf('$widget_info->extra_var->%s->type = "%s";', $id, $type); $buff .= sprintf('$widget_info->extra_var->%s->value = $vars->%s;', $id, $id); $buff .= sprintf('$widget_info->extra_var->%s->description = "%s";', $id, str_replace('"','\"',$var->description->body)); - + $options = $var->options; if(!$options) continue; @@ -127,7 +192,7 @@ for($j=0;$j<$options_count;$j++) { $buff .= sprintf('$widget_info->extra_var->%s->options["%s"] = "%s";', $id, $options[$j]->value->body, $options[$j]->name->body); } - + } } } @@ -140,4 +205,4 @@ } } -?> +?> \ No newline at end of file diff --git a/tools/blank_cleaner/lang/en.lang.php b/tools/blank_cleaner/lang/en.lang.php new file mode 100644 index 000000000..1b8e38922 --- /dev/null +++ b/tools/blank_cleaner/lang/en.lang.php @@ -0,0 +1,3 @@ +blank_cleaner = 'Remove Empty Directories'; +?> diff --git a/tools/cache_cleaner/lang/en.lang.php b/tools/cache_cleaner/lang/en.lang.php new file mode 100644 index 000000000..543d42c2f --- /dev/null +++ b/tools/cache_cleaner/lang/en.lang.php @@ -0,0 +1,3 @@ +cache_cleaner = 'Recreat Cache File'; +?> diff --git a/tools/validator/lang/en.lang.php b/tools/validator/lang/en.lang.php new file mode 100644 index 000000000..cf4449fb2 --- /dev/null +++ b/tools/validator/lang/en.lang.php @@ -0,0 +1,14 @@ +validator = 'Validator'; + + $lang->msg_cannot_get_source_files = 'Could not download original files'; + $lang->msg_cannot_get_target_files = 'Could not get installed target list'; + + $lang->files_count = 'Number of Files'; + $lang->source_files = 'Original File'; + $lang->target_files = 'Target File'; + + $lang->leaveout_files = 'Omitted File'; + $lang->modified_files = 'Modified File'; + $lang->additional_files = 'Added File'; +?> diff --git a/widgets/DroArc_clock/conf/info.xml b/widgets/DroArc_clock/conf/info.xml index 0f58ef710..ef775b8d8 100644 --- a/widgets/DroArc_clock/conf/info.xml +++ b/widgets/DroArc_clock/conf/info.xml @@ -1,55 +1,59 @@ - - - 플래시 디지털 시계 - Flash数字时钟 - フラッシュデジタル時計 - Flash Digital Clock + + + 플래시 디지털 시계 + Flash数字时钟 + フラッシュデジタル時計 + Flash Digital Clock Reloj digital Flash - Цифровые Flash часы - - 드로아크 - DroArc - DroArc - DroArc + Цифровые Flash часы + 플래쉬로 된 디지털 시계를 출력합니다. + 显示Flash数字时钟。 + フラッシュのデジタル時計を表示します。 + It will display the digital clock created with flash. + Se mostrará el reloj digital creado con flash. + Это отображает цифровые часы, созданные flash. + 1.0 + 2007-08-09 + + + 드로아크 + DroArc + DroArc + DroArc DroArc - DroArc - 플래쉬로 된 디지털 시계를 출력합니다. - 显示Flash数字时钟。 - フラッシュのデジタル時計を表示します。 - It will display the digital clock created with flash. - Se mostrará el reloj digital creado con flash. - Это отображает цифровые часы, созданные flash. - - - - 가로길이 - 宽度 - 横幅 - Width + DroArc + + + + + text + 가로길이 + 宽度 + 横幅 + Width Ancho - Ширина - text - 가로길이를 지정하실 수 있습니다. (기본 150px) - 可以设置宽度大小。 (默认为 150px) - 横幅のサイズの指定ができます(デフォルト150px)。 - It will be able to set the width. (default is 150px) + Ширина + 가로길이를 지정하실 수 있습니다. (기본 150px) + 可以设置宽度大小。 (默认为 150px) + 横幅のサイズの指定ができます(デフォルト150px)。 + It will be able to set the width. (default is 150px) Se estará en condiciones de establecer el ancho. (Por defecto es 150 px) - Возможно установить ширину. (стандартное значение 150px) - - - 세로길이 - 高度 - 縦幅 - Высота - Height + Возможно установить ширину. (стандартное значение 150px) + + + text + 세로길이 + 高度 + 縦幅 + Высота + Height Altura - text - 세로길이를 지정하실 수 있습니다. (기본 64px) - 可以设置高度大小。(默认为 64px) - 縦幅のサイズの指定ができます(デフォルト64px)。 - It will be able to set the width. (default is 64px) + 세로길이를 지정하실 수 있습니다. (기본 64px) + 可以设置高度大小。(默认为 64px) + 縦幅のサイズの指定ができます(デフォルト64px)。 + It will be able to set the width. (default is 64px) Se estará en condiciones de establecer el ancho. (Por defecto es 64px) - Возможно установить высоту. (стандартное значение 64px) - - - + Возможно установить высоту. (стандартное значение 64px) + + + \ No newline at end of file diff --git a/widgets/DroArc_clock/skins/default/skin.xml b/widgets/DroArc_clock/skins/default/skin.xml index ff18e83b0..aad9c7f50 100644 --- a/widgets/DroArc_clock/skins/default/skin.xml +++ b/widgets/DroArc_clock/skins/default/skin.xml @@ -1,25 +1,30 @@ - - - 플래시 디지털 시계 - Flash数字时钟 - フラッシュデジタル時計 - Flash Digital Clock - - 드로아크 - DroArc - DroArc - DroArc + + + 플래시 디지털 시계 + Flash数字时钟 + フラッシュデジタル時計 + Flash Digital Clock 플래시 디지털 시계를 출력합니다. 자체적인 오른쪽 마우스 메뉴를 사용가능합니다. 显示Flash数字时钟。 フラッシュのデジタル時計を出力します。右クリックマウスのメニューが使用できます。 It displays flash digital clock. - - - - 일반 - 普通 - ノーマル - Normal - - - + 0.1 + 2007-07-26 + http://www.zeroboard.com + + + 드로아크 + DroArc + DroArc + DroArc + + + + + 일반 + 普通 + ノーマル + Normal + + + \ No newline at end of file diff --git a/widgets/archive_list/conf/info.xml b/widgets/archive_list/conf/info.xml index 93125b133..f3057d353 100644 --- a/widgets/archive_list/conf/info.xml +++ b/widgets/archive_list/conf/info.xml @@ -1,73 +1,77 @@ - - + + 월별 보관 현황 출력 存档 月別アーカイブリスト Report of Stored-Articles by Month - Reporte del almacenamiento de documentos por mes + Reporte del almacenamiento de documentos por mes Отчет о размещенных статьях по месяцам - + + 선택된 모듈의 월별 글 보관 현황을 보여줍니다. + 글의 수가 너무 많을 경우 부하가 심해질 수 있습니다. + + + 按月统计被择模块的主题数。 + 主题过多可能会导致服务器超负荷运行。 + + + 選択されたモジュールの月別コンテンツのバックアップリストを表示します。 + 書き込みが多すぎると負荷がかかる場合があります。 + + + This widget displays the present status of stored-articles selected module by month. + If there are lots of articles stored, the server may get a serious load. + + + Este widget muestra el actual estado del almacenamientos de los documentos del dódulo seleccionado por mes. + Si son muchos los documentos almacenados, puede tardar el tiempo de la carga. + + + Этот виджет отображает настоящее состояние размещенных статей, выбранных по месяцу. + Если размещено много статей, то сервер может получить серьезную нагрузку. + + 0.1 + 2007-02-28 + + 제로 zero Zero zero - zero + zero zero - - 선택된 모듈의 월별 글 보관 현황을 보여줍니다. - 글의 수가 너무 많을 경우 부하가 심해질 수 있습니다. - - - 按月统计被择模块的主题数。 - 主题过多可能会导致服务器超负荷运行。 - - - 選択されたモジュールの月別コンテンツのバックアップリストを表示します。 - 書き込みが多すぎると負荷がかかる場合があります。 - - - This widget displays the present status of stored-articles selected module by month. - If there are lots of articles stored, the server may get a serious load. - - - Este widget muestra el actual estado del almacenamientos de los documentos del dódulo seleccionado por mes. - Si son muchos los documentos almacenados, puede tardar el tiempo de la carga. - - - Этот виджет отображает настоящее состояние размещенных статей, выбранных по месяцу. - Если размещено много статей, то сервер может получить серьезную нагрузку. - + + text 제목 栏目名 タイトル Title - Título + Título Заголовок - text 보관 현황 제목으로 출력됩니다. 将显示为存档标题。 バックアップリストのタイトルとして出力されます。 It will be the title of the report. - Este será el título del reporte. + Este será el título del reporte. Это будет заголовком отчета. + mid 대상 모듈 对象模块 モジュール Target Module - Módulo objetivo + Módulo objetivo Модуль назначения - mid 선택하신 모듈에 등록된 글을 대상으로 합니다. 把被选模块作为统计对象。 チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。 The target articles will be the ones submitted in the selected module. - Los documentos ingresados en el módulo seleccionado serán el objetivo. + Los documentos ingresados en el módulo seleccionado serán el objetivo. Статьи назначения будут теми, что были размещены в выбранном модуле. - + \ No newline at end of file diff --git a/widgets/archive_list/skins/blog_archive_list/archive_list.html b/widgets/archive_list/skins/blog_archive_list/archive_list.html index e8b347dfa..633ab68a9 100644 --- a/widgets/archive_list/skins/blog_archive_list/archive_list.html +++ b/widgets/archive_list/skins/blog_archive_list/archive_list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/archive_list/skins/blog_archive_list/skin.xml b/widgets/archive_list/skins/blog_archive_list/skin.xml index 4dd5aa1df..ed73b3ae9 100644 --- a/widgets/archive_list/skins/blog_archive_list/skin.xml +++ b/widgets/archive_list/skins/blog_archive_list/skin.xml @@ -1,55 +1,60 @@ - - - 월별 보관 현황 목록 출력 - 月別のアーカイブリスト表示 - 存档列表默认皮肤 - Monthly Custody Status - - 제로 - Zero - zero - zero - 월별 보관 현황 목록을 출력합니다. - 月別のアーカイブリストを表示します。 - 显示存档列表。 - It displays monthly custody status. - - - - 레이아웃에 맞춤 - レイアウトに合わせる - 随布局 - 레이아웃에 맞춤 - - - 기본 컬러 - デフォルトカラー - 默认颜色 - Default color - - - 청록색 - 青緑 - 青绿色 - cyan - - - 초록색 - - 绿色 - green - - - 빨간색 - - 红色 - red - - - 보라색 - - 紫色 - purple - - - + + + 월별 보관 현황 목록 출력 + 月別のアーカイブリスト表示 + 存档列表默认皮肤 + Monthly Custody Status + 월별 보관 현황 목록을 출력합니다. + 月別のアーカイブリストを表示します。 + 显示存档列表。 + It displays monthly custody status. + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + Zero + zero + zero + + + + + 레이아웃에 맞춤 + レイアウトに合わせる + 随布局 + 레이아웃에 맞춤 + + + 기본 컬러 + デフォルトカラー + 默认颜色 + Default color + + + 청록색 + 青緑 + 青绿色 + cyan + + + 초록색 + + 绿色 + green + + + 빨간색 + + 红色 + red + + + 보라색 + + 紫色 + purple + + + \ No newline at end of file diff --git a/widgets/calendar/conf/info.xml b/widgets/calendar/conf/info.xml index 4bdfc205e..887b9d168 100644 --- a/widgets/calendar/conf/info.xml +++ b/widgets/calendar/conf/info.xml @@ -1,40 +1,44 @@ - - - 달력 출력 - 日历 - カレンダー表示 - Calendar + + + 달력 출력 + 日历 + カレンダー表示 + Calendar Mostrar Calendario - Отображение календаря - - 제로 - zero - Zero - zero + Отображение календаря + 달력을 표시하고 등록된 글이 있는 날에 표시와 링크를 해줍니다. + 显示日历,发表主题日期将跟日历相关联。 + カレンダーを表示して書き込みがあった日にリンクを張ります。 + This widget displays a calendar, and if there is an article submitted, the date will be highlighted with its url link. + Este widget muestra el calendario, y si hay documentos agregados, la fecha se verá con un color más claro enlazado con URL. + Этот виджет отображает календарь, и если отправляется статья, данные будут выделены их ссылкой. + 0.1 + 2007-02-28 + + + 제로 + zero + Zero + zero zero - zero - 달력을 표시하고 등록된 글이 있는 날에 표시와 링크를 해줍니다. - 显示日历,发表主题日期将跟日历相关联。 - カレンダーを表示して書き込みがあった日にリンクを張ります。 - This widget displays a calendar, and if there is an article submitted, the date will be highlighted with its url link. - Este widget muestra el calendario, y si hay documentos agregados, la fecha se verá con un color más claro enlazado con URL. - Этот виджет отображает календарь, и если отправляется статья, данные будут выделены их ссылкой. - - - - 대상 모듈 - 模块对象 - モジュール - Target Module + zero + + + + + mid + 대상 모듈 + 模块对象 + モジュール + Target Module Módulo objetivo - Модуль назначения - mid - 선택하신 모듈에 등록된 글을 대상으로 합니다. - 将把被选模块作为关联对象。 - チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。 - The target articles will be the ones submitted in the selected module. + Модуль назначения + 선택하신 모듈에 등록된 글을 대상으로 합니다. + 将把被选模块作为关联对象。 + チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。 + The target articles will be the ones submitted in the selected module. Los documentos del módulo seleccionado serán objetivos. - Статьи назначения будут теми, что были размещены в выбранном модуле. - - - + Статьи назначения будут теми, что были размещены в выбранном модуле. + + + \ No newline at end of file diff --git a/widgets/calendar/skins/blog_calendar_list/calendar.html b/widgets/calendar/skins/blog_calendar_list/calendar.html index 84bc93734..eade8adbf 100644 --- a/widgets/calendar/skins/blog_calendar_list/calendar.html +++ b/widgets/calendar/skins/blog_calendar_list/calendar.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/calendar/skins/blog_calendar_list/skin.xml b/widgets/calendar/skins/blog_calendar_list/skin.xml index 52413df69..ad7e03f39 100644 --- a/widgets/calendar/skins/blog_calendar_list/skin.xml +++ b/widgets/calendar/skins/blog_calendar_list/skin.xml @@ -1,31 +1,36 @@ - - - 달력 및 글 현황 표시 - カレンダーと書き込みリンク表示 - 日历默认皮肤 - Display Calendar and Article Status - - 제로 - Zero - zero - zero - calendar위젯의 블로그에 어울리는 기본 스킨입니다. - カレンダー(calendar)ウィジェットのブログに適したデフォルトスキンです。 - 适合用于博客的日历默认皮肤。 - It is a default skin which matches with calendar widget's blog well. - - - - 기본 컬러 - デフォルトカラー - 默认颜色 - Default color - - - 레이아웃에 맞춤 - レイアウトに合わせる - 随布局 - 레이아웃에 맞춤 - - - + + + 달력 및 글 현황 표시 + カレンダーと書き込みリンク表示 + 日历默认皮肤 + Display Calendar and Article Status + calendar위젯의 블로그에 어울리는 기본 스킨입니다. + カレンダー(calendar)ウィジェットのブログに適したデフォルトスキンです。 + 适合用于博客的日历默认皮肤。 + It is a default skin which matches with calendar widget's blog well. + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + Zero + zero + zero + + + + + 기본 컬러 + デフォルトカラー + 默认颜色 + Default color + + + 레이아웃에 맞춤 + レイアウトに合わせる + 随布局 + 레이아웃에 맞춤 + + + \ No newline at end of file diff --git a/widgets/category/conf/info.xml b/widgets/category/conf/info.xml index 165dd7e4a..b49a2f42a 100644 --- a/widgets/category/conf/info.xml +++ b/widgets/category/conf/info.xml @@ -1,40 +1,44 @@ - - + + 게시글 분류 출력기 - Article Category - 게시글 분류 출력기 - 게시글 분류 출력기 - 書き込みのカテゴリ表示 - 博客样式主题分类 - + Article Category + 게시글 분류 출력기 + 게시글 분류 출력기 + 書き込みのカテゴリ表示 + 博客样式主题分类 + 게시판등 문서모듈의 분류를 사용하는 모듈에서 분류를 추출하여 블로그 카테고리와 같이 출력하는 기능입니다. + This widget displays categories of document from modules that enabled to use category function. + 게시판등 문서모듈의 분류를 사용하는 모듈에서 분류를 추출하여 블로그 카테고리와 같이 출력하는 기능입니다. + 게시판등 문서모듈의 분류를 사용하는 모듈에서 분류를 추출하여 블로그 카테고리와 같이 출력하는 기능입니다. + 掲示板など、ドキュメントモジュールのカテゴリを使用するモジュールでカテゴリを抽出してブログのカテゴリのように表示する機能です。 + 把版面模块中的分类显示为类似于博客分类样式的功能。 + 0.1 + 2007-02-28 + + 제로 - zero - zero - zero - Zero - zero - 게시판등 문서모듈의 분류를 사용하는 모듈에서 분류를 추출하여 블로그 카테고리와 같이 출력하는 기능입니다. - This widget displays categories of document from modules that enabled to use category function. - 게시판등 문서모듈의 분류를 사용하는 모듈에서 분류를 추출하여 블로그 카테고리와 같이 출력하는 기능입니다. - 게시판등 문서모듈의 분류를 사용하는 모듈에서 분류를 추출하여 블로그 카테고리와 같이 출력하는 기능입니다. - 掲示板など、ドキュメントモジュールのカテゴリを使用するモジュールでカテゴリを抽出してブログのカテゴリのように表示する機能です。 - 把版面模块中的分类显示为类似于博客分类样式的功能。 + zero + zero + zero + Zero + zero + - 대상 모듈 - 대상 모듈 - Target Module - 対象モジュール - 대상 모듈 - 对象模块 mid_list + 대상 모듈 + 대상 모듈 + Target Module + 対象モジュール + 대상 모듈 + 对象模块 선택하신 모듈을 대상으로 합니다. 꼭 한개의 모듈만 선택해 주세요. - Selected module will be target. Please select only 1 (one) module. - 선택하신 모듈을 대상으로 합니다. 꼭 한개의 모듈만 선택해 주세요. - 선택하신 모듈을 대상으로 합니다. 꼭 한개의 모듈만 선택해 주세요. - 選択されたモジュールを対象とします。必ず一つのモジュールのみ選択してください。 - 将把被选模块当中的主题作为对象。只能选一个模块。 + Selected module will be target. Please select only 1 (one) module. + 선택하신 모듈을 대상으로 합니다. 꼭 한개의 모듈만 선택해 주세요. + 선택하신 모듈을 대상으로 합니다. 꼭 한개의 모듈만 선택해 주세요. + 選択されたモジュールを対象とします。必ず一つのモジュールのみ選択してください。 + 将把被选模块当中的主题作为对象。只能选一个模块。 - + \ No newline at end of file diff --git a/widgets/category/skins/default/skin.xml b/widgets/category/skins/default/skin.xml index 8751151d4..88fe6557b 100644 --- a/widgets/category/skins/default/skin.xml +++ b/widgets/category/skins/default/skin.xml @@ -1,25 +1,30 @@ - - - 분류 출력 기본 스킨 - カテゴリ表示デフォルトスキン - Default Skin of Category Widget - 博客样式分类默认皮肤 - - 제로 - Zero - Zero - Zero + + + 분류 출력 기본 스킨 + カテゴリ表示デフォルトスキン + Default Skin of Category Widget + 博客样式分类默认皮肤 게시글 분류를 출력하는 기본 스킨입니다 書き込みのカテゴリを表示表示させるデフォルトスキンです。 - This is a widget that displays categories of articles. - 把主题分类显示为博客样式的默认皮肤。 - - - - 기본 컬러 - デフォルトカラー - Default Color - 默认颜色 - - - + This is a widget that displays categories of articles. + 把主题分类显示为博客样式的默认皮肤。 + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + Zero + Zero + Zero + + + + + 기본 컬러 + デフォルトカラー + Default Color + 默认颜色 + + + \ No newline at end of file diff --git a/widgets/counter_status/conf/info.xml b/widgets/counter_status/conf/info.xml index bf0c23758..f02eaa0ce 100644 --- a/widgets/counter_status/conf/info.xml +++ b/widgets/counter_status/conf/info.xml @@ -1,45 +1,47 @@ - - + + 기본 카운터 위젯 デフォルト接続カウンター - Counter + Counter Widget de Contador Básico 计数器 - Базовый виджет счетчика - + Базовый виджет счетчика + + 기본 카운터 모듈을 이용하여 전체, 어제, 오늘의 접속현황을 표시합니다. + counter모듈이 설치되어 있어야 하고 counter 애드온이 켜져 있어야 합니다. + + + デフォルトの接続カウンターモジュールを利用して、トータル、昨日、今日の接続状況を表示します。 + カウンター(counter)モジュールがインストールされていて、 + 接続カウンター(counter)アドオンが「使用」に設定されていなければなりません。 + + + This widget displays the number of people who have visited yesterday and today by using the basic counter module. + It will also display the total count. + To get this, the counter module should be installed and the counter add-on should be turned on. + + + Este widget de contador básico muestra los números de las personas visitadas en el día de ayer, hoy, y el total. + Debe instalar el módulo del contador y debe activar el addon del contador. + + + 利用访问统计模块显示总访问量以及昨天,今日的访问统计流量。 + 要想使用此组件必须先安装访问统计模块且得激活访问统计插件。 + + + Этот виджет отображает количество посетителей за вчера и сегодня, используя базовый модуль счетчика. + Он также отображает полное число визитов. + Для работы, модуль счетчика должен быть установлен и аддон счетчика должен быть включен. + + 0.1 + 2007-02-28 + + 제로 Zero zero - zero + zero zero zero - - 기본 카운터 모듈을 이용하여 전체, 어제, 오늘의 접속현황을 표시합니다. - counter모듈이 설치되어 있어야 하고 counter 애드온이 켜져 있어야 합니다. - - - デフォルトの接続カウンターモジュールを利用して、トータル、昨日、今日の接続状況を表示します。 - カウンター(counter)モジュールがインストールされていて、 - 接続カウンター(counter)アドオンが「使用」に設定されていなければなりません。 - - - This widget displays the number of people who have visited yesterday and today by using the basic counter module. - It will also display the total count. - To get this, the counter module should be installed and the counter add-on should be turned on. - - - Este widget de contador básico muestra los números de las personas visitadas en el día de ayer, hoy, y el total. - Debe instalar el módulo del contador y debe activar el addon del contador. - - - 利用访问统计模块显示总访问量以及昨天,今日的访问统计流量。 - 要想使用此组件必须先安装访问统计模块且得激活访问统计插件。 - - - Этот виджет отображает количество посетителей за вчера и сегодня, используя базовый модуль счетчика. - Он также отображает полное число визитов. - Для работы, модуль счетчика должен быть установлен и аддон счетчика должен быть включен. - - - + \ No newline at end of file diff --git a/widgets/counter_status/skins/default/skin.xml b/widgets/counter_status/skins/default/skin.xml index 337dfc05a..8277da2d3 100644 --- a/widgets/counter_status/skins/default/skin.xml +++ b/widgets/counter_status/skins/default/skin.xml @@ -1,25 +1,30 @@ - - - 접속자 현황 출력 기본 스킨 - 接続統計表示のデフォルトスキン - 计数器默认皮肤 - Default Counter Skin - - 제로 - Zero - zero - zero + + + 접속자 현황 출력 기본 스킨 + 接続統計表示のデフォルトスキン + 计数器默认皮肤 + Default Counter Skin counter_status 의 기본 스킨 接続統計(counter_status)のデフォルトスキン 计数器默认皮肤。 Default skin of counter_status - - - - 기본 - デフォルト - default - 默认 - - - + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + Zero + zero + zero + + + + + 기본 + デフォルト + default + 默认 + + + \ No newline at end of file diff --git a/widgets/counter_status/skins/styx_flash/skin.xml b/widgets/counter_status/skins/styx_flash/skin.xml index 3c593d823..d9c4d71cd 100644 --- a/widgets/counter_status/skins/styx_flash/skin.xml +++ b/widgets/counter_status/skins/styx_flash/skin.xml @@ -1,24 +1,29 @@ - - - 스틱스 플래시 카운터 - スティクスフラッシュカウンター - styx flash 计数器皮肤 - Styx Flash Counter - - styx - styx - styx + + + 스틱스 플래시 카운터 + スティクスフラッシュカウンター + styx flash 计数器皮肤 + Styx Flash Counter 플래시로 오늘,어제,전체 카운터 현황을 출력해주시는 위젯입니다. フラッシュで、今日、昨日、トータルの接続数を表示させるウィジェットです。 用flash显示今天,昨天,全部访问统计的控件。 This is a widget that displays today, yesterday, all counter status with flash. - - - - 기본 - デフォルト - 默认 - default - - - + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + styx + styx + styx + + + + + 기본 + デフォルト + 默认 + default + + + \ No newline at end of file diff --git a/widgets/forum/conf/info.xml b/widgets/forum/conf/info.xml index 5509cf4d2..02abafef5 100644 --- a/widgets/forum/conf/info.xml +++ b/widgets/forum/conf/info.xml @@ -1,94 +1,98 @@ - - - 포럼형 최근 게시물 - 论坛主界面样式列表 - フォーラムスタイルの最新の記事を表示 - Forum Style Newest Articles - Pantalla Foro estilo más reciente de artículos - Дисплей стиле форума новейших статей - - 제로 - zero - zero - Zero - zero - zero - - 한개 또는 여러개의 게시판을 포럼형식으로 정리하여 노출하는 위젯입니다. - 대상 게시판에 설정되어 있는 제목과 설명을 이용하여 설명을 출력합니다. - - - 把一个或多个版面显示为论坛主界面样式的控件。 - 论坛标题及说明参考各对象版面里设置的标题和说明。 - - - このウィジェットの最新の記事を表示1つまたは複数の委員会からのフォーラムのスタイルです。説明が表示されるターゲットボードのタイトルと説明しています。 - - - This widget displays newest articles from one or more board in forum style. - Description will be displayed with target board's title and description. - - - Este widget muestra más reciente de artículos de uno o varios bordo de estilo en el foro. Descripción se mostrará con la meta bordo del título y la descripción. - - - Этот виджет отображает новейшие изделия из одной или нескольких борту в стиле форума. Описание будет отображаться с целевыми борту название и описание. - - - - - 제목 - 栏目名 - タイトル - Title + + + 포럼형 최근 게시물 + 论坛主界面样式列表 + フォーラムスタイルの最新の記事を表示 + Forum Style Newest Articles + Pantalla Foro estilo más reciente de artículos + Дисплей стиле форума новейших статей + + 한개 또는 여러개의 게시판을 포럼형식으로 정리하여 노출하는 위젯입니다. + 대상 게시판에 설정되어 있는 제목과 설명을 이용하여 설명을 출력합니다. + + + 把一个或多个版面显示为论坛主界面样式的控件。 + 论坛标题及说明参考各对象版面里设置的标题和说明。 + + + このウィジェットの最新の記事を表示1つまたは複数の委員会からのフォーラムのスタイルです。説明が表示されるターゲットボードのタイトルと説明しています。 + + + This widget displays newest articles from one or more board in forum style. + Description will be displayed with target board's title and description. + + + Este widget muestra más reciente de artículos de uno o varios bordo de estilo en el foro. Descripción se mostrará con la meta bordo del título y la descripción. + + + Этот виджет отображает новейшие изделия из одной или нескольких борту в стиле форума. Описание будет отображаться с целевыми борту название и описание. + + 0.1 + 2008-01-23 + + + 제로 + zero + zero + Zero + zero + zero + + + + + text + 제목 + 栏目名 + タイトル + Title Título - Заголовок - text - - - new 표시 시간 (hours) - new图标显示时间(hours) - Newの表示時間 (Hours) - Duration of indication for new item + Заголовок + + + text + new 표시 시간 (hours) + new图标显示时间(hours) + Newの表示時間 (Hours) + Duration of indication for new item Duration of indication for new item - Длительность индикации для новых объектов - text - 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. (시간 단위) - 可以设置最新更新主题的new图标显示时间。 - 新しく登録された書き込みに対して「New」の表示時間を指定します(時間単位)。 - You may set the duration of indication for fresh item. (unit is hour) + Длительность индикации для новых объектов + 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. (시간 단위) + 可以设置最新更新主题的new图标显示时间。 + 新しく登録された書き込みに対して「New」の表示時間を指定します(時間単位)。 + You may set the duration of indication for fresh item. (unit is hour) Usted puede configurar la duración de la indicación de un nuevo tema. (Unidad es hora) - Вы можете установить длительность индикации для нового объекта. (единица - час) - - - 제목 글자수 - タイトルの文字数 - 标题字数 - Length of Subject - Número de letras del título - Длина темы - text - 제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다) - タイトルの文字数が指定できます(「0」または空欄の場合は、文字数を制限しません)。 - 可以设置标题的字数。(0或留空为不限) - Length of Subject can be assigned. (0 or blank value will not restrict the length) - El largo del título puede ser asignado. (valor 0 o en blanco no restringe el largo) - Длина темы может быть присвоена. (0 или пустое значение не будут ограничивать длину) - - - 대상 모듈 - 模块对象 - モジュール - Target Module + Вы можете установить длительность индикации для нового объекта. (единица - час) + + + text + 제목 글자수 + タイトルの文字数 + 标题字数 + Length of Subject + Número de letras del título + Длина темы + 제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다) + タイトルの文字数が指定できます(「0」または空欄の場合は、文字数を制限しません)。 + 可以设置标题的字数。(0或留空为不限) + Length of Subject can be assigned. (0 or blank value will not restrict the length) + El largo del título puede ser asignado. (valor 0 o en blanco no restringe el largo) + Длина темы может быть присвоена. (0 или пустое значение не будут ограничивать длину) + + + mid_list + 대상 모듈 + 模块对象 + モジュール + Target Module Módulo Objetivo - Модуль назначения - mid_list - 선택하신 모듈에 등록된 글을 대상으로 합니다. - 将把被选模块当中的主题作为对象。 - チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。 - The target articles to be sorted will be the ones submitted in the selected module. + Модуль назначения + 선택하신 모듈에 등록된 글을 대상으로 합니다. + 将把被选模块当中的主题作为对象。 + チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。 + The target articles to be sorted will be the ones submitted in the selected module. El objetivo de los documentos agregados serán los del módulo selccionado. - Статьи назначения для сортировки будут теми, что были размещены в выбранном модуле. - - - + Статьи назначения для сортировки будут теми, что были размещены в выбранном модуле. + + + \ No newline at end of file diff --git a/widgets/forum/skins/default/skin.xml b/widgets/forum/skins/default/skin.xml index 32e6008b1..5ebb26d0e 100644 --- a/widgets/forum/skins/default/skin.xml +++ b/widgets/forum/skins/default/skin.xml @@ -1,33 +1,30 @@ - - - 기본 포럼형 위젯 스킨 - 기본 포럼형 위젯 스킨 - 论坛主界面样式列表默认皮肤 - 기본 포럼형 위젯 스킨 - - 제로 - zero - zero - zero - - 포럼형 위젯의 기본 스킨입니다. - - - 포럼형 위젯의 기본 스킨입니다. - - - 论坛主界面样式列表默认皮肤。 - - - 포럼형 위젯의 기본 스킨입니다. - - - - - 흰색 바탕용 - 白い背景用 - 白色背景 - White Background - - - + + + 기본 포럼형 위젯 스킨 + 기본 포럼형 위젯 스킨 + 论坛主界面样式列表默认皮肤 + 기본 포럼형 위젯 스킨 + 포럼형 위젯의 기본 스킨입니다. + 포럼형 위젯의 기본 스킨입니다. + 论坛主界面样式列表默认皮肤。 + 포럼형 위젯의 기본 스킨입니다. + 0.1 + 2008-01-23 + http://www.zeroboard.com + + + 제로 + zero + zero + zero + + + + + 흰색 바탕용 + 白い背景用 + 白色背景 + White Background + + + \ No newline at end of file diff --git a/widgets/image_counter/conf/info.xml b/widgets/image_counter/conf/info.xml index 7f44a8d33..54e15f984 100644 --- a/widgets/image_counter/conf/info.xml +++ b/widgets/image_counter/conf/info.xml @@ -1,313 +1,389 @@ - - - 이미지 카운터 위젯 - 图像访问统计 - イメージカウンターウィジェット - Widget Contador de imagen - Image Counter - Виджет изображения счетчика - - 제로 - Zero - Zero - zero - zero - - 제로보드XE의 기본 카운터를 블로그나 사이트에 달 수 있는 작은 그래프로 표시를 합니다. - 크기, 배경색등의 조건을 설정하지 않으시면 기본 설정으로 사용됩니다. - 그래프를 그리기 위해서 GD 라이브러리가 설치되어 있어야 합니다. - - - 可以添加到博客或网站的图像访问统计控件。 - 不设置控件大小,背景色时,将使用默认设置。 - 因程序需要自动画出图像所以服务器段必须得安装有GD库。 - - - ゼロボードXEのデフォルトカウンターをブログまたはサイトに挿入し、小さいグラフで表示します。 - 大きさ、背景色などの条件を設定しないとデフォルトの設定が適用されます。 - グラフを出力するためには、GDライブラリが必要です。 - + + + 이미지 카운터 위젯 + 图像访问统计 + イメージカウンターウィジェット + Widget Contador de imagen + Image Counter + Виджет изображения счетчика + + 제로보드XE의 기본 카운터를 블로그나 사이트에 달 수 있는 작은 그래프로 표시를 합니다. + 크기, 배경색등의 조건을 설정하지 않으시면 기본 설정으로 사용됩니다. + 그래프를 그리기 위해서 GD 라이브러리가 설치되어 있어야 합니다. + + + 可以添加到博客或网站的图像访问统计控件。 + 不设置控件大小,背景色时,将使用默认设置。 + 因程序需要自动画出图像所以服务器段必须得安装有GD库。 + + + ゼロボードXEのデフォルトカウンターをブログまたはサイトに挿入し、小さいグラフで表示します。 + 大きさ、背景色などの条件を設定しないとデフォルトの設定が適用されます。 + グラフを出力するためには、GDライブラリが必要です。 + - Este widget contador de image muestra un pequeño gráfico para ser añadidos en el blog o sitios. - Si no configura el tamaño, color de fondo, etc., se utiliza la configuración predefinida. - Para dibujar el gráfico debe estar instalada la librería GD. - + Este widget contador de image muestra un pequeño gráfico para ser añadidos en el blog o sitios. + Si no configura el tamaño, color de fondo, etc., se utiliza la configuración predefinida. + Para dibujar el gráfico debe estar instalada la librería GD. + - Image counter widget presents a small graph showing the number of visitors, which you can attach to your blogs or sites. - Unless you configure settings, such as size, and background color, it uses predefined configuration. - To show the graph, GD library should be installed. + Image counter widget presents a small graph showing the number of visitors, which you can attach to your blogs or sites. + Unless you configure settings, such as size, and background color, it uses predefined configuration. + To show the graph, GD library should be installed. - Виджет изображения счетчика представляет маленький график, показывающий количество посетителей, который Вы можете присоединить к Вашим блогам или сайтам. - Пока Вы не сконфигурируете настройки, такие как размер и цвет фона, он будет исользовать предустановленную конфигурацию. - Чтобы отображать график, GD библиотека должна быть установлена. + Виджет изображения счетчика представляет маленький график, показывающий количество посетителей, который Вы можете присоединить к Вашим блогам или сайтам. + Пока Вы не сконфигурируете настройки, такие как размер и цвет фона, он будет исользовать предустановленную конфигурацию. + Чтобы отображать график, GD библиотека должна быть установлена. - - - - 가로 크기 - 宽度 - 横幅 - Tamaño del ancho - Width - Ширина - text - - 그래프 이미지의 가로크기를 지정하실 수 있습니다. - 지정하지 않으시면 150px로 지정되며 숫자로 입력을 해주세요. - 코드 생성 페이지의 하단에 있는 가로크기와 다르게 적용됩니다. - - - 可指定图像宽度。 - 默认为150px。只需输入数字即可。 - 此宽度不同于代码生产页面的宽度。 - - - グラフイメージの横幅サイズを指定します。 - 指定しない場合は「150px」が指定されます。数字で入力してください。 - コード生成ページの下端にある横幅サイズとは異なって適用されます。 - - - Uste puede asignar el tamaño del ancho para el imágen del gráfico. - Debe ingresar en números. Si no lo asigna, será de 150px. - Se aplica de manera diferente con el tamaño de la altura que se encuentra en la parte inferior de la página de generar códigos - - - You can set the width of the graph image. - If you don't input any value, it will be defined as 150px. - This value is applied differently from widget's width you can find at the bottom of this page. - - - Вы можете установить ширину изображения графика. - Если Вы не введете значение, стандарное будет установлено как 150px. - Это значение применяется иным образом, нежели ширина виджета, которую Вы можете найти внизу этой страницы. - - - - 세로 크기 - 高度 - 縦幅 - Tamaño de la Altura - Height - text - - 그래프 이미지의 세로 크기를 지정하실 수 있습니다. - 지정하지 않으시면 100px로 지정되며 숫자로 입력을 해주세요. - - - 可指定图像宽度。 - 默认为100px。只需输入数字即可。 - - - グラフイメージの縦幅サイズを指定します。 - 指定しない場合は「100px」が指定されます。数字で入力してください。 - - - Uste puede asignar el tamaño de la altura para el imágen del gráfico. - Debe ingresar en números. Si no lo asigna, será de 100px. - - - You can set the height of the graph image. - If you don't input any value, it will be defined as 100px. - - - Вы можете установить высоту изображения графика. - Если Вы не введете значение, стандарное будет установлено как 100px. - - - - 출력 기간 - 显示期间 - 出力期間 - Tiempo a mostrar - Duration - text - - 오늘부터 지정하신 출력기간 만큼의 데이터를 그래프로 출력합니다. - 숫자를 입력해주세요. (기본 지난 7일) - - - 用图像显示“显示期间”内的访问统计数据。 - 请输入数字(默认为7日)。 - - - 今日から指定した期間だけのデータをグラフで表示します。 - 数字を入力してください(デフォルト:過去7日)。 - + 0.1 + 2007-08-27 + + + 제로 + Zero + Zero + zero + zero + + + + + text + 가로 크기 + 宽度 + 横幅 + Tamaño del ancho + Width + Ширина + + 그래프 이미지의 가로크기를 지정하실 수 있습니다. + 지정하지 않으시면 150px로 지정되며 숫자로 입력을 해주세요. + 코드 생성 페이지의 하단에 있는 가로크기와 다르게 적용됩니다. + + + 可指定图像宽度。 + 默认为150px。只需输入数字即可。 + 此宽度不同于代码生产页面的宽度。 + + + グラフイメージの横幅サイズを指定します。 + 指定しない場合は「150px」が指定されます。数字で入力してください。 + コード生成ページの下端にある横幅サイズとは異なって適用されます。 + - Desde el día de hoy hasta el tiempo asignado, se mostrará el gráfico. - Ingrese números. (Predefinido: transcurridos los 7 días) - + Uste puede asignar el tamaño del ancho para el imágen del gráfico. + Debe ingresar en números. Si no lo asigna, será de 150px. + Se aplica de manera diferente con el tamaño de la altura que se encuentra en la parte inferior de la página de generar códigos + + + You can set the width of the graph image. + If you don't input any value, it will be defined as 150px. + This value is applied differently from widget's width you can find at the bottom of this page. + + + Вы можете установить ширину изображения графика. + Если Вы не введете значение, стандарное будет установлено как 150px. + Это значение применяется иным образом, нежели ширина виджета, которую Вы можете найти внизу этой страницы. + + + + text + 세로 크기 + 高度 + 縦幅 + Tamaño de la Altura + Height + + 그래프 이미지의 세로 크기를 지정하실 수 있습니다. + 지정하지 않으시면 100px로 지정되며 숫자로 입력을 해주세요. + + + 可指定图像宽度。 + 默认为100px。只需输入数字即可。 + + + グラフイメージの縦幅サイズを指定します。 + 指定しない場合は「100px」が指定されます。数字で入力してください。 + + + Uste puede asignar el tamaño de la altura para el imágen del gráfico. + Debe ingresar en números. Si no lo asigna, será de 100px. + + + You can set the height of the graph image. + If you don't input any value, it will be defined as 100px. + + + Вы можете установить высоту изображения графика. + Если Вы не введете значение, стандарное будет установлено как 100px. + + + + text + 출력 기간 + 显示期间 + 出力期間 + Tiempo a mostrar + Duration + + 오늘부터 지정하신 출력기간 만큼의 데이터를 그래프로 출력합니다. + 숫자를 입력해주세요. (기본 지난 7일) + + + 用图像显示“显示期间”内的访问统计数据。 + 请输入数字(默认为7日)。 + + + 今日から指定した期間だけのデータをグラフで表示します。 + 数字を入力してください(デフォルト:過去7日)。 + + + Desde el día de hoy hasta el tiempo asignado, se mostrará el gráfico. + Ingrese números. (Predefinido: transcurridos los 7 días) + The graph would contain the data of the assigned duration from today. Input numerical value (unit:day, default: past 7 days). - + График будет содержать данные, присвоенного промежутка, начиная с сегодня. Введите цифровое значение (ед.: день, стандарт: прошедшие 7 дней). - - - - 배경색 - 背景色 - 背景色 - Color de Fondo - Background Color - Цвет фона - text - - - - - #FFFFFF - Input as # + 6 digit color code.]]> - #FFFFFF - Вводите как # + 6-ти цифровой код цвета.]]> - - - 체크 무늬 배경색 - 网格背景色 - チェック柄の背景色 - Textura escocés de fondo - Background Color for the Darker part - Цвет фона для темной части - text - #F9F9F9 - #과 6자리의 색상코드 입력해주세요]]> - #F9F9F9 - 请输入#和6位颜色代码。]]> - #F9F9F9 - #と6桁の色コードを入力してください。]]> - #F9F9F9 - Ingrese # + 6 espacios del código del color]]> - #F9F9F9 - Input as # + 6 digit color code.]]> - #F9F9F9 - Вводите как # + 6-ти цифровой код цвета.]]> - - - 격자 선 색 - 网格线颜色 - グリッド線の色 - Color Línea de la grilla - Color of Grid - Цвет решетки - text - #9d9d9d - #과 6자리의 색상코드 입력해주세요]]> - #9d9d9d - 请输入#和6位颜色代码。]]> - #9d9d9d - #と6桁の色コードを入力してください。]]> - #9d9d9d - Ingrese # + 6 espacios del código del color]]> - #9d9d9d - Input as # + 6 digit color code.]]> - #9d9d9d - Вводите как # + 6-ти цифровой код цвета.]]> - - - 그래프 선색 - 图像曲线颜色 - グラフ線の色 - Color Línea del Gráfico - Color of the Lines - Цвет линий - text - #BBBBBB - #과 6자리의 색상코드 입력해주세요]]> - #BBBBBB - 请输入#和6位颜色代码。]]> - #BBBBBB - #と6桁の色コードを入力してください。]]> - #BBBBBB - Ingrese # + 6 espacios del código del color]]> - #BBBBBB - Input as # + 6 digit color code.]]> - #BBBBBB - Вводите как # + 6-ти цифровой код цвета.]]> - - - 방문자 수 글자색 - 访问统计数颜色 - 訪問者数の文字色 - Color del número de los visitados - Character Color of the number of visitors - Цвет знаков числа посетителей - text - #666666 - Ingrese # + 6 espacios del código del color]]> - #666666 - Ingrese # + 6 espacios del código del color]]> - #666666 - #と6桁の色コードを入力してください。]]> - #666666 - Ingrese # + 6 espacios del código del color]]> - #666666 - Input as # + 6 digit color code.]]> - #666666 - Вводите как # + 6-ти цифровой код цвета.]]> - - - 포인트 점 색 - 节点颜色 - ポイントの色 - Color del Punto - Color of Points - Цвет поинтов - text - #ed3027 - #과 6자리의 색상코드 입력해주세요]]> - #ed3027 - 请输入#和6位颜色代码。]]> - #ed3027 - #と6桁の色コードを入力してください。]]> - #ed3027 - Ingrese # + 6 espacios del código del color]]> - #ed3027 - Input as # + 6 digit color code.]]> - #ed3027 - Вводите как # + 6-ти цифровой код цвета.]]> - - - + + + + text + 배경색 + 背景色 + 背景色 + Color de Fondo + Background Color + Цвет фона + + + + + + + + + + + + + + #FFFFFF + Input as # + 6 digit color code.]]> + + + #FFFFFF + Вводите как # + 6-ти цифровой код цвета.]]> + + + + text + 체크 무늬 배경색 + 网格背景色 + チェック柄の背景色 + Textura escocés de fondo + Background Color for the Darker part + Цвет фона для темной части + + #F9F9F9 + #과 6자리의 색상코드 입력해주세요]]> + + + #F9F9F9 + 请输入#和6位颜色代码。]]> + + + #F9F9F9 + #と6桁の色コードを入力してください。]]> + + + #F9F9F9 + Ingrese # + 6 espacios del código del color]]> + + + #F9F9F9 + Input as # + 6 digit color code.]]> + + + #F9F9F9 + Вводите как # + 6-ти цифровой код цвета.]]> + + + + text + 격자 선 색 + 网格线颜色 + グリッド線の色 + Color Línea de la grilla + Color of Grid + Цвет решетки + + #9d9d9d + #과 6자리의 색상코드 입력해주세요]]> + + + #9d9d9d + 请输入#和6位颜色代码。]]> + + + #9d9d9d + #と6桁の色コードを入力してください。]]> + + + #9d9d9d + Ingrese # + 6 espacios del código del color]]> + + + #9d9d9d + Input as # + 6 digit color code.]]> + + + #9d9d9d + Вводите как # + 6-ти цифровой код цвета.]]> + + + + text + 그래프 선색 + 图像曲线颜色 + グラフ線の色 + Color Línea del Gráfico + Color of the Lines + Цвет линий + + #BBBBBB + #과 6자리의 색상코드 입력해주세요]]> + + + #BBBBBB + 请输入#和6位颜色代码。]]> + + + #BBBBBB + #と6桁の色コードを入力してください。]]> + + + #BBBBBB + Ingrese # + 6 espacios del código del color]]> + + + #BBBBBB + Input as # + 6 digit color code.]]> + + + #BBBBBB + Вводите как # + 6-ти цифровой код цвета.]]> + + + + text + 방문자 수 글자색 + 访问统计数颜色 + 訪問者数の文字色 + Color del número de los visitados + Character Color of the number of visitors + Цвет знаков числа посетителей + + #666666 + Ingrese # + 6 espacios del código del color]]> + + + #666666 + Ingrese # + 6 espacios del código del color]]> + + + #666666 + #と6桁の色コードを入力してください。]]> + + + #666666 + Ingrese # + 6 espacios del código del color]]> + + + #666666 + Input as # + 6 digit color code.]]> + + + #666666 + Вводите как # + 6-ти цифровой код цвета.]]> + + + + text + 포인트 점 색 + 节点颜色 + ポイントの色 + Color del Punto + Color of Points + Цвет поинтов + + #ed3027 + #과 6자리의 색상코드 입력해주세요]]> + + + #ed3027 + 请输入#和6位颜色代码。]]> + + + #ed3027 + #と6桁の色コードを入力してください。]]> + + + #ed3027 + Ingrese # + 6 espacios del código del color]]> + + + #ed3027 + Input as # + 6 digit color code.]]> + + + #ed3027 + Вводите как # + 6-ти цифровой код цвета.]]> + + + + \ No newline at end of file diff --git a/widgets/language_select/conf/info.xml b/widgets/language_select/conf/info.xml index 79f0a4125..44feefb04 100644 --- a/widgets/language_select/conf/info.xml +++ b/widgets/language_select/conf/info.xml @@ -1,24 +1,27 @@ - - + + 언어 선택 言語選択 多国语言切换 Language - Selcción del Idioma + Selcción del Idioma Выбор языка - + 사용자의 접속언어를 변경할 수 있는 select폼을 출력합니다. + 言語を変更することができるセレクト(select)フォームを表示します。 + 可以实现多国语言相互切换。 + This widget displays a select form for change of users' language. + Este widget muestra la forma de cambiar el idioma del usuario. + Этот виджет отображает форму для выбора пользовательского языка. + 0.1 + 2007-02-28 + + zero Zero zero zero - zero + zero zero - 사용자의 접속언어를 변경할 수 있는 select폼을 출력합니다. - 言語を変更することができるセレクト(select)フォームを表示します。 - 可以实现多国语言相互切换。 - This widget displays a select form for change of users' language. - Este widget muestra la forma de cambiar el idioma del usuario. - Этот виджет отображает форму для выбора пользовательского языка. - - + + \ No newline at end of file diff --git a/widgets/language_select/skins/default/skin.xml b/widgets/language_select/skins/default/skin.xml index 377239153..922e4da2b 100644 --- a/widgets/language_select/skins/default/skin.xml +++ b/widgets/language_select/skins/default/skin.xml @@ -1,25 +1,30 @@ - - - 언어 출력 - 言語選択 - 多国语言切换 - Display Language - - zero - Zero - zero - zero + + + 언어 출력 + 言語選択 + 多国语言切换 + Display Language 스킨 기능이 없습니다 スキン機能がありません。 不支持皮肤。 There is no skin function - - - - 기본 - デフォルト - 默认 - default - - - + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + zero + Zero + zero + zero + + + + + 기본 + デフォルト + 默认 + default + + + \ No newline at end of file diff --git a/widgets/logged_members/conf/info.xml b/widgets/logged_members/conf/info.xml index 0da3d42de..573b45bc7 100644 --- a/widgets/logged_members/conf/info.xml +++ b/widgets/logged_members/conf/info.xml @@ -1,52 +1,50 @@ - - + + 로그인 사용자 출력 위젯 - Display On-Line Members + Display On-Line Members 在线会员列表 - + 로그인 사용자를 출력하는 위젯입니다. + This widget displays on-line members. + 显示在线会员列表的控件。 + 0.1 + 2008-06-18 + + zero - zero + zero zero - - 로그인 사용자를 출력하는 위젯입니다. - - - This widget displays on-line members. - - - 显示在线会员列表的控件。 - + - 목록수 - List Count - 目录数 text + 목록수 + List Count + 目录数 출력될 목록의 수를 정하실 수 있습니다. (기본 5개) - You may set number of list to be displayed. (default 5) + You may set number of list to be displayed. (default 5) 可设置要显示的目录数。 (默认为5个) - 대상 지정 - Target - 模块对象 select + 대상 지정 + Target + 模块对象 대상을 전체로 하면 홈페이지 접속자 모두가 출력되고 Mid 구분으로 하게 되면 접속한 Mid에 같이 접속한 회원만 출력이 됩니다. - All on-line members will be displayed when you set target as 'All', or members in same Mid will be displayed when target is 'By Mid'. + All on-line members will be displayed when you set target as 'All', or members in same Mid will be displayed when target is 'By Mid'. 选择“全部”将显示全部在线会员,“区分Mid”为显示各模块中的在线会员。 - 전체 - All - 全部 total + 전체 + All + 全部 - Mid 구분 - By Mid - 区分Mid mid + Mid 구분 + By Mid + 区分Mid - + \ No newline at end of file diff --git a/widgets/logged_members/skins/default/list.html b/widgets/logged_members/skins/default/list.html index f82e26acf..9b28f4479 100644 --- a/widgets/logged_members/skins/default/list.html +++ b/widgets/logged_members/skins/default/list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/logged_members/skins/default/skin.xml b/widgets/logged_members/skins/default/skin.xml index ac3fc8464..ce51da153 100644 --- a/widgets/logged_members/skins/default/skin.xml +++ b/widgets/logged_members/skins/default/skin.xml @@ -1,25 +1,30 @@ - - - 그룹회원 출력 위젯 기본 스킨 - グループ会員表示ウィジェットのデフォルトスキン - Basic Skin of Group Member Display Widget - 会员列表默认皮肤 - - 제로 - Zero - zero - Zero + + + 그룹회원 출력 위젯 기본 스킨 + グループ会員表示ウィジェットのデフォルトスキン + Basic Skin of Group Member Display Widget + 会员列表默认皮肤 그룹회원 출력 위젯의 기본 스킨 グループ会員表示ウィジェットのデフォルトスキン - Basic skin of group member display widget + Basic skin of group member display widget 显示特定用户组会员列表的默认皮肤。 - - - - 기본 컬러 - デフォルトカラー - Default Color - 默认颜色 - - - + 0.1 + 2007-07-30 + http://www.zeroboard.com + + + 제로 + Zero + zero + Zero + + + + + 기본 컬러 + デフォルトカラー + Default Color + 默认颜色 + + + \ No newline at end of file diff --git a/widgets/login_info/conf/info.xml b/widgets/login_info/conf/info.xml index f250039f8..11277291e 100644 --- a/widgets/login_info/conf/info.xml +++ b/widgets/login_info/conf/info.xml @@ -1,24 +1,27 @@ - - + + 로그인 정보 출력 登陆表单 ログイン情報表示 Login Info - Muestra la información de la conección + Muestra la información de la conección Отображение информации логина - + 로그인 폼이나 로그인 정보를 출력합니다 + 显示登陆表单或登陆信息。 + ログインフォームまたはログイン情報を表示します。 + This widget displays login form or login info. + Este widget muestra la forma de la conección y la información de la conección. + Этот виджет отобратает форму логина или информацию. + 0.1 + 2007-02-28 + + 제로 zero Zero zero - zero + zero zero - 로그인 폼이나 로그인 정보를 출력합니다 - 显示登陆表单或登陆信息。 - ログインフォームまたはログイン情報を表示します。 - This widget displays login form or login info. - Este widget muestra la forma de la conección y la información de la conección. - Этот виджет отобратает форму логина или информацию. - + \ No newline at end of file diff --git a/widgets/login_info/skins/default/login_form.html b/widgets/login_info/skins/default/login_form.html index c56895a13..db0b3cf5b 100644 --- a/widgets/login_info/skins/default/login_form.html +++ b/widgets/login_info/skins/default/login_form.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/login_info/skins/default/login_info.html b/widgets/login_info/skins/default/login_info.html index fd117a472..833e2cbb1 100644 --- a/widgets/login_info/skins/default/login_info.html +++ b/widgets/login_info/skins/default/login_info.html @@ -1,4 +1,4 @@ - + {@ $colorset = "default"} diff --git a/widgets/login_info/skins/default/skin.xml b/widgets/login_info/skins/default/skin.xml index 9a8b55eb1..b151dd89c 100644 --- a/widgets/login_info/skins/default/skin.xml +++ b/widgets/login_info/skins/default/skin.xml @@ -1,25 +1,30 @@ - - - 로그인 정보 출력 기본 스킨 - ログイン情報表示のデフォルトスキン - 登陆表单默认皮肤 - Default Login Info Display Skin - - 제로 - Zero - zero - zero + + + 로그인 정보 출력 기본 스킨 + ログイン情報表示のデフォルトスキン + 登陆表单默认皮肤 + Default Login Info Display Skin 기본 스킨 ログイン情報表示(login_info)のデフォルトスキン 登陆表单默认皮肤。 default skin - - - - 기본 - デフォルト - 默认 - default - - - + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + Zero + zero + zero + + + + + 기본 + デフォルト + 默认 + default + + + \ No newline at end of file diff --git a/widgets/login_info/skins/xe_official/login_form.html b/widgets/login_info/skins/xe_official/login_form.html index 0b1340a8e..802e593ba 100644 --- a/widgets/login_info/skins/xe_official/login_form.html +++ b/widgets/login_info/skins/xe_official/login_form.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/login_info/skins/xe_official/login_info.html b/widgets/login_info/skins/xe_official/login_info.html index 9f37487cb..f68798ab1 100644 --- a/widgets/login_info/skins/xe_official/login_info.html +++ b/widgets/login_info/skins/xe_official/login_info.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/login_info/skins/xe_official/skin.xml b/widgets/login_info/skins/xe_official/skin.xml index 7a28bf934..8774317fe 100644 --- a/widgets/login_info/skins/xe_official/skin.xml +++ b/widgets/login_info/skins/xe_official/skin.xml @@ -1,14 +1,9 @@ - - - XE 공식 로그인 정보 출력 - XE公式 ログイン情報表示 - Display XE Official Login Info - XE 官方网站登陆表单皮肤 - - 제로 - Zero - zero - Zero + + + XE 공식 로그인 정보 출력 + XE公式 ログイン情報表示 + Display XE Official Login Info + XE 官方网站登陆表单皮肤 XE 공식 레이아웃에 적합한 로그인 정보 출력 위젯입니다. 디자인 : 이소라 (http://ra-ra.pe.kr) @@ -21,7 +16,7 @@ パブリシング:ジョンチャンミョン(http://naradesign.net) レイアウト:Zero (http://blog.nzeo.com) - + This is a suitable login info display widget for XE Official layout. Design : So-ra Lee (http://ra-ra.pe.kr) Publishing : Chan-Myeong Jeong (http://naradesign.net) @@ -33,25 +28,35 @@ HTML/CSS : Chan-Myung Jeong(http://naradesign.net) 布局: zero (http://blog.nzeo.com) - - - - 기본 - デフォルト - 默认 - default - - - 하얀색 - - white - 白色 - - - 검은색 - - Black - 黑色 - - - + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + Zero + zero + Zero + + + + + 기본 + デフォルト + 默认 + default + + + 하얀색 + + white + 白色 + + + 검은색 + + Black + 黑色 + + + \ No newline at end of file diff --git a/widgets/member_group/conf/info.xml b/widgets/member_group/conf/info.xml index b28c59939..71c4bc4bb 100644 --- a/widgets/member_group/conf/info.xml +++ b/widgets/member_group/conf/info.xml @@ -1,90 +1,94 @@ - - - 특정 그룹 회원 출력 위젯 - グループ会員表示 + + + 특정 그룹 회원 출력 위젯 + グループ会員表示 Specific Group Members Muestra el grupo de usuario específico - 会员列表 + 会员列表 Отображение членов определенной группы - - 제로 - Zero + + 특정 그룹에 속한 회원의 목록을 출력하는 위젯입니다. + 아직 테스트용 위젯이며 해당 그룹에 지정된 수 이상의 회원이 있을 경우 최근 가입순서대로 출력이 됩니다. + 아래 그룹이름 입력칸에 출력을 원하는 그룹명을 , (콤마)로 연결하여 입력하시면 됩니다. + + + 特定グループに所属している会員のリストを表示するウィジェットです。まだテスト用のウィジェットです。該当するグループに指定された以上の会員が存在した場合、最近加入順に表示されます。下のグループ名の入力フィールドに、希望するグループ名を「,(コンマ)」で区切って入力します。 + + + This widget displays members in specific group. + It is a test widget, and if there are more members than assigned number in the group, they will be ordered as latest join date. + You may input groups for displaying in below space. You can use comma(,) for multiple input. + + + Este widget muestra el usuario en un grupo específico. + Este es un widget de prueba, y si hay más número de usuarios asignados, se mostrará en orden de los últimos conectados. + Usted puede ingresar grupos para mostrar en los espacias inferiores. Puede usar una coma(,) para ingresar más. + + + 显示特定用户组会员列表的控件。 + 该组用户数比要显示的用户数多时,按照最近注册日期顺来显示。(测试中的控件) + 要显示的对象用户组名称以,(逗号)来分隔。 + + + Этот виджет отображает членов в определенной группе. + Это тестовый виджет, и если в группе больше членов, чем присвоенное число в группе, они будут упорядочены по дате последнего входа. + Вы можете ввести группы для отображения в пространство ниже. Вы можете использовать запятую(,) для множественного ввода. + + 0.1 + 2007-07-30 + + + 제로 + Zero zero zero - Zero + Zero zero - - 특정 그룹에 속한 회원의 목록을 출력하는 위젯입니다. - 아직 테스트용 위젯이며 해당 그룹에 지정된 수 이상의 회원이 있을 경우 최근 가입순서대로 출력이 됩니다. - 아래 그룹이름 입력칸에 출력을 원하는 그룹명을 , (콤마)로 연결하여 입력하시면 됩니다. - - - 特定グループに所属している会員のリストを表示するウィジェットです。まだテスト用のウィジェットです。該当するグループに指定された以上の会員が存在した場合、最近加入順に表示されます。下のグループ名の入力フィールドに、希望するグループ名を「,(コンマ)」で区切って入力します。 - - - This widget displays members in specific group. - It is a test widget, and if there are more members than assigned number in the group, they will be ordered as latest join date. - You may input groups for displaying in below space. You can use comma(,) for multiple input. - - - Este widget muestra el usuario en un grupo específico. - Este es un widget de prueba, y si hay más número de usuarios asignados, se mostrará en orden de los últimos conectados. - Usted puede ingresar grupos para mostrar en los espacias inferiores. Puede usar una coma(,) para ingresar más. - - - 显示特定用户组会员列表的控件。 - 该组用户数比要显示的用户数多时,按照最近注册日期顺来显示。(测试中的控件) - 要显示的对象用户组名称以,(逗号)来分隔。 - - - Этот виджет отображает членов в определенной группе. - Это тестовый виджет, и если в группе больше членов, чем присвоенное число в группе, они будут упорядочены по дате последнего входа. - Вы можете ввести группы для отображения в пространство ниже. Вы можете использовать запятую(,) для множественного ввода. - - - - - 제목 - タイトル + + + + + text + 제목 + タイトル Title Título - 栏目名 - text - 최근 게시물의 제목으로 출력됩니다. - 最新コンテンツのタイトルとして表示されます。 + 栏目名 + 최근 게시물의 제목으로 출력됩니다. + 最新コンテンツのタイトルとして表示されます。 It will be displayed as title of newest article. Esto será mostrado com el título de los documentos recientes. - 显示为会员列表的标题。 - - - 목록수 - リスト数 + 显示为会员列表的标题。 + + + text + 목록수 + リスト数 Number of List Número de la lista - 目录数 + 目录数 Число списка - text - 출력될 목록의 수를 정하실 수 있습니다. (기본 5개) - 表示されるリストの数を指定することができます。(デフォルト5個) + 출력될 목록의 수를 정하실 수 있습니다. (기본 5개) + 表示されるリストの数を指定することができます。(デフォルト5個) You may choose number of list. (5 as default) Usted puede elegir el número de la lista. (predefinido: 5) - 可设置要显示的目录数。 (默认为5个) + 可设置要显示的目录数。 (默认为5个) Вы можете выбрать число списка. (стандарт: 5) - - - 대상 회원 그룹 - 対象会員グループ + + + text + 대상 회원 그룹 + 対象会員グループ Target Member Group Objetivo Grupo de usuario - 对象用户组 + 对象用户组 Группа членов назначения - text - 소속 회원 출력을 원하는 회원 그룹명을 ,(콤마)로 연결하여 입력하세요. - 所属会員を表示したい場合は、会員グループ名を「,(コンマ)」で区切って入力してください。 + 소속 회원 출력을 원하는 회원 그룹명을 ,(콤마)로 연결하여 입력하세요. + 所属会員を表示したい場合は、会員グループ名を「,(コンマ)」で区切って入力してください。 Please input member group name for display with comma(,). Ingresar el nombre del grupo de usuario para mostrar con la coma(,). - 要显示的对象用户组名称以,(逗号)来分隔。 + 要显示的对象用户组名称以,(逗号)来分隔。 Пожалуйста, введите имена групп для отображения, разделяя их запятой(,). - - - + + + \ No newline at end of file diff --git a/widgets/member_group/skins/default/list.html b/widgets/member_group/skins/default/list.html index bd6a8fbd1..03b2a38b5 100644 --- a/widgets/member_group/skins/default/list.html +++ b/widgets/member_group/skins/default/list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/member_group/skins/default/skin.xml b/widgets/member_group/skins/default/skin.xml index ac3fc8464..ce51da153 100644 --- a/widgets/member_group/skins/default/skin.xml +++ b/widgets/member_group/skins/default/skin.xml @@ -1,25 +1,30 @@ - - - 그룹회원 출력 위젯 기본 스킨 - グループ会員表示ウィジェットのデフォルトスキン - Basic Skin of Group Member Display Widget - 会员列表默认皮肤 - - 제로 - Zero - zero - Zero + + + 그룹회원 출력 위젯 기본 스킨 + グループ会員表示ウィジェットのデフォルトスキン + Basic Skin of Group Member Display Widget + 会员列表默认皮肤 그룹회원 출력 위젯의 기본 스킨 グループ会員表示ウィジェットのデフォルトスキン - Basic skin of group member display widget + Basic skin of group member display widget 显示特定用户组会员列表的默认皮肤。 - - - - 기본 컬러 - デフォルトカラー - Default Color - 默认颜色 - - - + 0.1 + 2007-07-30 + http://www.zeroboard.com + + + 제로 + Zero + zero + Zero + + + + + 기본 컬러 + デフォルトカラー + Default Color + 默认颜色 + + + \ No newline at end of file diff --git a/widgets/newest_comment/conf/info.xml b/widgets/newest_comment/conf/info.xml index c1ced21e4..663f6e0d9 100644 --- a/widgets/newest_comment/conf/info.xml +++ b/widgets/newest_comment/conf/info.xml @@ -1,85 +1,90 @@ - - + + 최근 댓글 출력 评论列表 最新コメント表示 Newest Comments - Mostrar los comentarios recientes + Mostrar los comentarios recientes Отображение последних комментариев - + 최근 댓글 (comment)를 출력하는 위젯입니다. + 显示最新评论列表的控件。 + 最新のコメント(comment)を表示させるウィジェットです。 + This widget displays newest comments. + Este widget muestra los comentarios recientes. + Этот виджет отображает последние комментарии. + 0.1 + 2007-02-28 + + 제로 Zero Zero zero - zero + zero zero - 최근 댓글 (comment)를 출력하는 위젯입니다. - 显示最新评论列表的控件。 - 最新のコメント(comment)を表示させるウィジェットです。 - This widget displays newest comments. - Este widget muestra los comentarios recientes. - Этот виджет отображает последние комментарии. + + + text 제목 栏目名 タイトル Title - Título + Título Заголовок - text 최근 댓글의 제목으로 출력됩니다. 显示为最新评论列表的输入的标题。 最新のコメント書き込みのタイトルとして表示されます。 This will be the title of newest comments. - Este será el título de los comentarios recientes. + Este será el título de los comentarios recientes. Это будет заголовком последних комментариев. + text 목록수 目录数 リスト数 The Number of List - Número de la lista + Número de la lista Число списка - text 출력될 목록의 수를 정하실 수 있습니다. (기본 5개) 可设置要显示的目录数。 (默认为5个) 出力されるリストの数が指定できます(デフォルト5個) You can set the number of list(default is 5). - Usted puede definir el número de la lista(predefinido: 5). - Вы можете выбрать число списка. (стандарт: 5) + Usted puede definir el número de la lista(predefinido: 5). + Вы можете выбрать число списка. (стандарт: 5) - 제목 글자수 - タイトルの文字数 - 标题字数 - Length of Subject - Número de letras del título - Длина темы - text - 제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다) - タイトルの文字数が指定できます(「0」または空欄の場合は、文字数を制限しません)。 - 可以设置标题的字数。(0或留空为不限) - Length of Subject can be assigned. (0 or blank value will not restrict the length) - El largo del título puede ser asignado. (valor 0 o en blanco no restringe el largo) - Длина темы может быть присвоена. (0 или пустое значение не будут ограничивать длину) + text + 제목 글자수 + タイトルの文字数 + 标题字数 + Length of Subject + Número de letras del título + Длина темы + 제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다) + タイトルの文字数が指定できます(「0」または空欄の場合は、文字数を制限しません)。 + 可以设置标题的字数。(0或留空为不限) + Length of Subject can be assigned. (0 or blank value will not restrict the length) + El largo del título puede ser asignado. (valor 0 o en blanco no restringe el largo) + Длина темы может быть присвоена. (0 или пустое значение не будут ограничивать длину) + mid_list 대상 모듈 模块对象 モジュール Target Module - Módulo objetivo + Módulo objetivo Модуль назначения - mid_list 선택하신 모듈에 등록된 글을 대상으로 합니다. 将把被选模块当中的主题作为对象。 チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。 The target articles for the newest comments will be the ones submitted in the selected module. - El objetivo de los comentarios recientes serán los comentarios agragados en el módulo selccionado. + El objetivo de los comentarios recientes serán los comentarios agragados en el módulo selccionado. Статьи назначения для последних комментариев будут теми, что были размещены в выбранном модуле. - + \ No newline at end of file diff --git a/widgets/newest_comment/skins/blog_newest_comment/list.html b/widgets/newest_comment/skins/blog_newest_comment/list.html index c1a82a00e..acdb4e6aa 100644 --- a/widgets/newest_comment/skins/blog_newest_comment/list.html +++ b/widgets/newest_comment/skins/blog_newest_comment/list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/newest_comment/skins/blog_newest_comment/skin.xml b/widgets/newest_comment/skins/blog_newest_comment/skin.xml index 25b776d20..dacfcc5db 100644 --- a/widgets/newest_comment/skins/blog_newest_comment/skin.xml +++ b/widgets/newest_comment/skins/blog_newest_comment/skin.xml @@ -1,55 +1,60 @@ - - - 블로그 스타일의 최신 댓글 목록 - ブログスタイルの最新コメントリスト - 博客式最新评论列表 - Newest Comments List of Blog Style - - 제로 - Zero - zero - zero + + + 블로그 스타일의 최신 댓글 목록 + ブログスタイルの最新コメントリスト + 博客式最新评论列表 + Newest Comments List of Blog Style 블로그 스타일로 최신 댓글을 출력합니다. ブログスタイルで最新のコメントを表示します。 显示为博客式的最新评论。 It displays newest comments with blog style. - - - - 레이아웃에 맞춤 - レイアウトに合わせる - 随布局 - 레이아웃에 맞춤 - - - 기본 컬러 - デフォルトカラー - 默认颜色 - Default color - - - 청록색 - 青緑 - 青绿色 - Cyan - - - 초록색 - - 绿色 - Green - - - 빨간색 - - 红色 - Red - - - 보라색 - - 紫色 - Purple - - - + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + Zero + zero + zero + + + + + 레이아웃에 맞춤 + レイアウトに合わせる + 随布局 + 레이아웃에 맞춤 + + + 기본 컬러 + デフォルトカラー + 默认颜色 + Default color + + + 청록색 + 青緑 + 青绿色 + Cyan + + + 초록색 + + 绿色 + Green + + + 빨간색 + + 红色 + Red + + + 보라색 + + 紫色 + Purple + + + \ No newline at end of file diff --git a/widgets/newest_document/conf/info.xml b/widgets/newest_document/conf/info.xml index fb2d65881..f2c2b6c3f 100644 --- a/widgets/newest_document/conf/info.xml +++ b/widgets/newest_document/conf/info.xml @@ -1,164 +1,168 @@ - - - 최근 문서 출력 - 主题列表 - 最新書き込み表示 - Newest Articles + + + 최근 문서 출력 + 主题列表 + 最新書き込み表示 + Newest Articles Mostrar los documentos recientes - Отображение последних статей - - 제로 - zero - Zero - zero + Отображение последних статей + 최근 문서 (document)를 출력하는 위젯입니다. + 显示最新主题列表 (document)的控件。 + 最新の書き込み(document)を表示させるウィジェットです。 + This widget displays newest articles. + Este widget muestra los documentos recientes. + Этот виджет отображает последние статьи. + 0.1 + 2007-02-28 + + + 제로 + zero + Zero + zero zero - zero - 최근 문서 (document)를 출력하는 위젯입니다. - 显示最新主题列表 (document)的控件。 - 最新の書き込み(document)を表示させるウィジェットです。 - This widget displays newest articles. - Este widget muestra los documentos recientes. - Этот виджет отображает последние статьи. - - - - 제목 - 栏目名 - タイトル - Title + zero + + + + + text + 제목 + 栏目名 + タイトル + Title Título - Заголовок - text - 최근 게시물의 제목으로 출력됩니다. - 显示为最新主题列表的标题。 - 最新の書き込みのタイトルとして表示されます。 - It will be the title of the newest articles. + Заголовок + 최근 게시물의 제목으로 출력됩니다. + 显示为最新主题列表的标题。 + 最新の書き込みのタイトルとして表示されます。 + It will be the title of the newest articles. Este será el título de los documentos recientes. - Это будет заголовком последних статей. - - - 정렬 대상 - 排序对象 - ソート対象 - Target to be sorted + Это будет заголовком последних статей. + + + select + 정렬 대상 + 排序对象 + ソート対象 + Target to be sorted Objetivo para ser ordenados - Назначение для сортировки - select - 등록된 순서 또는 변경된 순서로 정렬을 할 수 있습니다. - 可以按照指定的顺序进行排序。 - 登録順、変更順にソートできます。 - The list of newewst articles may be sorted by submitted order or modified order. + Назначение для сортировки + 등록된 순서 또는 변경된 순서로 정렬을 할 수 있습니다. + 可以按照指定的顺序进行排序。 + 登録順、変更順にソートできます。 + The list of newewst articles may be sorted by submitted order or modified order. La lista de los documentos recientes pueden ser ordenados en el orden del agregado o en el de modificados. - Список последних статей может быть отсортирован по дате размещения или изменения. - - 최신 등록순 - 最新发表顺 - 最新登録順 - Newest Submitted Order + Список последних статей может быть отсортирован по дате размещения или изменения. + + list_order + 최신 등록순 + 最新发表顺 + 最新登録順 + Newest Submitted Order Orden de agregados recientemente - Порядок размещенных статей - list_order - - - 최근 변경순 - 最新修改顺 - 最新変更順 - Newest Modified Order + Порядок размещенных статей + + + update_order + 최근 변경순 + 最新修改顺 + 最新変更順 + Newest Modified Order Orden de modificados recientemente - Порядок измененных статей - update_order - - - - 정렬 방법 - 排序方式 - ソートタイプ - Sorting Type + Порядок измененных статей + + + + select + 정렬 방법 + 排序方式 + ソートタイプ + Sorting Type Tipo de ordenamiento - Тип сортировки - select - 정렬대상을 내림차순 또는 올림차순으로 정렬할 수 있습니다. - 对其排序对象可进行升序/降序方式排序。 - ソートタイプを、降順、昇順にソートできます。 - You can sort target articles by asending or desending order. + Тип сортировки + 정렬대상을 내림차순 또는 올림차순으로 정렬할 수 있습니다. + 对其排序对象可进行升序/降序方式排序。 + ソートタイプを、降順、昇順にソートできます。 + You can sort target articles by asending or desending order. Usted puede ordenar los documentos en orden acendente o en orden descendente. - Вы можете сортировать статьи в порядке возрастания или убывания. - - 내림차순 - 降序 - 降順 - Desending order + Вы можете сортировать статьи в порядке возрастания или убывания. + + desc + 내림차순 + 降序 + 降順 + Desending order Orden Descendente - По убыванию - desc - - - 올림차순 - 升序 - 昇順 - Asending order + По убыванию + + + asc + 올림차순 + 升序 + 昇順 + Asending order Orden Acendente - По возрастанию - asc - - - - 목록수 - 目录数 - リスト数 - The number of list + По возрастанию + + + + text + 목록수 + 目录数 + リスト数 + The number of list Número de la lista - Число списка - text - 출력될 목록의 수를 정하실 수 있습니다. (기본 5개) - 可设置要显示的目录数。 (默认为5个) - 出力されるリストの数を指定することができます。(デフォルト5個) - You can set the number of articles to be displayed. (default is 5) + Число списка + 출력될 목록의 수를 정하실 수 있습니다. (기본 5개) + 可设置要显示的目录数。 (默认为5个) + 出力されるリストの数を指定することができます。(デフォルト5個) + You can set the number of articles to be displayed. (default is 5) Usted puede definir el número de los documentos a mostrar. (predefinido: 5) Вы можете выбрать число списка статей для отображения. (стандарт: 5) - - - new 표시 시간 (hours) - new图标显示时间(hours) - Newの表示時間 (Hours) - Duration of indication for new item - Длительность индикации для новых объектов - text - 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. (시간 단위) - 可以设置最新更新主题的new图标显示时间。 - 新しく登録された書き込みに対して「New」の表示時間を指定します(時間単位)。 - You may set the duration of indication for fresh item. (unit is hour) - Вы можете установить длительность индикации для нового объекта. (единица - час) - - - 제목 글자수 - タイトルの文字数 - 标题字数 - Length of Subject - Número de letras del título - Длина темы - text - 제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다) - タイトルの文字数が指定できます(「0」または空欄の場合は、文字数を制限しません)。 - 可以设置标题的字数。(0或留空为不限) - Length of Subject can be assigned. (0 or blank value will not restrict the length) - El largo del título puede ser asignado. (valor 0 o en blanco no restringe el largo) - Длина темы может быть присвоена. (0 или пустое значение не будут ограничивать длину) - - - 대상 모듈 - 模块对象 - モジュール - Target Module + + + text + new 표시 시간 (hours) + new图标显示时间(hours) + Newの表示時間 (Hours) + Duration of indication for new item + Длительность индикации для новых объектов + 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. (시간 단위) + 可以设置最新更新主题的new图标显示时间。 + 新しく登録された書き込みに対して「New」の表示時間を指定します(時間単位)。 + You may set the duration of indication for fresh item. (unit is hour) + Вы можете установить длительность индикации для нового объекта. (единица - час) + + + text + 제목 글자수 + タイトルの文字数 + 标题字数 + Length of Subject + Número de letras del título + Длина темы + 제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다) + タイトルの文字数が指定できます(「0」または空欄の場合は、文字数を制限しません)。 + 可以设置标题的字数。(0或留空为不限) + Length of Subject can be assigned. (0 or blank value will not restrict the length) + El largo del título puede ser asignado. (valor 0 o en blanco no restringe el largo) + Длина темы может быть присвоена. (0 или пустое значение не будут ограничивать длину) + + + mid_list + 대상 모듈 + 模块对象 + モジュール + Target Module Módulo Objetivo - Модуль назначения - mid_list - 선택하신 모듈에 등록된 글을 대상으로 합니다. - 将把被选模块当中的主题作为对象。 - チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。 - The target articles to be sorted will be the ones submitted in the selected module. + Модуль назначения + 선택하신 모듈에 등록된 글을 대상으로 합니다. + 将把被选模块当中的主题作为对象。 + チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。 + The target articles to be sorted will be the ones submitted in the selected module. El objetivo de los documentos agregados serán los del módulo selccionado. - Статьи назначения для сортировки будут теми, что были размещены в выбранном модуле. - - - + Статьи назначения для сортировки будут теми, что были размещены в выбранном модуле. + + + \ No newline at end of file diff --git a/widgets/newest_document/skins/blog_newest_document/list.html b/widgets/newest_document/skins/blog_newest_document/list.html index 090bc602f..ae3ec0cfd 100644 --- a/widgets/newest_document/skins/blog_newest_document/list.html +++ b/widgets/newest_document/skins/blog_newest_document/list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/newest_document/skins/blog_newest_document/skin.xml b/widgets/newest_document/skins/blog_newest_document/skin.xml index 4b36d70f9..a5cdad3d2 100644 --- a/widgets/newest_document/skins/blog_newest_document/skin.xml +++ b/widgets/newest_document/skins/blog_newest_document/skin.xml @@ -1,55 +1,60 @@ - - - 블로그 스타일의 최신글 목록 - ブログスタイルの最新コンテンツリスト - 博客式最新主题列表 - Newest Article List of Blog Style - - 제로 - Zero - zero - zero + + + 블로그 스타일의 최신글 목록 + ブログスタイルの最新コンテンツリスト + 博客式最新主题列表 + Newest Article List of Blog Style 블로그 스타일로 최신글을 출력합니다. ブログスタイルで最新のコンテンツを表示します。 显示为博客式的最新主题列表。 It displays newest article with blog style. - - - - 레이아웃에 맞춤 - レイアウトに合わせる - 随布局 - 레이아웃에 맞춤 - - - 기본 컬러 - デフォルトカラー - 默认颜色 - Default color - - - 청록색 - 青緑 - 青绿色 - cyan - - - 초록색 - - 绿色 - green - - - 빨간색 - - 红色 - red - - - 보라색 - - 紫色 - purple - - - + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + Zero + zero + zero + + + + + 레이아웃에 맞춤 + レイアウトに合わせる + 随布局 + 레이아웃에 맞춤 + + + 기본 컬러 + デフォルトカラー + 默认颜色 + Default color + + + 청록색 + 青緑 + 青绿色 + cyan + + + 초록색 + + 绿色 + green + + + 빨간색 + + 红色 + red + + + 보라색 + + 紫色 + purple + + + \ No newline at end of file diff --git a/widgets/newest_document/skins/default/list.html b/widgets/newest_document/skins/default/list.html index e6795906f..912568cd5 100644 --- a/widgets/newest_document/skins/default/list.html +++ b/widgets/newest_document/skins/default/list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/newest_document/skins/default/skin.xml b/widgets/newest_document/skins/default/skin.xml index db522517a..05de0c044 100644 --- a/widgets/newest_document/skins/default/skin.xml +++ b/widgets/newest_document/skins/default/skin.xml @@ -1,31 +1,36 @@ - - - 최신글 목록 기본 스킨 - 最新書き込みリストのデフォルトスキン - 主题列表默认皮肤 - Default Skin of Newest Article List - - 제로 - Zero - zero - zero + + + 최신글 목록 기본 스킨 + 最新書き込みリストのデフォルトスキン + 主题列表默认皮肤 + Default Skin of Newest Article List 최신글 목록 위젯의 기본 스킨 最新書き込みリストウィジェットのデフォルトスキン 主题列表控件的默认皮肤。 Default skin of newest article list widget - - - - 기본 컬러 - デフォルトカラー - 默认颜色 - Default color - - - 푸른계통의 컬러 - 青系のカラー - 蓝色 - Blue style color - - - + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + Zero + zero + zero + + + + + 기본 컬러 + デフォルトカラー + 默认颜色 + Default color + + + 푸른계통의 컬러 + 青系のカラー + 蓝色 + Blue style color + + + \ No newline at end of file diff --git a/widgets/newest_document/skins/news_ticker/list.html b/widgets/newest_document/skins/news_ticker/list.html index a6aff03f8..2a2d05493 100644 --- a/widgets/newest_document/skins/news_ticker/list.html +++ b/widgets/newest_document/skins/news_ticker/list.html @@ -1,5 +1,5 @@ - + diff --git a/widgets/newest_document/skins/news_ticker/skin.xml b/widgets/newest_document/skins/news_ticker/skin.xml index 432288b55..4d9d31e2d 100644 --- a/widgets/newest_document/skins/news_ticker/skin.xml +++ b/widgets/newest_document/skins/news_ticker/skin.xml @@ -1,57 +1,62 @@ - - - 전광판(뉴스티커) 출력 - 電光版(ニュースティッカー)出力 - 滚动新闻皮肤 - - 제로 - Zero - Zero - - 최근 게시글을 전광판(뉴스티커) 형식으로 한개씩 scroll 되는 방식의 위젯입니다. - - - 最新コンテンツをニュースティッカー(NewsTicker)スタイルで一つずつスクロールされる方法で表示するウィジェットです。 - - - 将把最新主题显示为滚动新闻样式的主题列表皮肤。 - - - - - 내용만 출력 - 内容のみ出力 - 标题 - - - 회색 배경 - 灰色背景 - 灰色背景 - - - 붉은 배경 - 赤色背景 - 红色背景 - - - 파란 배경 - 青色背景 - 蓝色背景 - - - 녹색 배경 - 緑色背景 - 绿色背景 - - - 노란 배경 - 黄色背景 - 黄色背景 - - - 검은 배경 - 黒色背景 - 黑色背景 - - - + + + 전광판(뉴스티커) 출력 + 電光版(ニュースティッカー)出力 + 滚动新闻皮肤 + + 최근 게시글을 전광판(뉴스티커) 형식으로 한개씩 scroll 되는 방식의 위젯입니다. + + + 最新コンテンツをニュースティッカー(NewsTicker)スタイルで一つずつスクロールされる方法で表示するウィジェットです。 + + + 将把最新主题显示为滚动新闻样式的主题列表皮肤。 + + 0.1 + 2007-11-26 + http://www.zeroboard.com + + + 제로 + Zero + Zero + + + + + 내용만 출력 + 内容のみ出力 + 标题 + + + 회색 배경 + 灰色背景 + 灰色背景 + + + 붉은 배경 + 赤色背景 + 红色背景 + + + 파란 배경 + 青色背景 + 蓝色背景 + + + 녹색 배경 + 緑色背景 + 绿色背景 + + + 노란 배경 + 黄色背景 + 黄色背景 + + + 검은 배경 + 黒色背景 + 黑色背景 + + + \ No newline at end of file diff --git a/widgets/newest_document/skins/xe_official/list.html b/widgets/newest_document/skins/xe_official/list.html index 1197f2d69..55026623c 100644 --- a/widgets/newest_document/skins/xe_official/list.html +++ b/widgets/newest_document/skins/xe_official/list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/newest_document/skins/xe_official/skin.xml b/widgets/newest_document/skins/xe_official/skin.xml index 596596a87..486d19bfc 100644 --- a/widgets/newest_document/skins/xe_official/skin.xml +++ b/widgets/newest_document/skins/xe_official/skin.xml @@ -1,51 +1,56 @@ - - - XE 공식 레이아웃용 최신글 스킨 - XE公式 レイアウト用の最新コンテンツ表示スキン - XE官方网站最新主题列表皮肤 - XE Official Layout's newest document skin - - 제로 - zero - zero - zero - - XE 공식 레이아웃에 적합한 최신글 스킨입니다. - 디자인 : 이소라 (http://ra-ra.pe.kr) - 퍼블리싱 : 정찬명 (http://naradesign.net) - 레이아웃 제작 : zero (http://blog.nzeo.com) - - - XE公式 レイアウトに最も適した最新コンテンツ表示用のスキンです。 - デザイン:イソラ(http://ra-ra.pe.kr) - パブリシング:ジョンチャンミョン(http://naradesign.net) - レイアウト作成:Zero (http://blog.nzeo.com) - - - XE官方网站最新主题列表皮肤。 - 设计 : So-Ra Lee(http://ra-ra.pe.kr) - HTML/CSS : Chan-Myung Jeong(http://naradesign.net) - 布局: zero (http://blog.nzeo.com) - - - It is a skin suitable for the XE official layout. - Design : So-Ra Lee (http://ra-ra-.pe.kr) - HTML/CSS : Chan-Myung Jeong(http://naradesign.net) - Layout : zero (http://blog.nzeo.com) - - - - - 흰색 바탕용 - 白い背景用 - 白色背景 - White Background - - - 어두운 바탕용 - 暗い背景用 - 暗色背景 - Dark Background - - - + + + XE 공식 레이아웃용 최신글 스킨 + XE公式 レイアウト用の最新コンテンツ表示スキン + XE官方网站最新主题列表皮肤 + XE Official Layout's newest document skin + + XE 공식 레이아웃에 적합한 최신글 스킨입니다. + 디자인 : 이소라 (http://ra-ra.pe.kr) + 퍼블리싱 : 정찬명 (http://naradesign.net) + 레이아웃 제작 : zero (http://blog.nzeo.com) + + + XE公式 レイアウトに最も適した最新コンテンツ表示用のスキンです。 + デザイン:イソラ(http://ra-ra.pe.kr) + パブリシング:ジョンチャンミョン(http://naradesign.net) + レイアウト作成:Zero (http://blog.nzeo.com) + + + XE官方网站最新主题列表皮肤。 + 设计 : So-Ra Lee(http://ra-ra.pe.kr) + HTML/CSS : Chan-Myung Jeong(http://naradesign.net) + 布局: zero (http://blog.nzeo.com) + + + It is a skin suitable for the XE official layout. + Design : So-Ra Lee (http://ra-ra-.pe.kr) + HTML/CSS : Chan-Myung Jeong(http://naradesign.net) + Layout : zero (http://blog.nzeo.com) + + 0.1 + 2007-08-01 + http://www.zeroboard.com + + + 제로 + zero + zero + zero + + + + + 흰색 바탕용 + 白い背景用 + 白色背景 + White Background + + + 어두운 바탕용 + 暗い背景用 + 暗色背景 + Dark Background + + + \ No newline at end of file diff --git a/widgets/newest_images/conf/info.xml b/widgets/newest_images/conf/info.xml index 827f3f2e1..0be660d40 100644 --- a/widgets/newest_images/conf/info.xml +++ b/widgets/newest_images/conf/info.xml @@ -1,269 +1,273 @@ - - - 최근 이미지 출력 - 最新イメージ表示 - 图片列表 - Newest Images + + + 최근 이미지 출력 + 最新イメージ表示 + 图片列表 + Newest Images Mostrar las imágenes recientes - Отображение последних изображений - - 제로 - Zero - Zero - zero + Отображение последних изображений + 작성된 글의 내용에 포함된 이미지를 출력하는 위젯입니다. + 作成されたコンテンツの内容に含まれているイメージを表示するウィジェットです。 + 显示主题当中包含图片的控件。 + This widget displays images on articles. + Este widget muestra las imágenes incluidas en el documento. + Этот виджет отображает изображения в статьях. + 0.1 + 2007-07-25 + + + 제로 + Zero + Zero + zero zero - zero - 작성된 글의 내용에 포함된 이미지를 출력하는 위젯입니다. - 作成されたコンテンツの内容に含まれているイメージを表示するウィジェットです。 - 显示主题当中包含图片的控件。 - This widget displays images on articles. - Este widget muestra las imágenes incluidas en el documento. - Этот виджет отображает изображения в статьях. - - - - 제목 - 栏目名 - タイトル - Title + zero + + + + + text + 제목 + 栏目名 + タイトル + Title Título - Заголовок - text - 최근 게시물의 제목으로 출력됩니다. - 显示为最新主题列表的标题。 - 最新の書き込みのタイトルとして表示されます。 - It will be the title of the newest articles. + Заголовок + 최근 게시물의 제목으로 출력됩니다. + 显示为最新主题列表的标题。 + 最新の書き込みのタイトルとして表示されます。 + It will be the title of the newest articles. Este será el título de los documentos recientes. - Это будет заголовком последних статей. - - - 대상 모듈 - モジュール - 对象模块 - Target Module + Это будет заголовком последних статей. + + + mid_list + 대상 모듈 + モジュール + 对象模块 + Target Module Objetivo Módulo - Модуль назначения - mid_list - 선택하신 모듈에 등록된 글을 대상으로 합니다. - チェックされたコンテンツを対象とします。 - 把被选模块中的主题作为对象。 - Articles on chosen module will be the target. + Модуль назначения + 선택하신 모듈에 등록된 글을 대상으로 합니다. + チェックされたコンテンツを対象とします。 + 把被选模块中的主题作为对象。 + Articles on chosen module will be the target. Objetivo de los documentos será los del módulo seleccionado. - Статьи на выбранных модулях будут назначением. - - - 글 제목 길이 - タイトルの文字数 - 标题长度 - Length of Subject + Статьи на выбранных модулях будут назначением. + + + text + 글 제목 길이 + タイトルの文字数 + 标题长度 + Length of Subject El largo de Título - Длина темы - text - 정한 글자수만큼 글 제목을 잘라서 출력합니다. (기본 10자) - 指定された文字数分の長さを切り取って表示します。(デフォルト10文字) - 可以指定标题长度。(默认为10字) - It cuts the length of subject and displays (10 letters as default). + Длина темы + 정한 글자수만큼 글 제목을 잘라서 출력합니다. (기본 10자) + 指定された文字数分の長さを切り取って表示します。(デフォルト10文字) + 可以指定标题长度。(默认为10字) + It cuts the length of subject and displays (10 letters as default). Muestra el título con el número de letras asignadas (predefinio: 10). - Это обрезает длину темы и отображает выбранное чило знаков(стандарт: 10). - - - 썸네일 생성 방법 - 生成方法 - 缩略图生成方式 - Thumbnail Type - Тип миниатюры - 썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기) - サムネールの生成方法を選択します(Crop : トリミング, Ratio : 比率)。 + Это обрезает длину темы и отображает выбранное чило знаков(стандарт: 10). + + + select + 썸네일 생성 방법 + 生成方法 + 缩略图生成方式 + Thumbnail Type + Тип миниатюры + 썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기) + サムネールの生成方法を選択します(Crop : トリミング, Ratio : 比率)。 可以选择缩略图生成方式。 (crop : 裁减, ratio : 比例) - Thumbnail Type may be set here. - Тип миниатюры может быть установлен здесь. - select - - Crop (채우기) - Crop (トリミング) - Crop (裁减) - Crop - Crop (Обрезание) - crop - - - Ratio (비율 맞추기) - Ratio (比率) - Ratio (比例) - Ratio - Ratio (Отношение) - ratio - - - - 이미지 가로크기 - イメージ横幅 - 宽度 - Width of Image + Thumbnail Type may be set here. + Тип миниатюры может быть установлен здесь. + + crop + Crop (채우기) + Crop (トリミング) + Crop (裁减) + Crop + Crop (Обрезание) + + + ratio + Ratio (비율 맞추기) + Ratio (比率) + Ratio (比例) + Ratio + Ratio (Отношение) + + + + text + 이미지 가로크기 + イメージ横幅 + 宽度 + Width of Image Ancho de la imagen - Ширина изображения - text - 출력될 이미지의 가로크기를 정하실 수 있습니다. (기본 100) - 表示されるイメージの横幅のサイズを指定することができます(デフォルト100)。 - 可以指定要显示的图片宽度。(默认为100) - You can set the width of image. (100 as default) + Ширина изображения + 출력될 이미지의 가로크기를 정하실 수 있습니다. (기본 100) + 表示されるイメージの横幅のサイズを指定することができます(デフォルト100)。 + 可以指定要显示的图片宽度。(默认为100) + You can set the width of image. (100 as default) Usted puede definir el ancho de la imagen. (predefinido:100px) - Вы можете установить ширину изображения. (стандарт: 100px) - - - 이미지 세로크기 - イメージ縦幅 - 高度 - Height of Image - Высота изображения - 이미지의 세로 크기를 지정할 수 있습니다. (기본 100px) - イメージの縦幅サイズを指定します(デフォルト 100px) - 可以指定图片高度。(默认为100px) - You can set the height of image. (100 as default) - Вы можете установить вытсоту изображения. (стандарт: 100px) - text - - - 가로 이미지 수 - イメージ数 - 横向图片数 - Number of Images + Вы можете установить ширину изображения. (стандарт: 100px) + + + text + 이미지 세로크기 + イメージ縦幅 + 高度 + Height of Image + Высота изображения + 이미지의 세로 크기를 지정할 수 있습니다. (기본 100px) + イメージの縦幅サイズを指定します(デフォルト 100px) + 可以指定图片高度。(默认为100px) + You can set the height of image. (100 as default) + Вы можете установить вытсоту изображения. (стандарт: 100px) + + + text + 가로 이미지 수 + イメージ数 + 横向图片数 + Number of Images Número de imágenes - Число изображений (колонка) - text - 출력될 가로 이미지의 수를 정하실 수 있습니다. (기본 5개) - 表示されるイメージの横並びの数を指定します(デフォルト5個)。 - 可以指定要显示的横向图片个数。(默认为5个) - You can set the number of images to display. (5 as default) + Число изображений (колонка) + 출력될 가로 이미지의 수를 정하실 수 있습니다. (기본 5개) + 表示されるイメージの横並びの数を指定します(デフォルト5個)。 + 可以指定要显示的横向图片个数。(默认为5个) + You can set the number of images to display. (5 as default) Usted puede definir el múmero de imágenes a mostrar. (predefinido: 5) - Вы можете установить число изображений для показа. (стандарт: 5) - - - 세로 이미지 수 - イメージ数 - 纵向图片数 - Number of Images + Вы можете установить число изображений для показа. (стандарт: 5) + + + text + 세로 이미지 수 + イメージ数 + 纵向图片数 + Number of Images Número de imágenes - Число изображений (ряд) - text - 출력될 세로 이미지의 수를 정하실 수 있습니다. (기본 1개) - 表示されるイメージの縦並びの数を指定することができます(デフォルト5個)。 - 可以指定要显示的纵向图片个数。(默认为1个) - You can set the number of images to display. (5 as default) + Число изображений (ряд) + 출력될 세로 이미지의 수를 정하실 수 있습니다. (기본 1개) + 表示されるイメージの縦並びの数を指定することができます(デフォルト5個)。 + 可以指定要显示的纵向图片个数。(默认为1个) + You can set the number of images to display. (5 as default) Usted puede definir el número de imágenes a mostrar. (predefinido: 5 ) - Вы можете установить число изображений для показа. (стандарт: 5) - - - 글쓴이 표시 - 投稿者表示 - 显示昵称 - Display Author + Вы можете установить число изображений для показа. (стандарт: 5) + + + select + 글쓴이 표시 + 投稿者表示 + 显示昵称 + Display Author Mostrar el Autor - Отображение автора - select - - - 표시 - 表示 - 显示 + Отображение автора + + + Y + 표시 + 表示 + 显示 Show Mostrar Показывать - Y - - - 표시하지 않음 - 非表示 - 不显示 + + + N + 표시하지 않음 + 非表示 + 不显示 Hide Ocultar Скрывать - N - - - - 작성일 표시 - 作成日表示 - 显示发表日期 - Display Registered Date + + + + select + 작성일 표시 + 作成日表示 + 显示发表日期 + Display Registered Date Mostrar el día agregado - Отображение даты регистрации - select - - - 표시 - 表示 - 显示 + Отображение даты регистрации + + + Y + 표시 + 表示 + 显示 Show Mostrar Показывать - Y - - - 표시하지 않음 - 非表示 - 不显示 + + + N + 표시하지 않음 + 非表示 + 不显示 Hide Ocultar Скрывать - N - - - - 조회수 표시 - 照合数表示 - 显示查看数 - Display Hit + + + + select + 조회수 표시 + 照合数表示 + 显示查看数 + Display Hit Mostrar Ayuda - Отображение хитов - - select - - 표시 - 表示 - 显示 + Отображение хитов + + + Y + 표시 + 表示 + 显示 Show Mostrar Показывать - Y - - - 표시하지 않음 - 非表示 - 不显示 + + + N + 표시하지 않음 + 非表示 + 不显示 Hide Ocultar Скрывать - N - - - - 추천수 표시 - 推薦数表示 - 显示推荐数 - Display Votes + + + + select + 추천수 표시 + 推薦数表示 + 显示推荐数 + Display Votes Mostrar Recomendados - Отображение голосов - - select - - 표시 - 表示 - 显示 + Отображение голосов + + + Y + 표시 + 表示 + 显示 Show Mostrar Показывать - Y - - - 표시하지 않음 - 非表示 - 不显示 - Hide - Ocultar + + + N + 표시하지 않음 + 非表示 + 不显示 + Hide + Ocultar Скрывать - N - - - + + + diff --git a/widgets/newest_images/skins/cloud/list.html b/widgets/newest_images/skins/cloud/list.html index bee690fac..be8b64f4a 100644 --- a/widgets/newest_images/skins/cloud/list.html +++ b/widgets/newest_images/skins/cloud/list.html @@ -1,4 +1,4 @@ - + @@ -25,7 +25,7 @@ } - + @@ -26,7 +26,7 @@ } - + diff --git a/widgets/newest_images/skins/default/skin.xml b/widgets/newest_images/skins/default/skin.xml index 0acac1413..4c8a4f0ba 100644 --- a/widgets/newest_images/skins/default/skin.xml +++ b/widgets/newest_images/skins/default/skin.xml @@ -1,25 +1,30 @@ - - - 최신 이미지 위젯 기본 스킨 - 最新イメージ表示のデフォルトスキン - 最新图片列表默认皮肤 - Newest Image Widget Default Skin - - 제로 - Zero - Zero - Zero + + + 최신 이미지 위젯 기본 스킨 + 最新イメージ表示のデフォルトスキン + 最新图片列表默认皮肤 + Newest Image Widget Default Skin 최신 이미지 위젯의 기본 스킨입니다. 最新イメージを表示するウィジェットのデフォルトスキンです。 最新图片列表控件的默认皮肤. This is default skin of newest image widget. - - - - 기본 컬러 - デフォルトカラー - 默认颜色 - Default Color - - - + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + Zero + Zero + Zero + + + + + 기본 컬러 + デフォルトカラー + 默认颜色 + Default Color + + + \ No newline at end of file diff --git a/widgets/newest_images/skins/xe_official/css/normal.css b/widgets/newest_images/skins/xe_official/css/normal.css index c3ff315f3..55a18d5de 100644 --- a/widgets/newest_images/skins/xe_official/css/normal.css +++ b/widgets/newest_images/skins/xe_official/css/normal.css @@ -18,7 +18,7 @@ .ni_box .thumbnail_box td.bottomBorder { border-bottom:1px dashed #EEEEEE; padding-bottom:5px; } .ni_box .thumbnail_box div strong { font-weight:bold; font-size:0.9em; color:#ed2a32; } .ni_box .thumbnail_box div.author { color:#54564b; text-align:center;} -.ni_box .thumbnail_box div.author span,div { color:#54564b; } +.ni_box .thumbnail_box div.author span, .ni_box .thumbnail_box div.author div { color:#54564b; } .ni_box .thumbnail_box div.regdate { font-size:0.9em; color:#AAAAAA; margin-top:2px;text-align:center;} .ni_box .thumbnail_box div.readAndVoted { color:#999999; font-size:0.9em; text-align:center;} diff --git a/widgets/newest_images/skins/xe_official/list.html b/widgets/newest_images/skins/xe_official/list.html index 28baefdc7..5859c8718 100644 --- a/widgets/newest_images/skins/xe_official/list.html +++ b/widgets/newest_images/skins/xe_official/list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/newest_images/skins/xe_official/skin.xml b/widgets/newest_images/skins/xe_official/skin.xml index 5e645b8ce..c322fa15d 100644 --- a/widgets/newest_images/skins/xe_official/skin.xml +++ b/widgets/newest_images/skins/xe_official/skin.xml @@ -1,25 +1,30 @@ - - - 최신 이미지 위젯 기본 스킨 - 最新イメージ表示のデフォルトスキン - 官方网站图片列表皮肤 - Newest Image Widget Default Skin - - 제로 - Zero - Zero - Zero - 최신 이미지 위젯의 기본 스킨입니다. - 最新イメージを表示するウィジェットのデフォルトスキンです。 - 最新图片列表控件的官方网站皮肤。 - This is default skin of newest image widget. - - - - 기본 컬러 - デフォルトカラー - 默认颜色 - Default Color - - - + + + 최신 이미지 위젯 기본 스킨 + 最新イメージ表示のデフォルトスキン + 官方网站图片列表皮肤 + Newest Image Widget Default Skin + 최신 이미지 위젯의 기본 스킨입니다. + 最新イメージを表示するウィジェットのデフォルトスキンです。 + 最新图片列表控件的官方网站皮肤。 + This is default skin of newest image widget. + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + Zero + Zero + Zero + + + + + 기본 컬러 + デフォルトカラー + 默认颜色 + Default Color + + + \ No newline at end of file diff --git a/widgets/newest_trackback/conf/info.xml b/widgets/newest_trackback/conf/info.xml index 568270b74..d4cbf218d 100644 --- a/widgets/newest_trackback/conf/info.xml +++ b/widgets/newest_trackback/conf/info.xml @@ -1,70 +1,74 @@ - - + + 최근 엮인글 출력 引用列表 最新トラックバック表示 Newest Trackbacks - Mostrar Trackbacks recientes + Mostrar Trackbacks recientes Отображение последних трекбеков - + 최근 엮인글 (trackback)을 출력하는 위젯입니다. + 显示最新引用 (trackback)列表的控件。 + 最新のトラックバック(trackback)を表示させるウィジェットです。 + This widget displays newest trackbacks. + Este widget muestra los trackbacks recientes. + Этот виджет отображает последние трекбеки. + 0.1 + 2007-02-28 + + 제로 zero Zero zero - zero + zero zero - 최근 엮인글 (trackback)을 출력하는 위젯입니다. - 显示最新引用 (trackback)列表的控件。 - 最新のトラックバック(trackback)を表示させるウィジェットです。 - This widget displays newest trackbacks. - Este widget muestra los trackbacks recientes. - Этот виджет отображает последние трекбеки. + + text 제목 栏目名 タイトル Title - Título + Título Заголовок - text 최근 엮인글 제목으로 출력됩니다. 显示为最新引用列表的标题。 最新のトラックバックタイトルとして表示されます。 This will be the title of the Newest Trackbacks to be displayed. - Este será el título de los trackbacks recientes. + Este será el título de los trackbacks recientes. Это будет заголовком последних трекбеков. + text 목록수 目录数 リスト数 The number of list - Número de la lista + Número de la lista Число списка - text 출력될 목록의 수를 정하실 수 있습니다. (기본 5개) 可设置要显示的目录数。 (默认为5个) 出力されるリストの数を指定することができます(デフォルト5個) You can set the number of list to be displayed.(default is 5) - Usted puede definir el número de listas a mostrar.(predefinido: 5) - Вы можете выбрать число списка трекбеков для отображения. (стандарт: 5) + Usted puede definir el número de listas a mostrar.(predefinido: 5) + Вы можете выбрать число списка трекбеков для отображения. (стандарт: 5) + mid_list 대상 모듈 模块对象 モジュール Target Module - Módulo Objetivo + Módulo Objetivo Модуль назначения - mid_list 선택하신 모듈에 등록된 글을 대상으로 합니다. 将把被选模块当中的主题作为对象。 チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。 The target articles for the newest trackbacks will be the ones submitted in the selected module. - Objetivo de los documentos agregados serán los del módulo seleccionado. + Objetivo de los documentos agregados serán los del módulo seleccionado. Статьи назначения для последних трекбеков будут теми, что были размещены в выбранном модуле. - + \ No newline at end of file diff --git a/widgets/newest_trackback/skins/blog_newest_trackback/list.html b/widgets/newest_trackback/skins/blog_newest_trackback/list.html index 934b66b2b..f993aa3e2 100644 --- a/widgets/newest_trackback/skins/blog_newest_trackback/list.html +++ b/widgets/newest_trackback/skins/blog_newest_trackback/list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/newest_trackback/skins/blog_newest_trackback/skin.xml b/widgets/newest_trackback/skins/blog_newest_trackback/skin.xml index c86efe7e4..5e63b5465 100644 --- a/widgets/newest_trackback/skins/blog_newest_trackback/skin.xml +++ b/widgets/newest_trackback/skins/blog_newest_trackback/skin.xml @@ -1,55 +1,60 @@ - - - 블로그 스타일의 최신 엮인글 목록 - ブログスタイルの最新のトラックバックリスト - 博客式最新引用列表 - Newest Trackback List of Blog Style - - 제로 - Zero - zero - zero + + + 블로그 스타일의 최신 엮인글 목록 + ブログスタイルの最新のトラックバックリスト + 博客式最新引用列表 + Newest Trackback List of Blog Style 블로그 스타일로 최신 엮인글 출력합니다. ブログスタイルで最新のトラックバックを表示します。 显示为博客式的最新引用列表。 It displays newest trackback list with blog style. - - - - 레이아웃에 맞춤 - レイアウトに合わせる - 随布局 - 레이아웃에 맞춤 - - - 기본 컬러 - デフォルトカラー - 默认颜色 - Default color - - - 청록색 - 青緑 - 青绿色 - cyan - - - 초록색 - - 绿色 - green - - - 빨간색 - - 红色 - red - - - 보라색 - - 紫色 - purple - - - + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + Zero + zero + zero + + + + + 레이아웃에 맞춤 + レイアウトに合わせる + 随布局 + 레이아웃에 맞춤 + + + 기본 컬러 + デフォルトカラー + 默认颜色 + Default color + + + 청록색 + 青緑 + 青绿色 + cyan + + + 초록색 + + 绿色 + green + + + 빨간색 + + 红色 + red + + + 보라색 + + 紫色 + purple + + + \ No newline at end of file diff --git a/widgets/point_status/conf/info.xml b/widgets/point_status/conf/info.xml index 295ac149b..c9137565e 100644 --- a/widgets/point_status/conf/info.xml +++ b/widgets/point_status/conf/info.xml @@ -1,23 +1,26 @@ - - + + 포인트 현황 출력 위젯 在线会员积分现况 Point Status - + + 로그인한 회원의 포인트 현황을 출력하는 위젯입니다. + 캐시는 0으로 해주셔야 합니다. + + + 显示在线会员积分现况的控件。 + 缓冲要设置为0。 + + + This widget displays online members' points status. + Cache must be 0. + + 0.1 + 2008-04-23 + + 제로 zero - Zero - - 로그인한 회원의 포인트 현황을 출력하는 위젯입니다. - 캐시는 0으로 해주셔야 합니다. - - - 显示在线会员积分现况的控件。 - 缓冲要设置为0。 - - - This widget displays online members' points status. - Cache must be 0. - + Zero - + \ No newline at end of file diff --git a/widgets/point_status/skins/default/skin.xml b/widgets/point_status/skins/default/skin.xml index 1fc8396c3..8bb9b5577 100644 --- a/widgets/point_status/skins/default/skin.xml +++ b/widgets/point_status/skins/default/skin.xml @@ -1,23 +1,24 @@ - - - 회원 포인트 현황 기본 스킨 - 在线会员积分现况默认皮肤 - - 제로 - zero - - 포인트 현황 출력 위젯의 기본 스킨입니다. - - - 显示在线会员积分现况的默认皮肤。 - - - - - 기본 컬러 - デフォルトカラー - 默认颜色 - Default color - - - + + + 회원 포인트 현황 기본 스킨 + 在线会员积分现况默认皮肤 + 포인트 현황 출력 위젯의 기본 스킨입니다. + 显示在线会员积分现况的默认皮肤。 + 0.1 + 2008-04-23 + http://www.zeroboard.com + + + 제로 + zero + + + + + 기본 컬러 + デフォルトカラー + 默认颜色 + Default color + + + \ No newline at end of file diff --git a/widgets/rank_count/conf/info.xml b/widgets/rank_count/conf/info.xml index c4f767aa2..c5b0bfff4 100644 --- a/widgets/rank_count/conf/info.xml +++ b/widgets/rank_count/conf/info.xml @@ -1,194 +1,198 @@ - - + + 글, 댓글 랭킹 출력 書き込み、コメントランキング出力 - Article, Comment Ranking - El artículo, el comentario ranking - 会员各项活动排行榜 - Рейтинг статей, комментариев - + Article, Comment Ranking + El artículo, el comentario ranking + 会员各项活动排行榜 + Рейтинг статей, комментариев + 글, 댓글 작성 순위를 출력합니다. + 書き込み、コメント作成順位を出力します。 + This widget displays articles and comments ranking. + Este widget muestra de artículos y comentarios ranking. + 按发表主题/评论/附件/推荐/查看数显示会员排行的控件。 + Этот виджет отображает рейтинг статей и комментариев. + 1.0 + 2007-10-07 + + Simulz Simulz - Simulz - Simulz - Simulz - Simulz - 글, 댓글 작성 순위를 출력합니다. - 書き込み、コメント作成順位を出力します。 - This widget displays articles and comments ranking. - Este widget muestra de artículos y comentarios ranking. - 按发表主题/评论/附件/推荐/查看数显示会员排行的控件。 - Этот виджет отображает рейтинг статей и комментариев. + Simulz + Simulz + Simulz + Simulz + + text 제목 タイトル - 栏目名 + 栏目名 Title - Título + Título Заголовок - text 위젯의 제목으로 출력됩니다. ウィジェットのタイトルとして出力されます。 - 显示为控件的栏目名。 + 显示为控件的栏目名。 It will be the title. - Será el título. + Será el título. Это будет заголовком. + text 목록수 リスト数 - 目录数 + 目录数 The number of list - Número de la lista + Número de la lista Число списка - text 출력될 목록의 수를 정하실 수 있습니다. (기본 5개) - 可以设置要显示的会员数。(默认为5个) + 可以设置要显示的会员数。(默认为5个) 出力されるリストの数を指定することができます(デフォルト5個) - 可以指定要输出的目录数. (默认 5个) + 可以指定要输出的目录数. (默认 5个) You can set the number of list to be displayed.(default is 5) - Usted puede definir el número de listas a mostrar.(predefinido: 5) - Вы можете выбрать число списка трекбеков для отображения. (стандарт: 5) + Usted puede definir el número de listas a mostrar.(predefinido: 5) + Вы можете выбрать число списка трекбеков для отображения. (стандарт: 5) - 순위 대상 - Rank target - Rango meta - Место целевого - 順位対象 - 排行对象 select + 순위 대상 + Rank target + Rango meta + Место целевого + 順位対象 + 排行对象 대상을 선택하세요. 対象を選択してください。 - 请选择排行对象。 - Rank by - Rank por - Рейтинговать по + 请选择排行对象。 + Rank by + Rank por + Рейтинговать по + document 글 작성 書き込み作成 - 发表主题 + 发表主题 Article - Artículo + Artículo Статья - document + comment 댓글 작성 コメント作成 - 发表评论 + 发表评论 Comment - Comentario + Comentario Комментарий - comment + attach 파일 첨부 ファイル添付 - 附件 + 附件 Attach - Adjuntar + Adjuntar Вложение - attach + vote 추천 수 推薦数 - 推荐 + 推荐 Votes - Votos + Votos Голоса - vote + read 조회 수 照合数 - 查看 + 查看 Reads - Lecturas + Lecturas Прочтения - read + select 관리자 管理者 - 显示管理员 + 显示管理员 Without Admin - Sin Admin + Sin Admin Без админа - select 순위에 관리자를 포함합니다. 順位に管理者を含みます。 - 选择排行榜是否要显示管理员。 + 选择排行榜是否要显示管理员。 Disables admins' ranking - Desactiva admins' ranking - Отключает учет рейтинга админов + Desactiva admins' ranking + Отключает учет рейтинга админов + false 포함 含む - 显示 + 显示 False - Falso + Falso Нет - false + true 미포함 含まない - 不显示 + 不显示 True - Verdadero + Verdadero Да - true + text 그룹 포함 グループを含む - 用户组 + 用户组 With Group - Con Grupo + Con Grupo С группой - text 출력할 회원 그룹명을 입력하세요. 예)준회원,정회원 出力する会員グループ名を入力してください(例:準会員、正会員)。 - 请输入要显示的会员组。例)准会员,正会员 + 请输入要显示的会员组。例)准会员,正会员 Enables group's ranking - Permite grupo de la clasificación - Включает учет рейтинга группы + Permite grupo de la clasificación + Включает учет рейтинга группы + text 그룹 제외 グループ除外 - 豁免用户组 + 豁免用户组 Without Group - Sin Grupo + Sin Grupo Без группы - text 제외할 회원 그룹명을 입력하세요. 예)관리그룹 除外するグループ名を入力してください(例:管理グループ) - 请输入豁免用户组名。例)管理组 + 请输入豁免用户组名。例)管理组 Disables group's ranking - Desactiva grupo de la clasificación - Выключает учет рейтинга группы + Desactiva grupo de la clasificación + Выключает учет рейтинга группы + text 기간(일) 期間(日) - 期间(日期) + 期间(日期) Registration Date - Fecha de Registro + Fecha de Registro Дата регистрации - text 설정 기간 내의 순위를 출력합니다. 設定期間内の順位を出力します。 - 显示设置期间内的会员排行。 + 显示设置期间内的会员排行。 Registration Date - Fecha de Registro - Дата регистрации + Fecha de Registro + Дата регистрации - + \ No newline at end of file diff --git a/widgets/rank_count/skins/sz_xe/list.html b/widgets/rank_count/skins/sz_xe/list.html index ab64d0423..7aa3bbfcd 100644 --- a/widgets/rank_count/skins/sz_xe/list.html +++ b/widgets/rank_count/skins/sz_xe/list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/rank_count/skins/sz_xe/skin.xml b/widgets/rank_count/skins/sz_xe/skin.xml index 9460f7186..07542aea8 100644 --- a/widgets/rank_count/skins/sz_xe/skin.xml +++ b/widgets/rank_count/skins/sz_xe/skin.xml @@ -1,87 +1,84 @@ - - - Simulz 랭킹 스킨 - Simulzランキングスキン - Simulz会员排行榜皮肤 - Simulz Ranking Skin - - Simulz - Simulz - Simulz - Simulz - - Simulz 랭킹 스킨입니다. - - - Simulzランキングスキンです。 - - - Simulz样式会员排行榜皮肤。 - - - This is Simulz ranking skin. - - - - - 기본 - デフォルト - 默认 - Default - - - 회색 - - 灰色 - Gray - - - 연두 - 薄緑 - 淡绿 - Yellowish Green - - - 분홍 - ピンク - 粉红 - Pink - - - 보라 - - 淡青 - Purple - - - 밝은 파랑 - - 浅蓝 - Bright Blue - - - 청록 - 青緑 - 青绿 - Bluish Green - - - 초록 - - 草绿 - Green - - - 노랑 - - 黄色 - Yellow - - - 파랑 - - 蓝色 - Blue - - - + + + Simulz 랭킹 스킨 + Simulzランキングスキン + Simulz会员排行榜皮肤 + Simulz Ranking Skin + Simulz 랭킹 스킨입니다. + Simulzランキングスキンです。 + Simulz样式会员排行榜皮肤。 + This is Simulz ranking skin. + 0.1 + 2007-08-29 + http://www.zeroboard.com + + + Simulz + Simulz + Simulz + Simulz + + + + + 기본 + デフォルト + 默认 + Default + + + 회색 + + 灰色 + Gray + + + 연두 + 薄緑 + 淡绿 + Yellowish Green + + + 분홍 + ピンク + 粉红 + Pink + + + 보라 + + 淡青 + Purple + + + 밝은 파랑 + + 浅蓝 + Bright Blue + + + 청록 + 青緑 + 青绿 + Bluish Green + + + 초록 + + 草绿 + Green + + + 노랑 + + 黄色 + Yellow + + + 파랑 + + 蓝色 + Blue + + + \ No newline at end of file diff --git a/widgets/rank_download/conf/info.xml b/widgets/rank_download/conf/info.xml index f16cf4fbf..6dc10a81f 100644 --- a/widgets/rank_download/conf/info.xml +++ b/widgets/rank_download/conf/info.xml @@ -1,145 +1,149 @@ - - + + 다운로드 랭킹 출력 ダウンロードランキング出力 - Download Ranking - Descargar Clasificación - 下载附件排行榜 - Рейтинг закачек - + Download Ranking + Descargar Clasificación + 下载附件排行榜 + Рейтинг закачек + 자료 내려받기 순위를 출력합니다. + ダウンロードランキングを出力します。 + This widget displays download ranking. + Este widget muestra descargar ranking. + 显示附件下载排行的控件。 + Этот виджет отображает рейтинг закачек. + 0.1 + 2007-08-29 + + Simulz Simulz - Simulz - Simulz - Simulz - Simulz - 자료 내려받기 순위를 출력합니다. - ダウンロードランキングを出力します。 - This widget displays download ranking. - Este widget muestra descargar ranking. - 显示附件下载排行的控件。 - Этот виджет отображает рейтинг закачек. + Simulz + Simulz + Simulz + Simulz + + text 제목 タイトル - Title - Título - 栏目名 - Залоговок - text + Title + Título + 栏目名 + Залоговок 위젯의 제목으로 출력됩니다. ウィジェットのタイトルとして出力されます。 - It will be displayed as widget's title. - Que se mostrarán en forma de widget de título. - 显示为控件的栏目名。 - Это будет заголовком виджета. + It will be displayed as widget's title. + Que se mostrarán en forma de widget de título. + 显示为控件的栏目名。 + Это будет заголовком виджета. + text 목록수 リスト数 - No. of List - N º de la lista - 目录数 - Число списка - text + No. of List + N º de la lista + 目录数 + Число списка 출력될 목록의 수를 정하실 수 있습니다. (기본 5개) 出力されるリスト数を指定することができます(デフォルト5個)。 - You may set number of list that will be displayed. (default 5) - Usted puede configurar el número de lista que se mostrarán. (Por defecto 5) - 可以设置要显示的排行数。(默认 5个) - Вы можете выбрать число списка для отображения. (стандарт: 5) + You may set number of list that will be displayed. (default 5) + Usted puede configurar el número de lista que se mostrarán. (Por defecto 5) + 可以设置要显示的排行数。(默认 5个) + Вы можете выбрать число списка для отображения. (стандарт: 5) + select 파일 종류 ファイルの種類 - Type of File - Tipo de archivo - 附件类型 - Тип файла - select + Type of File + Tipo de archivo + 附件类型 + Тип файла 순위에 포함할 파일 종류를 선택하세요. 順位に含むファイルの種類を選択してください。 - Please select type of file to include. - Por favor, seleccione el tipo de archivo a incluir. - 请选择要显示的附件类型。 - Пожалуйста, выберите тип файла для включения. + Please select type of file to include. + Por favor, seleccione el tipo de archivo a incluir. + 请选择要显示的附件类型。 + Пожалуйста, выберите тип файла для включения. + all 모두 全て - All - Todos - 全部 - Все - all + All + Todos + 全部 + Все + noimage 이미지 제외 イメージ除外 - Exclude Images - Excluir imágenes - 图片除外 - Исключить изображения - noimage + Exclude Images + Excluir imágenes + 图片除外 + Исключить изображения + image 이미지만 イメージのみ - Images Only - Sólo imágenes - 图片 - Только изображения - image + Images Only + Sólo imágenes + 图片 + Только изображения + select 내려 받기 ダウンロード - Download - Descargar - 显示下载链接 - Скачать - select + Download + Descargar + 显示下载链接 + Скачать 바로 내려 받는 링크를 보여줍니다. 直接ダウンロードするリンクを表示します。 - It shows direct download link. - Muestra enlace de descarga directa. - 可以选择是否要显示下载链接。 - Это показывает прямую ссылку для скачки. + It shows direct download link. + Muestra enlace de descarga directa. + 可以选择是否要显示下载链接。 + Это показывает прямую ссылку для скачки. + Y 링크 보임 リンク表示 - Show Link - Ver Link - 显示 - Показать ссылку - Y + Show Link + Ver Link + 显示 + Показать ссылку + N 링크 숨김 リンク非表示 - Hide Link - Ocultar Link - 不显示 - Спрятать ссылку - N + Hide Link + Ocultar Link + 不显示 + Спрятать ссылку + mid_list 대상 모듈 対象モジュール - Target Module - Objetivo Módulo - 对象模块 + Target Module + Objetivo Módulo + 对象模块 Модуль назначения - mid_list 선택하신 모듈에 등록된 글을 대상으로 합니다. 選択したモジュールに登録されたコンテンツ(書き込み)を対象とします。 - Articles in selected module will be target. - Los artículos seleccionados en el módulo se meta. - 将把被选模块中的主题作为对象。 + Articles in selected module will be target. + Los artículos seleccionados en el módulo se meta. + 将把被选模块中的主题作为对象。 Статьи в выбранном модуле будут назначением. - + \ No newline at end of file diff --git a/widgets/rank_download/skins/sz_xe/list.html b/widgets/rank_download/skins/sz_xe/list.html index ce40c9807..653b9c926 100644 --- a/widgets/rank_download/skins/sz_xe/list.html +++ b/widgets/rank_download/skins/sz_xe/list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/rank_download/skins/sz_xe/skin.xml b/widgets/rank_download/skins/sz_xe/skin.xml index da4c345ad..b8d1f0810 100644 --- a/widgets/rank_download/skins/sz_xe/skin.xml +++ b/widgets/rank_download/skins/sz_xe/skin.xml @@ -1,87 +1,84 @@ - - - Simulz 랭킹 스킨 - Simulzランキングスキン - Simulz Ranking Skin - Simulz下载排行皮肤 - - Simulz - Simulz - Simulz - Simulz - - Simulz 랭킹 스킨입니다. - - - Simulzランキングスキンです。 - - - This is Simulz Ranking Skin. - - - Simulz样式附件下载排行皮肤。 - - - - - 기본 - デフォルト - Default - 默认 - - - 회색 - - Gray - 灰色 - - - 연두 - 薄緑 - Yellowish Green - 淡绿 - - - 분홍 - ピンク - Pink - 粉红 - - - 보라 - - Purple - 淡青 - - - 밝은 파랑 - - Bright Blue - 浅蓝 - - - 청록 - 青緑 - Bluish Green - 青绿 - - - 초록 - - Green - 草绿 - - - 노랑 - - Yellow - 黄色 - - - 파랑 - - Blue - 蓝色 - - - + + + Simulz 랭킹 스킨 + Simulzランキングスキン + Simulz Ranking Skin + Simulz下载排行皮肤 + Simulz 랭킹 스킨입니다. + Simulzランキングスキンです。 + This is Simulz Ranking Skin. + Simulz样式附件下载排行皮肤。 + 0.1 + 2007-08-29 + http://www.zeroboard.com + + + Simulz + Simulz + Simulz + Simulz + + + + + 기본 + デフォルト + Default + 默认 + + + 회색 + + Gray + 灰色 + + + 연두 + 薄緑 + Yellowish Green + 淡绿 + + + 분홍 + ピンク + Pink + 粉红 + + + 보라 + + Purple + 淡青 + + + 밝은 파랑 + + Bright Blue + 浅蓝 + + + 청록 + 青緑 + Bluish Green + 青绿 + + + 초록 + + Green + 草绿 + + + 노랑 + + Yellow + 黄色 + + + 파랑 + + Blue + 蓝色 + + + \ No newline at end of file diff --git a/widgets/rank_point/conf/info.xml b/widgets/rank_point/conf/info.xml index 0de8601f9..94219d8b3 100644 --- a/widgets/rank_point/conf/info.xml +++ b/widgets/rank_point/conf/info.xml @@ -1,118 +1,122 @@ - - + + 포인트 랭킹 출력 ポイントランキング出力 - Point Ranking - Pantalla punto ranking - 会员积分排行榜 - Отображение рейтинга поинтов - + Point Ranking + Pantalla punto ranking + 会员积分排行榜 + Отображение рейтинга поинтов + 회원의 포인트 순위를 출력합니다. + 会員のポイント順位を出力します。 + This widget displays members' point ranking. + Este widget muestra de los miembros del punto de la clasificación. + 显示会员积分排行的控件。 + Этот виджет отображает рейтинг поитов пользователей. + 1.0 + 2007-08-29 + + Simulz Simulz - Simulz - Simulz - Simulz - Simulz - 회원의 포인트 순위를 출력합니다. - 会員のポイント順位を出力します。 - This widget displays members' point ranking. - Este widget muestra de los miembros del punto de la clasificación. - 显示会员积分排行的控件。 - Этот виджет отображает рейтинг поитов пользователей. + Simulz + Simulz + Simulz + Simulz + + text 제목 タイトル - Title - Título - Название - 栏目名 - text + Title + Título + Название + 栏目名 위젯의 제목으로 출력됩니다. ウィジェットのタイトルとして出力します。 - It will be displayed as widget's title. - Que se mostrarán en forma de widget de título. - 显示为控件的栏目名。 - Это будет заголовком виджета. + It will be displayed as widget's title. + Que se mostrarán en forma de widget de título. + 显示为控件的栏目名。 + Это будет заголовком виджета. + text 목록수 リスト数 - No. of List - N º de la lista - Количество Список - 目录数 - text + No. of List + N º de la lista + Количество Список + 目录数 출력될 목록의 수를 정하실 수 있습니다. (기본 5개) 出力されるリストの数を指定することができます(デフォルト5個)。 - You may set number of list that will be displayed. (default 5) - Usted puede configurar el número de lista que se mostrarán. (Por defecto 5) - 可以设置要显示的会员数。(默认为5个) - Вы можете выбрать число списка для отображения. (стандарт: 5) + You may set number of list that will be displayed. (default 5) + Usted puede configurar el número de lista que se mostrarán. (Por defecto 5) + 可以设置要显示的会员数。(默认为5个) + Вы можете выбрать число списка для отображения. (стандарт: 5) + select 관리자 管理者 - Administrator - Administrador - Администратор - 显示管理员 - select + Administrator + Administrador + Администратор + 显示管理员 순위에 관리자를 포함합니다. 順位に管理者を含みます。 - Administrators will be also ranked. - Los administradores también se clasificó. - 选择排行榜是否要显示管理员。 - Администраторы будут тоже подлежать рейтингу. + Administrators will be also ranked. + Los administradores también se clasificó. + 选择排行榜是否要显示管理员。 + Администраторы будут тоже подлежать рейтингу. + false 포함 含む - Include - Incluir - 显示 - Включить - false + Include + Incluir + 显示 + Включить + true 미포함 含まない - Exclude - Excluir - 不显示 - Исключить - true + Exclude + Excluir + 不显示 + Исключить + text 그룹 포함 グループを含む - Include Group - Incluir Grupo - 用户组 - Включить группу - text + Include Group + Incluir Grupo + 用户组 + Включить группу 출력할 회원 그룹명을 입력하세요. 예)준회원,정회원 出力する会員のグループ名を入力してください(例:準会員、正会員)。 - Please input name of group to include. ex) Associate, Regular Group - Introduce nombre de grupo a incluir. Ex) Asociado, Grupo Regular - 请输入要显示的会员组。例)准会员,正会员 - Пожалуйста, введите имя группы для включения. например: Общая, Обычная (Associate, Regular Group) + Please input name of group to include. ex) Associate, Regular Group + Introduce nombre de grupo a incluir. Ex) Asociado, Grupo Regular + 请输入要显示的会员组。例)准会员,正会员 + Пожалуйста, введите имя группы для включения. например: Общая, Обычная (Associate, Regular Group) + text 그룹 제외 グループ除外 - Exclude Group - Excluir Grupo - 豁免用户组 - Исключить группу - text + Exclude Group + Excluir Grupo + 豁免用户组 + Исключить группу 제외할 회원 그룹명을 입력하세요. 예)관리그룹,정회원 除外するグループ名を入力してください(管理グループ、正会員)。 - Please input name of group to exclude. ex) Managing, Regular Group - Introduce nombre de grupo para excluir. Ex) Administrar, regular Group - 请输入豁免用户组名。例)管理组 - Пожалуйста, введите имя группы для ислючения. например: Общая, Обычная (Associate, Regular Group) + Please input name of group to exclude. ex) Managing, Regular Group + Introduce nombre de grupo para excluir. Ex) Administrar, regular Group + 请输入豁免用户组名。例)管理组 + Пожалуйста, введите имя группы для ислючения. например: Общая, Обычная (Associate, Regular Group) - + \ No newline at end of file diff --git a/widgets/rank_point/skins/sz_xe/list.html b/widgets/rank_point/skins/sz_xe/list.html index 07c2779bf..770ea38f3 100644 --- a/widgets/rank_point/skins/sz_xe/list.html +++ b/widgets/rank_point/skins/sz_xe/list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/rank_point/skins/sz_xe/skin.xml b/widgets/rank_point/skins/sz_xe/skin.xml index 0ad53176a..9349ec104 100644 --- a/widgets/rank_point/skins/sz_xe/skin.xml +++ b/widgets/rank_point/skins/sz_xe/skin.xml @@ -1,87 +1,84 @@ - - - Simulz 포인트 랭킹 스킨 - Simulz ポイントランキングスキン - Simulz Point Ranking Skin - Simulz会员积分排行榜皮肤 - - Simulz - Simulz - Simulz - Simulz - - Simulz 포인트 랭킹 스킨입니다. - - - Simulz ポイントランキングスキンです。 - - - This is Simulz Point Ranking Skin. - - - Simulz样式会员积分排行榜皮肤。 - - - - - 기본 - デフォルト - Default - 默认 - - - 회색 - - Gray - 灰色 - - - 연두 - 薄緑 - Yellowish Green - 淡绿 - - - 분홍 - ピンク - Pink - 粉红 - - - 보라 - - Purple - 淡青 - - - 밝은 파랑 - - Bright Blue - 浅蓝 - - - 청록 - 青緑 - Bluish Green - 青绿 - - - 초록 - - Green - 草绿 - - - 노랑 - - Yellow - 黄色 - - - 파랑 - - Blue - 蓝色 - - - + + + Simulz 포인트 랭킹 스킨 + Simulz ポイントランキングスキン + Simulz Point Ranking Skin + Simulz会员积分排行榜皮肤 + Simulz 포인트 랭킹 스킨입니다. + Simulz ポイントランキングスキンです。 + This is Simulz Point Ranking Skin. + Simulz样式会员积分排行榜皮肤。 + 0.1 + 2007-08-29 + http://www.zeroboard.com + + + Simulz + Simulz + Simulz + Simulz + + + + + 기본 + デフォルト + Default + 默认 + + + 회색 + + Gray + 灰色 + + + 연두 + 薄緑 + Yellowish Green + 淡绿 + + + 분홍 + ピンク + Pink + 粉红 + + + 보라 + + Purple + 淡青 + + + 밝은 파랑 + + Bright Blue + 浅蓝 + + + 청록 + 青緑 + Bluish Green + 青绿 + + + 초록 + + Green + 草绿 + + + 노랑 + + Yellow + 黄色 + + + 파랑 + + Blue + 蓝色 + + + \ No newline at end of file diff --git a/widgets/rss_reader/conf/info.xml b/widgets/rss_reader/conf/info.xml index 149facd04..42e48fe38 100644 --- a/widgets/rss_reader/conf/info.xml +++ b/widgets/rss_reader/conf/info.xml @@ -1,86 +1,90 @@ - - + + RSS 리더 RSS リーダー - RSS阅读器 + RSS阅读器 RSS Reader RSS-ридер - - Simulz - Simulz - Simulz - Simulz - Simulz RSS 리더입니다. - RSS リーダーです。 - RSS阅读器控件。 - This widget displays data retrieved from RSS feed. - Этот виджет отображает данные, полученные посредством RSS. + RSS リーダーです。 + RSS阅读器控件。 + This widget displays data retrieved from RSS feed. + Этот виджет отображает данные, полученные посредством RSS. + #7 + 2007-10-26 + + + Simulz + Simulz + Simulz + Simulz + Simulz - + + - 제목 - タイトル - 栏目名 - Title text + 제목 + タイトル + 栏目名 + Title 위젯의 제목으로 출력됩니다. - ウィジェットのタイトルとして表示されます。 - It will be displayed as widget's title. - 显示为栏目名。 - Это будет заголовком виджета. + ウィジェットのタイトルとして表示されます。 + It will be displayed as widget's title. + 显示为栏目名。 + Это будет заголовком виджета. - RSS URL - RSS URL - RSS URL - RSS URL - RSS URL text + RSS URL + RSS URL + RSS URL + RSS URL + RSS URL - - - - + + + + - 페이지 수 - ページ数 - 目录数 - Number of Pages - Число страниц text + 페이지 수 + ページ数 + 目录数 + Number of Pages + Число страниц 기본 값 10 - デフォルト値 10 - 默认为10个 - Limits number of pages (Default: 10) - Ограничивает количество страниц (стандарт: 10) + デフォルト値 10 + 默认为10个 + Limits number of pages (Default: 10) + Ограничивает количество страниц (стандарт: 10) - 날짜 형식 - 日付の形式 - 日期形式 - Date Format - Формат даты text + 날짜 형식 + 日付の形式 + 日期形式 + Date Format + Формат даты 기본 값 Y-m-d H:i:s - デフォルト値 Y-m-d H:i:s - 默认值 Y-m-d H:i:s - Default: Y-m-d H:i:s - Стандарт: Y-m-d H:i:s + デフォルト値 Y-m-d H:i:s + 默认值 Y-m-d H:i:s + Default: Y-m-d H:i:s + Стандарт: Y-m-d H:i:s - 본문 높이 - 本文の高さ - 内容高度 - Height - Ширина text + 본문 높이 + 本文の高さ + 内容高度 + Height + Ширина select 스킨에서 본문 높이 (기본값 200px) - select スキンから本文の高さ(デフォルト値 200px) - 选择select皮肤时的文本高度。(默认为200px) - Height of select skin (default: 200px) - Ширина скина (стандарт: 200px) + select スキンから本文の高さ(デフォルト値 200px) + 选择select皮肤时的文本高度。(默认为200px) + Height of select skin (default: 200px) + Ширина скина (стандарт: 200px) - - + + \ No newline at end of file diff --git a/widgets/rss_reader/skins/sz_select/skin.xml b/widgets/rss_reader/skins/sz_select/skin.xml index 4bca6c7a6..b28145d73 100644 --- a/widgets/rss_reader/skins/sz_select/skin.xml +++ b/widgets/rss_reader/skins/sz_select/skin.xml @@ -1,101 +1,96 @@ - - - Simulz 스킨 (Select 메뉴) - Simulz スキン (Select メニュー) - Simulz样式Select菜单型皮肤 - Simulz Skin (Select menu) - Simulz Cuidado de la Piel (menú Selección) - - Simulz - Simulz - Simulz - Simulz - Simulz - - Simulz 스킨입니다. - - - Simulz スキンです。 - - - Simulz样式Select菜单型皮肤。 - - - This is Simulz skin. - - - Esto es Simulz piel. - - - - - 기본 - デフォルト - 默认 - Default - Default - - - 회색 - - 灰色 - Gray - Gray - - - 연두 - 淡绿 - Yellowish Green - Verde amarillento - - - 분홍 - ピンク - 粉红 - Pink - Pink - - - 보라 - - 淡青 - Purple - Púrpura - - - 밝은 파랑 - - 浅蓝 - Bright Blue - Bright Blue - - - 청록 - 青緑 - 青绿 - Bluish Green - Verde azulado - - - 초록 - - 草绿 - Green - Verde - - - 노랑 - - 黄色 - Yellow - Amarillo - - - 파랑 - - 蓝色 - Blue - Azul - - - + + + Simulz 스킨 (Select 메뉴) + Simulz スキン (Select メニュー) + Simulz样式Select菜单型皮肤 + Simulz Skin (Select menu) + Simulz Cuidado de la Piel (menú Selección) + Simulz 스킨입니다. + Simulz スキンです。 + Simulz样式Select菜单型皮肤。 + This is Simulz skin. + Esto es Simulz piel. + 0.1 + 2007-11-05 + http://www.zeroboard.com + + + Simulz + Simulz + Simulz + Simulz + Simulz + + + + + 기본 + デフォルト + 默认 + Default + Default + + + 회색 + + 灰色 + Gray + Gray + + + 연두 + 淡绿 + Yellowish Green + Verde amarillento + + + 분홍 + ピンク + 粉红 + Pink + Pink + + + 보라 + + 淡青 + Purple + Púrpura + + + 밝은 파랑 + + 浅蓝 + Bright Blue + Bright Blue + + + 청록 + 青緑 + 青绿 + Bluish Green + Verde azulado + + + 초록 + + 草绿 + Green + Verde + + + 노랑 + + 黄色 + Yellow + Amarillo + + + 파랑 + + 蓝色 + Blue + Azul + + + \ No newline at end of file diff --git a/widgets/rss_reader/skins/sz_xe/skin.xml b/widgets/rss_reader/skins/sz_xe/skin.xml index eba270c1a..6c60ad080 100644 --- a/widgets/rss_reader/skins/sz_xe/skin.xml +++ b/widgets/rss_reader/skins/sz_xe/skin.xml @@ -1,101 +1,96 @@ - - - Simulz 스킨 (목록형) - Simulz スキン (リストスタイル) - Simulz样式目录型皮肤 - Simulz Skin (List Style) - Simulz Cuidado de la Piel (Lista Estilo) - - Simulz - Simulz - Simulz - Simulz - Simulz - - Simulz 스킨입니다. - - - Simulz スキンです。 - - - Simulz样式目录型皮肤。 - - - This is Simulz skin. - - - Esto es Simulz piel. - - - - - 기본 - デフォルト - 默认 - Default - Default - - - 회색 - - 灰色 - Gray - Gray - - - 연두 - 淡绿 - Yellowish Green - Verde amarillento - - - 분홍 - ピンク - 粉红 - Pink - Pink - - - 보라 - - 淡青 - Purple - Púrpura - - - 밝은 파랑 - - 浅蓝 - Bright Blue - Bright Blue - - - 청록 - 青緑 - 青绿 - Bluish Green - Verde azulado - - - 초록 - - 草绿 - Green - Verde - - - 노랑 - - 黄色 - Yellow - Amarillo - - - 파랑 - - 蓝色 - Blue - Azul - - - + + + Simulz 스킨 (목록형) + Simulz スキン (リストスタイル) + Simulz样式目录型皮肤 + Simulz Skin (List Style) + Simulz Cuidado de la Piel (Lista Estilo) + Simulz 스킨입니다. + Simulz スキンです。 + Simulz样式目录型皮肤。 + This is Simulz skin. + Esto es Simulz piel. + 0.1 + 2007-10-26 + http://www.zeroboard.com + + + Simulz + Simulz + Simulz + Simulz + Simulz + + + + + 기본 + デフォルト + 默认 + Default + Default + + + 회색 + + 灰色 + Gray + Gray + + + 연두 + 淡绿 + Yellowish Green + Verde amarillento + + + 분홍 + ピンク + 粉红 + Pink + Pink + + + 보라 + + 淡青 + Purple + Púrpura + + + 밝은 파랑 + + 浅蓝 + Bright Blue + Bright Blue + + + 청록 + 青緑 + 青绿 + Bluish Green + Verde azulado + + + 초록 + + 草绿 + Green + Verde + + + 노랑 + + 黄色 + Yellow + Amarillo + + + 파랑 + + 蓝色 + Blue + Azul + + + \ No newline at end of file diff --git a/widgets/rss_reader/skins/xe_official/list.html b/widgets/rss_reader/skins/xe_official/list.html index 7b1236858..4c967bf77 100644 --- a/widgets/rss_reader/skins/xe_official/list.html +++ b/widgets/rss_reader/skins/xe_official/list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/rss_reader/skins/xe_official/skin.xml b/widgets/rss_reader/skins/xe_official/skin.xml index 918969999..0c2ac18ef 100644 --- a/widgets/rss_reader/skins/xe_official/skin.xml +++ b/widgets/rss_reader/skins/xe_official/skin.xml @@ -1,15 +1,10 @@ - - - XE 최신글 스킨 (목록형) - XEデフォルトレイアウト用の最新コンテンツ表示スキン - XE目录型最新主题列表样式皮肤 - XE Official Layout's newest document skin - XE Oficial de diseño más nuevo documento de la piel - - 제로 - zero - Zero - zero + + + XE 최신글 스킨 (목록형) + XEデフォルトレイアウト用の最新コンテンツ表示スキン + XE目录型最新主题列表样式皮肤 + XE Official Layout's newest document skin + XE Oficial de diseño más nuevo documento de la piel XE 공식 레이아웃에 적합한 최신글 스킨입니다. 디자인 : 이소라 (http://ra-ra.pe.kr) @@ -29,32 +24,42 @@ 布局: zero (http://blog.nzeo.com) - It is a skin suitable for the XE official layout. - Design : So-Ra Lee (http://ra-ra-.pe.kr) - HTML/CSS : Chan-Myung Jeong(http://naradesign.net) - Layout : zero (http://blog.nzeo.com) + It is a skin suitable for the XE official layout. + Design : So-Ra Lee (http://ra-ra-.pe.kr) + HTML/CSS : Chan-Myung Jeong(http://naradesign.net) + Layout : zero (http://blog.nzeo.com) - - Se trata de una piel adecuada para el diseño XE oficial. - Diseño: So-Ra Lee (http://ra-ra-.pe.kr) - HTML / CSS: Jeong Chan-Myung (http://naradesign.net) - Diseño: Zero (http://blog.nzeo.com) + + Se trata de una piel adecuada para el diseño XE oficial. + Diseño: So-Ra Lee (http://ra-ra-.pe.kr) + HTML / CSS: Jeong Chan-Myung (http://naradesign.net) + Diseño: Zero (http://blog.nzeo.com) - - - - 흰색 바탕용 - 白い背景用 - 白色背景 - White Background - Fondo blanco - - - 어두운 바탕용 - 暗い背景用 - 暗色背景 - Dark Background - Dark Antecedentes - - - + 0.1 + 2007-08-01 + http://www.zeroboard.com + + + 제로 + zero + Zero + zero + + + + + 흰색 바탕용 + 白い背景用 + 白色背景 + White Background + Fondo blanco + + + 어두운 바탕용 + 暗い背景用 + 暗色背景 + Dark Background + Dark Antecedentes + + + \ No newline at end of file diff --git a/widgets/rss_reader/skins/xe_select/skin.xml b/widgets/rss_reader/skins/xe_select/skin.xml index fc4e5fb00..ce1f06e7b 100644 --- a/widgets/rss_reader/skins/xe_select/skin.xml +++ b/widgets/rss_reader/skins/xe_select/skin.xml @@ -1,33 +1,30 @@ - - - XE 최신글 스킨 (Select 메뉴) - XE 最新書き込みスキン(Select メニュー) - XE最新主题样式皮肤(Select菜单) - XE Newest Article Skin (Select menu) - - Simulz - Simulz - Simulz - Simulz - - XE 공식 레이아웃에 적합한 최신글 스킨입니다. - - - XE オフィシャルレイアウトに最も適した最新書き込みスキンです。 - - - XE最新主题样式皮肤。 - - - This is a newest article skin that is suitable for XE official layout. - - - - - Select - Select - Select - Select - - - + + + XE 최신글 스킨 (Select 메뉴) + XE 最新書き込みスキン(Select メニュー) + XE最新主题样式皮肤(Select菜单) + XE Newest Article Skin (Select menu) + XE 공식 레이아웃에 적합한 최신글 스킨입니다. + XE オフィシャルレイアウトに最も適した最新書き込みスキンです。 + XE最新主题样式皮肤。 + This is a newest article skin that is suitable for XE official layout. + 0.1 + 2007-11-05 + http://www.zeroboard.com + + + Simulz + Simulz + Simulz + Simulz + + + + + Select + Select + Select + Select + + + \ No newline at end of file diff --git a/widgets/tab_newest_document/conf/info.xml b/widgets/tab_newest_document/conf/info.xml index 8e057b009..e40a69d1e 100644 --- a/widgets/tab_newest_document/conf/info.xml +++ b/widgets/tab_newest_document/conf/info.xml @@ -1,302 +1,306 @@ - - - 탭 형태 최근 문서 출력 - 选项卡主题列表 - タブスタイル最新コンテンツ出力 - Newest Articles in Tab Style - 탭 형태 최근 문서 출력 - Отображение последних статей в стиле закладок - - 제로 - zero - Zero - zero + + + 탭 형태 최근 문서 출력 + 选项卡主题列表 + タブスタイル最新コンテンツ出力 + Newest Articles in Tab Style + 탭 형태 최근 문서 출력 + Отображение последних статей в стиле закладок + 최근 문서를 탭형태로 출력하는 위젯입니다. + 选项卡样式最新主题列表控件。 + 最新コンテンツをタブスタイルに出力するウィジェットです。 + This widget displays newest articles as tab style. + 최근 문서를 탭형태로 출력하는 위젯입니다. + Этот виджет отображает последние статьи в tab-стиле. + 0.1 + 2007-02-28 + + + 제로 + zero + Zero + zero zero zero - 최근 문서를 탭형태로 출력하는 위젯입니다. - 选项卡样式最新主题列表控件。 - 最新コンテンツをタブスタイルに出力するウィジェットです。 - This widget displays newest articles as tab style. - 최근 문서를 탭형태로 출력하는 위젯입니다. - Этот виджет отображает последние статьи в tab-стиле. - - - - 정렬 대상 - 排序对象 - ソート対象 - Target to be sorted + + + + + select + 정렬 대상 + 排序对象 + ソート対象 + Target to be sorted Objetivo para ser ordenados - Назначение для сортировки - select - 등록된 순서 또는 변경된 순서로 정렬을 할 수 있습니다. - 按照指定顺序进行排序。 - 登録順、変更順にソートできます。 - The list of newewst articles may be sorted by submitted order or modified order. + Назначение для сортировки + 등록된 순서 또는 변경된 순서로 정렬을 할 수 있습니다. + 按照指定顺序进行排序。 + 登録順、変更順にソートできます。 + The list of newewst articles may be sorted by submitted order or modified order. La lista de los documentos recientes pueden ser ordenados en el orden del agregado o en el de modificados. - Список последних статей может быть отсортирован по дате размещения или изменения. - - 최신 등록순 - 最新发表顺 - 最新登録順 - Newest Submitted Order + Список последних статей может быть отсортирован по дате размещения или изменения. + + list_order + 최신 등록순 + 最新发表顺 + 最新登録順 + Newest Submitted Order Orden de agregados recientemente - Порядок размещенных статей - list_order - - - 최근 변경순 - 最新修改顺 - 最近変更順 - Newest Modified Order + Порядок размещенных статей + + + update_order + 최근 변경순 + 最新修改顺 + 最近変更順 + Newest Modified Order Orden de modificados recientemente - Порядок измененных статей - update_order - - - - 정렬 방법 - 排序方式 - ソートタイプ - Sorting Type + Порядок измененных статей + + + + select + 정렬 방법 + 排序方式 + ソートタイプ + Sorting Type Tipo de ordenamiento - Тип сортировки - select - 정렬대상을 내림차순 또는 올림차순으로 정렬할 수 있습니다. - 对其排序对象可进行升序/降序方式排序。 - ソートタイプを、降順、昇順にソートできます。 - You can sort target articles by asending or desending order. + Тип сортировки + 정렬대상을 내림차순 또는 올림차순으로 정렬할 수 있습니다. + 对其排序对象可进行升序/降序方式排序。 + ソートタイプを、降順、昇順にソートできます。 + You can sort target articles by asending or desending order. Usted puede ordenar los documentos en orden acendente o en orden descendente. - Вы можете сортировать статьи в порядке возрастания или убывания. - - 내림차순 - 降序 - 降順 - Desending order + Вы можете сортировать статьи в порядке возрастания или убывания. + + desc + 내림차순 + 降序 + 降順 + Desending order Orden Descendente - По убыванию - desc - - - 올림차순 - 升序 - 昇順 - Asending order + По убыванию + + + asc + 올림차순 + 升序 + 昇順 + Asending order Orden Acendente - По возрастанию - asc - - - - new 표시 시간 (hours) - new图标显示时间(hours) - Newの表示時間 (Hours) - Duration of indication for new item - Длительность индикации для новых объектов - text - 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. (시간 단위) - 可以设置最新更新主题的new图标显示时间。 - 新しく登録された書き込みに対して「New」の表示時間を指定します(時間単位)。 - You may set the duration of indication for fresh item. (unit is hour) - Вы можете установить длительность индикации для нового объекта. (единица - час) - - - 제목 글자수 - タイトルの文字数 - 标题字数 - Length of Subject - Número de letras del título - Длина темы - text - 제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다) - タイトルの文字数が指定できます(「0」または空欄の場合は、文字数を制限しません)。 - 可以设置标题的字数。(0或留空为不限) - Length of Subject can be assigned. (0 or blank value will not restrict the length) - El largo del título puede ser asignado. (valor 0 o en blanco no restringe el largo) - Длина темы может быть присвоена. (0 или пустое значение не будут ограничивать длину) - - - 썸네일 생성 방법 - サムネール生成方法 - 缩略图生成方式 - Thumbnail Type - Тип миниатюры - 썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기) - 可以选择缩略图生成方式。 (crop : 裁减, ratio : 比例) - Thumbnail Type may be set here. - Тип миниатюры может быть установлен здесь. - select - - Crop (채우기) - Crop (トリミング) - Crop (裁减) - Crop - Crop (Обрезание) - crop - - - Ratio (비율 맞추기) - Ratio (比率) - Ratio (比例) - Ratio - Ratio (Отношение) - ratio - - - - 이미지 가로크기 - イメージ横幅 - 宽度 - Width of Image + По возрастанию + + + + text + new 표시 시간 (hours) + new图标显示时间(hours) + Newの表示時間 (Hours) + Duration of indication for new item + Длительность индикации для новых объектов + 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. (시간 단위) + 可以设置最新更新主题的new图标显示时间。 + 新しく登録された書き込みに対して「New」の表示時間を指定します(時間単位)。 + You may set the duration of indication for fresh item. (unit is hour) + Вы можете установить длительность индикации для нового объекта. (единица - час) + + + text + 제목 글자수 + タイトルの文字数 + 标题字数 + Length of Subject + Número de letras del título + Длина темы + 제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다) + タイトルの文字数が指定できます(「0」または空欄の場合は、文字数を制限しません)。 + 可以设置标题的字数。(0或留空为不限) + Length of Subject can be assigned. (0 or blank value will not restrict the length) + El largo del título puede ser asignado. (valor 0 o en blanco no restringe el largo) + Длина темы может быть присвоена. (0 или пустое значение не будут ограничивать длину) + + + select + 썸네일 생성 방법 + サムネール生成方法 + 缩略图生成方式 + Thumbnail Type + Тип миниатюры + 썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기) + 可以选择缩略图生成方式。 (crop : 裁减, ratio : 比例) + Thumbnail Type may be set here. + Тип миниатюры может быть установлен здесь. + + crop + Crop (채우기) + Crop (トリミング) + Crop (裁减) + Crop + Crop (Обрезание) + + + ratio + Ratio (비율 맞추기) + Ratio (比率) + Ratio (比例) + Ratio + Ratio (Отношение) + + + + text + 이미지 가로크기 + イメージ横幅 + 宽度 + Width of Image Ancho de la imagen - Ширина изображения - text - 출력될 이미지의 가로크기를 정하실 수 있습니다. (기본 100) - 表示されるイメージの横幅のサイズを指定することができます(デフォルト100)。 - 可以指定要显示的图片宽度。(默认为100) - You can set the width of image. (100 as default) + Ширина изображения + 출력될 이미지의 가로크기를 정하실 수 있습니다. (기본 100) + 表示されるイメージの横幅のサイズを指定することができます(デフォルト100)。 + 可以指定要显示的图片宽度。(默认为100) + You can set the width of image. (100 as default) Usted puede definir el ancho de la imagen. (predefinido:100) - Вы можете установить ширину изображения. (стандарт: 100) - - - 이미지 세로크기 - イメージ縦幅 - 高度 - Height of Image - Высота изображения - 이미지의 세로 크기를 지정할 수 있습니다. (기본 100px) - イメージの縦幅サイズを指定します(デフォルト 100px) - 可以指定图片高度。(默认为100px) - You can set the height of image. (100 as default) - Вы можете установить вытсоту изображения. (стандарт: 100px) - text - - - 글쓴이 표시 - 投稿者表示 - 昵称 - Display Author + Вы можете установить ширину изображения. (стандарт: 100) + + + text + 이미지 세로크기 + イメージ縦幅 + 高度 + Height of Image + Высота изображения + 이미지의 세로 크기를 지정할 수 있습니다. (기본 100px) + イメージの縦幅サイズを指定します(デフォルト 100px) + 可以指定图片高度。(默认为100px) + You can set the height of image. (100 as default) + Вы можете установить вытсоту изображения. (стандарт: 100px) + + + select + 글쓴이 표시 + 投稿者表示 + 昵称 + Display Author Mostrar el Autor - Отображение автора - select - - - 표시 - 表示 - 显示 + Отображение автора + + + Y + 표시 + 表示 + 显示 Show Mostrar Показывать - Y - - - 표시하지 않음 - 非表示 - 不显示 + + + N + 표시하지 않음 + 非表示 + 不显示 Hide Ocultar Скрывать - N - - - - 작성일 표시 - 作成日表示 - 发表日期 - Display Registered Date + + + + select + 작성일 표시 + 作成日表示 + 发表日期 + Display Registered Date Mostrar el día agregado - Отображение даты регистрации - select - - - 표시 - 表示 - 显示 + Отображение даты регистрации + + + Y + 표시 + 表示 + 显示 Show Mostrar Показывать - Y - - - 표시하지 않음 - 非表示 - 不显示 + + + N + 표시하지 않음 + 非表示 + 不显示 Hide Ocultar Скрывать - N - - - - 조회수 표시 - 照合数表示 - 查看 - Display Hit + + + + select + 조회수 표시 + 照合数表示 + 查看 + Display Hit Mostrar Ayuda - Отображение хитов - - select - - 표시 - 表示 - 显示 + Отображение хитов + + + Y + 표시 + 表示 + 显示 Show Mostrar Показывать - Y - - - 표시하지 않음 - 非表示 - 不显示 + + + N + 표시하지 않음 + 非表示 + 不显示 Hide Ocultar Скрывать - N - - - - 추천수 표시 - 推薦数表示 - 推荐 - Display Votes + + + + select + 추천수 표시 + 推薦数表示 + 推荐 + Display Votes Mostrar Recomendados - Отображение голосов - - select - - 표시 - 表示 - 显示 + Отображение голосов + + + Y + 표시 + 表示 + 显示 Show Mostrar Показывать - Y - - - 표시하지 않음 - 非表示 - 不显示 - Hide - Ocultar + + + N + 표시하지 않음 + 非表示 + 不显示 + Hide + Ocultar Скрывать - N - - - - 대상 모듈 - 模块对象 - モジュール - Target Module + + + + mid_list + 대상 모듈 + 模块对象 + モジュール + Target Module Módulo Objetivo - Модуль назначения - mid_list - 선택하신 모듈에 등록된 글을 대상으로 합니다. - 将把被选模块中的最新主题作为显示对象。 - チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。 - The target articles to be sorted will be the ones submitted in the selected module. + Модуль назначения + 선택하신 모듈에 등록된 글을 대상으로 합니다. + 将把被选模块中的最新主题作为显示对象。 + チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。 + The target articles to be sorted will be the ones submitted in the selected module. El objetivo de los documentos agregados serán los del módulo selccionado. - Статьи на выбранных модулях будут назначением. - - - + Статьи на выбранных модулях будут назначением. + + + \ No newline at end of file diff --git a/widgets/tab_newest_document/skins/xe_official/list.html b/widgets/tab_newest_document/skins/xe_official/list.html index 59656c9d2..23cd7a947 100644 --- a/widgets/tab_newest_document/skins/xe_official/list.html +++ b/widgets/tab_newest_document/skins/xe_official/list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/tab_newest_document/skins/xe_official/skin.xml b/widgets/tab_newest_document/skins/xe_official/skin.xml index 0f98a084f..24233b536 100644 --- a/widgets/tab_newest_document/skins/xe_official/skin.xml +++ b/widgets/tab_newest_document/skins/xe_official/skin.xml @@ -1,25 +1,30 @@ - - - 웹진형 최근글 출력 기본 스킨 - ウェブジンスタイルの最新コンテンツ出力デフォルトスキン - 网络杂志型最新主题列表默认皮肤 - Display newest documents like webzine style - - 제로 - Zero - Zero - Zero - 글 목록과 이미지가 같이 출력되는 웹진형 스킨입니다. 이미지가 있는 글들만 노출이 됩니다. - コンテンツリストとイメージが一緒に出力されるウェブジンスタイルのスキンです。イメージが含まれているコンテンツのみ表示されます。 - 可以同时显示最新主题列表及缩略图的网络杂志型默认皮肤。只显示有图片的最新主题。 - 글 목록과 이미지가 같이 출력되는 웹진형 스킨입니다. 이미지가 있는 글들만 노출이 됩니다. - - - - 기본 컬러 - デフォルトカラー - 默认颜色 - Default Color - - - + + + 웹진형 최근글 출력 기본 스킨 + ウェブジンスタイルの最新コンテンツ出力デフォルトスキン + 网络杂志型最新主题列表默认皮肤 + Display newest documents like webzine style + 글 목록과 이미지가 같이 출력되는 웹진형 스킨입니다. 이미지가 있는 글들만 노출이 됩니다. + コンテンツリストとイメージが一緒に出力されるウェブジンスタイルのスキンです。イメージが含まれているコンテンツのみ表示されます。 + 可以同时显示最新主题列表及缩略图的网络杂志型默认皮肤。只显示有图片的最新主题。 + 글 목록과 이미지가 같이 출력되는 웹진형 스킨입니다. 이미지가 있는 글들만 노출이 됩니다. + 0.1 + 2007-11-22 + http://www.zeroboard.com + + + 제로 + Zero + Zero + Zero + + + + + 기본 컬러 + デフォルトカラー + 默认颜色 + Default Color + + + \ No newline at end of file diff --git a/widgets/tag_list/conf/info.xml b/widgets/tag_list/conf/info.xml index 07111dce4..d67dd31a2 100644 --- a/widgets/tag_list/conf/info.xml +++ b/widgets/tag_list/conf/info.xml @@ -1,70 +1,74 @@ - - - 꼬리표 목록 출력 - 标签 - タグリスト表示 - Tag List + + + 꼬리표 목록 출력 + 标签 + タグリスト表示 + Tag List Mostrar la lista de etiqueta - Отображение списка тегов - - 제로 - zero - Zero - zero + Отображение списка тегов + 선택된 모듈의 꼬리표 목록을 정해진 순위만큼 노출하여 줍니다 + 显示被选模块指定个数的标签目录。 + 選択されたモジュールのタグリストを指定された順位まで表示します。 + This widget displays configured number of tags from target module. + Este widget muestra la liste de etiqueta según el orden definido en el módulo seleccionado. + Этот виджет отображает конфигурированное число тегов из модуля назначения. + 0.1 + 2007-02-28 + + + 제로 + zero + Zero + zero zero - zero - 선택된 모듈의 꼬리표 목록을 정해진 순위만큼 노출하여 줍니다 - 显示被选模块指定个数的标签目录。 - 選択されたモジュールのタグリストを指定された順位まで表示します。 - This widget displays configured number of tags from target module. - Este widget muestra la liste de etiqueta según el orden definido en el módulo seleccionado. - Этот виджет отображает конфигурированное число тегов из модуля назначения. - - - - 제목 - 栏目名 - タイトル - Title + zero + + + + + text + 제목 + 栏目名 + タイトル + Title Título - Заголовок - text - 꼬리표 출력시 제목으로 출력됩니다. - 显示为标签目录的标题。 - タグ出力の際、タイトルとして表示されます。 - This will be shown as a title with tag list. + Заголовок + 꼬리표 출력시 제목으로 출력됩니다. + 显示为标签目录的标题。 + タグ出力の際、タイトルとして表示されます。 + This will be shown as a title with tag list. Este será el título al ser mostrada la etiqueta. - Это будет показано как заголовок со списком тегов. - - - 목록수 - 目录数 - リスト数 - Number of tags + Это будет показано как заголовок со списком тегов. + + + text + 목록수 + 目录数 + リスト数 + Number of tags Número de etiquetas - Число тегов - text - 출력될 목록의 수를 정하실 수 있습니다. (기본 20개) - 可设置要显示的标签数。 (默认为 20个) - 出力されるリストの数を指定することができます。(デフォルト20個) - You can configure the number of tags to show. (Default is 20) + Число тегов + 출력될 목록의 수를 정하실 수 있습니다. (기본 20개) + 可设置要显示的标签数。 (默认为 20个) + 出力されるリストの数を指定することができます。(デフォルト20個) + You can configure the number of tags to show. (Default is 20) Usted puede definir el número de etiquetas a mostrar. (predefinido: 20) - Вы можете сконфигурировать число тегов для показа. (стандарт: 20) - - - 대상 모듈 - 模块对象 - モジュール - Target Module + Вы можете сконфигурировать число тегов для показа. (стандарт: 20) + + + mid + 대상 모듈 + 模块对象 + モジュール + Target Module Módulo Objetivo - Модуль назначения - mid - 선택하신 모듈에 등록된 꼬리표를 대상으로 합니다. - 将把被选模块当中的标签作为对象。 - チェックされたモジュールに登録されたタグを対象とします。 - Tag list will be shown based on this target module. + Модуль назначения + 선택하신 모듈에 등록된 꼬리표를 대상으로 합니다. + 将把被选模块当中的标签作为对象。 + チェックされたモジュールに登録されたタグを対象とします。 + Tag list will be shown based on this target module. Objetivo de la lista de etiquetas será la del módulo seleccionado. - Список тегов будет показан на основании этого модуля назначения. - - - + Список тегов будет показан на основании этого модуля назначения. + + + \ No newline at end of file diff --git a/widgets/tag_list/skins/blog_tag_list/skin.xml b/widgets/tag_list/skins/blog_tag_list/skin.xml index e2619c0a5..5181dd89b 100644 --- a/widgets/tag_list/skins/blog_tag_list/skin.xml +++ b/widgets/tag_list/skins/blog_tag_list/skin.xml @@ -1,55 +1,60 @@ - - - 꼬리표 목록 출력 - タグリスト表示 - 标签目录皮肤 - Display Tag List - - 제로 - Zero - zero - zero - 꼬리표 목록을 출력합니다. - タグリストを表示します。 - 显示标签目录。 - It displays tag list. - - - - 레이아웃에 맞춤 - レイアウトに合わせる - 随布局 - 레이아웃에 맞춤 - - - 기본 컬러 - デフォルトカラー - 默认颜色 - Default color - - - 청록색 - 青緑 - 青绿色 - cyan - - - 초록색 - - 绿色 - green - - - 빨간색 - - 红色 - red - - - 보라색 - - 紫色 - purple - - - + + + 꼬리표 목록 출력 + タグリスト表示 + 标签目录皮肤 + Display Tag List + 꼬리표 목록을 출력합니다. + タグリストを表示します。 + 显示标签目录。 + It displays tag list. + 0.1 + 2007-02-28 + http://www.zeroboard.com + + + 제로 + Zero + zero + zero + + + + + 레이아웃에 맞춤 + レイアウトに合わせる + 随布局 + 레이아웃에 맞춤 + + + 기본 컬러 + デフォルトカラー + 默认颜色 + Default color + + + 청록색 + 青緑 + 青绿色 + cyan + + + 초록색 + + 绿色 + green + + + 빨간색 + + 红色 + red + + + 보라색 + + 紫色 + purple + + + \ No newline at end of file diff --git a/widgets/tag_list/skins/blog_tag_list/tags.html b/widgets/tag_list/skins/blog_tag_list/tags.html index d1a443df1..dea9cd609 100644 --- a/widgets/tag_list/skins/blog_tag_list/tags.html +++ b/widgets/tag_list/skins/blog_tag_list/tags.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/webzine/conf/info.xml b/widgets/webzine/conf/info.xml index e0aa77f6f..e99e4c87e 100644 --- a/widgets/webzine/conf/info.xml +++ b/widgets/webzine/conf/info.xml @@ -1,370 +1,374 @@ - - - 웹진 형태 최근 문서 출력 - 网络杂志型主题列表 - ウェブジンスタイル最新コンテンツ出力 - Newest Articles in Webzine Style - Mostrar más nuevos artículos con el estilo Webzine - Отображение последних статей в стиле webzine - - 제로 - Zero - Zero - zero + + + 웹진 형태 최근 문서 출력 + 网络杂志型主题列表 + ウェブジンスタイル最新コンテンツ出力 + Newest Articles in Webzine Style + Mostrar más nuevos artículos con el estilo Webzine + Отображение последних статей в стиле webzine + 최근 문서를 웹진형태로 출력하는 위젯입니다. + 把最新主题显示为网络杂志类型的控件。 + 最新コンテンツをウェブジンスタイルで出力するウィジェットです。 + This widget displays newest articles with webzine style. + Este widget muestra más reciente de artículos con webzine estilo. + Этот виджет отображает последние статьи в стиле webzine. + 0.1 + 2007-02-28 + + + 제로 + Zero + Zero + zero zero - 최근 문서를 웹진형태로 출력하는 위젯입니다. - 把最新主题显示为网络杂志类型的控件。 - 最新コンテンツをウェブジンスタイルで出力するウィジェットです。 - This widget displays newest articles with webzine style. - Este widget muestra más reciente de artículos con webzine estilo. - Этот виджет отображает последние статьи в стиле webzine. - - - - 제목 - 栏目名 - タイトル - Title + + + + + text + 제목 + 栏目名 + タイトル + Title Título - Заголовок - text - 최근 게시물의 제목으로 출력됩니다. - 显示为最新主题列表的栏目名。 - 最近の書き込みのタイトルとして表示されます。 - It will be the title of the newest articles. + Заголовок + 최근 게시물의 제목으로 출력됩니다. + 显示为最新主题列表的栏目名。 + 最近の書き込みのタイトルとして表示されます。 + It will be the title of the newest articles. Este será el título de los documentos recientes. - Это будет заголовком последних статей. - - - 정렬 대상 - 排序对象 - ソート対象 - Target to be sorted + Это будет заголовком последних статей. + + + select + 정렬 대상 + 排序对象 + ソート対象 + Target to be sorted Objetivo para ser ordenados - Назначение для сортировки - select - 등록된 순서 또는 변경된 순서로 정렬을 할 수 있습니다. - 按照指定顺序进行排序。 - 登録順、変更順にソートできます。 - The list of newewst articles may be sorted by submitted order or modified order. + Назначение для сортировки + 등록된 순서 또는 변경된 순서로 정렬을 할 수 있습니다. + 按照指定顺序进行排序。 + 登録順、変更順にソートできます。 + The list of newewst articles may be sorted by submitted order or modified order. La lista de los documentos recientes pueden ser ordenados en el orden del agregado o en el de modificados. - Список последних статей может быть отсортирован по дате размещения или изменения. - - 최신 등록순 - 最新发表顺 - 最新登録順 - Newest Submitted Order + Список последних статей может быть отсортирован по дате размещения или изменения. + + list_order + 최신 등록순 + 最新发表顺 + 最新登録順 + Newest Submitted Order Orden de agregados recientemente - Порядок размещенных статей - list_order - - - 최근 변경순 - 最新修改顺 - 最近変更順 - Newest Modified Order + Порядок размещенных статей + + + update_order + 최근 변경순 + 最新修改顺 + 最近変更順 + Newest Modified Order Orden de modificados recientemente - Порядок измененных статей - update_order - - - - 정렬 방법 - 排序方式 - ソートタイプ - Sorting Type + Порядок измененных статей + + + + select + 정렬 방법 + 排序方式 + ソートタイプ + Sorting Type Tipo de ordenamiento - Тип сортировки - select - 정렬대상을 내림차순 또는 올림차순으로 정렬할 수 있습니다. - 对其排序对象可进行升序/降序方式排序。 - ソートタイプを、降順、昇順にソートできます。 - You can sort target articles by asending or desending order. + Тип сортировки + 정렬대상을 내림차순 또는 올림차순으로 정렬할 수 있습니다. + 对其排序对象可进行升序/降序方式排序。 + ソートタイプを、降順、昇順にソートできます。 + You can sort target articles by asending or desending order. Usted puede ordenar los documentos en orden acendente o en orden descendente. - Вы можете сортировать статьи в порядке возрастания или убывания. - - 내림차순 - 降序 - 降順 - Desending order + Вы можете сортировать статьи в порядке возрастания или убывания. + + desc + 내림차순 + 降序 + 降順 + Desending order Orden Descendente - По убыванию - desc - - - 올림차순 - 升序 - 昇順 - Asending order + По убыванию + + + asc + 올림차순 + 升序 + 昇順 + Asending order Orden Acendente - По возрастанию - asc - - - - new 표시 시간 (hours) - new图标显示时间(hours) - Newの表示時間 (Hours) - Duration for indication of new item + По возрастанию + + + + text + new 표시 시간 (hours) + new图标显示时间(hours) + Newの表示時間 (Hours) + Duration for indication of new item Duración de la indicación para el nuevo tema - Длительность индикации для новых объектов - text - 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. (시간 단위) - 可以设置最新更新主题的new图标显示时间。 - 新しく登録された書き込みに対して「New」の表示時間を指定します(時間単位)。 - You may set the duration for indication of new item for newest article. (unit is hour) + Длительность индикации для новых объектов + 새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. (시간 단위) + 可以设置最新更新主题的new图标显示时间。 + 新しく登録された書き込みに対して「New」の表示時間を指定します(時間単位)。 + You may set the duration for indication of new item for newest article. (unit is hour) Usted puede configurar la duración de la indicación de un nuevo tema. (Unidad es hora) - Вы можете установить длительность индикации для нового объекта. (единица - час) - - - 제목 글자수 - タイトルの文字数 - 标题字数 - Length of Subject - Número de letras del título - Длина темы - text - 제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다) - タイトルの文字数が指定できます(「0」または空欄の場合は、文字数を制限しません)。 - 可以设置标题的字数。(0或留空为不限) - Length of Subject can be assigned. (0 or blank value will not restrict the length) - El largo del título puede ser asignado. (valor 0 o en blanco no restringe el largo) - Длина темы может быть присвоена. (0 или пустое значение не будут ограничивать длину) - - - 내용 글자수 - 内容の文字数 - 内容字数 - Length of Content - Número de letras del Contenidos - Длина содержания - text - 내용 글자수를 지정할 수 있습니다. (기본 50) - 内容の文字数が指定できます。(デフォルト 50) - 可以指定要显示的内容字数。(默认为50) - Length of Content can be assigned. (default 50) - El largo del Contenidos puede ser asignado. (Predefinido 50) - Длина содержания может быть присвоена. (стандарт: 50) - - - 썸네일 생성 방법 - サムネール生成方法 - 缩略图生成方式 - Thumbnail Type + Вы можете установить длительность индикации для нового объекта. (единица - час) + + + text + 제목 글자수 + タイトルの文字数 + 标题字数 + Length of Subject + Número de letras del título + Длина темы + 제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다) + タイトルの文字数が指定できます(「0」または空欄の場合は、文字数を制限しません)。 + 可以设置标题的字数。(0或留空为不限) + Length of Subject can be assigned. (0 or blank value will not restrict the length) + El largo del título puede ser asignado. (valor 0 o en blanco no restringe el largo) + Длина темы может быть присвоена. (0 или пустое значение не будут ограничивать длину) + + + text + 내용 글자수 + 内容の文字数 + 内容字数 + Length of Content + Número de letras del Contenidos + Длина содержания + 내용 글자수를 지정할 수 있습니다. (기본 50) + 内容の文字数が指定できます。(デフォルト 50) + 可以指定要显示的内容字数。(默认为50) + Length of Content can be assigned. (default 50) + El largo del Contenidos puede ser asignado. (Predefinido 50) + Длина содержания может быть присвоена. (стандарт: 50) + + + select + 썸네일 생성 방법 + サムネール生成方法 + 缩略图生成方式 + Thumbnail Type Thumbnail Type - Тип миниатюры - 썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기) - サムネールの生成方法を選択します(Crop : トリミング, Ratio : 比率)。 + Тип миниатюры + 썸네일 생성 방법을 선택할 수 있습니다. (crop : 꽉 채우기, ratio : 비율 맞추기) + サムネールの生成方法を選択します(Crop : トリミング, Ratio : 比率)。 可以选择缩略图生成方式。 (crop : 裁减, ratio : 比例) - Thumbnail Type may be set here. + Thumbnail Type may be set here. Tipo de miniatura puede establecerse aquí. - Тип миниатюры может быть установлен здесь. - select - - Crop (채우기) - Crop (トリミング) - Crop (裁减) - Crop + Тип миниатюры может быть установлен здесь. + + crop + Crop (채우기) + Crop (トリミング) + Crop (裁减) + Crop Cultivos - Crop (Обрезание) - crop - - - Ratio (비율 맞추기) - Ratio (比率) - Ratio (比例) - Ratio + Crop (Обрезание) + + + ratio + Ratio (비율 맞추기) + Ratio (比率) + Ratio (比例) + Ratio Ratio - Ratio (Отношение) - ratio - - - - 이미지 가로크기 - イメージ横幅 - 宽度 - Width of Image + Ratio (Отношение) + + + + text + 이미지 가로크기 + イメージ横幅 + 宽度 + Width of Image Ancho de la imagen - Ширина изображения - text - 출력될 이미지의 가로크기를 정하실 수 있습니다. (기본 100) - 表示されるイメージの横幅のサイズを指定することができます(デフォルト100)。 - 可以指定要显示的图片宽度。(默认为100) - You can set the width of image. (100 as default) + Ширина изображения + 출력될 이미지의 가로크기를 정하실 수 있습니다. (기본 100) + 表示されるイメージの横幅のサイズを指定することができます(デフォルト100)。 + 可以指定要显示的图片宽度。(默认为100) + You can set the width of image. (100 as default) Usted puede definir el ancho de la imagen. (predefinido:100) - Вы можете установить ширину изображения. (стандарт: 100) - - - 이미지 세로크기 - イメージ縦幅 - 高度 - Height of Image + Вы можете установить ширину изображения. (стандарт: 100) + + + text + 이미지 세로크기 + イメージ縦幅 + 高度 + Height of Image Altura de la imagen - Высота изображения - 이미지의 세로 크기를 지정할 수 있습니다. (기본 100px) - イメージの縦幅サイズを指定します(デフォルト 100px) - 可以指定图片高度。(默认为100px) - You can set the height of image. (100 as default) + Высота изображения + 이미지의 세로 크기를 지정할 수 있습니다. (기본 100px) + イメージの縦幅サイズを指定します(デフォルト 100px) + 可以指定图片高度。(默认为100px) + You can set the height of image. (100 as default) Se puede establecer la altura de la imagen. (100 como valor por defecto) - Вы можете установить вытсоту изображения. (стандарт: 100px) - text - - - 가로 이미지 수 - イメージ数 - 横向图片数 - Number of Images (Horizontal) + Вы можете установить вытсоту изображения. (стандарт: 100px) + + + text + 가로 이미지 수 + イメージ数 + 横向图片数 + Number of Images (Horizontal) Número de imágenes - Число изображений (колонка) - text - 출력될 가로 이미지의 수를 정하실 수 있습니다. (기본 1개) - 表示されるイメージの横並びの数を指定します(デフォルト1個)。 - 可以指定要显示的横向图片个数。(默认为1个) - You can set the number of images to display. (1 as default) + Число изображений (колонка) + 출력될 가로 이미지의 수를 정하실 수 있습니다. (기본 1개) + 表示されるイメージの横並びの数を指定します(デフォルト1個)。 + 可以指定要显示的横向图片个数。(默认为1个) + You can set the number of images to display. (1 as default) Usted puede definir el múmero de imágenes a mostrar. (predefinido: 1) - Вы можете установить число изображений для показа. (стандарт: 1) - - - 세로 이미지 수 - イメージ数 - 纵向图片数 - Number of Images (Vertical) + Вы можете установить число изображений для показа. (стандарт: 1) + + + text + 세로 이미지 수 + イメージ数 + 纵向图片数 + Number of Images (Vertical) Número de imágenes - Число изображений (ряд) - text - 출력될 세로 이미지의 수를 정하실 수 있습니다. (기본 5개) - 表示されるイメージの縦並びの数を指定することができます(デフォルト5個)。 - 可以指定要显示的纵向图片个数。(默认为1个) - You can set the number of images to display. (5 as default) + Число изображений (ряд) + 출력될 세로 이미지의 수를 정하실 수 있습니다. (기본 5개) + 表示されるイメージの縦並びの数を指定することができます(デフォルト5個)。 + 可以指定要显示的纵向图片个数。(默认为1个) + You can set the number of images to display. (5 as default) Usted puede definir el número de imágenes a mostrar. (predefinido: 5 ) - Вы можете установить число изображений для показа. (стандарт: 5) - - - 글쓴이 표시 - 投稿者表示 - 昵称 - Display Author + Вы можете установить число изображений для показа. (стандарт: 5) + + + select + 글쓴이 표시 + 投稿者表示 + 昵称 + Display Author Mostrar el Autor - Отображение автора - select - - - 표시 - 表示 - 显示 + Отображение автора + + + Y + 표시 + 表示 + 显示 Show Mostrar Показывать - Y - - - 표시하지 않음 - 非表示 - 不显示 + + + N + 표시하지 않음 + 非表示 + 不显示 Hide Ocultar Скрывать - N - - - - 작성일 표시 - 作成日表示 - 发表日期 - Display Registered Date + + + + select + 작성일 표시 + 作成日表示 + 发表日期 + Display Registered Date Mostrar el día agregado - Отображение даты регистрации - select - - - 표시 - 表示 - 显示 + Отображение даты регистрации + + + Y + 표시 + 表示 + 显示 Show Mostrar Показывать - Y - - - 표시하지 않음 - 非表示 - 不显示 + + + N + 표시하지 않음 + 非表示 + 不显示 Hide Ocultar Скрывать - N - - - - 조회수 표시 - 照合数表示 - 查看 - Display Hit + + + + select + 조회수 표시 + 照合数表示 + 查看 + Display Hit Mostrar Ayuda - Отображение хитов - - select - - 표시 - 表示 - 显示 + Отображение хитов + + + Y + 표시 + 表示 + 显示 Show Mostrar Показывать - Y - - - 표시하지 않음 - 非表示 - 不显示 + + + N + 표시하지 않음 + 非表示 + 不显示 Hide Ocultar Скрывать - N - - - - 추천수 표시 - 推薦数表示 - 推荐 - Display Votes + + + + select + 추천수 표시 + 推薦数表示 + 推荐 + Display Votes Mostrar Recomendados - Отображение голосов - - select - - 표시 - 表示 - 显示 + Отображение голосов + + + Y + 표시 + 表示 + 显示 Show Mostrar Показывать - Y - - - 표시하지 않음 - 非表示 - 不显示 - Hide - Ocultar + + + N + 표시하지 않음 + 非表示 + 不显示 + Hide + Ocultar Скрывать - N - - - - 대상 모듈 - 模块对象 - モジュール - Target Module + + + + mid_list + 대상 모듈 + 模块对象 + モジュール + Target Module Módulo Objetivo - Модуль назначения - mid_list - 선택하신 모듈에 등록된 글을 대상으로 합니다. - 将把被选模块中的主题作为显示对象。 - チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。 - The target articles to be sorted will be the ones submitted in the selected module. + Модуль назначения + 선택하신 모듈에 등록된 글을 대상으로 합니다. + 将把被选模块中的主题作为显示对象。 + チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。 + The target articles to be sorted will be the ones submitted in the selected module. El objetivo de los documentos agregados serán los del módulo selccionado. - Статьи на выбранных модулях будут назначением. - - + Статьи на выбранных модулях будут назначением. + + diff --git a/widgets/webzine/skins/notice_style/list.html b/widgets/webzine/skins/notice_style/list.html index 615f526ea..679bba7c2 100644 --- a/widgets/webzine/skins/notice_style/list.html +++ b/widgets/webzine/skins/notice_style/list.html @@ -1,4 +1,4 @@ - + diff --git a/widgets/webzine/skins/notice_style/skin.xml b/widgets/webzine/skins/notice_style/skin.xml index e5af3f2ad..56e8fbd86 100644 --- a/widgets/webzine/skins/notice_style/skin.xml +++ b/widgets/webzine/skins/notice_style/skin.xml @@ -1,25 +1,30 @@ - - - 공지사항 형태의 출력 - 공지사항 형태의 출력 - 公告列表皮肤 - Output Result of Notice type - - 제로 - Zero - Zero - Zero - 글 목록과 이미지가 같이 출력되는 웹진형 스킨입니다. 이미지가 있는 글들만 노출이 됩니다. - コンテンツリストとイメージが一緒に出力されるウェブジンスタイルスキンです。イメージを含むコンテンツのみ表示されます。 - 可同时显示内容及缩略图的网络杂志型默认皮肤。只显示有图片的最新主题。 - This is a webzine style skin that displays article list and images. Articles with images will be exposed only. - - - - 기본 컬러 - デフォルトカラー - 默认颜色 - Default Color - - - + + + 공지사항 형태의 출력 + 공지사항 형태의 출력 + 公告列表皮肤 + Output Result of Notice type + 글 목록과 이미지가 같이 출력되는 웹진형 스킨입니다. 이미지가 있는 글들만 노출이 됩니다. + コンテンツリストとイメージが一緒に出力されるウェブジンスタイルスキンです。イメージを含むコンテンツのみ表示されます。 + 可同时显示内容及缩略图的网络杂志型默认皮肤。只显示有图片的最新主题。 + This is a webzine style skin that displays article list and images. Articles with images will be exposed only. + 0.1 + 2007-11-22 + http://www.zeroboard.com + + + 제로 + Zero + Zero + Zero + + + + + 기본 컬러 + デフォルトカラー + 默认颜色 + Default Color + + + \ No newline at end of file diff --git a/widgets/webzine/skins/xe_official/list.html b/widgets/webzine/skins/xe_official/list.html index 85dd80802..69e735122 100644 --- a/widgets/webzine/skins/xe_official/list.html +++ b/widgets/webzine/skins/xe_official/list.html @@ -1,4 +1,4 @@ - + @@ -72,11 +72,11 @@ - +   diff --git a/widgets/webzine/skins/xe_official/skin.xml b/widgets/webzine/skins/xe_official/skin.xml index 556075bfc..2b4c51dd3 100644 --- a/widgets/webzine/skins/xe_official/skin.xml +++ b/widgets/webzine/skins/xe_official/skin.xml @@ -1,25 +1,30 @@ - - - 웹진형 최근글 출력 기본 스킨 - ウェブジンスタイルの最新コンテンツ出力デフォルトスキン - 网络杂志型主题列表默认皮肤 - Default Skin of Webzine Style Newest Articles - - 제로 - Zero - Zero - Zero + + + 웹진형 최근글 출력 기본 스킨 + ウェブジンスタイルの最新コンテンツ出力デフォルトスキン + 网络杂志型主题列表默认皮肤 + Default Skin of Webzine Style Newest Articles 글 목록과 이미지가 같이 출력되는 웹진형 스킨입니다. 이미지가 있는 글들만 노출이 됩니다. コンテンツリストとイメージが一緒に出力されるウェブジンスタイルスキンです。イメージを含むコンテンツのみ表示されます。 可以同时显示最新主题列表及缩略图的网络杂志型默认皮肤。只显示有图片的最新主题。 This is a webzine style skin that displays article list and images. Articles with images will be exposed only. - - - - 기본 컬러 - デフォルトカラー - 默认颜色 - Default Color - - - + 0.1 + 2007-11-22 + http://www.zeroboard.com + + + 제로 + Zero + Zero + Zero + + + + + 기본 컬러 + デフォルトカラー + 默认颜色 + Default Color + + + \ No newline at end of file