확장변수 + 다국어 기능 수정

- 글등록시 언어가 기본 언어이고 수정시 다른 언어로 수정하면 각 언어별 데이터가 보관 잘 되도록 개선
- 확장변수 값이 없는 게시글을 수정시 변수 폼이 제대로 나타나도록 수정
- 퍼포먼스 증대


git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5947 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2009-03-24 06:49:36 +00:00
parent 9e80cf561e
commit 17513d6b62
5 changed files with 108 additions and 117 deletions

View file

@ -4,19 +4,17 @@
* @author zero (zero@nzeo.com)
* @brief 게시글, 회원등에서 사용하는 확장변수를 핸들링하는 클래스
*
* php4대비 class static 변수가 안됨으로 $GLOBALS['XE_EXTRAVARS'] 이용해서 같은 효과
**/
class ExtraVar {
var $module_srl = null;
var $keys = null;
/**
* @brief constructor
**/
function &getInstance($module_srl) {
static $oInstance = array();
if(!$oInstance[$module_srl]) $oInstance[$module_srl] = new ExtraVar($module_srl);
return $oInstance[$module_srl];
return new ExtraVar($module_srl);
}
/**
@ -26,29 +24,15 @@
$this->module_srl = $module_srl;
}
/**
* @brief 불필요한 등록을 피하기 위해서 특정 module_srl에 확장변수가 등록되었는지 확인
**/
function isSettedExtraVars() {
return isset($GLOBALS['XE_EXTRAVARS'][$this->module_srl]);
}
/**
* @brief 확장변수 키를 등록
* php4를 대비해 class static 멤버변수 대신 $GLOBAL 변수 사용
* @param module_srl, idx, name, type, default, desc, is_required, search, value
**/
function setExtraVarKeys($extra_keys) {
if(!$this->isSettedExtraVars()) {
if(!$extra_keys || !count($extra_keys)) $GLOBALS['XE_EXTRAVARS'][$this->module_srl] = array();
else {
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, $val->eid);
$GLOBALS['XE_EXTRAVARS'][$this->module_srl][$val->idx] = $obj;
}
}
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, $val->eid);
$this->keys[$val->idx] = $obj;
}
}
@ -56,8 +40,7 @@
* @brief 확장변수 객체 배열 return
**/
function getExtraVars() {
if(!$this->isSettedExtraVars()) return array();
return $GLOBALS['XE_EXTRAVARS'][$this->module_srl];
return $this->keys;
}
}