Communication module mobile support enhancement

쪽지 모듈의 모바일 지원을 향상시켰습니다.
이 PR 이후에 회원 모듈의 모바일 지원을 향상 시키면 XE의 모바일 지원 수준이 한 단계 상승하게 됩니다.
꼭 반영되길 바랍니다!

## 수정 내용

* 커뮤니케이션 애드온의 회원 메뉴 설정 기능을 모듈의 트리거로 처리하여 조금 더 직관적으로 설정하게 됨.
* 기본값은 모듈이 동작 하도록 함.
* 모듈을 켜고 끌 수 있도록 함.
* 모바일에서 친구 추가를 할 수 있게 함.
* 스타일 아주 조금 다듬음.
This commit is contained in:
MinSoo Kim 2015-05-25 02:32:47 +09:00
parent ecce7e5efd
commit e75983768f
14 changed files with 428 additions and 85 deletions

View file

@ -8,6 +8,10 @@
*/
class communication extends ModuleObject
{
var $triggers = array(
array('member.getMemberMenu', 'communication', 'controller', 'triggerBeforeMemberPopupMenu', 'before'),
array('moduleHandler.init', 'communication', 'controller', 'triggerAddMemberMenu', 'after')
);
/**
* Implement if additional tasks are necessary when installing
@ -15,8 +19,32 @@ class communication extends ModuleObject
*/
function moduleInstall()
{
$oModuleModel = getModel('module');
$oModuleController = getController('module');
// Create triggers
foreach($this->triggers as $trigger)
{
if(!$oModuleModel->getTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4]))
{
$oModuleController->insertTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4]);
}
}
// Create a temporary file storage for one new private message notification
FileHandler::makeDir('./files/member_extra_info/new_message_flags');
// Save Default Config.
$config = new stdClass;
$config->able_module = 'Y';
$config->skin = 'default';
$config->colorset = 'white';
$config->editor_skin = 'default';
$communication_config->mskin = 'default';
$communication_config->grant_write = array('default_grant'=>'member');
// Save configurations
$oModuleController->insertModuleConfig('communication', $config);
return new Object();
}
@ -32,6 +60,7 @@ class communication extends ModuleObject
}
$oModuleModel = getModel('module');
$oModuleController = getController('module');
$config = $oModuleModel->getModuleConfig('message');
if($config->skin)
@ -46,6 +75,13 @@ class communication extends ModuleObject
}
}
}
// Create triggers
foreach($this->triggers as $trigger)
{
if(!$oModuleModel->getTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4])) return true;
}
return FALSE;
}
@ -61,6 +97,7 @@ class communication extends ModuleObject
}
$oModuleModel = getModel('module');
$oModuleController = getController('module');
$config = $oModuleModel->getModuleConfig('message');
if(!is_object($config))
{
@ -81,7 +118,16 @@ class communication extends ModuleObject
}
}
}
// Create triggers
foreach($this->triggers as $trigger)
{
if(!$oModuleModel->getTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4]))
{
$oModuleController->insertTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4]);
}
}
return new Object(0, 'success_updated');
}
@ -91,9 +137,19 @@ class communication extends ModuleObject
*/
function recompileCache()
{
}
function moduleUninstall()
{
$oModuleController = getController('module');
foreach($this->triggers as $trigger)
{
$oModuleController->deleteTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4]);
}
return new Object();
}
}
/* End of file communication.class.php */
/* Location: ./modules/comment/communication.class.php */