확장변수 테이블에 eid 컬럼 추가 1.확장변수 추가/수정 시 대상 모듈 중 유일한 eid 로 등록하기 추가 2.다국어 게시글이 존재 시 확장변수 위치이동 안되는 오류 수정 3. 확장변수관련 추가/생성/삭제/수정/출력에 eid 정보에 대해 추가 수정

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5922 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
cbrghost 2009-03-20 09:17:12 +00:00
parent 46bb24295c
commit 4e2b78b6c4
21 changed files with 171 additions and 17 deletions

View file

@ -45,7 +45,7 @@
if(!is_array($GLOBALS['XE_EXTRAVARS'][$this->module_srl])) $GLOBALS['XE_EXTRAVARS'][$this->module_srl] = array();
foreach($extra_keys as $key => $val) {
$obj = null;
$obj = new ExtraItem($val->module_srl, $val->idx, $val->name, $val->type, $val->default, $val->desc, $val->is_required, $val->search, $val->value);
$obj = new ExtraItem($val->module_srl, $val->idx, $val->name, $val->type, $val->default, $val->desc, $val->is_required, $val->search, $val->value, $val->eid);
$GLOBALS['XE_EXTRAVARS'][$this->module_srl][$val->idx] = $obj;
}
}
@ -76,11 +76,12 @@
var $is_required = 'N';
var $search = 'N';
var $value = null;
var $eid = '';
/**
* @brief constructor
**/
function ExtraItem($module_srl, $idx, $name, $type = 'text', $default = null, $desc = '', $is_required = 'N', $search = 'N', $value = null) {
function ExtraItem($module_srl, $idx, $name, $type = 'text', $default = null, $desc = '', $is_required = 'N', $search = 'N', $value = null, $eid = '') {
if(!$idx) return;
$this->module_srl = $module_srl;
$this->idx = $idx;
@ -91,6 +92,7 @@
$this->is_required = $is_required;
$this->search = $search;
$this->value = $value;
$this->eid = $eid;
}
/**

View file

@ -269,6 +269,7 @@
$lang->default_value = '기본 값';
$lang->is_active = '활성';
$lang->is_required = '필수항목';
$lang->eid = '확장변수 이름';
// ftp 관련
$lang->ftp_form_title = 'FTP 정보 입력';

View file

@ -337,8 +337,9 @@
$default = Context::get('default');
$desc = Context::get('desc');
$search = Context::get('search');
$eid = Context::get('eid');
if(!$module_srl || !$name) return new Object(-1,'msg_invalid_request');
if(!$module_srl || !$name || !$eid) return new Object(-1,'msg_invalid_request');
// idx가 지정되어 있지 않으면 최고 값을 지정
if(!$var_idx) {
@ -347,9 +348,18 @@
$var_idx = $output->data->var_idx+1;
}
// 이미 존재하는 모듈 이름인지 체크
$obj->module_srl = $module_srl;
$obj->var_idx = $var_idx;
$obj->eid = $eid;
$output = executeQuery('document.isExistsExtraKey', $obj);
if(!$output->toBool() || $output->data->count) {
return new Object(-1, 'msg_extra_name_exists');
}
// insert or update
$oDocumentController = &getController('document');
$output = $oDocumentController->insertDocumentExtraKey($module_srl, $var_idx, $name, $type, $is_required, $search, $default, $desc);
$output = $oDocumentController->insertDocumentExtraKey($module_srl, $var_idx, $name, $type, $is_required, $search, $default, $desc, $eid);
if(!$output->toBool()) return $output;
$this->setMessage('success_registed');
@ -574,7 +584,7 @@
} else {
$args->module_srl = $module_srl;
$args->var_idx = $new_idx;
$args->new_idx = -1;
$args->new_idx = -10000;
$output = executeQuery('document.updateDocumentExtraKeyIdx', $args);
if(!$output->toBool()) return $output;
$output = executeQuery('document.updateDocumentExtraVarIdx', $args);
@ -587,7 +597,7 @@
$output = executeQuery('document.updateDocumentExtraVarIdx', $args);
if(!$output->toBool()) return $output;
$args->var_idx = -1;
$args->var_idx = -10000;
$args->new_idx = $var_idx;
$output = executeQuery('document.updateDocumentExtraKeyIdx', $args);
if(!$output->toBool()) return $output;

View file

@ -99,6 +99,12 @@
// 2009. 03. 11 확장변수 값 테이블의 인덱스 점검
if(!$oDB->isIndexExists("document_extra_vars", "unique_extra_vars")) return true;
/**
* 2009. 03. 19 : 확장변수 테이블에 eid가 없을 경우 추가
**/
if(!$oDB->isColumnExists("document_extra_keys","eid")) return true;
if(!$oDB->isColumnExists("document_extra_vars","eid")) return true;
return false;
}
@ -200,6 +206,37 @@
$oDB->dropIndex("document_extra_vars", "unique_module_vars", true);
}
/**
* 2009. 03. 19 : 확장변수 테이블에 eid 없을 경우 추가
**/
if(!$oDB->isColumnExists("document_extra_keys","eid")) {
$oDB->addColumn("document_extra_keys","eid","varchar",40);
$output = executeQuery('document.getGroupsExtraKeys', $obj);
if($output->toBool() && $output->data && count($output->data)) {
foreach($output->data as $extra_keys) {
$args = $extra_keys;
$args->var_idx = $extra_keys->idx;
$args->eid = "extra_vars".$extra_keys->idx;
$output = executeQuery('document.updateDocumentExtraKey', $args);
}
}
}
if(!$oDB->isColumnExists("document_extra_vars","eid")) {
$oDB->addColumn("document_extra_vars","eid","varchar",40);
$obj->var_idx = '-1,-2';
$output = executeQuery('document.getGroupsExtraVars', $obj);
if($output->toBool() && $output->data && count($output->data)) {
foreach($output->data as $extra_vars) {
$args = $extra_vars;
$args->var_idx = $extra_vars->idx;
$args->eid = "extra_vars".$extra_vars->idx;
$output = executeQuery('document.updateDocumentExtraVar', $args);
}
}
}
return new Object(0,'success_updated');
}

