mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-02 01:52:10 +09:00
Allow member info to be customized by trigger
문서나 댓글을 작성하거나 수정할 때 트리거에서 회원 정보를 조작할 수 있도록 허용함. $obj->manual_member_info = true 로 바꾸어 반환하면 글쓴이의 정보가 현재 로그인한 사용자나 최초 작성시 정보로 덮어씌워지지 않고 트리거에서 지정한 그대로 남음. 기존에도 $manual_inserted 를 사용하면 이런 기능을 구현할 수 있었으나, 이 변수는 트리거에서 조작할 수 없으며 다른 체크도 모두 건너뛰는 등 여러 가지 불편이 있어서 이렇게 일부 정보만 변경하도록 허용하는 새 방법을 제공함. 익명 게시판 등을 좀더 편리하게 개발할 수 있을 것으로 예상됨.
This commit is contained in:
parent
17ca61eed3
commit
509b403eff
2 changed files with 11 additions and 7 deletions
|
|
@ -401,6 +401,7 @@ class documentController extends document
|
|||
unset($obj->_saved_doc_title);
|
||||
unset($obj->_saved_doc_content);
|
||||
unset($obj->_saved_doc_message);
|
||||
unset($obj->manual_member_info);
|
||||
// Call a trigger (before)
|
||||
$output = ModuleHandler::triggerCall('document.insertDocument', 'before', $obj);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
|
@ -430,7 +431,7 @@ class documentController extends document
|
|||
}
|
||||
// Insert member's information only if the member is logged-in and not manually registered.
|
||||
$logged_info = Context::get('logged_info');
|
||||
if(Context::get('is_logged') && !$manual_inserted && !$isRestore)
|
||||
if(Context::get('is_logged') && !$manual_inserted && !$isRestore && !$obj->manual_member_info)
|
||||
{
|
||||
$obj->member_srl = $logged_info->member_srl;
|
||||
|
||||
|
|
@ -575,6 +576,7 @@ class documentController extends document
|
|||
}
|
||||
|
||||
// Call a trigger (before)
|
||||
unset($obj->manual_member_info);
|
||||
$output = ModuleHandler::triggerCall('document.updateDocument', 'before', $obj);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
|
|
@ -658,7 +660,7 @@ class documentController extends document
|
|||
|
||||
// If an author is identical to the modifier or history is used, use the logged-in user's information.
|
||||
$logged_info = Context::get('logged_info');
|
||||
if(Context::get('is_logged') && !$manual_updated)
|
||||
if(Context::get('is_logged') && !$manual_updated && !$obj->manual_member_info)
|
||||
{
|
||||
if($source_obj->get('member_srl')==$logged_info->member_srl)
|
||||
{
|
||||
|
|
@ -671,7 +673,7 @@ class documentController extends document
|
|||
}
|
||||
|
||||
// For the document written by logged-in user however no nick_name exists
|
||||
if($source_obj->get('member_srl')&& !$obj->nick_name)
|
||||
if($source_obj->get('member_srl')&& !$obj->nick_name && !$obj->manual_member_info)
|
||||
{
|
||||
$obj->member_srl = $source_obj->get('member_srl');
|
||||
$obj->user_name = $source_obj->get('user_name');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue