Fix #2337 mark related notifications as read if a comment page is loaded

This commit is contained in:
Kijin Sung 2024-10-09 20:21:38 +09:00
parent 47afd4848b
commit 574e89b028
2 changed files with 26 additions and 0 deletions

View file

@ -37,6 +37,7 @@
<eventHandler after="document.deleteDocument" class="controller" method="triggerAfterDeleteDocument" />
<eventHandler before="display" class="controller" method="triggerBeforeDisplay" />
<eventHandler after="moduleHandler.proc" class="controller" method="triggerAfterModuleHandlerProc" />
<eventHandler after="document.getComments" class="controller" method="triggerAfterGetComments" />
<eventHandler after="member.deleteMember" class="controller" method="triggerAfterDeleteMember" />
<eventHandler after="communication.sendMessage" class="controller" method="triggerAfterSendMessage" />
<eventHandler after="document.updateVotedCount" class="controller" method="triggerAfterDocumentVotedUpdate" />

View file

@ -1044,6 +1044,31 @@ class NcenterliteController extends Ncenterlite
}
}
public function triggerAfterGetComments($comment_list)
{
if (Context::get('act') === 'dispBoardCommentPage' && $comment_list)
{
$config = NcenterliteModel::getConfig();
$document_srl = Context::get('document_srl');
$logged_info = Context::get('logged_info');
if ($document_srl && $config->document_read == 'Y' && $logged_info && $logged_info->member_srl)
{
$args = new stdClass;
$args->member_srl = $logged_info->member_srl;
$args->target_srl = array_values(array_map(function($comment) {
return $comment->comment_srl;
}, $comment_list));
$output = executeQuery('ncenterlite.updateNotifyReadedByTargetSrl', $args);
if ($output->toBool() && DB::getInstance()->getAffectedRows())
{
$this->removeFlagFile($args->member_srl);
}
}
}
}
function triggerBeforeDisplay(&$output_display)
{
// Don't show notification panel in popups, iframes, admin dashboard, etc.