View file

@ -209,7 +209,7 @@
if(isset($obj->{'extra_vars'.$idx})) $value = trim($obj->{'extra_vars'.$idx});
elseif(isset($obj->{$extra_item->name})) $value = trim($obj->{$extra_item->name});
if(!isset($value)) continue;
$this->insertDocumentExtraVar($obj->module_srl, $obj->document_srl, $idx, $value);
$this->insertDocumentExtraVar($obj->module_srl, $obj->document_srl, $idx, $value, $extra_item->eid);
}
}
@ -358,7 +358,7 @@
if(isset($obj->{'extra_vars'.$idx})) $value = trim($obj->{'extra_vars'.$idx});
elseif(isset($obj->{$extra_item->name})) $value = trim($obj->{$extra_item->name});
if(!isset($value)) continue;
$this->insertDocumentExtraVar($obj->module_srl, $obj->document_srl, $idx, $value);
$this->insertDocumentExtraVar($obj->module_srl, $obj->document_srl, $idx, $value, $extra_item->eid);
}
}
@ -566,8 +566,8 @@
/**
* @breif documents 테이블의 확장 변수 등록
**/
function insertDocumentExtraKey($module_srl, $var_idx, $var_name, $var_type, $var_is_required = 'N', $var_search = 'N', $var_default = '', $var_desc = '') {
if(!$module_srl || !$var_idx || !$var_name || !$var_type) return new Object(-1,'msg_invalid_request');
function insertDocumentExtraKey($module_srl, $var_idx, $var_name, $var_type, $var_is_required = 'N', $var_search = 'N', $var_default = '', $var_desc = '', $eid) {
if(!$module_srl || !$var_idx || !$var_name || !$var_type || !$eid) return new Object(-1,'msg_invalid_request');
$obj->module_srl = $module_srl;
$obj->var_idx = $var_idx;
@ -577,6 +577,27 @@
$obj->var_search = $var_search=='Y'?'Y':'N';
$obj->var_default = $var_default;
$obj->var_desc = $var_desc;
$obj->eid = $eid;
$output = executeQuery('document.getDocumentExtraKeys', $obj);
if(!$output->data) return executeQuery('document.insertDocumentExtraKey', $obj);
$output = executeQuery('document.updateDocumentExtraKey', $obj);
// extra_vars에서 확장 변수 eid를 일괄 업데이트
$output = executeQuery('document.updateDocumentExtraVar', $obj);
return $output;
}
/**
* @breif documents 테이블의 확장 변수 등록
**/
function updateDocumentExtraKey($module_srl, $var_idx, $eid) {
if(!$module_srl || !$var_idx || !$eid) return new Object(-1,'msg_invalid_request');
$obj->module_srl = $module_srl;
$obj->var_idx = $var_idx;
$obj->eid = $eid;
$output = executeQuery('document.getDocumentExtraKeys', $obj);
if(!$output->data) return executeQuery('document.insertDocumentExtraKey', $obj);
@ -600,7 +621,7 @@
/**
* @breif documents 테이블의 확장 변수 등록
**/
function insertDocumentExtraVar($module_srl, $document_srl, $var_idx, $value, $lang_code = '') {
function insertDocumentExtraVar($module_srl, $document_srl, $var_idx, $value, $eid = null, $lang_code = '') {
if(!$module_srl || !$document_srl || !$var_idx || !isset($value)) return new Object(-1,'msg_invalid_request');
if(!$lang_code) $lang_code = Context::getLangType();
@ -608,7 +629,8 @@
$obj->document_srl = $document_srl;
$obj->var_idx = $var_idx;
$obj->value = $value;
$obj->lang_code = $lang_code ;
$obj->lang_code = $lang_code;
$obj->eid = $eid;
executeQuery('document.insertDocumentExtraVar', $obj);
}
@ -616,11 +638,12 @@
/**
* @brief documents 확장변수 제거
**/
function deleteDocumentExtraVars($module_srl, $document_srl = null, $var_idx = null, $lang_code = null) {
function deleteDocumentExtraVars($module_srl, $document_srl = null, $var_idx = null, $lang_code = null, $eid = null) {
$obj->module_srl = $module_srl;
if(!is_null($document_srl)) $obj->document_srl = $document_srl;
if(!is_null($var_idx)) $obj->var_idx = $var_idx;
if(!is_null($lang_code)) $obj->lang_code = $lang_code;
if(!is_null($eid)) $obj->lang_code = $eid;
$output = executeQuery('document.deleteDocumentExtraVars', $obj);
return $output;
}

View file

@ -53,13 +53,13 @@
else if($val->idx == -2) $GLOBALS['XE_DOCUMENT_LIST'][$val->document_srl]->add('content', $val->value);
} elseif($val->idx>0) {
if($lang_code == $val->lang_code) {
$obj = new ExtraItem($val->module_srl, $val->idx, $val->name, $val->type, $val->default, $val->desc, $val->is_required, $val->search, $val->value);
$obj = new ExtraItem($val->module_srl, $val->idx, $val->name, $val->type, $val->default, $val->desc, $val->is_required, $val->search, $val->value, $val->eid);
$GLOBALS['XE_EXTRA_VARS'][$val->document_srl][$val->idx] = $obj;
} else if($lang_code == $GLOBALS['XE_DOCUMENT_LIST'][$val->document_srl]->lang_code && !isset($GLOBALS['XE_EXTRA_VARS'][$val->document_srl][$val->idx])) {
$obj = new ExtraItem($val->module_srl, $val->idx, $val->name, $val->type, $val->default, $val->desc, $val->is_required, $val->search, $val->value);
$obj = new ExtraItem($val->module_srl, $val->idx, $val->name, $val->type, $val->default, $val->desc, $val->is_required, $val->search, $val->value, $val->eid);
$GLOBALS['XE_EXTRA_VARS'][$val->document_srl][$val->idx] = $obj;
} else if(!isset($GLOBALS['XE_EXTRA_VARS'][$val->document_srl][$val->idx])) {
$obj = new ExtraItem($val->module_srl, $val->idx, $val->name, $val->type, $val->default, $val->desc, $val->is_required, $val->search, $val->value);
$obj = new ExtraItem($val->module_srl, $val->idx, $val->name, $val->type, $val->default, $val->desc, $val->is_required, $val->search, $val->value, $val->eid);
$GLOBALS['XE_EXTRA_VARS'][$val->document_srl][$val->idx] = $obj;
}
}

View file

@ -11,6 +11,7 @@
<column name="var_search" alias="search" />
<column name="var_default" alias="default" />
<column name="var_desc" alias="desc" />
<column name="eid" alias="eid" />
</columns>
<conditions>
<condition operation="equal" column="module_srl" var="module_srl" filter="number" notnull="notnull" />

View file

@ -20,6 +20,7 @@
<column name="extra_keys.var_search" alias="search" />
<column name="extra_keys.var_default" alias="default" />
<column name="extra_keys.var_desc" alias="desc" />
<column name="extra_keys.eid" alias="eid" />
<column name="extra_vars.document_srl" alias="document_srl" />
<column name="extra_vars.lang_code" alias="lang_code" />
<column name="extra_vars.value" alias="value" />
@ -27,6 +28,7 @@
<conditions>
<condition operation="equal" column="extra_keys.module_srl" var="module_srl" pipe="and" notnull="notnull" />
<condition operation="equal" column="extra_keys.var_idx" var="var_idx" pipe="and" />
<condition operation="equal" column="extra_keys.eid" var="eid" pipe="and" />
</conditions>
<navigation>
<index var="sort_index" default="extra_keys.var_idx" order="asc" />

View file

@ -20,6 +20,7 @@
<column name="extra_vars.document_srl" alias="document_srl" />
<column name="extra_vars.lang_code" alias="lang_code" />
<column name="extra_vars.value" alias="value" />
<column name="extra_vars.eid" alias="eid" />
</columns>
<conditions>
<condition operation="in" column="extra_vars.document_srl" var="document_srl" pipe="and" />

View file

@ -0,0 +1,23 @@
<query id="getGroupsExtraKeys" action="select">
<tables>
<table name="document_extra_keys" />
</tables>
<columns>
<column name="module_srl" alias="module_srl" />
<column name="var_idx" alias="idx" />
<column name="eid" alias="eid" />
</columns>
<conditions>
<condition operation="equal" column="module_srl" var="module_srl" filter="number" notnull="notnull" />
<condition operation="equal" column="var_idx" var="var_idx" filter="number" pipe="and" />
<condition operation="equal" column="eid" var="eid" notnull="notnull" pipe="and" />
</conditions>
<groups>
<group column="module_srl" />
<group column="var_idx" />
<group column="eid" />
</groups>
<navigation>
<index var="sort_index" default="var_idx" order="asc" />
</navigation>
</query>

View file

@ -0,0 +1,23 @@
<query id="getGroupsExtraVars" action="select">
<tables>
<table name="document_extra_vars" />
</tables>
<columns>
<column name="module_srl" alias="module_srl" />
<column name="var_idx" alias="idx" />
<column name="eid" alias="eid" />
</columns>
<conditions>
<condition operation="equal" column="module_srl" var="module_srl" filter="number" notnull="notnull" />
<condition operation="notin" column="var_idx" var="var_idx" filter="number" pipe="and" />
<condition operation="equal" column="eid" var="eid" pipe="and" />
</conditions>
<groups>
<group column="module_srl" />
<group column="var_idx" />
<group column="eid" />
</groups>
<navigation>
<index var="sort_index" default="var_idx" order="asc" />
</navigation>
</query>

View file

@ -11,5 +11,6 @@
<column name="var_search" var="var_search" default="N" notnull="notnull" />
<column name="var_default" var="var_default" notnull="notnull" />
<column name="var_desc" var="var_desc" notnull="notnull" />
<column name="eid" var="eid" notnull="notnull" />
</columns>
</query>

View file

@ -8,5 +8,6 @@
<column name="var_idx" var="var_idx" filter="number" notnull="notnull" />
<column name="value" var="value" notnull="notnull" />
<column name="lang_code" var="lang_code" />
<column name="eid" var="eid" notnull="notnull" />
</columns>
</query>

View file

@ -0,0 +1,13 @@
<query id="isExistsExtraKey" action="select">
<tables>
<table name="document_extra_keys" />
</tables>
<columns>
<column name="count(*)" alias="count" />
</columns>
<conditions>
<condition operation="equal" column="module_srl" var="module_srl" filter="number" notnull="notnull" pipe="where" />
<condition operation="notequal" column="var_idx" var="var_idx" filter="number" pipe="and" />
<condition operation="equal" column="eid" var="eid" notnull="notnull" pipe="and" />
</conditions>
</query>

View file

@ -9,6 +9,7 @@
<column name="var_search" var="var_search" default="N" notnull="notnull" />
<column name="var_default" var="var_default" notnull="notnull" />
<column name="var_desc" var="var_desc" notnull="notnull" />
<column name="eid" var="eid" notnull="notnull" />
</columns>
<conditions>
<condition operation="equal" column="module_srl" var="module_srl" filter="number" notnull="notnull" />

View file

@ -5,6 +5,7 @@
<columns>
<column name="value" var="value" notnull="notnull" />
<column name="lang_code" var="lang_code" />
<column name="eid" var="eid" />
</columns>
<conditions>
<condition operation="equal" column="module_srl" var="module_srl" filter="number" notnull="notnull" />

View file

@ -7,4 +7,5 @@
<column name="var_search" type="char" size="1" default="N" notnull="notnull" />
<column name="var_default" type="text" />
<column name="var_desc" type="text" />
<column name="eid" type="varchar" size="40" />
</table>

View file

@ -4,4 +4,5 @@
<column name="var_idx" type="number" size="11" notnull="notnull" unique="unique_extra_vars" />
<column name="lang_code" type="varchar" size="10" notnull="notnull" unique="unique_extra_vars" />
<column name="value" type="bigtext" />
<column name="eid" type="varchar" size="40" />
</table>

View file

@ -14,6 +14,12 @@
<h4 class="xeAdmin">{$lang->extra_vars} {$selected_var_idx}</h4>
<table cellspacing="0" class="crossTable ">
<tr>
<th><div>{$lang->eid}</div></th>
<td class="wide">
<input type="text" name="eid" value="{$selected_var->eid}" class="inputTypeText w200" id="eid" /><p>{$lang->about_extra_vars_eid_value}</p>
</td>
</tr>
<tr>
<th><div>{$lang->column_name}</div></th>
<td class="wide">
@ -68,6 +74,7 @@
<thead>
<tr>
<th><div>{$lang->no}</div></th>
<th><div>{$lang->eid}</div></th>
<th><div>{$lang->column_name}</div></th>
<th><div>{$lang->column_type}</div></th>
<th><div>{$lang->is_required}</div></th>
@ -79,6 +86,7 @@
<!--@foreach($extra_keys as $key => $val)-->
<tr>
<td rowspan="3">{$val->idx}</td>
<td rowspan="3">{$val->eid}</td>
<td class="nowrap"><b>{$val->name}</b></td>
<td class="nowrap">{$lang->column_type_list[$val->type]}</td>
<td rowspan="3"><!--@if($val->is_required=='Y')--><b>{$lang->is_required}</b><!--@else-->N<!--@end--></td>

View file

@ -2,6 +2,7 @@
<form>
<node target="name" required="true" />
<node target="module_srl" required="true" />
<node target="eid" required="true" filter="alpha_number" />
</form>
<parameter />
<response callback_func="completeInsertExtraVar">

View file

@ -64,6 +64,7 @@
$lang->msg_move_failed = '이동 실패하였습니다';
$lang->msg_cannot_delete_for_child = '하부 분류가 있는 분류는 삭제하실 수 없습니다';
$lang->msg_limit_mid ='모듈이름은 영문+[영문+숫자+_] 만 가능합니다.';
$lang->msg_extra_name_exists = '이미 존재하는 확장변수 이름입니다. 다른 이름을 입력해주세요.';
$lang->about_browser_title = '브라우저의 제목에 나타나는 값입니다. RSS/Trackback에서도 사용됩니다.';
$lang->about_mid = '모듈이름은 http://주소/?mid=모듈이름 처럼 직접 호출할 수 있는 값입니다. ( 영문+[영문+숫자+_] 만 가능)';
@ -83,7 +84,9 @@
$lang->about_grant_deatil = '가입한 사용자는 cafeXE등 분양형 가상 사이트에 가입을 한 로그인 사용자를 의미합니다';
$lang->about_module = "XE는 기본 라이브러리를 제외한 나머지는 모두 모듈로 구성되어 있습니다.\n모듈관리 모듈은 설치된 모든 모듈을 보여주고 관리를 도와줍니다.";
$lang->about_extra_vars_default_value = '다중/단일 선택등 기본값이 여러개가 필요한 경우 , (콤마)로 연결하시면 됩니다';
$lang->about_search_virtual_site = '가상 사이트(카페XE등)의 도메인을 입력하신 후 검색하세요.<br/>가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)';
$lang->about_search_virtual_site = '가상 사이트(카페XE등) 도메인을 입력하신 검색하세요.<br/>가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http://
)';
$lang->about_extra_vars_eid_value = '확장변수에 이름을 적어주세요. ( 영문+[영문+숫자+_] 만 가능)';
$lang->about_langcode = '언어별로 다르게 설정하고 싶으시면 언어코드 찾기를 이용해주세요';
$lang->about_file_extension= "%s 파일만 가능합니다.";
?>