mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-28 14:52:24 +09:00
Merge pull request #381 from kijin/pr/new-message-flag-fix
#380 새 메시지 플래그 파일 처리 오류 수정
This commit is contained in:
commit
f42ba59a22
4 changed files with 70 additions and 40 deletions
|
|
@ -9,9 +9,12 @@
|
|||
class communication extends ModuleObject
|
||||
{
|
||||
private $triggers = array(
|
||||
array('moduleHandler.init', 'communication', 'controller', 'triggerModuleHandlerBefore', 'before'),
|
||||
array('moduleObject.proc', 'communication', 'controller', 'triggerModuleProcAfter', 'after'),
|
||||
array('member.getMemberMenu', 'communication', 'controller', 'triggerMemberMenu', 'before')
|
||||
);
|
||||
private $delete_triggers = array(
|
||||
array('moduleHandler.init', 'communication', 'controller', 'triggerModuleHandlerBefore', 'before'),
|
||||
);
|
||||
|
||||
/**
|
||||
* Implement if additional tasks are necessary when installing
|
||||
|
|
@ -47,6 +50,13 @@ class communication extends ModuleObject
|
|||
return TRUE;
|
||||
}
|
||||
}
|
||||
foreach($this->delete_triggers as $trigger)
|
||||
{
|
||||
if($oModuleModel->getTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4]))
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if(!is_dir("./files/member_extra_info/new_message_flags"))
|
||||
{
|
||||
|
|
@ -72,6 +82,13 @@ class communication extends ModuleObject
|
|||
$oModuleController->insertTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4]);
|
||||
}
|
||||
}
|
||||
foreach($this->delete_triggers as $trigger)
|
||||
{
|
||||
if($oModuleModel->getTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4]))
|
||||
{
|
||||
$oModuleController->deleteTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4]);
|
||||
}
|
||||
}
|
||||
|
||||
if(!is_dir("./files/member_extra_info/new_message_flags"))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -258,13 +258,7 @@ class communicationController extends communication
|
|||
$oDB->commit();
|
||||
|
||||
// create a flag that message is sent (in file format)
|
||||
$flag_path = './files/member_extra_info/new_message_flags/' . getNumberingPath($receiver_srl);
|
||||
FileHandler::makeDir($flag_path);
|
||||
$flag_file = sprintf('%s%s', $flag_path, $receiver_srl);
|
||||
|
||||
$oCommunicationModel = getModel('communication');
|
||||
$new_message_count = $oCommunicationModel->getNewMessageCount($receiver_srl);
|
||||
FileHandler::writeFile($flag_file, $new_message_count);
|
||||
$this->updateFlagFile($receiver_srl);
|
||||
|
||||
return new Object(0, 'success_sended');
|
||||
}
|
||||
|
|
@ -305,7 +299,7 @@ class communicationController extends communication
|
|||
{
|
||||
return $output;
|
||||
}
|
||||
|
||||
$this->updateFlagFile($logged_info->member_srl);
|
||||
$this->setMessage('success_registed');
|
||||
}
|
||||
|
||||
|
|
@ -365,7 +359,7 @@ class communicationController extends communication
|
|||
{
|
||||
return $output;
|
||||
}
|
||||
|
||||
$this->updateFlagFile($member_srl);
|
||||
$this->setMessage('success_deleted');
|
||||
}
|
||||
|
||||
|
|
@ -443,7 +437,7 @@ class communicationController extends communication
|
|||
{
|
||||
return $output;
|
||||
}
|
||||
|
||||
$this->updateFlagFile($member_srl);
|
||||
$this->setMessage('success_deleted');
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispCommunicationMessages', 'message_type', Context::get('message_type'));
|
||||
|
|
@ -778,33 +772,46 @@ class communicationController extends communication
|
|||
$args->related_srl = $message_srl;
|
||||
$output = executeQuery('communication.setMessageReaded', $args);
|
||||
|
||||
// Renew a flag
|
||||
$logged_info = Context::get('logged_info');
|
||||
$flag_path = './files/member_extra_info/new_message_flags/' . getNumberingPath($logged_info->member_srl);
|
||||
$flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl);
|
||||
if(file_exists($flag_file))
|
||||
{
|
||||
$oCommunicationModel = getModel('communication');
|
||||
$new_message_count = $oCommunicationModel->getNewMessageCount();
|
||||
if($new_message_count > 0)
|
||||
{
|
||||
FileHandler::writeFile($flag_file, $new_message_count);
|
||||
}
|
||||
else
|
||||
{
|
||||
FileHandler::removeFile($flag_file);
|
||||
}
|
||||
}
|
||||
|
||||
// Update flag file
|
||||
$this->updateFlagFile($logged_info->member_srl);
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update flag file
|
||||
* @param int $member_srl
|
||||
* @return void
|
||||
*/
|
||||
function updateFlagFile($member_srl)
|
||||
{
|
||||
$flag_path = \RX_BASEDIR . 'files/member_extra_info/new_message_flags/' . getNumberingPath($member_srl);
|
||||
$flag_file = $flag_path . $member_srl;
|
||||
$new_message_count = getModel('communication')->getNewMessageCount($member_srl);
|
||||
if($new_message_count > 0)
|
||||
{
|
||||
FileHandler::writeFile($flag_file, $new_message_count);
|
||||
}
|
||||
else
|
||||
{
|
||||
FileHandler::removeFile($flag_file);
|
||||
}
|
||||
}
|
||||
|
||||
function triggerModuleHandlerBefore($obj)
|
||||
{
|
||||
return $this->triggerModuleProcAfter($obj);
|
||||
}
|
||||
|
||||
function triggerModuleProcAfter($obj)
|
||||
{
|
||||
if(!Context::get('is_logged') || $obj->module == 'member')
|
||||
{
|
||||
return new Object();
|
||||
}
|
||||
if (starts_with('dispCommunication', Context::get('act')))
|
||||
{
|
||||
return new Object();
|
||||
}
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$oCommunicationModel = getModel('communication');
|
||||
|
|
@ -833,14 +840,14 @@ class communicationController extends communication
|
|||
if($config->enable_message == 'Y' && $obj->act != 'dispCommunicationNewMessage')
|
||||
{
|
||||
$flag_path = './files/member_extra_info/new_message_flags/' . getNumberingPath($logged_info->member_srl);
|
||||
$flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl);
|
||||
$flag_file = $flag_path . $logged_info->member_srl;
|
||||
if(file_exists($flag_file))
|
||||
{
|
||||
// Pop-up to display messages if a flag on new message is set
|
||||
$new_message_count = (int) trim(FileHandler::readFile($flag_file));
|
||||
$new_message_count = (int)trim(FileHandler::readFile($flag_file));
|
||||
if($new_message_count > 0)
|
||||
{
|
||||
$text = preg_replace('@\r?\n@', '\\n', addslashes(lang('alert_new_message_arrived')));
|
||||
$text = escape_js(lang('alert_new_message_arrived'));
|
||||
Context::addHtmlFooter("<script>jQuery(function(){ xeNotifyMessage('{$text}','{$new_message_count}'); });</script>");
|
||||
Context::loadFile(array('./modules/communication/tpl/js/member_communication.js'), true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -116,6 +116,9 @@ class communicationView extends communication
|
|||
$columnList = array('message_srl', 'readed', 'title', 'member.member_srl', 'member.nick_name', 'message.regdate', 'readed_date');
|
||||
$output = $oCommunicationModel->getMessages($message_type, $columnList);
|
||||
|
||||
// Update flag file
|
||||
getController('communication')->updateFlagFile($logged_info->member_srl);
|
||||
|
||||
// set a template file
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
|
|
|
|||
|
|
@ -3,17 +3,20 @@
|
|||
window.xeNotifyMessage = function(text, count){
|
||||
$bar = $('div.message.info');
|
||||
if(!$bar.length) {
|
||||
$bar = $('<div class="message info" />')
|
||||
.hide()
|
||||
.css({
|
||||
'position' : 'absolute',
|
||||
'z-index' : '100',
|
||||
})
|
||||
.prependTo(document.body);
|
||||
$bar = jQuery('<div class="message info"></div>').hide().css({
|
||||
'position' : 'absolute',
|
||||
'opacity' : 0.7,
|
||||
'z-index' : 10000,
|
||||
}).appendTo(document.body);
|
||||
}
|
||||
|
||||
text = text.replace('%d', count);
|
||||
$bar.html('<p><a href="'+current_url.setQuery('module','').setQuery('act','dispCommunicationNewMessage')+'" onclick="popopen(this.href, \'popup\');xeNotifyMessageClose(); return false;">'+text+'</a></p>').height();
|
||||
var link = jQuery('<a></a>');
|
||||
link.attr("href", current_url.setQuery('module','').setQuery('act','dispCommunicationMessages'));
|
||||
//link.attr("onclick", "popopen(this.href, 'popup');xeNotifyMessageClose(); return false;");
|
||||
link.text(text);
|
||||
var para = jQuery('<p></p>');
|
||||
para.append(link).appendTo($bar);
|
||||
$bar.show().animate({top:0});
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue