issue 2662 point

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12256 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ovclas 2012-11-19 10:11:58 +00:00
parent 7bb7241447
commit 580222822a
6 changed files with 1462 additions and 1371 deletions

View file

@ -1,346 +1,371 @@
<?php
/**
* @class pointAdminController
* @author NHN (developers@xpressengine.com)
* @brief The admin controller class of the point module
**/
/**
* @class pointAdminController
* @author NHN (developers@xpressengine.com)
* @brief The admin controller class of the point module
*/
class pointAdminController extends point
{
/**
* @brief Initialization
*/
function init()
{
}
class pointAdminController extends point {
/**
* @brief Save the default configurations
*/
function procPointAdminInsertConfig()
{
// Get the configuration information
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
// Arrange variables
$args = Context::getRequestVars();
// Check the point name
$config->point_name = $args->point_name;
if(!$config->point_name) $config->point_name = 'point';
// Specify the default points
$config->signup_point = (int)$args->signup_point;
$config->login_point = (int)$args->login_point;
$config->insert_document = (int)$args->insert_document;
$config->read_document = (int)$args->read_document;
$config->insert_comment = (int)$args->insert_comment;
$config->upload_file = (int)$args->upload_file;
$config->download_file = (int)$args->download_file;
$config->voted = (int)$args->voted;
$config->blamed = (int)$args->blamed;
// The highest level
$config->max_level = $args->max_level;
if($config->max_level>1000) $config->max_level = 1000;
if($config->max_level<1) $config->max_level = 1;
// Set the level icon
$config->level_icon = $args->level_icon;
// Check if downloads are not allowed
if($args->disable_download == 'Y') $config->disable_download = 'Y';
else $config->disable_download = 'N';
// Check if reading a document is not allowed
if($args->disable_read_document == 'Y') $config->disable_read_document = 'Y';
else $config->disable_read_document = 'N';
/**
* @brief Initialization
**/
function init() {
}
$oMemberModel = &getModel('member');
$group_list = $oMemberModel->getGroups();
/**
* @brief Save the default configurations
**/
function procPointAdminInsertConfig() {
// Get the configuration information
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
// Arrange variables
$args = Context::getRequestVars();
// Check the point name
$config->point_name = $args->point_name;
if(!$config->point_name) $config->point_name = 'point';
// Specify the default points
$config->signup_point = (int)$args->signup_point;
$config->login_point = (int)$args->login_point;
$config->insert_document = (int)$args->insert_document;
$config->read_document = (int)$args->read_document;
$config->insert_comment = (int)$args->insert_comment;
$config->upload_file = (int)$args->upload_file;
$config->download_file = (int)$args->download_file;
$config->voted = (int)$args->voted;
$config->blamed = (int)$args->blamed;
// The highest level
$config->max_level = $args->max_level;
if($config->max_level>1000) $config->max_level = 1000;
if($config->max_level<1) $config->max_level = 1;
// Set the level icon
$config->level_icon = $args->level_icon;
// Check if downloads are not allowed
if($args->disable_download == 'Y') $config->disable_download = 'Y';
else $config->disable_download = 'N';
// Check if reading a document is not allowed
if($args->disable_read_document == 'Y') $config->disable_read_document = 'Y';
else $config->disable_read_document = 'N';
// Per-level group configurations
foreach($group_list as $group)
{
// Admin group should not be connected to point.
if($group->is_admin == 'Y' || $group->is_default == 'Y') continue;
$oMemberModel = &getModel('member');
$group_list = $oMemberModel->getGroups();
// Per-level group configurations
foreach($group_list as $group)
$group_srl = $group->group_srl;
if($args->{'point_group_'.$group_srl})
{
// Admin group should not be connected to point.
if($group->is_admin == 'Y' || $group->is_default == 'Y') continue;
$group_srl = $group->group_srl;
if($args->{'point_group_'.$group_srl})
{
$config->point_group[$group_srl] = $args->{'point_group_'.$group_srl};
}
else
{
unset($config->point_group[$group_srl]);
}
$config->point_group[$group_srl] = $args->{'point_group_'.$group_srl};
}
$config->group_reset = $args->group_reset;
// Per-level point configurations
unset($config->level_step);
for($i=1;$i<=$config->max_level;$i++) {
$key = "level_step_".$i;
$config->level_step[$i] = (int)$args->{$key};
}
// A function to calculate per-level points
$config->expression = $args->expression;
// Save
$oModuleController = &getController('module');
$oModuleController->insertModuleConfig('point', $config);
$this->setMessage('success_updated');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPointAdminConfig');
$this->setRedirectUrl($returnUrl);
}
/**
* @brief Save per-module configurations
**/
function procPointAdminInsertModuleConfig() {
$args = Context::getRequestVars();
foreach($args as $key => $val) {
preg_match("/^(insert_document|insert_comment|upload_file|download_file|read_document|voted|blamed)_([0-9]+)$/", $key, $matches);
if(!$matches[1]) continue;
$name = $matches[1];
$module_srl = $matches[2];
if(strlen($val)>0) $module_config[$module_srl][$name] = (int)$val;
}
$oModuleController = &getController('module');
if(count($module_config)) {
foreach($module_config as $module_srl => $config) {
$oModuleController->insertModulePartConfig('point',$module_srl,$config);
}
}
$this->setMessage('success_updated');
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPointAdminModuleConfig');
header('location:'.$returnUrl);
return;
}
}
/**
* @brief Save individual points per module
**/
function procPointAdminInsertPointModuleConfig() {
$module_srl = Context::get('target_module_srl');
if(!$module_srl) return new Object(-1, 'msg_invalid_request');
// In case of batch configuration of several modules
if(preg_match('/^([0-9,]+)$/',$module_srl)) $module_srl = explode(',',$module_srl);
else $module_srl = array($module_srl);
// Save configurations
$oModuleController = &getController('module');
for($i=0;$i<count($module_srl);$i++) {
$srl = trim($module_srl[$i]);
if(!$srl) continue;
unset($config);
$config['insert_document'] = (int)Context::get('insert_document');
$config['insert_comment'] = (int)Context::get('insert_comment');
$config['upload_file'] = (int)Context::get('upload_file');
$config['download_file'] = (int)Context::get('download_file');
$config['read_document'] = (int)Context::get('read_document');
$config['voted'] = (int)Context::get('voted');
$config['blamed'] = (int)Context::get('blamed');
$oModuleController->insertModulePartConfig('point', $srl, $config);
}
$this->setError(-1);
$this->setMessage('success_updated', 'info');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispBoardAdminContent');
$this->setRedirectUrl($returnUrl);
}
/**
* @brief Change members points
**/
function procPointAdminUpdatePoint() {
$member_srl = Context::get('member_srl');
$point = Context::get('point');
preg_match('/^(\+|-)?([1-9][0-9]*)$/', $point, $m);
$action = '';
switch($m[1])
else
{
case '+':
$action = 'add';
break;
case '-':
$action = 'minus';
break;
default:
$action = 'update';
break;
unset($config->point_group[$group_srl]);
}
$point = $m[2];
}
$oPointController = &getController('point');
$output = $oPointController->setPoint($member_srl, (int)$point, $action);
$config->group_reset = $args->group_reset;
// Per-level point configurations
unset($config->level_step);
for($i=1;$i<=$config->max_level;$i++)
{
$key = "level_step_".$i;
$config->level_step[$i] = (int)$args->{$key};
}
// A function to calculate per-level points
$config->expression = $args->expression;
// Save
$oModuleController = &getController('module');
$oModuleController->insertModuleConfig('point', $config);
$this->setError(-1);
$this->setMessage('success_updated', 'info');
$this->setMessage('success_updated');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPointAdminPointList');
return $this->setRedirectUrl($returnUrl, $output);
}
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPointAdminConfig');
$this->setRedirectUrl($returnUrl);
}
/**
* @brief Recalculate points based on the list/comment/attachment and registration information. Granted only once a first-time login score.
**/
function procPointAdminReCal() {
set_time_limit(0);
// Get per-module points information
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
/**
* @brief Save per-module configurations
*/
function procPointAdminInsertModuleConfig()
{
$args = Context::getRequestVars();
$module_config = $oModuleModel->getModulePartConfigs('point');
// A variable to store member's points
$member = array();
// Get member infomation
$output = executeQueryArray('point.getMemberCount');
if(!$output->toBool()) return $output;
if($output->data) {
foreach($output->data as $key => $val) {
if(!$val->member_srl) continue;
$member[$val->member_srl] = 0;
}
foreach($args as $key => $val)
{
preg_match("/^(insert_document|insert_comment|upload_file|download_file|read_document|voted|blamed)_([0-9]+)$/", $key, $matches);
if(!$matches[1]) continue;
$name = $matches[1];
$module_srl = $matches[2];
if(strlen($val)>0) $module_config[$module_srl][$name] = (int)$val;
}
$oModuleController = &getController('module');
if(count($module_config))
{
foreach($module_config as $module_srl => $config)
{
$oModuleController->insertModulePartConfig('point',$module_srl,$config);
}
}
// Get post information
$output = executeQueryArray('point.getDocumentPoint');
if(!$output->toBool()) return $output;
$this->setMessage('success_updated');
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON')))
{
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPointAdminModuleConfig');
header('location:'.$returnUrl);
return;
}
}
if($output->data) {
foreach($output->data as $key => $val) {
if($module_config[$val->module_srl]['insert_document']) $insert_point = $module_config[$val->module_srl]['insert_document'];
else $insert_point = $config->insert_document;
/**
* @brief Save individual points per module
*/
function procPointAdminInsertPointModuleConfig()
{
$module_srl = Context::get('target_module_srl');
if(!$module_srl) return new Object(-1, 'msg_invalid_request');
// In case of batch configuration of several modules
if(preg_match('/^([0-9,]+)$/',$module_srl)) $module_srl = explode(',',$module_srl);
else $module_srl = array($module_srl);
// Save configurations
$oModuleController = &getController('module');
for($i=0;$i<count($module_srl);$i++)
{
$srl = trim($module_srl[$i]);
if(!$srl) continue;
unset($config);
$config['insert_document'] = (int)Context::get('insert_document');
$config['insert_comment'] = (int)Context::get('insert_comment');
$config['upload_file'] = (int)Context::get('upload_file');
$config['download_file'] = (int)Context::get('download_file');
$config['read_document'] = (int)Context::get('read_document');
$config['voted'] = (int)Context::get('voted');
$config['blamed'] = (int)Context::get('blamed');
$oModuleController->insertModulePartConfig('point', $srl, $config);
}
if(!$val->member_srl) continue;
$point = $insert_point * $val->count;
$member[$val->member_srl] += $point;
}
$this->setError(-1);
$this->setMessage('success_updated', 'info');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispBoardAdminContent');
$this->setRedirectUrl($returnUrl);
}
/**
* @brief Change members points
*/
function procPointAdminUpdatePoint()
{
$member_srl = Context::get('member_srl');
$point = Context::get('point');
preg_match('/^(\+|-)?([1-9][0-9]*)$/', $point, $m);
$action = '';
switch($m[1])
{
case '+':
$action = 'add';
break;
case '-':
$action = 'minus';
break;
default:
$action = 'update';
break;
}
$point = $m[2];
$oPointController = &getController('point');
$output = $oPointController->setPoint($member_srl, (int)$point, $action);
$this->setError(-1);
$this->setMessage('success_updated', 'info');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPointAdminPointList');
return $this->setRedirectUrl($returnUrl, $output);
}
/**
* @brief Recalculate points based on the list/comment/attachment and registration information. Granted only once a first-time login score.
*/
function procPointAdminReCal()
{
set_time_limit(0);
// Get per-module points information
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
$module_config = $oModuleModel->getModulePartConfigs('point');
// A variable to store member's points
$member = array();
// Get member infomation
$output = executeQueryArray('point.getMemberCount');
if(!$output->toBool()) return $output;
if($output->data)
{
foreach($output->data as $key => $val)
{
if(!$val->member_srl) continue;
$member[$val->member_srl] = 0;
}
}
$output = null;
// Get comments information
$output = executeQueryArray('point.getCommentPoint');
if(!$output->toBool()) return $output;
// Get post information
$output = executeQueryArray('point.getDocumentPoint');
if(!$output->toBool()) return $output;
if($output->data) {
foreach($output->data as $key => $val) {
if($module_config[$val->module_srl]['insert_comment']) $insert_point = $module_config[$val->module_srl]['insert_comment'];
else $insert_point = $config->insert_comment;
if($output->data)
{
foreach($output->data as $key => $val)
{
if($module_config[$val->module_srl]['insert_document']) $insert_point = $module_config[$val->module_srl]['insert_document'];
else $insert_point = $config->insert_document;
if(!$val->member_srl) continue;
$point = $insert_point * $val->count;
$member[$val->member_srl] += $point;
}
}
$output = null;
// Get the attached files' information
$output = executeQueryArray('point.getFilePoint');
if(!$output->toBool()) return $output;
if(!$val->member_srl) continue;
$point = $insert_point * $val->count;
$member[$val->member_srl] += $point;
}
}
if($output->data) {
foreach($output->data as $key => $val) {
if($module_config[$val->module_srl]['upload_file']) $insert_point = $module_config[$val->module_srl]['upload_file'];
else $insert_point = $config->upload_file;
$output = null;
// Get comments information
$output = executeQueryArray('point.getCommentPoint');
if(!$output->toBool()) return $output;
if(!$val->member_srl) continue;
$point = $insert_point * $val->count;
$member[$val->member_srl] += $point;
}
}
$output = null;
// Set all members' points to 0
$output = executeQuery("point.initMemberPoint");
if(!$output->toBool()) return $output;
// Save the file temporarily
$f = fopen("./files/cache/pointRecal.txt","w");
foreach($member as $key => $val) {
$val += (int)$config->signup_point;
fwrite($f, $key.','.$val."\r\n");
}
fclose($f);
if($output->data)
{
foreach($output->data as $key => $val)
{
if($module_config[$val->module_srl]['insert_comment']) $insert_point = $module_config[$val->module_srl]['insert_comment'];
else $insert_point = $config->insert_comment;
$this->add('total', count($member));
$this->add('position', 0);
$this->setMessage( sprintf(Context::getLang('point_recal_message'), 0, $this->get('total')) );
}
if(!$val->member_srl) continue;
$point = $insert_point * $val->count;
$member[$val->member_srl] += $point;
}
}
$output = null;
// Get the attached files' information
$output = executeQueryArray('point.getFilePoint');
if(!$output->toBool()) return $output;
/**
* @brief Apply member points saved by file to units of 5,000 people
**/
function procPointAdminApplyPoint() {
$position = (int)Context::get('position');
$total = (int)Context::get('total');
if($output->data)
{
foreach($output->data as $key => $val)
{
if($module_config[$val->module_srl]['upload_file']) $insert_point = $module_config[$val->module_srl]['upload_file'];
else $insert_point = $config->upload_file;
if(!file_exists('./files/cache/pointRecal.txt')) return new Object(-1, 'msg_invalid_request');
if(!$val->member_srl) continue;
$point = $insert_point * $val->count;
$member[$val->member_srl] += $point;
}
}
$output = null;
// Set all members' points to 0
$output = executeQuery("point.initMemberPoint");
if(!$output->toBool()) return $output;
// Save the file temporarily
$f = fopen("./files/cache/pointRecal.txt","w");
foreach($member as $key => $val)
{
$val += (int)$config->signup_point;
fwrite($f, $key.','.$val."\r\n");
}
fclose($f);
$idx = 0;
$f = fopen("./files/cache/pointRecal.txt","r");
while(!feof($f)) {
$str = trim(fgets($f, 1024));
$idx ++;
if($idx > $position) {
list($member_srl, $point) = explode(',',$str);
$this->add('total', count($member));
$this->add('position', 0);
$this->setMessage( sprintf(Context::getLang('point_recal_message'), 0, $this->get('total')) );
}
$args = null;
$args->member_srl = $member_srl;
$args->point = $point;
$output = executeQuery('point.insertPoint',$args);
if($idx%5000==0) break;
}
}
/**
* @brief Apply member points saved by file to units of 5,000 people
*/
function procPointAdminApplyPoint()
{
$position = (int)Context::get('position');
$total = (int)Context::get('total');
if(feof($f)) {
FileHandler::removeFile('./files/cache/pointRecal.txt');
$idx = $total;
if(!file_exists('./files/cache/pointRecal.txt')) return new Object(-1, 'msg_invalid_request');
FileHandler::rename('./files/member_extra_info/point','./files/member_extra_info/point.old');
$idx = 0;
$f = fopen("./files/cache/pointRecal.txt","r");
while(!feof($f))
{
$str = trim(fgets($f, 1024));
$idx ++;
if($idx > $position)
{
list($member_srl, $point) = explode(',',$str);
FileHandler::removeDir('./files/member_extra_info/point.old');
}
fclose($f);
$args = null;
$args->member_srl = $member_srl;
$args->point = $point;
$output = executeQuery('point.insertPoint',$args);
if($idx%5000==0) break;
}
}
$this->add('total', $total);
$this->add('position', $idx);
$this->setMessage(sprintf(Context::getLang('point_recal_message'), $idx, $total));
if(feof($f))
{
FileHandler::removeFile('./files/cache/pointRecal.txt');
$idx = $total;
}
FileHandler::rename('./files/member_extra_info/point','./files/member_extra_info/point.old');
/**
* @brief Reset points for each module
**/
function procPointAdminReset() {
$module_srl = Context::get('module_srls');
if(!$module_srl) return new Object(-1, 'msg_invalid_request');
// In case of batch configuration of several modules
if(preg_match('/^([0-9,]+)$/',$module_srl)) $module_srl = explode(',',$module_srl);
else $module_srl = array($module_srl);
// Save configurations
$oModuleController = &getController('module');
for($i=0;$i<count($module_srl);$i++) {
$srl = trim($module_srl[$i]);
if(!$srl) continue;
unset($args);
$args->module = 'point';
$args->module_srl = $srl;
executeQuery('module.deleteModulePartConfig', $args);
}
FileHandler::removeDir('./files/member_extra_info/point.old');
}
fclose($f);
$this->setMessage('success_updated');
}
$this->add('total', $total);
$this->add('position', $idx);
$this->setMessage(sprintf(Context::getLang('point_recal_message'), $idx, $total));
/**
* @brief Save the cache files
* @deprecated
**/
function cacheActList() {
return;
}
}
}
?>
/**
* @brief Reset points for each module
*/
function procPointAdminReset()
{
$module_srl = Context::get('module_srls');
if(!$module_srl) return new Object(-1, 'msg_invalid_request');
// In case of batch configuration of several modules
if(preg_match('/^([0-9,]+)$/',$module_srl)) $module_srl = explode(',',$module_srl);
else $module_srl = array($module_srl);
// Save configurations
$oModuleController = &getController('module');
for($i=0;$i<count($module_srl);$i++)
{
$srl = trim($module_srl[$i]);
if(!$srl) continue;
unset($args);
$args->module = 'point';
$args->module_srl = $srl;
executeQuery('module.deleteModulePartConfig', $args);
}
$this->setMessage('success_updated');
}
/**
* @brief Save the cache files
* @deprecated
*/
function cacheActList()
{
return;
}
}
/* End of file point.admin.controller.php */
/* Location: ./modules/point/point.admin.controller.php */

View file

@ -1,117 +1,124 @@
<?php
/**
* @class pointAdminView
* @author NHN (developers@xpressengine.com)
* @brief The admin view class of the point module
**/
/**
* @class pointAdminView
* @author NHN (developers@xpressengine.com)
* @brief The admin view class of the point module
*/
class pointAdminView extends point
{
/**
* @brief Initialization
*/
function init()
{
// Get teh configuration information
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
// Set the configuration variable
Context::set('config', $config);
class pointAdminView extends point {
//Security
$security = new Security();
$security->encodeHTML('config.point_name','config.level_icon');
$security->encodeHTML('module_info..');
/**
* @brief Initialization
**/
function init() {
// Get teh configuration information
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
// Set the configuration variable
Context::set('config', $config);
// Set the template path
$this->setTemplatePath($this->module_path.'tpl');
}
//Security
$security = new Security();
$security->encodeHTML('config.point_name','config.level_icon');
$security->encodeHTML('module_info..');
/**
* @brief Default configurations
*/
function dispPointAdminConfig()
{
// Get the list of level icons
$level_icon_list = FileHandler::readDir("./modules/point/icons");
Context::set('level_icon_list', $level_icon_list);
// Get the list of groups
$oMemberModel = &getModel('member');
$group_list = $oMemberModel->getGroups();
$selected_group_list = array();
if(count($group_list))
{
foreach($group_list as $key => $val)
{
$selected_group_list[$key] = $val;
}
}
Context::set('group_list', $selected_group_list);
//Security
$security = new Security();
$security->encodeHTML('group_list..title','group_list..description');
// Set the template path
$this->setTemplatePath($this->module_path.'tpl');
}
// Set the template
$this->setTemplateFile('config');
}
/**
* @brief Default configurations
**/
function dispPointAdminConfig() {
// Get the list of level icons
$level_icon_list = FileHandler::readDir("./modules/point/icons");
Context::set('level_icon_list', $level_icon_list);
// Get the list of groups
$oMemberModel = &getModel('member');
$group_list = $oMemberModel->getGroups();
$selected_group_list = array();
if(count($group_list)) {
foreach($group_list as $key => $val) {
$selected_group_list[$key] = $val;
}
}
Context::set('group_list', $selected_group_list);
//Security
$security = new Security();
$security->encodeHTML('group_list..title','group_list..description');
/**
* @brief Set per-module scores
*/
function dispPointAdminModuleConfig()
{
// Get a list of mid
$oModuleModel = &getModel('module');
$columnList = array('module_srl', 'mid', 'browser_title');
$mid_list = $oModuleModel->getMidList(null, $columnList);
Context::set('mid_list', $mid_list);
// Set the template
$this->setTemplateFile('config');
}
Context::set('module_config', $oModuleModel->getModulePartConfigs('point'));
//Security
$security = new Security();
$security->encodeHTML('mid_list..browser_title','mid_list..mid');
/**
* @brief Set per-module scores
**/
function dispPointAdminModuleConfig() {
// Get a list of mid
$oModuleModel = &getModel('module');
$columnList = array('module_srl', 'mid', 'browser_title');
$mid_list = $oModuleModel->getMidList(null, $columnList);
Context::set('mid_list', $mid_list);
// Set the template
$this->setTemplateFile('module_config');
}
Context::set('module_config', $oModuleModel->getModulePartConfigs('point'));
//Security
$security = new Security();
$security->encodeHTML('mid_list..browser_title','mid_list..mid');
/**
* @brief Configure the functional act
*/
function dispPointAdminActConfig()
{
// Set the template
$this->setTemplateFile('action_config');
}
// Set the template
$this->setTemplateFile('module_config');
}
/**
* @brief Get a list of member points
*/
function dispPointAdminPointList()
{
$oPointModel = &getModel('point');
/**
* @brief Configure the functional act
**/
function dispPointAdminActConfig() {
// Set the template
$this->setTemplateFile('action_config');
}
$args->list_count = 20;
$args->page = Context::get('page');
/**
* @brief Get a list of member points
**/
function dispPointAdminPointList() {
$oPointModel = &getModel('point');
$oMemberModel = &getModel('member');
$memberConfig = $oMemberModel->getMemberConfig();
$args->list_count = 20;
$args->page = Context::get('page');
Context::set('identifier', $memberConfig->identifier);
$oMemberModel = &getModel('member');
$memberConfig = $oMemberModel->getMemberConfig();
$columnList = array('member.member_srl', 'member.user_id', 'member.email_address', 'member.nick_name', 'point.point');
$output = $oPointModel->getMemberList($args, $columnList);
// context::set for writing into a template
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('member_list', $output->data);
Context::set('page_navigation', $output->page_navigation);
// Create a member model object
$oMemberModel = &getModel('member');
// Get a list of groups
$this->group_list = $oMemberModel->getGroups();
Context::set('group_list', $this->group_list);
//Security
$security = new Security();
$security->encodeHTML('group_list..title','group_list..description');
$security->encodeHTML('member_list..');
Context::set('identifier', $memberConfig->identifier);
$columnList = array('member.member_srl', 'member.user_id', 'member.email_address', 'member.nick_name', 'point.point');
$output = $oPointModel->getMemberList($args, $columnList);
// context::set for writing into a template
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('member_list', $output->data);
Context::set('page_navigation', $output->page_navigation);
// Create a member model object
$oMemberModel = &getModel('member');
// Get a list of groups
$this->group_list = $oMemberModel->getGroups();
Context::set('group_list', $this->group_list);
//Security
$security = new Security();
$security->encodeHTML('group_list..title','group_list..description');
$security->encodeHTML('member_list..');
// Set the template
$this->setTemplateFile('member_list');
}
}
?>
// Set the template
$this->setTemplateFile('member_list');
}
}
/* End of file point.admin.view.php */
/* Location: ./modules/point/point.admin.view.php */

View file

@ -1,180 +1,184 @@
<?php
/**
* @class point
* @author NHN (developers@xpressengine.com)
* @brief The parent class of the point module
**/
/**
* @class point
* @author NHN (developers@xpressengine.com)
* @brief The parent class of the point module
*/
class point extends ModuleObject
{
/**
* @brief Additional tasks required to accomplish during the installation
*/
function moduleInstall()
{
// Registration in action forward (for using in the administrator mode)
$oModuleController = &getController('module');
// Create a directory to store points information
FileHandler::makeDir('./files/member_extra_info/point');
class point extends ModuleObject {
$oModuleController = &getController('module');
// The highest level
$config->max_level = 30;
// Per-level score
for($i=1;$i<=30;$i++)
{
$config->level_step[$i] = pow($i,2)*90;
}
// Points for registration
$config->signup_point = 10;
// Login points
$config->login_point = 5;
// Point's name
$config->point_name = 'point';
// Level icon directory
$config->level_icon = "default";
// Prevent downloads if there are no scores
$config->disable_download = false;
/**
* @brief Additional tasks required to accomplish during the installation
**/
function moduleInstall() {
// Registration in action forward (for using in the administrator mode)
$oModuleController = &getController('module');
// Create a directory to store points information
FileHandler::makeDir('./files/member_extra_info/point');
/**
* Define the default points per module as well as all actions (as we do not know if it is forum or blogs, specify "act")
*/
// Insert document
$config->insert_document = 10;
$oModuleController = &getController('module');
// The highest level
$config->max_level = 30;
// Per-level score
for($i=1;$i<=30;$i++) {
$config->level_step[$i] = pow($i,2)*90;
}
// Points for registration
$config->signup_point = 10;
// Login points
$config->login_point = 5;
// Point's name
$config->point_name = 'point';
// Level icon directory
$config->level_icon = "default";
// Prevent downloads if there are no scores
$config->disable_download = false;
$config->insert_document_act = 'procBoardInsertDocument';
$config->delete_document_act = 'procBoardDeleteDocument';
// Insert comment
$config->insert_comment = 5;
/**
* Define the default points per module as well as all actions (as we do not know if it is forum or blogs, specify "act")
**/
// Insert document
$config->insert_document = 10;
$config->insert_comment_act = 'procBoardInsertComment,procBlogInsertComment';
$config->delete_comment_act = 'procBoardDeleteComment,procBlogDeleteComment';
// Upload
$config->upload_file = 5;
$config->insert_document_act = 'procBoardInsertDocument';
$config->delete_document_act = 'procBoardDeleteDocument';
// Insert comment
$config->insert_comment = 5;
$config->upload_file_act = 'procFileUpload';
$config->delete_file_act = 'procFileDelete';
// Download
$config->download_file = -5;
$config->download_file_act = 'procFileDownload';
// View
$config->read_document = 0;
// Vote up / Vote down
$config->voted = 0;
$config->blamed = 0;
// Save configurations
$oModuleController->insertModuleConfig('point', $config);
// Cash act list for faster execution
$oPointController = &getAdminController('point');
$oPointController->cacheActList();
// Add a trigger for registration/insert document/insert comment/upload a file/download
$oModuleController->insertTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after');
$oModuleController->insertTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after');
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before');
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after');
$oModuleController->insertTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after');
$oModuleController->insertTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after');
$oModuleController->insertTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after');
$oModuleController->insertTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after');
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before');
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after');
$oModuleController->insertTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after');
$oModuleController->insertTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after');
$oModuleController->insertTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after');
// Add a trigger for voting up and down 2008.05.13 haneul
$oModuleController->insertTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after');
// Add a trigger for using points for permanent saving of a temporarily saved document 2009.05.19 zero
$oModuleController->insertTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before');
$config->insert_comment_act = 'procBoardInsertComment,procBlogInsertComment';
$config->delete_comment_act = 'procBoardDeleteComment,procBlogDeleteComment';
// Upload
$config->upload_file = 5;
return new Object();
}
$config->upload_file_act = 'procFileUpload';
$config->delete_file_act = 'procFileDelete';
// Download
$config->download_file = -5;
$config->download_file_act = 'procFileDownload';
// View
$config->read_document = 0;
// Vote up / Vote down
$config->voted = 0;
$config->blamed = 0;
// Save configurations
$oModuleController->insertModuleConfig('point', $config);
// Cash act list for faster execution
$oPointController = &getAdminController('point');
$oPointController->cacheActList();
// Add a trigger for registration/insert document/insert comment/upload a file/download
$oModuleController->insertTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after');
$oModuleController->insertTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after');
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before');
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after');
$oModuleController->insertTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after');
$oModuleController->insertTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after');
$oModuleController->insertTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after');
$oModuleController->insertTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after');
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before');
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after');
$oModuleController->insertTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after');
$oModuleController->insertTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after');
$oModuleController->insertTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after');
// Add a trigger for voting up and down 2008.05.13 haneul
$oModuleController->insertTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after');
// Add a trigger for using points for permanent saving of a temporarily saved document 2009.05.19 zero
$oModuleController->insertTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before');
/**
* @brief A method to check if the installation has been successful
*/
function checkUpdate()
{
// Get the information of the point module
$oModuleModel = &getModel('module');
// Add a trigger for registration/insert document/insert comment/upload a file/download
if(!$oModuleModel->getTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after')) return true;
if(!$oModuleModel->getTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after')) return true;
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before')) return true;
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after')) return true;
if(!$oModuleModel->getTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after')) return true;
if(!$oModuleModel->getTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after')) return true;
if(!$oModuleModel->getTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after')) return true;
if(!$oModuleModel->getTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after')) return true;
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before')) return true;
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after')) return true;
if(!$oModuleModel->getTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after')) return true;
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after')) return true;
if(!$oModuleModel->getTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after')) return true;
// Add a trigger for voting up and down 2008.05.13 haneul
if(!$oModuleModel->getTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after')) return true;
// Add a trigger for using points for permanent saving of a temporarily saved document 2009.05.19 zero
if(!$oModuleModel->getTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before')) return true;
return new Object();
}
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'point', 'controller', 'triggerCopyModule', 'after')) return true;
/**
* @brief A method to check if the installation has been successful
**/
function checkUpdate() {
// Get the information of the point module
$oModuleModel = &getModel('module');
// Add a trigger for registration/insert document/insert comment/upload a file/download
if(!$oModuleModel->getTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after')) return true;
if(!$oModuleModel->getTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after')) return true;
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before')) return true;
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after')) return true;
if(!$oModuleModel->getTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after')) return true;
if(!$oModuleModel->getTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after')) return true;
if(!$oModuleModel->getTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after')) return true;
if(!$oModuleModel->getTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after')) return true;
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before')) return true;
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after')) return true;
if(!$oModuleModel->getTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after')) return true;
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after')) return true;
if(!$oModuleModel->getTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after')) return true;
// Add a trigger for voting up and down 2008.05.13 haneul
if(!$oModuleModel->getTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after')) return true;
// Add a trigger for using points for permanent saving of a temporarily saved document 2009.05.19 zero
if(!$oModuleModel->getTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before')) return true;
return false;
}
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'point', 'controller', 'triggerCopyModule', 'after')) return true;
/**
* @brief Execute update
*/
function moduleUpdate()
{
// Get the information of the point module
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
// Add a trigger for registration/insert document/insert comment/upload a file/download
if(!$oModuleModel->getTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after'))
$oModuleController->insertTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after');
if(!$oModuleModel->getTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after'))
$oModuleController->insertTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after');
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before'))
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before');
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after'))
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after');
if(!$oModuleModel->getTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after'))
$oModuleController->insertTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after');
if(!$oModuleModel->getTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after'))
$oModuleController->insertTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after');
if(!$oModuleModel->getTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after'))
$oModuleController->insertTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after');
if(!$oModuleModel->getTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after'))
$oModuleController->insertTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after');
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before'))
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before');
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after'))
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after');
if(!$oModuleModel->getTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after'))
$oModuleController->insertTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after');
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after'))
$oModuleController->insertTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after');
if(!$oModuleModel->getTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after'))
$oModuleController->insertTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after');
// Add a trigger for voting up and down 2008.05.13 haneul
if(!$oModuleModel->getTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after'))
$oModuleController->insertTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after');
// Add a trigger for using points for permanent saving of a temporarily saved document 2009.05.19 zero
if(!$oModuleModel->getTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before'))
$oModuleController->insertTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before');
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'point', 'controller', 'triggerCopyModule', 'after'))
{
$oModuleController->insertTrigger('module.procModuleAdminCopyModule', 'point', 'controller', 'triggerCopyModule', 'after');
}
return false;
}
return new Object(0, 'success_updated');
}
/**
* @brief Execute update
**/
function moduleUpdate() {
// Get the information of the point module
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
// Add a trigger for registration/insert document/insert comment/upload a file/download
if(!$oModuleModel->getTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after'))
$oModuleController->insertTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after');
if(!$oModuleModel->getTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after'))
$oModuleController->insertTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after');
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before'))
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before');
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after'))
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after');
if(!$oModuleModel->getTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after'))
$oModuleController->insertTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after');
if(!$oModuleModel->getTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after'))
$oModuleController->insertTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after');
if(!$oModuleModel->getTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after'))
$oModuleController->insertTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after');
if(!$oModuleModel->getTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after'))
$oModuleController->insertTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after');
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before'))
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before');
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after'))
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after');
if(!$oModuleModel->getTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after'))
$oModuleController->insertTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after');
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after'))
$oModuleController->insertTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after');
if(!$oModuleModel->getTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after'))
$oModuleController->insertTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after');
// Add a trigger for voting up and down 2008.05.13 haneul
if(!$oModuleModel->getTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after'))
$oModuleController->insertTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after');
// Add a trigger for using points for permanent saving of a temporarily saved document 2009.05.19 zero
if(!$oModuleModel->getTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before'))
$oModuleController->insertTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before');
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'point', 'controller', 'triggerCopyModule', 'after'))
{
$oModuleController->insertTrigger('module.procModuleAdminCopyModule', 'point', 'controller', 'triggerCopyModule', 'after');
}
return new Object(0, 'success_updated');
}
/**
* @brief Re-create the cache file
**/
function recompileCache() {
// redefine point action file
$oPointAdminController = &getAdminController('point');
$oPointAdminController->cacheActList();
}
}
?>
/**
* @brief Re-create the cache file
*/
function recompileCache()
{
// redefine point action file
$oPointAdminController = &getAdminController('point');
$oPointAdminController->cacheActList();
}
}
/* End of file point.class.php */
/* Location: ./modules/point/point.class.php */

File diff suppressed because it is too large Load diff

View file

@ -1,174 +1,187 @@
<?php
/**
* @class pointModel
* @author NHN (developers@xpressengine.com)
* @brief The model class fo the point module
**/
/**
* @class pointModel
* @author NHN (developers@xpressengine.com)
* @brief The model class fo the point module
*/
class pointModel extends point
{
var $pointList = array();
class pointModel extends point {
var $pointList = array();
/**
* @brief Initialization
*/
function init()
{
}
/**
* @brief Initialization
**/
function init() {
}
/**
* @brief Check if there is points information
*/
function isExistsPoint($member_srl)
{
$member_srl = abs($member_srl);
/**
* @brief Check if there is points information
**/
function isExistsPoint($member_srl) {
$member_srl = abs($member_srl);
// Get from instance memory
if($this->pointList[$member_srl]) return true;
// Get from instance memory
if($this->pointList[$member_srl]) return true;
// Get from file cache
$path = sprintf('./files/member_extra_info/point/%s',getNumberingPath($member_srl));
$cache_filename = sprintf('%s%d.cache.txt', $path, $member_srl);
if(file_exists($cache_filename))
{
if(!$this->pointList[$member_srl])
$this->pointList[$member_srl] = trim(FileHandler::readFile($cache_filename));
return true;
}
$args->member_srl = $member_srl;
$output = executeQuery('point.getPoint', $args);
if($output->data->member_srl == $member_srl)
{
if(!$this->pointList[$member_srl])
$this->pointList[$member_srl] = (int)$output->data->point;
return true;
}
return false;
}
/**
* @brief Get the points
**/
function getPoint($member_srl, $from_db = false) {
$member_srl = abs($member_srl);
// Get from instance memory
if(!$from_db && $this->pointList[$member_srl]) return $this->pointList[$member_srl];
// Get from file cache
$path = sprintf('./files/member_extra_info/point/%s',getNumberingPath($member_srl));
$cache_filename = sprintf('%s%d.cache.txt', $path, $member_srl);
if(!$from_db && file_exists($cache_filename))
return $this->pointList[$member_srl] = trim(FileHandler::readFile($cache_filename));
// Get from the DB
$args->member_srl = $member_srl;
$output = executeQuery('point.getPoint', $args);
if(isset($output->data->member_srl))
{
$point = (int)$output->data->point;
$this->pointList[$member_srl] = $point;
if(!is_dir($path)) FileHandler::makeDir($path);
FileHandler::writeFile($cache_filename, $point);
return $point;
}
return 0;
}
/**
* @brief Get the level
**/
function getLevel($point, $level_step) {
$level_count = count($level_step);
for($level=0;$level<=$level_count;$level++) if($point < $level_step[$level]) break;
$level --;
return $level;
}
function getMembersPointInfo()
// Get from file cache
$path = sprintf('./files/member_extra_info/point/%s',getNumberingPath($member_srl));
$cache_filename = sprintf('%s%d.cache.txt', $path, $member_srl);
if(file_exists($cache_filename))
{
$member_srls = Context::get('member_srls');
$member_srls = explode(',',$member_srls);
if(count($member_srls)==0) return;
array_unique($member_srls);
if(!$this->pointList[$member_srl])
$this->pointList[$member_srl] = trim(FileHandler::readFile($cache_filename));
return true;
}
$args->member_srl = $member_srl;
$output = executeQuery('point.getPoint', $args);
if($output->data->member_srl == $member_srl)
{
if(!$this->pointList[$member_srl])
$this->pointList[$member_srl] = (int)$output->data->point;
return true;
}
return false;
}
/**
* @brief Get the points
*/
function getPoint($member_srl, $from_db = false)
{
$member_srl = abs($member_srl);
// Get from instance memory
if(!$from_db && $this->pointList[$member_srl]) return $this->pointList[$member_srl];
// Get from file cache
$path = sprintf('./files/member_extra_info/point/%s',getNumberingPath($member_srl));
$cache_filename = sprintf('%s%d.cache.txt', $path, $member_srl);
if(!$from_db && file_exists($cache_filename))
return $this->pointList[$member_srl] = trim(FileHandler::readFile($cache_filename));
// Get from the DB
$args->member_srl = $member_srl;
$output = executeQuery('point.getPoint', $args);
if(isset($output->data->member_srl))
{
$point = (int)$output->data->point;
$this->pointList[$member_srl] = $point;
if(!is_dir($path)) FileHandler::makeDir($path);
FileHandler::writeFile($cache_filename, $point);
return $point;
}
return 0;
}
/**
* @brief Get the level
*/
function getLevel($point, $level_step)
{
$level_count = count($level_step);
for($level=0;$level<=$level_count;$level++) if($point < $level_step[$level]) break;
$level --;
return $level;
}
function getMembersPointInfo()
{
$member_srls = Context::get('member_srls');
$member_srls = explode(',',$member_srls);
if(count($member_srls)==0) return;
array_unique($member_srls);
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
$info = array();
foreach($member_srls as $v)
{
$obj = new stdClass;
$obj->point = $this->getPoint($v);
$obj->level = $this->getLevel($obj->point, $config->level_step);
$obj->member_srl = $v;
$info[] = $obj;
}
$this->add('point_info',$info);
}
/**
* @brief Get a list of points members list
*/
function getMemberList($args = null, $columnList = array())
{
// Arrange the search options
$args->is_admin = Context::get('is_admin')=='Y'?'Y':'';
$args->is_denied = Context::get('is_denied')=='Y'?'Y':'';
$args->selected_group_srl = Context::get('selected_group_srl');
$search_target = trim(Context::get('search_target'));
$search_keyword = trim(Context::get('search_keyword'));
if($search_target && $search_keyword)
{
switch($search_target)
{
case 'user_id' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_user_id = $search_keyword;
break;
case 'user_name' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_user_name = $search_keyword;
break;
case 'nick_name' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_nick_name = $search_keyword;
break;
case 'email_address' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_email_address = $search_keyword;
break;
case 'regdate' :
$args->s_regdate = $search_keyword;
break;
case 'last_login' :
$args->s_last_login = $search_keyword;
break;
case 'extra_vars' :
$args->s_extra_vars = $search_keyword;
break;
}
}
// If there is a selected_group_srl, change the "query id" (for table join)
if($args->selected_group_srl)
{
$query_id = 'point.getMemberListWithinGroup';
}
else
{
$query_id = 'point.getMemberList';
}
$output = executeQuery($query_id, $args, $columnList);
if($output->total_count)
{
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
$info = array();
foreach($member_srls as $v)
foreach($output->data as $key => $val)
{
$obj = new stdClass;
$obj->point = $this->getPoint($v);
$obj->level = $this->getLevel($obj->point, $config->level_step);
$obj->member_srl = $v;
$info[] = $obj;
$output->data[$key]->level = $this->getLevel($val->point, $config->level_step);
}
$this->add('point_info',$info);
}
/**
* @brief Get a list of points members list
**/
function getMemberList($args = null, $columnList = array()) {
// Arrange the search options
$args->is_admin = Context::get('is_admin')=='Y'?'Y':'';
$args->is_denied = Context::get('is_denied')=='Y'?'Y':'';
$args->selected_group_srl = Context::get('selected_group_srl');
$search_target = trim(Context::get('search_target'));
$search_keyword = trim(Context::get('search_keyword'));
if($search_target && $search_keyword) {
switch($search_target) {
case 'user_id' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_user_id = $search_keyword;
break;
case 'user_name' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_user_name = $search_keyword;
break;
case 'nick_name' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_nick_name = $search_keyword;
break;
case 'email_address' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_email_address = $search_keyword;
break;
case 'regdate' :
$args->s_regdate = $search_keyword;
break;
case 'last_login' :
$args->s_last_login = $search_keyword;
break;
case 'extra_vars' :
$args->s_extra_vars = $search_keyword;
break;
}
}
// If there is a selected_group_srl, change the "query id" (for table join)
if($args->selected_group_srl) {
$query_id = 'point.getMemberListWithinGroup';
} else {
$query_id = 'point.getMemberList';
}
$output = executeQuery($query_id, $args, $columnList);
if($output->total_count) {
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
foreach($output->data as $key => $val) {
$output->data[$key]->level = $this->getLevel($val->point, $config->level_step);
}
}
return $output;
}
}
?>
return $output;
}
}
/* End of file point.model.php */
/* Location: ./modules/point/point.model.php */

View file

@ -1,60 +1,65 @@
<?php
/**
* @class pointView
* @author NHN (developers@xpressengine.com)
* @brief The view class of the point module
*
* POINT 2.0 format document output
*
**/
/**
* @class pointView
* @author NHN (developers@xpressengine.com)
* @brief The view class of the point module
*
* POINT 2.0 format document output
*
*/
class pointView extends point
{
/**
* @brief Initialization
*/
function init()
{
}
class pointView extends point {
/**
* @brief Additional configurations for a service module
* Receive the form for the form used by point
*/
function triggerDispPointAdditionSetup(&$obj)
{
$current_module_srl = Context::get('module_srl');
$current_module_srls = Context::get('module_srls');
/**
* @brief Initialization
**/
function init() {
}
if(!$current_module_srl && !$current_module_srls)
{
$current_module_info = Context::get('current_module_info');
$current_module_srl = $current_module_info->module_srl;
if(!$current_module_srl) return new Object();
}
// Get the configuration information
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
/**
* @brief Additional configurations for a service module
* Receive the form for the form used by point
**/
function triggerDispPointAdditionSetup(&$obj) {
$current_module_srl = Context::get('module_srl');
$current_module_srls = Context::get('module_srls');
if($current_module_srl)
{
$module_config = $oModuleModel->getModulePartConfig('point', $current_module_srl);
if(!$module_config)
{
$module_config['insert_document'] = $config->insert_document;
$module_config['insert_comment'] = $config->insert_comment;
$module_config['upload_file'] = $config->upload_file;
$module_config['download_file'] = $config->download_file;
$module_config['read_document'] = $config->read_document;
$module_config['voted'] = $config->voted;
$module_config['blamed'] = $config->blamed;
}
}
if(!$current_module_srl && !$current_module_srls) {
$current_module_info = Context::get('current_module_info');
$current_module_srl = $current_module_info->module_srl;
if(!$current_module_srl) return new Object();
}
// Get the configuration information
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
$module_config['module_srl'] = $current_module_srl;
$module_config['point_name'] = $config->point_name;
Context::set('module_config', $module_config);
// Set the template file
$oTemplate = &TemplateHandler::getInstance();
$tpl = $oTemplate->compile($this->module_path.'tpl', 'point_module_config');
$obj .= $tpl;
if($current_module_srl) {
$module_config = $oModuleModel->getModulePartConfig('point', $current_module_srl);
if(!$module_config) {
$module_config['insert_document'] = $config->insert_document;
$module_config['insert_comment'] = $config->insert_comment;
$module_config['upload_file'] = $config->upload_file;
$module_config['download_file'] = $config->download_file;
$module_config['read_document'] = $config->read_document;
$module_config['voted'] = $config->voted;
$module_config['blamed'] = $config->blamed;
}
}
$module_config['module_srl'] = $current_module_srl;
$module_config['point_name'] = $config->point_name;
Context::set('module_config', $module_config);
// Set the template file
$oTemplate = &TemplateHandler::getInstance();
$tpl = $oTemplate->compile($this->module_path.'tpl', 'point_module_config');
$obj .= $tpl;
return new Object();
}
}
?>
return new Object();
}
}
/* End of file point.view.php */
/* Location: ./modules/point/point.view.php */