From a50695f047e3ef3aced7bfa4f413935644a815ea Mon Sep 17 00:00:00 2001 From: conory Date: Fri, 4 Mar 2016 20:35:42 +0900 Subject: [PATCH] =?UTF-8?q?#331=20=EC=AA=BD=EC=A7=80=EB=B3=B4=EB=82=B4?= =?UTF-8?q?=EA=B8=B0=EC=99=80=20=EC=B9=9C=EA=B5=AC=EB=93=B1=EB=A1=9D=20?= =?UTF-8?q?=EB=A9=94=EB=89=B4=EA=B0=80=20=EB=82=98=EC=98=A4=EC=A7=80?= =?UTF-8?q?=EC=95=8A=EC=95=98=EB=8D=98=20=EB=AC=B8=EC=A0=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/communication/communication.class.php | 60 +++------ .../communication.controller.php | 125 ++++++++++-------- 2 files changed, 85 insertions(+), 100 deletions(-) diff --git a/modules/communication/communication.class.php b/modules/communication/communication.class.php index 559e2f28b..a4b2518d3 100644 --- a/modules/communication/communication.class.php +++ b/modules/communication/communication.class.php @@ -9,8 +9,10 @@ class communication extends ModuleObject { private $triggers = array( - array('moduleHandler.init', 'communication', 'controller', 'triggerModuleHandlerAfter', 'after') + array('moduleHandler.init', 'communication', 'controller', 'triggerModuleHandlerBefore', 'before'), + array('member.getMemberMenu', 'communication', 'controller', 'triggerMemberMenu', 'before') ); + /** * Implement if additional tasks are necessary when installing * @return Object @@ -18,6 +20,7 @@ class communication extends ModuleObject function moduleInstall() { $oModuleController = getController('module'); + foreach($this->triggers as $trigger) { $oModuleController->insertTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4]); @@ -25,6 +28,7 @@ class communication extends ModuleObject // Create a temporary file storage for one new private message notification FileHandler::makeDir('./files/member_extra_info/new_message_flags'); + return new Object(); } @@ -34,28 +38,8 @@ class communication extends ModuleObject */ function checkUpdate() { - if(!is_dir("./files/member_extra_info/new_message_flags")) - { - return TRUE; - } - - $oModuleModel = getModel('module'); - $config = $oModuleModel->getModuleConfig('message'); - - if($config->skin) - { - $config_parse = explode('.', $config->skin); - if(count($config_parse) > 1) - { - $template_path = sprintf('./themes/%s/modules/communication/', $config_parse[0]); - if(is_dir($template_path)) - { - return TRUE; - } - } - } - $oModuleModel = getModel('module'); + foreach($this->triggers as $trigger) { if(!$oModuleModel->getTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4])) @@ -63,6 +47,12 @@ class communication extends ModuleObject return TRUE; } } + + if(!is_dir("./files/member_extra_info/new_message_flags")) + { + return TRUE; + } + return FALSE; } @@ -72,13 +62,9 @@ class communication extends ModuleObject */ function moduleUpdate() { - if(!is_dir("./files/member_extra_info/new_message_flags")) - { - FileHandler::makeDir('./files/member_extra_info/new_message_flags'); - } - $oModuleModel = getModel('module'); $oModuleController = getController('module'); + foreach($this->triggers as $trigger) { if(!$oModuleModel->getTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4])) @@ -86,24 +72,10 @@ class communication extends ModuleObject $oModuleController->insertTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4]); } } - $config = $oModuleModel->getModuleConfig('message'); - if(!is_object($config)) + + if(!is_dir("./files/member_extra_info/new_message_flags")) { - $config = new stdClass(); - } - - if($config->skin) - { - $config_parse = explode('.', $config->skin); - if(count($config_parse) > 1) - { - $template_path = sprintf('./themes/%s/modules/communication/', $config_parse[0]); - if(is_dir($template_path)) - { - $config->skin = implode('|@|', $config_parse); - $oModuleController->updateModuleConfig('communication', $config); - } - } + FileHandler::makeDir('./files/member_extra_info/new_message_flags'); } return new Object(0, 'success_updated'); diff --git a/modules/communication/communication.controller.php b/modules/communication/communication.controller.php index 452c61afc..248f04632 100644 --- a/modules/communication/communication.controller.php +++ b/modules/communication/communication.controller.php @@ -777,14 +777,9 @@ class communicationController extends communication return executeQuery('communication.setMessageReaded', $args); } - function triggerModuleHandlerAfter($module) + function triggerModuleHandlerBefore($obj) { - if(!Context::get('is_logged') && isCrawler()) - { - return new Object(); - } - - if($module->module == 'admin') + if(!Context::get('is_logged') || $obj->module == 'member') { return new Object(); } @@ -796,60 +791,78 @@ class communicationController extends communication { return new Object(); } - $act = Context::get('act'); - if($module->module != 'member') - { - $oMemberController = getController('member'); - $oMemberController->addMemberMenu('dispCommunicationFriend', 'cmd_view_friend'); - $oMemberController->addMemberMenu('dispCommunicationMessages', 'cmd_view_message_box'); + $logged_info = Context::get('logged_info'); + + // Add menus on the member login information + $oMemberController = getController('member'); + $oMemberController->addMemberMenu('dispCommunicationFriend', 'cmd_view_friend'); + $oMemberController->addMemberMenu('dispCommunicationMessages', 'cmd_view_message_box'); + + $flag_file = './files/member_extra_info/new_message_flags/' . getNumberingPath($logged_info->member_srl) . $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 = $oCommunicationModel->getNewMessageCount(); - if($new_message_count > 0) - { - Context::loadFile('./modules/communication/tpl/js/member_communication.js'); - $text = preg_replace('@\r?\n@', '\\n', addslashes(Context::getLang('alert_new_message_arrived'))); - Context::addHtmlHeader(""); - } - + $new_message_count = (int) trim(FileHandler::readFile($flag_file)); + $text = preg_replace('@\r?\n@', '\\n', addslashes(Context::getLang('alert_new_message_arrived'))); + Context::addHtmlFooter(""); + Context::loadFile(array('./modules/communication/tpl/js/member_communication.js'), true); + + FileHandler::removeFile($flag_file); } - elseif($act == 'getMemberMenu') + } + + function triggerMemberMenu() + { + if(!Context::get('is_logged')) { - $member_srl = Context::get('target_srl'); - $oCommunicationModel = getModel('communication'); - $logged_info = Context::get('logged_info'); - // Add a feature to display own message box. - if($logged_info->member_srl == $member_srl) - { - $mid = Context::get('cur_mid'); - $oMemberController = getController('member'); - // Add your own viewing Note Template - $oMemberController->addMemberPopupMenu(getUrl('', 'mid', $mid, 'act', 'dispCommunicationMessages'), 'cmd_view_message_box', '', 'self'); - // Display a list of friends - $oMemberController->addMemberPopupMenu(getUrl('', 'mid', $mid, 'act', 'dispCommunicationFriend'), 'cmd_view_friend', '', 'self'); - // If not, Add menus to send message and to add friends - } - else - { - // Get member information - $oMemberModel = getModel('member'); - $target_member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl); - if(!$target_member_info->member_srl) - { - return new Object(); - } + return new Object(); + } + + $oCommunicationModel = getModel('communication'); + $config = $oCommunicationModel->getConfig(); - $oMemberController = getController('member'); - // Add a menu for sending message - if($logged_info->is_admin == 'Y' || $target_member_info->allow_message == 'Y' || ($target_member_info->allow_message == 'F' && $oCommunicationModel->isFriend($member_srl))) - { - $oMemberController->addMemberPopupMenu(getUrl('', 'mid', Context::get('cur_mid'), 'act', 'dispCommunicationSendMessage', 'receiver_srl', $member_srl), 'cmd_send_message', '', 'popup'); - } - // Add a menu for listing friends (if a friend is new) - if(!$oCommunicationModel->isAddedFriend($member_srl)) - { - $oMemberController->addMemberPopupMenu(getUrl('', 'mid', Context::get('cur_mid'), 'act', 'dispCommunicationAddFriend', 'target_srl', $member_srl), 'cmd_add_friend', '', 'popup'); - } + if($config->member_menu != 'Y') + { + return new Object(); + } + + $mid = Context::get('cur_mid'); + $member_srl = Context::get('target_srl'); + $logged_info = Context::get('logged_info'); + $oMemberController = getController('member'); + + // Add a feature to display own message box. + if($logged_info->member_srl == $member_srl) + { + // Add your own viewing Note Template + $oMemberController->addMemberPopupMenu(getUrl('', 'mid', $mid, 'act', 'dispCommunicationMessages'), 'cmd_view_message_box', '', 'self'); + + // Display a list of friends + $oMemberController->addMemberPopupMenu(getUrl('', 'mid', $mid, 'act', 'dispCommunicationFriend'), 'cmd_view_friend', '', 'self'); + + } + // If not, Add menus to send message and to add friends + else + { + // Get member information + $oMemberModel = getModel('member'); + $target_member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl); + if(!$target_member_info->member_srl) + { + return new Object(); + } + + // Add a menu for sending message + if($logged_info->is_admin == 'Y' || $target_member_info->allow_message == 'Y' || ($target_member_info->allow_message == 'F' && $oCommunicationModel->isFriend($member_srl))) + { + $oMemberController->addMemberPopupMenu(getUrl('', 'mid', $mid, 'act', 'dispCommunicationSendMessage', 'receiver_srl', $member_srl), 'cmd_send_message', '', 'popup'); + } + + // Add a menu for listing friends (if a friend is new) + if(!$oCommunicationModel->isAddedFriend($member_srl)) + { + $oMemberController->addMemberPopupMenu(getUrl('', 'mid', $mid, 'act', 'dispCommunicationAddFriend', 'target_srl', $member_srl), 'cmd_add_friend', '', 'popup'); } } }