mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 17:21:39 +09:00
Add DocumentController::updateDocumentExtraVars()
- 특정 확장변수의 값을 쉽게 업데이트할 수 있는 메소드 제공 - 확장변수 추가 또는 변경 메소드 호출시 var_idx 또는 eid 중 하나만 전달해도 되도록 개선
This commit is contained in:
parent
786dace639
commit
7dd9330b1e
2 changed files with 141 additions and 9 deletions
|
|
@ -1482,26 +1482,116 @@ class documentController extends document
|
|||
* Insert extra vaiable to the documents table
|
||||
* @param int $module_srl
|
||||
* @param int $document_srl
|
||||
* @param int $var_idx
|
||||
* @param int|string $idx_or_eid
|
||||
* @param mixed $value
|
||||
* @param int $eid
|
||||
* @param string $lang_code
|
||||
* @return Object|void
|
||||
*/
|
||||
function insertDocumentExtraVar($module_srl, $document_srl, $var_idx, $value, $eid = null, $lang_code = '')
|
||||
public static function insertDocumentExtraVar($module_srl, $document_srl, $idx_or_eid, $value, $eid = null, $lang_code = null)
|
||||
{
|
||||
if(!$module_srl || !$document_srl || !$var_idx || !isset($value)) return new BaseObject(-1, 'msg_invalid_request');
|
||||
if(!$lang_code) $lang_code = Context::getLangType();
|
||||
|
||||
if(!$module_srl || !$document_srl || !$idx_or_eid || !isset($value))
|
||||
{
|
||||
return new BaseObject(-1, 'msg_invalid_request');
|
||||
}
|
||||
|
||||
if (is_int($idx_or_eid) || ctype_digit($idx_or_eid))
|
||||
{
|
||||
if (!$eid)
|
||||
{
|
||||
$eid = DocumentModel::getExtraVarEidByIdx($module_srl, $idx_or_eid);
|
||||
if (!$eid)
|
||||
{
|
||||
return new BaseObject(-1, 'Invalid idx: ' . $idx_or_eid);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$eid = $idx_or_eid;
|
||||
$idx_or_eid = DocumentModel::getExtraVarIdxByEid($module_srl, $eid);
|
||||
if (!$idx_or_eid)
|
||||
{
|
||||
return new BaseObject(-1, 'Invalid eid: ' . $eid);
|
||||
}
|
||||
}
|
||||
|
||||
$obj = new stdClass;
|
||||
$obj->module_srl = $module_srl;
|
||||
$obj->document_srl = $document_srl;
|
||||
$obj->var_idx = $var_idx;
|
||||
$obj->var_idx = $idx_or_eid;
|
||||
$obj->value = $value;
|
||||
$obj->lang_code = $lang_code;
|
||||
$obj->lang_code = $lang_code ?: Context::getLangType();
|
||||
$obj->eid = $eid;
|
||||
|
||||
executeQuery('document.insertDocumentExtraVar', $obj);
|
||||
return executeQuery('document.insertDocumentExtraVar', $obj);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update extra vaiable in the documents table
|
||||
* @param int $module_srl
|
||||
* @param int $document_srl
|
||||
* @param int|string $idx_or_eid
|
||||
* @param mixed $value
|
||||
* @param int $eid
|
||||
* @param string $lang_code
|
||||
* @return Object|void
|
||||
*/
|
||||
public static function updateDocumentExtraVar($module_srl, $document_srl, $idx_or_eid, $value, $eid = null, $lang_code = null)
|
||||
{
|
||||
if(!$module_srl || !$document_srl || !$idx_or_eid || !isset($value))
|
||||
{
|
||||
return new BaseObject(-1, 'msg_invalid_request');
|
||||
}
|
||||
|
||||
if (is_int($idx_or_eid) || ctype_digit($idx_or_eid))
|
||||
{
|
||||
if (!$eid)
|
||||
{
|
||||
$eid = DocumentModel::getExtraVarEidByIdx($module_srl, $idx_or_eid);
|
||||
if (!$eid)
|
||||
{
|
||||
return new BaseObject(-1, 'Invalid idx: ' . $idx_or_eid);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$eid = $idx_or_eid;
|
||||
$idx_or_eid = DocumentModel::getExtraVarIdxByEid($module_srl, $eid);
|
||||
if (!$idx_or_eid)
|
||||
{
|
||||
return new BaseObject(-1, 'Invalid eid: ' . $eid);
|
||||
}
|
||||
}
|
||||
|
||||
$obj = new stdClass;
|
||||
$obj->module_srl = $module_srl;
|
||||
$obj->document_srl = $document_srl;
|
||||
$obj->var_idx = $idx_or_eid;
|
||||
$obj->value = $value;
|
||||
$obj->lang_code = $lang_code ?: Context::getLangType();
|
||||
$obj->eid = $eid;
|
||||
|
||||
$oDB = DB::getInstance();
|
||||
$oDB->begin();
|
||||
|
||||
$output = self::deleteDocumentExtraVars($module_srl, $document_srl, $idx_or_eid, $lang_code, $eid);
|
||||
if (!$output->toBool())
|
||||
{
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
|
||||
$output = self::insertDocumentExtraVar($module_srl, $document_srl, $idx_or_eid, $value, $eid, $lang_code);
|
||||
if (!$output->toBool())
|
||||
{
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
|
||||
$oDB->commit();
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1513,7 +1603,7 @@ class documentController extends document
|
|||
* @param int $eid
|
||||
* @return $output
|
||||
*/
|
||||
function deleteDocumentExtraVars($module_srl, $document_srl = null, $var_idx = null, $lang_code = null, $eid = null)
|
||||
public static function deleteDocumentExtraVars($module_srl, $document_srl = null, $var_idx = null, $lang_code = null, $eid = null)
|
||||
{
|
||||
$obj = new stdClass();
|
||||
$obj->module_srl = $module_srl;
|
||||
|
|
|
|||
|
|
@ -450,6 +450,48 @@ class documentModel extends document
|
|||
return $GLOBALS['XE_EXTRA_VARS'][$document_srl];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get var_idx of extra variable from its eid
|
||||
*
|
||||
* @param int $module_srl
|
||||
* @param string $eid
|
||||
* @return int|false
|
||||
*/
|
||||
public static function getExtraVarIdxByEid($module_srl, $eid)
|
||||
{
|
||||
$keys = self::getExtraKeys($module_srl);
|
||||
$keys = array_filter($keys, function($item) use($eid) { return $item->eid == $eid; });
|
||||
if (count($keys))
|
||||
{
|
||||
return array_first($keys)->idx;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get eid of extra variable from its var_idx
|
||||
*
|
||||
* @param int $module_srl
|
||||
* @param int $idx
|
||||
* @return string|false
|
||||
*/
|
||||
public static function getExtraVarEidByIdx($module_srl, $var_idx)
|
||||
{
|
||||
$keys = self::getExtraKeys($module_srl);
|
||||
$keys = array_filter($keys, function($item) use($var_idx) { return $item->idx == $var_idx; });
|
||||
if (count($keys))
|
||||
{
|
||||
return array_first($keys)->eid;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show pop-up menu of the selected posts
|
||||
* Printing, scrap, recommendations and negative, reported the Add Features
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue