rhymix/modules/communication/communication.class.php
MinSoo Kim c13690bfd5 Comment fix, Check update refine.
모듈이 비활성화 되어 있을때는 트리거가 없는게 정상 이므로, 업데이트 메시지를 표시하지 않습니다.

주석이 반대로 적힌 부분이 있어서 수정합니다.
2015-05-25 09:28:07 +09:00

159 lines
4 KiB
PHP

<?php
/* Copyright (C) NAVER <http://www.navercorp.com> */
/**
* @class communication
* @author NAVER (developers@xpressengine.com)
* communication module of the high class
*/
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
* @return Object
*/
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();
}
/**
* method to check if successfully installed.
* @return boolean true : need to update false : don't need to update
*/
function checkUpdate()
{
if(!is_dir("./files/member_extra_info/new_message_flags"))
{
return TRUE;
}
$oModuleModel = getModel('module');
$oModuleController = getController('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;
}
}
}
// check if module is abled
if($config->able_module != 'N')
{
// Check triggers
foreach($this->triggers as $trigger)
{
if(!$oModuleModel->getTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4])) return true;
}
}
return FALSE;
}
/**
* Update
* @return Object
*/
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');
$config = $oModuleModel->getModuleConfig('message');
if(!is_object($config))
{
$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 = getController('module');
$oModuleController->updateModuleConfig('communication', $config);
}
}
}
// 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');
}
/**
* Re-generate the cache file
* @return void
*/
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 */