2007. 10. 9. 17:19분의 sandbox를 beta 0.1.9로 배포하기 위해 trunk로 copy

git-svn-id: http://xe-core.googlecode.com/svn/trunk@2707 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2007-10-09 08:20:36 +00:00
commit 29ca68f18e
28 changed files with 326 additions and 86 deletions

View file

@ -191,11 +191,12 @@
/**
* @brief mysql old password를 가져오는 함수 (mysql에서만 사용)
**/
function getOldPassword($password) {
$query = sprintf("select old_password('%s') as password", $password);
function isValidOldPassword($password, $saved_password) {
$query = sprintf("select password('%s') as password, old_password('%s') as old_password", $this->addQuotes($password), $this->addQuotes($password));
$result = $this->_query($query);
$tmp = $this->_fetch($result);
return $tmp->password;
if($tmp->password == $saved_password || $tmp->old_password == $saved_password) return true;
return false;
}
/**

View file

@ -200,11 +200,12 @@
/**
* @brief mysql old password를 가져오는 함수 (mysql에서만 사용)
**/
function getOldPassword($password) {
$query = sprintf("select old_password('%s') as password", $password);
function isValidOldPassword($password, $saved_password) {
$query = sprintf("select password('%s') as password, old_password('%s') as old_password", $this->addQuotes($password), $this->addQuotes($password));
$result = $this->_query($query);
$tmp = $this->_fetch($result);
return $tmp->password;
if($tmp->password == $saved_password || $tmp->old_password == $saved_password) return true;
return false;
}
/**

View file

@ -26,6 +26,11 @@
* @brief optimize 대상 파일을 받아서 처리 optimize 파일이름을 return
**/
function getOptimizedFiles($source_files, $type = "js") {
// 관리자 설정시 설정이 되어 있지 않으면 패스
$db_info = Context::getDBInfo();
if($db_info->use_optimizer == 'N') return $source_files;
// 캐시 디렉토리가 없으면 실행하지 않음
if(!is_dir($this->cache_path)) return $source_files;
$file_count = count($source_files);

View file

@ -630,3 +630,25 @@ function doDocumentPreview(obj) {
function viewSkinInfo(module, skin) {
popopen("./?module=module&act=dispModuleSkinInfo&selected_module="+module+"&skin="+skin, 'SkinInfo');
}
/* 체크박스 선택 */
function checkboxSelectAll(form, name, option){
var value;
var fo_obj = xGetElementById(form);
for ( var i = 0 ; i < fo_obj.length ; i++ ){
if(typeof(option) == "undefined") {
var select_mode = fo_obj[i].checked;
if ( select_mode == 0 ){
value = true;
select_mode = 1;
}else{
value = false;
select_mode = 0;
}
}
else if(option == true) value = true
else if(option == false) value = false
if(fo_obj[i].name == name) fo_obj[i].checked = value;
}
}

View file

@ -37,6 +37,7 @@
$lang->cmd_select = '선택';
$lang->cmd_select_all = '모두선택';
$lang->cmd_unselect_all = '모두해제';
$lang->cmd_reverse_all = "선택반전";
$lang->cmd_close_all = '모두닫기';
$lang->cmd_open_all = '모두열기';
$lang->cmd_reload = '다시읽기';

View file

@ -14,7 +14,7 @@
* 내용은 제로보드XE의 버전을 관리자 페이지에 표시하기 위한 용도이며
* config.inc.php의 수정이 없더라도 공식 릴리즈시에 수정되어 함께 배포되어야
**/
define('__ZBXE_VERSION__', '0.1.8');
define('__ZBXE_VERSION__', '0.1.9');
/**
* @brief 디버깅 메세지 출력

View file

@ -38,6 +38,7 @@
Context::set('time_zone_list', $GLOBALS['time_zone']);
Context::set('time_zone', $GLOBALS['_time_zone']);
Context::set('use_rewrite', $db_info->use_rewrite=='Y'?'Y':'N');
Context::set('use_optimizer', $db_info->use_optimizer==''?'Y':'N');
Context::setBrowserTitle("ZeroboardXE Admin Page");
}

View file

@ -34,6 +34,20 @@
<col width="200" />
<col />
<caption>{$lang->env_setup}</caption>
<tr>
<th scope="row">{$lang->use_rewrite}</th>
<td>
<input type="checkbox" name="use_rewrite" value="Y" <!--@if($use_rewrite=='Y')-->checked="checked"<!--@end--> />
<p>{$lang->about_rewrite}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->use_optimizer}</th>
<td>
<input type="checkbox" name="use_optimizer" value="Y" <!--@if($use_optimizer!='N')-->checked="checked"<!--@end--> />
<p>{$lang->about_optimizer}</p>
</td>
</tr>
<tr>
<th scope="row">Lang</th>
<td>
@ -48,13 +62,6 @@
<p>{$lang->about_lang_env}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->use_rewrite}</th>
<td>
<input type="checkbox" name="use_rewrite" value="Y" <!--@if($use_rewrite=='Y')-->checked="checked"<!--@end--> />
<p>{$lang->about_rewrite}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->time_zone}</th>
<td>

View file

@ -15,7 +15,7 @@
<table cellspacing="0" class="tableType4">
<thead>
<tr>
<th scope="col"><input type="checkbox" onclick="doCheckAll(); return false;" /></th>
<th scope="col"><input type="checkbox" onclick="checkboxSelectAll(this.form, 'cart'); return false;" /></th>
<th scope="col">
<div class="nowrap">
<select name="module_srl" class="mid_list" id="module_srl">
@ -58,9 +58,9 @@
<!-- 버튼 -->
<div class="fr gap1">
<a href="javascript:doCheckAll()" class="button"><span>{$lang->cmd_select_all}</span></a>
<a href="javascript:doCheckAll(true)" class="button"><span>{$lang->cmd_toggle_checked_comment}</span></a>
<span class="button"><input type="submit" value="{$lang->cmd_delete_checked_comment}" /></span>
<a href="javascript:checkboxSelectAll('fo_list', 'cart', true)" class="button"><span>{$lang->cmd_select_all}</span></a>
<a href="javascript:checkboxSelectAll('fo_list', 'cart')" class="button"><span>{$lang->cmd_reverse_all}</span></a>
<span class="button"><input type="submit" value="{$lang->cmd_delete_checked_comment}" /></span>
</div>
</form>

View file

@ -12,11 +12,11 @@
<input type="hidden" name="page" value="{$page}" />
<!-- 목록 -->
<table cellspacing="0" class="tableType4">
<table cellspacing="0" class="tableType1">
<thead>
<tr>
<th scope="col">{$lang->no}</th>
<th scope="col"><input type="checkbox" onclick="doCheckAll(); return false;" /></th>
<th scope="col"><input type="checkbox" onclick="checkboxSelectAll(this.form, 'cart'); return false;" /></th>
<th scope="col">
<div class="nowrap">
<select name="module_srl" class="mid_list" id="module_srl">
@ -62,8 +62,8 @@
<!-- 버튼 -->
<div class="fr gap1">
<a href="javascript:doCheckAll()" class="button"><span>{$lang->cmd_select_all}</span></a>
<a href="javascript:doCheckAll(true)" class="button"><span>{$lang->cmd_toggle_checked_document}</span></a>
<a href="javascript:checkboxSelectAll('fo_list', 'cart', true)" class="button"><span>{$lang->cmd_select_all}</span></a>
<a href="javascript:checkboxSelectAll('fo_list', 'cart')" class="button"><span>{$lang->cmd_reverse_all}</span></a>
<span class="button"><input type="submit" value="{$lang->cmd_delete_checked_document}" /></span>
</div>

View file

@ -176,14 +176,23 @@ function editorStart(editor_sequence, primary_key, content_key, resizable, edito
// editor_mode를 기본으로 설정
editor_mode[editor_sequence] = null;
editor_is_started[editor_sequence] = false;
// 에디터를 시작 시킴 (오류 발생시 에디터에 focus에 올때 에디터 시작하도록 변경)
try {
editorSetDesignMode(iframe_obj, contentDocument, content, fo_obj, editor_sequence);
editor_is_started[editor_sequence] = true;
} catch(e) {
editor_start_func[editor_sequence] = function() { editorSetDesignMode(iframe_obj, contentDocument, content, fo_obj, editor_sequence); }
editor_is_started[editor_sequence] = false;
// iframe에 focus가 될때 에디터 모드로 전환하도록 이벤트 지정
if(xIE4Up) xAddEventListener(iframe_obj, "focus", editor_start_func[editor_sequence] );
else xAddEventListener(iframe_obj.contentWindow, "focus", editor_start_func[editor_sequence] );
alert('실패');
}
xAddEventListener(document,'mouseup',editorEventCheck);
// iframe에 focus가 될때 에디터 모드로 전환하도록 이벤트 지정
editor_start_func[editor_sequence] = function() { editorSetDesignMode(iframe_obj, contentDocument, content, fo_obj, editor_sequence); }
if(xIE4Up) xAddEventListener(iframe_obj, "focus", editor_start_func[editor_sequence] );
else xAddEventListener(iframe_obj.contentWindow, "focus", editor_start_func[editor_sequence] );
}
/**

View file

@ -14,7 +14,7 @@
<thead>
<tr>
<th scope="col">{$lang->no}</th>
<th scope="col"><input type="checkbox" onclick="doCheckAll(); return false;" /></th>
<th scope="col"><input type="checkbox" onclick="checkboxSelectAll(this.form, 'cart'); return false;" /></th>
<th scope="col">
<div class="nowrap">
<select name="module_srl" class="mid_list" id="module_srl">
@ -60,6 +60,8 @@
<!-- 버튼 -->
<div class="fr gap1">
<a href="javascript:checkboxSelectAll('fo_list', 'cart', true)" class="button"><span>{$lang->cmd_select_all}</span></a>
<a href="javascript:checkboxSelectAll('fo_list', 'cart')" class="button"><span>{$lang->cmd_reverse_all}</span></a>
<span class="button"><input type="submit" value="{$lang->cmd_delete_checked_file}" /></span>
</div>

View file

@ -47,11 +47,16 @@
function procInstallAdminSaveTimeZone() {
$use_rewrite = Context::get('use_rewrite');
if($use_rewrite!='Y') $use_rewrite = 'N';
$use_optimizer = Context::get('use_optimizer');
if($use_optimizer!='Y') $use_optimizer = 'N';
$time_zone = Context::get('time_zone');
$db_info = Context::getDBInfo();
$db_info->time_zone = $time_zone;
$db_info->use_rewrite = $use_rewrite;
$db_info->use_optimizer = $use_optimizer;
$db_info->lang_type = Context::getLangType();
Context::setDBInfo($db_info);

View file

@ -162,6 +162,8 @@ EndOfLicense;
$lang->admin_title = 'Administrator Info';
$lang->env_title = 'Configuration';
$lang->use_optimizer = 'Optimizer 사용';
$lang->about_optimizer = 'Optimizer를 사용하면 다수의 CSS/ JS파일을 통합/압축 전송하여 매우 빠르게 사이트 접속이 가능하게 합니다.<br />다만 CSS나 JS에 따라서 문제가 생길 수 있습니다. 이때는 Optimizer 비활성화 하시면 정상적인 동작은 가능합니다';
$lang->use_rewrite = 'Use rewrite mod';
$lang->about_rewrite = "If web server provides rewrite mod, long URL such as http://blah/?document_srl=123 can be shortened like http://blah/123";
$lang->time_zone = 'Time zone';

View file

@ -258,6 +258,8 @@ EndOfLicense;
$lang->admin_title = 'Información del Administrator';
$lang->env_title = 'Configuración';
$lang->use_optimizer = 'Optimizer 사용';
$lang->about_optimizer = 'Optimizer를 사용하면 다수의 CSS/ JS파일을 통합/압축 전송하여 매우 빠르게 사이트 접속이 가능하게 합니다.<br />다만 CSS나 JS에 따라서 문제가 생길 수 있습니다. 이때는 Optimizer 비활성화 하시면 정상적인 동작은 가능합니다';
$lang->use_rewrite = 'Usar rewrite mod';
$lang->about_rewrite = "Si el servidor de la web soporte rewrite mod, URL largas como http://bla/?documento_srl=123 puede abreviarse como http://bla/123";
$lang->time_zone = 'La Hora por Zona';

View file

@ -255,6 +255,8 @@ EndOfLicense;
$lang->admin_title = '管理者情報';
$lang->env_title = '環境設定';
$lang->use_optimizer = 'Optimizer 사용';
$lang->about_optimizer = 'Optimizer를 사용하면 다수의 CSS/ JS파일을 통합/압축 전송하여 매우 빠르게 사이트 접속이 가능하게 합니다.<br />다만 CSS나 JS에 따라서 문제가 생길 수 있습니다. 이때는 Optimizer 비활성화 하시면 정상적인 동작은 가능합니다';
$lang->use_rewrite = 'リライトモジュール使用';
$lang->about_rewrite = 'Webサーバで「リライトモジュールmod_rewrite」をサポートしている場合は、「http://アドレス/?document_srl=123」のようなアドレスを「http://アドレス/123」のように簡単にすることができます。';
$lang->time_zone = 'タイムゾーン';

View file

@ -254,6 +254,8 @@ EndOfLicense;
$lang->admin_title = '관리자정보';
$lang->env_title = '환경 설정';
$lang->use_optimizer = 'Optimizer 사용';
$lang->about_optimizer = 'Optimizer를 사용하면 다수의 CSS/ JS파일을 통합/압축 전송하여 매우 빠르게 사이트 접속이 가능하게 합니다.<br />다만 CSS나 JS에 따라서 문제가 생길 수 있습니다. 이때는 Optimizer 비활성화 하시면 정상적인 동작은 가능합니다';
$lang->use_rewrite = 'rewrite mod 사용';
$lang->about_rewrite = '웹서버에서 rewrite mod를 지원하면 http://주소/?document_srl=123 같이 복잡한 주소를 http://주소/123과 같이 간단하게 줄일 수 있습니다.';
$lang->time_zone = 'time zone';

View file

@ -247,6 +247,8 @@ EndOfLicense;
$lang->admin_title = '管理员信息';
$lang->env_title = '环境设置';
$lang->use_optimizer = 'Optimizer 사용';
$lang->about_optimizer = 'Optimizer를 사용하면 다수의 CSS/ JS파일을 통합/압축 전송하여 매우 빠르게 사이트 접속이 가능하게 합니다.<br />다만 CSS나 JS에 따라서 문제가 생길 수 있습니다. 이때는 Optimizer 비활성화 하시면 정상적인 동작은 가능합니다';
$lang->use_rewrite = '使用rewrite模块';
$lang->about_rewrite = '如服务器支持rewrite模块且选择此项可以简化复杂的网址。<br />例如http://域名/?document_srl=123简化为http://域名/123。';
$lang->time_zone = '时区';

View file

@ -27,9 +27,19 @@
<th scope="row">{$lang->module}</th>
<td>
<p>{$lang->about_target_module}</p>
<div class="clear">
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, 'target_mid', true);return false;" value="{$lang->cmd_select_all}"></span>
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, 'target_mid', false);return false;" value="{$lang->cmd_unselect_all}"></span>
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, 'target_mid');return false;" value="{$lang->cmd_reverse_all}"></span>
</div>
<!--@foreach($mid_list as $key => $val)-->
<p><input type="checkbox" name="target_mid" value="{$key}" id="target_mid_{$key}" <!--@if(in_array($key,$config->target_mid))-->checked="checked"<!--@end--> /> <label for="target_mid_{$key}">{$val->browser_title} ({$val->mid})</label></p>
<!--@end-->
<div class="clear">
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, 'target_mid', true);return false;" value="{$lang->cmd_select_all}"></span>
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, 'target_mid', false);return false;" value="{$lang->cmd_unselect_all}"></span>
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, 'target_mid');return false;" value="{$lang->cmd_reverse_all}"></span>
</div>
</td>
</tr>
</table>

View file

@ -939,7 +939,7 @@
// return 값이 없으면 존재하지 않는 사용자로 지정
if(!$user_id || $member_info->user_id != $user_id) return new Object(-1, 'invalid_user_id');
// 비밀번호 검사 : 우선 md5() hash값으로 비굥
// 비밀번호 검사하여 md5 hash값과 다르면 비밀번호의 재확인 작업 시행
if($password && $member_info->password != md5($password)) {
// 혹시나 하여.. -_-;; mysql old_password로 검사하여 맞으면 db의 비밀번호 교체
@ -951,17 +951,19 @@
$output = executeQuery('member.updateMemberPassword', $password_args);
if(!$output->toBool()) return $output;
// mysql_pre4_hash_password() 함수의 값과도 다를 경우
} else {
// mysql_pre4_hash_password()함수의 결과와도 다를 경우 현재 mysql DB이용시 직접 쿼리 날림
if(substr(Context::getDBType(),0,5)=='mysql') {
$oDB = &DB::getInstance();
if($oDB->getOldPassword($password) == $member_info->password) {
if($oDB->isValidOldPassword($password, $member_info->password)) {
$password_args->member_srl = $member_info->member_srl;
$password_args->password = md5($password);
$output = executeQuery('member.updateMemberPassword', $password_args);
if(!$output->toBool()) return $output;
} else return new Object(-1, 'invalid_password');
// md5(), mysql old_password와도 다르면 잘못된 비빌번호 오류 메세지 리턴
} else {
return new Object(-1, 'invalid_password');

View file

@ -57,17 +57,59 @@
* @brief 포인트 회원목록 가져오기
**/
function getMemberList($args = null) {
// member model 객체 생성후 목록을 구해옴
$oMemberModel = &getAdminModel('member');
$output = $oMemberModel->getMemberList();
// 검색 옵션 정리
$args->is_admin = Context::get('is_admin')=='Y'?'Y':'';
$args->is_denied = Context::get('is_denied')=='Y'?'Y':'';
$args->selected_group_srl = Context::get('selected_group_srl');
$search_target = trim(Context::get('search_target'));
$search_keyword = trim(Context::get('search_keyword'));
if($search_target && $search_keyword) {
switch($search_target) {
case 'user_id' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_user_id = $search_keyword;
break;
case 'user_name' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_user_name = $search_keyword;
break;
case 'nick_name' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_nick_name = $search_keyword;
break;
case 'email_address' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_email_address = $search_keyword;
break;
case 'regdate' :
$args->s_regdate = $search_keyword;
break;
case 'last_login' :
$args->s_last_login = $search_keyword;
break;
case 'extra_vars' :
$args->s_extra_vars = $search_keyword;
break;
}
}
// selected_group_srl이 있으면 query id를 변경 (table join때문에)
if($args->selected_group_srl) {
$query_id = 'point.getMemberListWithinGroup';
} else {
$query_id = 'point.getMemberList';
}
$output = executeQuery($query_id, $args);
if($output->total_count) {
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
foreach($output->data as $key => $val) {
$point = $this->getPoint($val->member_srl);
$output->data[$key]->point = $point;
$output->data[$key]->level = $this->getLevel($point, $config->level_step);
}
}

View file

@ -1,14 +1,28 @@
<query id="getMemberListWithinGroup" action="select">
<query id="getMemberList" action="select">
<tables>
<table name="member" alias="member"/>
<table name="point" alias="point"/>
</tables>
<columns />
<columns>
<column name="member.*" />
<column name="point.point" />
</columns>
<conditions>
<condition operation="equal" column="member.member_srl" var="point.member_srl" pipe="and" notnull="notnull" />
<condition operation="equal" column="member.member_srl" var="point.member_srl" />
<condition operation="equal" column="is_admin" var="is_admin" pipe="and" />
<condition operation="equal" column="denied" var="is_denied" pipe="and" />
<group pipe="and">
<condition operation="like" column="user_id" var="s_user_id" />
<condition operation="like" column="user_name" var="s_user_name" pipe="or" />
<condition operation="like" column="nick_name" var="s_nick_name" pipe="or" />
<condition operation="like" column="email_address" var="s_email_address" pipe="or" />
<condition operation="like" column="extra_vars" var="s_extra_vars" pipe="or" />
<condition operation="like_prefix" column="regdate" var="s_regdate" pipe="or" />
<condition operation="like_prefix" column="last_login" var="s_last_login" pipe="or" />
</group>
</conditions>
<navigation>
<index var="sort_index" default="point.point" order="desc" />
<index var="sort_index" default="point" order="desc" />
<list_count var="list_count" default="20" />
<page_count var="page_count" default="10" />
<page var="page" default="1" />

View file

@ -0,0 +1,35 @@
<query id="getMemberListWithinGroup" action="select">
<tables>
<table name="member" alias="member"/>
<table name="point" alias="point"/>
<table name="member_group_member" alias="member_group"/>
</tables>
<columns>
<column name="member.*" />
<column name="point.point" />
</columns>
<conditions>
<condition operation="equal" column="member_group.group_srl" var="selected_group_srl" notnull="notnull" />
<condition operation="equal" column="member.member_srl" var="member_group.member_srl" pipe="and" notnull="notnull" />
<condition operation="equal" column="member.member_srl" var="point.member_srl" pipe="and" />
<group pipe="and">
<condition operation="equal" column="member.is_admin" var="is_admin" />
<condition operation="equal" column="member.denied" var="is_denied" pipe="and" />
</group>
<group pipe="and">
<condition operation="like" column="member.user_id" var="s_user_id" />
<condition operation="like" column="member.user_name" var="s_user_name" pipe="or" />
<condition operation="like" column="member.nick_name" var="s_nick_name" pipe="or" />
<condition operation="like" column="member.email_address" var="s_email_address" pipe="or" />
<condition operation="like" column="extra_vars" var="s_extra_vars" pipe="or" />
<condition operation="like_prefix" column="member.regdate" var="s_regdate" pipe="or" />
<condition operation="like_prefix" column="member.last_login" var="s_last_login" pipe="or" />
</group>
</conditions>
<navigation>
<index var="sort_index" default="point" order="desc" />
<list_count var="list_count" default="20" />
<page_count var="page_count" default="10" />
<page var="page" default="1" />
</navigation>
</query>

View file

@ -22,6 +22,7 @@
<thead>
<tr>
<th scope="col" colspan="2">{$lang->no}</th>
<th scope="col"><input type="checkbox" onclick="checkboxSelectAll(this.form, 'cart'); return false;" /></th>
<th scope="col" >{$lang->title}</th>
<th scope="col" >{$lang->poll_checkcount}</th>
<th scope="col" >{$lang->poll_join_count}</th>
@ -46,10 +47,11 @@
<!-- 버튼 -->
<div class="fr gap1">
<a href="javascript:checkboxSelectAll('fo_list', 'cart', true)" class="button"><span>{$lang->cmd_select_all}</span></a>
<a href="javascript:checkboxSelectAll('fo_list', 'cart')" class="button"><span>{$lang->cmd_reverse_all}</span></a>
<span class="button"><input type="submit" value="{$lang->cmd_delete_checked_poll}" /></span>
</div>
</form>
<!-- 페이지 네비게이션 -->

View file

@ -38,7 +38,7 @@
<th scope="col">{$lang->no}</th>
<th scope="col">
<div class="nowrap">
<input type="checkbox" onclick="doCheckAll(); return false;" />
<input type="checkbox" onclick="checkboxSelectAll(this.form, 'cart'); return false;" />
<select name="module_srl" class="mid_list" id="module_srl">
<option value="">{$lang->module}</option>
<!--@foreach($mid_list as $key => $val)-->
@ -79,9 +79,9 @@
<!-- 버튼 -->
<div class="fr gap1">
<a href="javascript:doCheckAll()" class="button"><span>{$lang->cmd_select_all}</span></a>
<a href="javascript:doCheckAll(true)" class="button"><span>{$lang->cmd_toggle_checked_trackback}</span></a>
<span class="button"><input type="submit" value="{$lang->cmd_delete_checked_trackback}" /></span>
<a href="javascript:checkboxSelectAll('fo_list', 'cart', true)" class="button"><span>{$lang->cmd_select_all}</span></a>
<a href="javascript:checkboxSelectAll('fo_list', 'cart')" class="button"><span>{$lang->cmd_reverse_all}</span></a>
<span class="button"><input type="submit" value="{$lang->cmd_delete_checked_trackback}" /></span>
</div>
</form>

View file

@ -67,12 +67,22 @@
</select>
<!--@elseif($var->type == "mid_list")-->
<div class="clear">
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, '{$id}', true);return false;" value="{$lang->cmd_select_all}"></span>
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, '{$id}', false);return false;" value="{$lang->cmd_unselect_all}"></span>
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, '{$id}');return false;" value="{$lang->cmd_reverse_all}"></span>
</div>
<!--@foreach($mid_list as $key => $val)-->
<div class="widget_mid_list">
<input type="checkbox" value="{$key}" name="{$id}" id="chk_mid_list_{$key}" />
<label for="chk_mid_list_{$key}">{$key} ({$val->browser_title})</label>
</div>
<!--@end-->
<div class="clear">
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, '{$id}', true);return false;" value="{$lang->cmd_select_all}"></span>
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, '{$id}', false);return false;" value="{$lang->cmd_unselect_all}"></span>
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, '{$id}');return false;" value="{$lang->cmd_reverse_all}"></span>
</div>
<!--@end-->
<p class="clear">{nl2br($var->description)}</p>
</td>

