Merge pull request #2 from xpressengine/develop

완료
This commit is contained in:
YJSoft 2015-02-18 19:46:31 +09:00
commit 5e6ea99795
14 changed files with 296 additions and 106 deletions

View file

@ -367,6 +367,8 @@ class Context
$this->allow_rewrite = ($this->db_info->use_rewrite == 'Y' ? TRUE : FALSE);
// set locations for javascript use
$url = array();
$current_url = self::getRequestUri();
if($_SERVER['REQUEST_METHOD'] == 'GET')
{
if($this->get_vars)
@ -386,17 +388,21 @@ class Context
$url[] = $key . '=' . urlencode($val);
}
}
$this->set('current_url', self::getRequestUri() . '?' . join('&', $url));
$current_url = self::getRequestUri();
if($url) $current_url .= '?' . join('&', $url);
}
else
{
$this->set('current_url', $this->getUrl());
$current_url = $this->getUrl();
}
}
else
{
$this->set('current_url', self::getRequestUri());
$current_url = self::getRequestUri();
}
$this->set('current_url', $current_url);
$this->set('request_uri', self::getRequestUri());
}
@ -1157,6 +1163,7 @@ class Context
{
continue;
}
$key = htmlentities($key);
$val = $this->_filterRequestVar($key, $val);
if($requestMethod == 'GET' && isset($_GET[$key]))

View file

@ -5,8 +5,9 @@
</head>
<body>
<script>
var idx = location.href.indexOf('?');
var url = parent.location.href;
var url = location.href;
var idx = url.indexOf('?');
if(idx > -1 ) {
var query_string = location.href.substr(idx+1, location.href.length);
var args = {};
@ -23,4 +24,4 @@
}
</script>
</body>
</html>
</html>

View file

@ -29,7 +29,7 @@ define('__ZBXE__', __XE__);
/**
* Display XE's full version.
*/
define('__XE_VERSION__', '1.7.10');
define('__XE_VERSION__', '1.7.11');
define('__XE_VERSION_ALPHA__', (stripos(__XE_VERSION__, 'alpha') !== false));
define('__XE_VERSION_BETA__', (stripos(__XE_VERSION__, 'beta') !== false));
define('__XE_VERSION_RC__', (stripos(__XE_VERSION__, 'rc') !== false));

View file

@ -267,6 +267,15 @@ class boardView extends board
}
}
// if the document is TEMP saved, check Grant
if($oDocument->getStatus() == 'TEMP')
{
if(!$oDocument->isGranted())
{
$oDocument = $oDocumentModel->getDocument(0);
}
}
}
else
{

View file

@ -876,7 +876,10 @@ class documentController extends document
}
// Register session
$_SESSION['readed_document'][$document_srl] = true;
if(!$_SESSION['banned_document'][$document_srl])
{
$_SESSION['readed_document'][$document_srl] = true;
}
return TRUE;
}

View file