View file

@ -69,12 +69,22 @@
</select>
<!--@elseif($var->type == "mid_list")-->
<div class="clear">
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, '{$id}', true);return false;" value="{$lang->cmd_select_all}"></span>
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, '{$id}', false);return false;" value="{$lang->cmd_unselect_all}"></span>
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, '{$id}');return false;" value="{$lang->cmd_reverse_all}"></span>
</div>
<!--@foreach($mid_list as $key => $val)-->
<div class="widget_mid_list">
<input type="checkbox" value="{$key}" name="{$id}" id="chk_mid_list_{$key}" />
<label for="chk_mid_list_{$key}">{$key} ({$val->browser_title})</label>
</div>
<!--@end-->
<div class="clear">
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, '{$id}', true);return false;" value="{$lang->cmd_select_all}"></span>
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, '{$id}', false);return false;" value="{$lang->cmd_unselect_all}"></span>
<span class="button"><input type="button" onclick="checkboxSelectAll(this.form, '{$id}');return false;" value="{$lang->cmd_reverse_all}"></span>
</div>
<!--@end-->
<p class="clear">{nl2br($var->description)}</p>
</td>

View file

@ -1,124 +1,175 @@
<?xml version="1.0" encoding="utf-8"?>
<widget version="0.1">
<title xml:lang="ko">이미지 카운터 위젯</title>
<title xml:lang="es">Widget Contador de imagen</title>
<title xml:lang="ko">이미지 카운터 위젯</title>
<title xml:lang="es">Widget Contador de imagen</title>
<title xml:lang="en">Image Counter Widget</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 8. 27">
<name xml:lang="ko">제로</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">
제로보드XE의 기본 카운터를 블로그나 사이트에 달 수 있는 작은 그래프로 표시를 합니다.
크기, 배경색등의 조건을 설정하지 않으시면 기본 설정으로 사용됩니다.
그래프를 그리기 위해서 GD 라이브러리가 설치되어 있어야 합니다.
</description>
<description xml:lang="es">
</description>
<description xml:lang="es">
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.
</description>
<description xml:lang="en">
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.
</description>
</author>
<extra_vars>
<var id="graph_width">
<name xml:lang="ko">가로 크기</name>
<name xml:lang="es">Tamaño del ancho</name>
<name xml:lang="ko">가로 크기</name>
<name xml:lang="es">Tamaño del ancho</name>
<name xml:lang="en">Width</name>
<type>text</type>
<description xml:lang="ko">
그래프 이미지의 가로크기를 지정하실 수 있습니다.
지정하지 않으시면 150px로 지정되며 숫자로 입력을 해주세요.
코드 생성 페이지의 하단에 있는 가로크기와 다르게 적용됩니다.
</description>
<description xml:lang="es">
</description>
<description xml:lang="es">
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
</description>
<description xml:lang="en">
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.
</description>
</var>
<var id="graph_height">
<name xml:lang="ko">세로 크기</name>
<name xml:lang="es">Tamaño de la Altura</name>
<name xml:lang="ko">세로 크기</name>
<name xml:lang="es">Tamaño de la Altura</name>
<name xml:lang="en">Height</name>
<type>text</type>
<description xml:lang="ko">
그래프 이미지의 세로 크기를 지정하실 수 있습니다.
지정하지 않으시면 100px로 지정되며 숫자로 입력을 해주세요.
</description>
<description xml:lang="es">
</description>
<description xml:lang="es">
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.
</description>
<description xml:lang="en">
You can set the height of the graph image.
If you don't input any value, it will be defined as 100px.
</description>
</var>
<var id="day_range">
<name xml:lang="ko">출력 기간</name>
<name xml:lang="es">Tiempo a mostrar</name>
<name xml:lang="ko">출력 기간</name>
<name xml:lang="es">Tiempo a mostrar</name>
<name xml:lang="en">Duration</name>
<type>text</type>
<description xml:lang="ko">
오늘부터 지정하신 출력기간 만큼의 데이터를 그래프로 출력합니다.
숫자를 입력해주세요. (기본 지난 7일)
</description>
<description xml:lang="es">
</description>
<description xml:lang="es">
Desde el día de hoy hasta el tiempo asignado, se mostrará el gráfico.
Ingrese números. (Predefinido: transcurridos los 7 días)
</description>
<description xml:lang="en">
The graph would contain the data of the assigned duration from today.
Input numerical value (unit:day, default: past 7 days).
</description>
</var>
<var id="bg_color">
<name xml:lang="ko">배경색</name>
<name xml:lang="es">Color de Fondo</name>
<name xml:lang="ko">배경색</name>
<name xml:lang="es">Color de Fondo</name>
<name xml:lang="en">Background Color</name>
<type>text</type>
<description xml:lang="ko"><![CDATA[지정하신 색상 코드로 배경을 그립니다.
기본 : #FFFFFF
#과 6자리의 색상코드 입력해주세요]]></description>
<description xml:lang="es"><![CDATA[Con el código del color asignado dibujará el color de fondo.
#과 6자리의 색상코드 입력해주세요]]></description>
<description xml:lang="es"><![CDATA[Con el código del color asignado dibujará el color de fondo.
Predefinido : #FFFFFF
Ingrese # + 6 espacios del código del color]]></description>
<description xml:lang="en"><![CDATA[Set background color as the assigned color code.
Default : #FFFFFF.
Input as # + 6 digit color code.]]> </description>
</var>
<var id="check_bg_color">
<name xml:lang="ko">체크 무늬 배경색</name>
<name xml:lang="es">Textura escocés de fondo</name>
<name xml:lang="ko">체크 무늬 배경색</name>
<name xml:lang="es">Textura escocés de fondo</name>
<name xml:lang="en">Background Color for the Darker part</name>
<type>text</type>
<description xml:lang="ko"><![CDATA[지정하신 색상 코드로 체크 무늬 배경을 그립니다.
기본 : <span style="color:#F9F9F9">#F9F9F9</span>
#과 6자리의 색상코드 입력해주세요]]></description>
<description xml:lang="es"><![CDATA[Con el código del color asignado dibujará la textura escocés de fondo.
#과 6자리의 색상코드 입력해주세요]]></description>
<description xml:lang="es"><![CDATA[Con el código del color asignado dibujará la textura escocés de fondo.
Predefinido : <span style="color:#F9F9F9">#F9F9F9</span>
Ingrese # + 6 espacios del código del color]]></description>
<description xml:lang="en"><![CDATA[Set background color of the darker part as the assigned color code.
Default : #F9F9F9
Input as # + 6 digit color code.]]> </description>
</var>
<var id="grid_color">
<name xml:lang="ko">격자 선 색</name>
<name xml:lang="es">Color Línea de la grilla</name>
<name xml:lang="ko">격자 선 색</name>
<name xml:lang="es">Color Línea de la grilla</name>
<name xml:lang="en">Color of Grid</name>
<type>text</type>
<description xml:lang="ko"><![CDATA[지정하신 색상 코드로 xy 격자를 그립니다.
기본 : <span style="color:#9d9d9d">#9d9d9d</span>
#과 6자리의 색상코드 입력해주세요]]></description>
<description xml:lang="es"><![CDATA[Con el código del color asignado dibujará la grille xy.
#과 6자리의 색상코드 입력해주세요]]></description>
<description xml:lang="es"><![CDATA[Con el código del color asignado dibujará la grille xy.
Predefinido : <span style="color:#9d9d9d">#9d9d9d</span>
Ingrese # + 6 espacios del código del color]]></description>
<description xml:lang="en"><![CDATA[Set the color of grid as the assigned color code.
Default : <span style="color:#9d9d9d">#9d9d9d</span>
Input as # + 6 digit color code.]]> </description>
</var>
<var id="unique_line_color">
<name xml:lang="ko">그래프 선색</name>
<name xml:lang="es">Color Línea del Gráfico</name>
<name xml:lang="ko">그래프 선색</name>
<name xml:lang="es">Color Línea del Gráfico</name>
<name xml:lang="en">Color of the Lines</name>
<type>text</type>
<description xml:lang="ko"><![CDATA[Con el código del color asignado dibujará la línea del gráfico.
<description xml:lang="ko"> <![CDATA[지정하신 색상 코드로 그래프 선색을 그립니다.
기본 : <span style="color:#BBBBBB">#BBBBBB</span>
#과 6자리의 색상코드 입력해주세요]]></description>
<description xml:lang="es"> <![CDATA[Con el código del color asignado dibujará la línea del gráfico.
Predefinido : <span style="color:#BBBBBB">#BBBBBB</span>
Ingrese # + 6 espacios del código del color]]></description>
<description xml:lang="en"> <![CDATA[Set the color of the lines in the graph as the assigned color code.
Default : <span style="color:#BBBBBB">#BBBBBB</span>
Input as # + 6 digit color code.]]> </description>
</var>
<var id="unique_text_color">
<name xml:lang="ko">방문자 수 글자색</name>
<name xml:lang="es">Color del número de los visitados</name>
<name xml:lang="ko">방문자 수 글자색</name>
<name xml:lang="es">Color del número de los visitados</name>
<name xml:lang="en">Character Color of the number of visitors</name>
<type>text</type>
<description xml:lang="ko"><![CDATA[지정하신 색상 코드로 방문자 수 글자를 표시합니다.
Predefinido : <span style="color:#666666">#666666</span>
Ingrese # + 6 espacios del código del color]]></description>
<description xml:lang="es"><![CDATA[Con el código del color asignado mostrará el número de los visitados.
Ingrese # + 6 espacios del código del color]]></description>
<description xml:lang="es"><![CDATA[Con el código del color asignado mostrará el número de los visitados.
Predefinido : <span style="color:#666666">#666666</span>
Ingrese # + 6 espacios del código del color]]></description>
</var>
Ingrese # + 6 espacios del código del color]]></description>
<description xml:lang="en"> <![CDATA[Set the color of the number of visitors as the assigned color code.
Default : <span style="color:#666666">#666666</span>
Input as # + 6 digit color code.]]> </description>
</var>
<var id="point_color">
<name xml:lang="ko">포인트 점 색</name>
<name xml:lang="es">Color del Punto</name>
<name xml:lang="ko">포인트 점 색</name>
<name xml:lang="es">Color del Punto</name>
<name xml:lang="en">Color of Points</name>
<type>text</type>
<description xml:lang="ko"><![CDATA[그래프의 꺽인 포인트 부분의 점 색을 지정할 수 있습니다.
기본 : <span style="color:#ed3027">#ed3027</span>
#과 6자리의 색상코드 입력해주세요]]></description>
<description xml:lang="es"><![CDATA[Con el código del color asignado mostrará el color del punto en donde la línea del gráfico esté doblado.
#과 6자리의 색상코드 입력해주세요]]></description>
<description xml:lang="es"><![CDATA[Con el código del color asignado mostrará el color del punto en donde la línea del gráfico esté doblado.
Predefinido : <span style="color:#ed3027">#ed3027</span>
Ingrese # + 6 espacios del código del color]]></description>
<description xml:lang="en"> <![CDATA[Set the color of the points as the assigned color code.
Default : <span style="color:#ed3027">#ed3027</span>
Input as # + 6 digit color code.]]> </description>
</var>
</extra_vars>
</widget>