@ -46,6 +46,9 @@ body>.x{max-width:none !important}
.col>*>h1>a[target="_blank"]:after{vertical-align:middle;opacity:.75;filter:alpha(opacity=75)}
.col>*>h1>a:hover,
.col>*>h1>a:focus{color:#06C}
.col #menu_find{height:32px}
.col #menu_find input[type="text"]{margin-bottom: 0}
.col #menu_find button[type="button"]{visibility: hidden}
.col>.x_close{position:absolute;top:0;right:0;width:30px;height:30px;color:#666;font-size:17px;opacity:.75;filter:alpha(opacity=75)}
.col input[type="checkbox"],
.col input[type="radio"]{margin:0}

View file

@ -22,6 +22,11 @@
<!--@if($act == 'dispMenuAdminSiteMap')-->
<div class="col map" id="site_map">
<h1>{$lang->menu_gnb_sub['siteMap']} <a class="x_icon-question-sign" href="./admin/help/index.html#UMAN_site_menu" target="_blank">{$lang->help}</a></h1>
<form id="menu_find">
<input name="keyword" type="text"></input>
<button class="x_btn x_btn-inverse btn-find">{$lang->cmd_find}</button>
<button class="x_btn x_btn-inverse btn-next" type="button">{$lang->cmd_next}</button>
</form>
<div class="cnt">
<section class="mapi" id="siteMapTree">
<script id="tmpl_menuTree" type="text/x-jquery-tmpl">
@ -798,7 +803,12 @@ function onSiteMapReceived(htData){
// it makes sense to configure a plugin only if overriding the defaults
})
.bind("loaded.jstree", function (event, data) {
data.inst.open_all();
//data.inst.open_all();
data.inst.get_container_ul().find("li.jstree-closed").each(function () {
if(issetJSTreeOpenIds(this.id) == true){
$(this).removeClass("jstree-closed").addClass("jstree-open");
}
});
var sRenameId = $._xeAdminVar.sRenameOnload;
$._xeAdminVar.sRenameOnload = null;
@ -823,6 +833,12 @@ function onSiteMapReceived(htData){
}
})
.bind("open_node.jstree", function(event, data){
setJSTreeOpenIds();
})
.bind("close_node.jstree", function(event, data){
setJSTreeOpenIds();
})
.bind("rename.jstree", function(event, data){
$("#siteMapTree").removeClass("_node_renaming");
})
@ -839,6 +855,12 @@ function onSiteMapReceived(htData){
})
.bind("select_node.jstree", function(event, data){
// move scroll
var ul = $($("#siteMapTree").jstree("get_container")[0]);
ul.parent("div.cnt").stop().animate({
scrollTop: data.rslt.obj.offset().top - ul.offset().top
}, 800);
$("#siteMapTree input").blur();
//console.log($("#siteMapTree input"));
@ -965,6 +987,24 @@ console.log(htNodeInfo);
$('#site_map').nextAll().hide();
}
function setJSTreeOpenIds(){
var jstree_open_srls = [];
jQuery("#siteMapTree").find("li.jstree-open").each(function() {
jstree_open_srls.push(this.id);
});
setCookie("__xe_admin_jstree_open_srls", jstree_open_srls.join(","));
}
function issetJSTreeOpenIds(id) {
var jstree_open_srls = getCookie("__xe_admin_jstree_open_srls").split(",");
for (var i=0; i< jstree_open_srls.length; i++) {
if(jstree_open_srls[i] == id) {
return true;
}
}
return false;
}
var htNodeInfo = {};
// return html
function createTreeMarkup(aNode, sParentSrl, sMenuTree, sMenuTreeNode){
@ -1201,6 +1241,37 @@ jQuery(function($){
setItemTypes(htData.menu_types);
setAllModules(htData.all_modules);
});
var find_ids = [];
var find_index = 0;
$("#menu_find").submit(function(){
find_ids = [];
find_index = 0;
$('#menu_find').find('[type="button"]').css("visibility", "hidden");
var keyword = $('[name="keyword"]').val();
$("#siteMapTree").find("li").each(function(){
var pattern = new RegExp(keyword);
if(pattern.test($(this).find("a:first").text())){
find_ids.push(this.id);
}
});
if (find_ids.length>1) {
$('#menu_find').find('[type="button"]').css("visibility", "visible");
}
$("#siteMapTree").jstree("deselect_all").jstree("select_node", "#"+find_ids[find_index]);
return false;
});
$("#menu_find").find('[type="button"]').click(function(){
find_index++;
if (find_ids.length <= find_index){
find_index = 0;
}
$("#siteMapTree").jstree("deselect_all").jstree("select_node", "#"+find_ids[find_index]);
});
<!--@end-->
<!--@if($act == 'dispMenuAdminSiteDesign')-->
@ -3918,15 +3989,17 @@ jQuery(function($){
<!--@else-->
$(window).resize(function(){
var wHeigh = $(window).height();
$('#site').height(wHeigh - 147).find('>.col').height(wHeigh - 185).find('.cnt').height(wHeigh - 252);
$('#properties, #propertiesRoot, #imgbtn, #layoutSetup, #layoutMarkupSetup, #skinSetup').find('.cnt').height(wHeigh - 222);
<!--@if($act == 'dispMenuAdminSiteMap')-->
// minus height 40px for find-form display
$('#site').find('.cnt:first').height(wHeigh - 252 - 40);
$('#design').find('.cnt').height(wHeigh - 222);
<!--@end-->
<!--@if($act == 'dispMenuAdminSiteDesign')-->
$('#layout, #skin').find('.cnt').height(wHeigh - 222);
<!--@end-->
}).resize();

View file

@ -119,6 +119,31 @@ class moduleController extends module
return $output;
}
/**
* @brief Delete module trigger
*
*/
function deleteModuleTriggers($module)
{
$args = new stdClass();
$args->module = $module;
$output = executeQuery('module.deleteModuleTriggers', $args);
if($output->toBool())
{
//remove from cache
$GLOBALS['__triggers__'] = NULL;
$oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE);
if($oCacheHandler->isSupport())
{
$cache_key = 'triggers';
$oCacheHandler->delete($cache_key);
}
}
return $output;
}
/**
* @brief Add module extend
*

View file

@ -0,0 +1,8 @@
<query id="deleteModuleTriggers" action="delete">
<tables>
<table name="module_trigger" />
</tables>
<conditions>
<condition operation="equal" column="module" var="module" notnull="notnull" />
</conditions>
</query>

View file

@ -47,6 +47,28 @@
<value xml:lang="tr"><![CDATA[Pano/blog gibi her modülün, "yazma/silme/yorum ekleme/yorum silme gibi kendi eylemleri bulunmaktadır. ".<br />Pano/blog harici, puan sistemli link modüllerine davranış değerleri ekleyebilirsiniz.<br />Virgül(,) çoklu değerleri ayıracaktır.]]></value>
<value xml:lang="vi"><![CDATA[Mỗi Module, Board hay Blog có một mức cho điểm khác nhau khi "gửi bài, xóa bài, thêm bài, gửi bình luận, xóa bình luận".<br />Bạn có thể chỉ thêm những giá trị liên kết với hệ thống điểm vào mỗi Module Blog, Board.<br />Để thêm nhiều giá trị bằng cách sử dụng dấu (,) giữa các giá trị.]]></value>
</item>
<item name="point_io">
<value xml:lang="ko"><![CDATA[포인트 모듈 켜기]]></value>
<value xml:lang="en"><![CDATA[Point module On]]></value>
<value xml:lang="jp"><![CDATA[Point module On]]></value>
<value xml:lang="zh-CN"><![CDATA[Point module On]]></value>
<value xml:lang="zh-TW"><![CDATA[Point module On]]></value>
<value xml:lang="ru"><![CDATA[Point module On]]></value>
<value xml:lang="es"><![CDATA[Point module On]]></value>
<value xml:lang="tr"><![CDATA[Point module On]]></value>
<value xml:lang="vi"><![CDATA[Point module On]]></value>
</item>
<item name="about_point_io">
<value xml:lang="ko"><![CDATA[체크 하면 포인트 모듈 기능을 켤 수 있습니다. 포인트 모듈 기능을 끌 경우, 포인트 모듈의 모든 트리거가 삭제됩니다. 포인트 기록은 유지되지만 새로 기록 되지는 않습니다.]]></value>
<value xml:lang="en"><![CDATA[Point module can be on or off. If you OFF this module, every triggers will be deleted from database and will not be called by XE Core. Point record would be preserved.]]></value>
<value xml:lang="jp"><![CDATA[Point module can be on or off. If you OFF this module, every triggers will be deleted from database and will not be called by XE Core. Point record would be preserved.]]></value>
<value xml:lang="zh-CN"><![CDATA[Point module can be on or off. If you OFF this module, every triggers will be deleted from database and will not be called by XE Core. Point record would be preserved.]]></value>
<value xml:lang="zh-TW"><![CDATA[Point module can be on or off. If you OFF this module, every triggers will be deleted from database and will not be called by XE Core. Point record would be preserved.]]></value>
<value xml:lang="ru"><![CDATA[Point module can be on or off. If you OFF this module, every triggers will be deleted from database and will not be called by XE Core. Point record would be preserved.]]></value>
<value xml:lang="es"><![CDATA[Point module can be on or off. If you OFF this module, every triggers will be deleted from database and will not be called by XE Core. Point record would be preserved.]]></value>
<value xml:lang="tr"><![CDATA[Point module can be on or off. If you OFF this module, every triggers will be deleted from database and will not be called by XE Core. Point record would be preserved.]]></value>
<value xml:lang="vi"><![CDATA[Point module can be on or off. If you OFF this module, every triggers will be deleted from database and will not be called by XE Core. Point record would be preserved.]]></value>
</item>
<item name="max_level">
<value xml:lang="ko"><![CDATA[최고 레벨]]></value>
<value xml:lang="en"><![CDATA[Max Level]]></value>

View file

@ -24,75 +24,98 @@ class pointAdminController extends point
$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';
$oMemberModel = getModel('member');
$group_list = $oMemberModel->getGroups();
// Per-level group configurations
foreach($group_list as $group)
//if module IO config is off
if($args->able_module == 'Y')
{
// Admin group should not be connected to point.
if($group->is_admin == 'Y' || $group->is_default == 'Y') continue;
$group_srl = $group->group_srl;
//if group level is higher than max level, change to max level
if($args->{'point_group_'.$group_srl} > $args->max_level)
// Re-install triggers, if it was disabled.
if($config->able_module == 'N')
{
$args->{'point_group_'.$group_srl} = $args->max_level;
$this->moduleUpdate();
}
//if group level is lower than 1, change to 1
if($args->{'point_group_'.$group_srl} < 1)
//module IO config is on
$config->able_module = 'Y';
// 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';
$oMemberModel = getModel('member');
$group_list = $oMemberModel->getGroups();
// Per-level group configurations
foreach($group_list as $group)
{
$args->{'point_group_'.$group_srl} = 1;
// Admin group should not be connected to point.
if($group->is_admin == 'Y' || $group->is_default == 'Y') continue;
$group_srl = $group->group_srl;
//if group level is higher than max level, change to max level
if($args->{'point_group_'.$group_srl} > $args->max_level)
{
$args->{'point_group_'.$group_srl} = $args->max_level;
}
//if group level is lower than 1, change to 1
if($args->{'point_group_'.$group_srl} < 1)
{
$args->{'point_group_'.$group_srl} = 1;
}
if($args->{'point_group_'.$group_srl})
{
$config->point_group[$group_srl] = $args->{'point_group_'.$group_srl};
}
else
{
unset($config->point_group[$group_srl]);
}
}
if($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++)
{
$config->point_group[$group_srl] = $args->{'point_group_'.$group_srl};
}
else
{
unset($config->point_group[$group_srl]);
$key = "level_step_".$i;
$config->level_step[$i] = (int)$args->{$key};
}
// A function to calculate per-level points
$config->expression = $args->expression;
}
$config->group_reset = $args->group_reset;
// Per-level point configurations
unset($config->level_step);
for($i=1;$i<=$config->max_level;$i++)
else
{
$key = "level_step_".$i;
$config->level_step[$i] = (int)$args->{$key};
//module IO config is OFF, Other settings will not be modified.
$config->able_module = 'N';
// Delete Triggers
$oModuleController = getController('module');
$oModuleController->deleteModuleTriggers('point');
}
// A function to calculate per-level points
$config->expression = $args->expression;
// Save
$oModuleController = getController('module');
$oModuleController->insertModuleConfig('point', $config);

View file

@ -20,6 +20,8 @@ class point extends ModuleObject
$oModuleController = getController('module');
// The highest level
$config = new stdClass;
// default, point module is OFF
$config->able_module = 'N';
$config->max_level = 30;
// Per-level score
for($i=1;$i<=30;$i++)
@ -68,24 +70,6 @@ class point extends ModuleObject
// 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');
return new Object();
}
@ -97,27 +81,33 @@ class point extends ModuleObject
{
// 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;
// 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;
$config = $oModuleModel->getModuleConfig('point');
// check if module is abled
if($config->able_module != 'N')
{
// 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;
// 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;
}
return false;
}

View file

@ -420,10 +420,12 @@ class pointController extends point
// Get the defaul configurations of the Point Module
$config = $oModuleModel->getModuleConfig('point');
// When the requested points are negative, compared it with the current point
$_SESSION['banned_document'][$obj->document_srl] = false;
if($config->disable_read_document == 'Y' && $point < 0 && abs($point)>$cur_point)
{
$message = sprintf(Context::getLang('msg_disallow_by_point'), abs($point), $cur_point);
$obj->add('content', $message);
$_SESSION['banned_document'][$obj->document_srl] = true;
return new Object(-1, $message);
}
// If not logged in, pass

View file

@ -2,12 +2,19 @@
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/point/tpl/config/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form ruleset="insertConfig" action="./" method="post" class="x_form-horizontal">
<form ruleset="insertConfig" action="./" method="post" id="point_module_config_form" class="x_form-horizontal">
<input type="hidden" name="module" value="point" />
<input type="hidden" name="act" value="procPointAdminInsertConfig" />
<input type="hidden" name="xe_validator_id" value="modules/point/tpl/config/1" />
<section class="section">
<section class="section default">
<h1>{$lang->is_default}</h1>
<div class="x_control-group module_io">
<label for="able_module" class="x_control-label">{$lang->point_io}</label>
<div class="x_controls" style="padding-top:3px">
<input type="checkbox" name="able_module" id="able_module" value="Y" checked="checked"|cond="!$config->able_module||$config->able_module=='Y'" />
<span class="x_help-inline">{$lang->about_point_io}</span>
</div>
</div>
<div class="x_control-group">
<label for="max_level" class="x_control-label">{$lang->max_level}</label>
<div class="x_controls">
@ -167,3 +174,20 @@
<p id="pointReCal"></p>
</section>
</form>
<script>
jQuery(function($){
var point_module_cfg = $('#point_module_config_form .default .x_control-group:not(.module_io), #point_module_config_form .section:not(.default),.x_nav-tabs>li:not(.x_active)');
if(!$('#able_module').is(':checked'))
{
point_module_cfg.hide();
}
$('#able_module').change(function(){
if($(this).is(':checked')){
point_module_cfg.slideDown(200);
} else {
point_module_cfg.slideUp(200);
}
});
});
</script>