Merge branch 'develop' into next

This commit is contained in:
Kijin Sung 2020-09-29 00:23:30 +09:00
commit 177a6c6b7d
42 changed files with 98 additions and 74 deletions

View file

@ -24,7 +24,7 @@
var thisPlugin = this;
// extract target text nodes
this.extractTargets($('.xe_content'));
this.extractTargets($('.rhymix_content, .xe_content'));
$(this.targets).each(function(){
thisPlugin.cast('AUTOLINK', [this]);
@ -67,7 +67,7 @@
},
extractTargets : function(obj) {
var thisPlugin = this;
var wrap = $('.xe_content', obj);
var wrap = $('.rhymix_content, .xe_content', obj);
if(wrap.length) {
this.extractTargets(wrap);
return;
@ -97,7 +97,7 @@
xe.registerPlugin(new AutoLink());
$(document).on('click', '.xe_content a', function() {
$(document).on('click', '.rhymix_content a, .xe_content a', function() {
var $this = $(this);
var href = $this.attr('href');
if(!href || /^(?:javascript|mailto):|#/.test(href)) {

View file

@ -256,4 +256,4 @@ var initPhotoSwipeFromDOM = function(gallerySelector) {
// execute above function
initPhotoSwipeFromDOM('.xe_content');
initPhotoSwipeFromDOM('.rhymix_content, .xe_content');

View file

@ -1 +1 @@
.xe_content img{max-width:100%;height:auto !important}
.rhymix_content, .xe_content img{max-width:100%;height:auto !important}

View file

@ -189,7 +189,7 @@ function getScreen() {
// 이미지 슬라이드를 보는 함수
function slideshow(event) {
var container = $(this).closest('.xe_content');
var container = $(this).closest('.rhymix_content, .xe_content');
var imglist = container.find("img[rel=xe_gallery]");
var currentIdx = $.inArray($(this).get(0), imglist.get());
var xScreen = getScreen();
@ -242,7 +242,7 @@ $(window).load(function(){
});
}
$('.xe_content').each(function() {
$('.rhymix_content, .xe_content').each(function() {
var contentWidth = dummy.appendTo(this).width();
dummy.remove();
if(!contentWidth) return;

View file

@ -340,7 +340,7 @@ jQuery(function($) {
});
/* Editor preview replacement */
$(".editable_preview").addClass("xe_content").attr("tabindex", 0);
$(".editable_preview").addClass("rhymix_content xe_content").attr("tabindex", 0);
$(".editable_preview").on("click", function() {
var input = $(this).siblings(".editable_preview_content");
if (input.size()) {

View file

@ -324,13 +324,13 @@
if(!result) return;
var temp_code = '';
if(/\.(gif|jpe?g|png|webp)$/i.test(result.source_filename) && data.settings.autoinsertTypes.image) {
if(/\.(gif|jpe?g|png|webp)$/i.test(result.source_filename)) {
temp_code += '<img src="' + result.download_url + '" alt="' + result.source_filename + '" editor_component="image_link" data-file-srl="' + result.file_srl + '" />';
}
else if(/\.(mp3|wav|ogg|flac|aac)$/i.test(result.source_filename) && data.settings.autoinsertTypes.audio) {
else if(/\.(mp3|wav|ogg|flac|aac)$/i.test(result.source_filename)) {
temp_code += '<audio src="' + result.download_url + '" controls data-file-srl="' + result.file_srl + '" />';
}
else if(/\.(mp4|webm|ogv)$/i.test(result.source_filename) && data.settings.autoinsertTypes.video) {
else if(/\.(mp4|webm|ogv)$/i.test(result.source_filename)) {
if(result.original_type === 'image/gif') {
temp_code += '<video src="' + result.download_url + '" autoplay loop muted data-file-srl="' + result.file_srl + '" />';
} else {

View file

@ -31,7 +31,7 @@
<ul>
<li loop="$latestDocumentList => $key,$value">
{@$document = $value->variables}
<a href="{getUrl('', 'document_srl', $document['document_srl'])}" target="_blank"><!--@if(trim($value->getTitle()) !== '')-->{$value->getTitle()}<!--@else--><strong>{$lang->no_title_document}</strong><!--@end--></a>
<a href="{getUrl('', 'document_srl', $document['document_srl'])}" target="_blank"><!--@if(trim($value->getTitle()) !== '')-->{$value->getTitleText()}<!--@else--><strong>{$lang->no_title_document}</strong><!--@end--></a>
<span class="side">{$value->getNickName()}</span>
<form class="action" method="POST">
<input type="hidden" name="module" value="admin" />

View file

@ -25,7 +25,7 @@
<ul>
<li loop="$latestDocumentList => $key,$value">
{@$document = $value->variables}
<a href="{getUrl('', 'document_srl', $document['document_srl'])}" target="_blank"><!--@if(trim($value->getTitle()) !== '')-->{$value->getTitle()}<!--@else--><strong>{$lang->no_title_document}</strong><!--@end--></a>
<a href="{getUrl('', 'document_srl', $document['document_srl'])}" target="_blank"><!--@if(trim($value->getTitle()) !== '')-->{$value->getTitleText()}<!--@else--><strong>{$lang->no_title_document}</strong><!--@end--></a>
<span class="side">{$value->getNickName()}</span>
<form class="action" method="POST">
<input type="hidden" name="module" value="admin" />

View file

@ -1604,6 +1604,11 @@ html[lang="mn"] .x .g11n.active>[disabled],
#g11n .flag.mn {
background-image: url(../img/flag.mn.gif);
}
html[lang="id"] .x .g11n.active>[disabled],
#g11n .item .id,
#g11n .flag.id {
background-image: url(../img/flag.id.gif);
}
#g11n #lang_search .cancel,
#g11n #lang_search .save,
#g11n #lang_search .editMode .modify,

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -47,8 +47,8 @@ class XmlGenerater
$oModuleModel = getModel('module');
$module_info = $oModuleModel->getModuleConfig('autoinstall');
$location_site = $module_info->location_site;
$download_server = $module_info->download_server;
$location_site = $module_info->location_site ? : 'https://xe1.xpressengine.com/';
$download_server = $module_info->download_server ? : 'https://download.xpressengine.com/';
$buff = FileHandler::getRemoteResource($download_server, $body, 3, "POST", "application/xml", array(), array(), array(), $request_config);
if(!$buff)

View file

@ -16,11 +16,11 @@
<p class="time">{$comment->getRegdate('Y.m.d H:i')}</p>
</div>
<!--@if($comment->status == RX_STATUS_DELETED)-->
<div class="xe_content deleted">{$lang->msg_deleted_comment}</div>
<div class="rhymix_content xe_content deleted">{$lang->msg_deleted_comment}</div>
<!--@elseif($comment->status == RX_STATUS_DELETED_BY_ADMIN)-->
<div class="xe_content deleted deleted_by_admin">{$lang->msg_admin_deleted_comment}</div>
<div class="rhymix_content xe_content deleted deleted_by_admin">{$lang->msg_admin_deleted_comment}</div>
<!--@elseif(!$comment->isAccessible())-->
<form action="./" method="get" class="xe_content" onsubmit="return procFilter(this, input_password)">
<form action="./" method="get" class="rhymix_content xe_content" onsubmit="return procFilter(this, input_password)">
<p><label for="cpw_{$comment->comment_srl}">{$lang->msg_is_secret} {$lang->msg_input_password}</label></p>
<p><input type="password" name="password" id="cpw_{$comment->comment_srl}" class="iText" /><input type="submit" class="btn" value="{$lang->cmd_input}" /></p>
<input type="hidden" name="mid" value="{$mid}" />

View file

@ -10,7 +10,7 @@
<h3 class="author"><a href="{$val->url}" title="{htmlspecialchars($val->blog_name)}">{htmlspecialchars($val->blog_name)}</a></h3>
<p class="time">{zdate($val->regdate, "Y.m.d H:i")}</p>
</div>
<p class="xe_content"><strong>{htmlspecialchars($val->title)}</strong> {$val->excerpt}</p>
<p class="rhymix_content xe_content"><strong>{htmlspecialchars($val->title)}</strong> {$val->excerpt}</p>
<p class="action" cond="$grant->manager"><a href="{getUrl('act','dispBoardDeleteTrackback','trackback_srl',$val->trackback_srl)}" class="delete">{$lang->cmd_delete}</a></p>
</li>
</ul>

View file

@ -16,11 +16,11 @@
<p class="time">{$comment->getRegdate('Y.m.d H:i')}</p>
</div>
<!--@if($comment->status == RX_STATUS_DELETED)-->
<div class="xe_content deleted">{$lang->msg_deleted_comment}</div>
<div class="rhymix_content xe_content deleted">{$lang->msg_deleted_comment}</div>
<!--@elseif($comment->status == RX_STATUS_DELETED_BY_ADMIN)-->
<div class="xe_content deleted deleted_by_admin">{$lang->msg_admin_deleted_comment}</div>
<div class="rhymix_content xe_content deleted deleted_by_admin">{$lang->msg_admin_deleted_comment}</div>
<!--@elseif(!$comment->isAccessible())-->
<form action="./" method="get" class="xe_content secretForm" onsubmit="return procFilter(this, input_password)">
<form action="./" method="get" class="rhymix_content xe_content secretForm" onsubmit="return procFilter(this, input_password)">
<p><label for="cpw_{$comment->comment_srl}">{$lang->msg_is_secret} {$lang->msg_input_password}</label></p>
<p><input type="password" name="password" id="cpw_{$comment->comment_srl}" class="iText" /><input type="submit" class="btn" value="{$lang->cmd_input}" /></p>
<input type="hidden" name="mid" value="{$mid}" />

View file

@ -10,7 +10,7 @@
<h3 class="author"><a href="{$val->url}" title="{htmlspecialchars($val->blog_name)}">{htmlspecialchars($val->blog_name)}</a></h3>
<p class="time">{zdate($val->regdate, "Y.m.d H:i")}</p>
</div>
<p class="xe_content"><strong>{htmlspecialchars($val->title)}</strong> {$val->excerpt}</p>
<p class="rhymix_content xe_content"><strong>{htmlspecialchars($val->title)}</strong> {$val->excerpt}</p>
<p class="action" cond="$grant->manager"><a href="{getUrl('act','dispBoardDeleteTrackback','trackback_srl',$val->trackback_srl)}" class="delete">{$lang->cmd_delete}</a></p>
</li>
</ul>

View file

@ -446,7 +446,7 @@ class commentItem extends BaseObject
{
$member_srl = 0;
}
$content = vsprintf('<!--BeforeComment(%d,%d)--><div class="comment_%d_%d xe_content%s">%s</div><!--AfterComment(%d,%d)-->', array(
$content = vsprintf('<!--BeforeComment(%d,%d)--><div class="comment_%d_%d rhymix_content xe_content%s">%s</div><!--AfterComment(%d,%d)-->', array(
$this->comment_srl, $member_srl, $this->comment_srl, $member_srl, $additional_class, $content, $this->comment_srl, $member_srl
));
}
@ -454,7 +454,7 @@ class commentItem extends BaseObject
{
if($add_xe_content_class)
{
$content = sprintf('<div class="xe_content%s">%s</div>', $additional_class, $content);
$content = sprintf('<div class="rhymix_content xe_content%s">%s</div>', $additional_class, $content);
}
}

View file

@ -48,7 +48,7 @@ class commentModel extends comment
$columnList = array('comment_srl', 'module_srl', 'member_srl', 'ipaddress');
$oComment = self::getComment($comment_srl, FALSE, $columnList);
$module_srl = $oComment->get('module_srl');
$member_srl = $oComment->get('member_srl');
$member_srl = abs($oComment->get('member_srl'));
$comment_config = ModuleModel::getModulePartConfig('document', $module_srl);

View file

@ -4,7 +4,13 @@
<table name="documents" />
</tables>
<columns>
<column name="*" />
<column name="comments.*" />
<column name="documents.module_srl" alias="module_srl" />
<column name="documents.member_srl" alias="document_member_srl" />
<column name="documents.user_id" alias="document_user_id" />
<column name="documents.user_name" alias="document_user_name" />
<column name="documents.nick_name" alias="document_nick_name" />
<column name="documents.title" alias="document_title" />
</columns>
<conditions>
<condition operation="equal" column="documents.document_srl" var="comments.document_srl" notnull="notnull" />

View file

@ -4,7 +4,7 @@
<h2>{$message->title}</h2><span class="ex">{$message->nick_name} | {zdate($message->regdate, "Y.m.d H:i")}</span>
</div>
<div class="co">
<div class="xe_content">{$message->content|noescape}</div>
<div class="rhymix_content xe_content">{$message->content|noescape}</div>
<!--@if(count($message_files))-->
<ul class="attachments">
<!--@foreach($message_files as $file)-->

View file

@ -34,12 +34,12 @@
<label for="message_title">{$lang->title}</label>
<input type="text" name="title" id="message_title" value="{$source_message->title}"/>
</li>
<li class="xe_content">
<li class="rhymix_content xe_content">
{$source_message->content|noescape}
</li>
<li>
<label for="message_content">{$lang->content}</label>
<textarea id="message_content" name="new_content" rows="8" style="width:100%"></textarea>
<textarea id="message_content" name="new_content" rows="8" style="width:100%;box-sizing:border-box"></textarea>
</li>
</ul>
<div class="bna">

View file

@ -7,7 +7,7 @@
<div>
<a href="popup_menu_area" class="member_{$message->member_srl}">{$message->nick_name}</a> / {zdate($message->regdate, "Y-m-d H:i")}
</div>
<div class="xe_content">
<div class="rhymix_content xe_content">
{$message->content}
</div>
<!--@if(count($message_files))-->

View file

@ -6,7 +6,7 @@
<div>
<a href="popup_menu_area" class="member_{$message->member_srl}">{$message->nick_name}</a> / {zdate($message->regdate, "Y-m-d H:i")}
</div>
<div class="xe_content">
<div class="rhymix_content xe_content">
{$message->content|noescape}
</div>
<div class="prn-anchor-buttons">

View file

@ -28,7 +28,7 @@
</td>
</tr>
<tr>
<td class="xe_content">
<td class="rhymix_content xe_content">
{$message->content|noescape}
</td>
</tr>

View file

@ -14,7 +14,7 @@
<td>{htmlspecialchars($message->title, ENT_COMPAT | ENT_HTML401, 'UTF-8', false)}</td>
</tr>
<tr>
<td colspan="2" class="xe_content">{$message->content|noescape}</td>
<td colspan="2" class="rhymix_content xe_content">{$message->content|noescape}</td>
</tr>
</table>
<div class="btnArea">

View file

@ -6,7 +6,7 @@
<div>
<a href="popup_menu_area" class="member_{$message->member_srl}">{$message->nick_name}</a> / {zdate($message->regdate, "Y-m-d H:i")}
</div>
<div class="xe_content">
<div class="rhymix_content xe_content">
{$message->content}
<!--@if(count($message_files))-->
<ul class="attachments">

View file

@ -5,7 +5,7 @@
<div>
<a href="popup_menu_area" class="member_{$message->member_srl}">{$message->nick_name}</a> / {zdate($message->regdate, "Y-m-d H:i")}
</div>
<div class="xe_content">
<div class="rhymix_content xe_content">
{$message->content|noescape}
</div>
<div class="sw-footer sw-anchor-buttons">

View file

@ -721,7 +721,7 @@ class documentItem extends BaseObject
$memberSrl = 0;
}
$content = sprintf(
'<!--BeforeDocument(%d,%d)--><div class="document_%d_%d xe_content">%s</div><!--AfterDocument(%d,%d)-->',
'<!--BeforeDocument(%d,%d)--><div class="document_%d_%d rhymix_content xe_content">%s</div><!--AfterDocument(%d,%d)-->',
$this->document_srl, $memberSrl,
$this->document_srl, $memberSrl,
$content,
@ -732,7 +732,7 @@ class documentItem extends BaseObject
// Add xe_content class although accessing content is not required
elseif($add_xe_content_class)
{
$content = sprintf('<div class="xe_content">%s</div>', $content);
$content = sprintf('<div class="rhymix_content xe_content">%s</div>', $content);
}
// Change the image path to a valid absolute path if resource_realpath is true
if($resource_realpath)

View file

@ -452,7 +452,7 @@ class documentModel extends document
$columnList = array('document_srl', 'module_srl', 'member_srl', 'ipaddress');
$oDocument = self::getDocument($document_srl, false, false, $columnList);
$module_srl = $oDocument->get('module_srl');
$member_srl = $oDocument->get('member_srl');
$member_srl = abs($oDocument->get('member_srl'));
if(!$module_srl) throw new Rhymix\Framework\Exceptions\InvalidRequest;
$document_config = ModuleModel::getModulePartConfig('document',$module_srl);

View file

@ -67,7 +67,7 @@ class documentView extends document
$obj->content = $content;
$obj->module_srl = ModuleModel::getModuleInfoByMid(Context::get('mid'))->module_srl;
$content = getModel('editor')->converter($obj, 'document');
$content = sprintf('<div class="document_0_%d xe_content">%s</div>', Context::get('logged_info')->member_srl, $content);
$content = sprintf('<div class="document_0_%d rhymix_content xe_content">%s</div>', Context::get('logged_info')->member_srl, $content);
Context::set('content', $content);
$this->setTemplatePath($this->module_path.'tpl');

View file

@ -57,13 +57,13 @@ var auto_saved_msg = "{$lang->msg_auto_saved}";
var default_font_name = {json_encode($content_font ? trim(array_first(explode(',', $content_font)), '\'" ') : null)};
var default_font_fullname = {json_encode($content_font ?: null)};
if (default_font_fullname === null && window.getComputedStyle) {
var test_content = $('<div class="xe_content"></div>').hide().appendTo($(document.body));
var test_content = $('<div class="rhymix_content xe_content"></div>').hide().appendTo($(document.body));
var test_styles = window.getComputedStyle(test_content[0], null);
if (test_styles && test_styles.getPropertyValue) {
default_font_fullname = test_styles.getPropertyValue("font-family");
if (default_font_fullname) {
default_font_name = $.trim(default_font_fullname.split(',')[0].replace(/['"]/g, ''));
css_content = ".xe_content.editable { font-family:" + default_font_fullname + "; } " + css_content;
css_content = ".rhymix_content.editable { font-family:" + default_font_fullname + "; } " + css_content;
}
}
}
@ -159,7 +159,7 @@ var auto_saved_msg = "{$lang->msg_auto_saved}";
settings.loadXeComponent = false;
var additional_styles = '.cke_wysiwyg_div { padding: 8px !important; }';
additional_styles += 'html { min-width: unset; min-height: unset; width: unset; height: unset; margin: unset; padding: unset; }';
$('head').append('<st' + 'yle>' + additional_styles + String(css_content).replace(/\.xe_content\.editable/g, '.cke_wysiwyg_div') + '</st' + 'yle>');
$('head').append('<st' + 'yle>' + additional_styles + String(css_content).replace(/\.rhymix_content\.editable/g, '.cke_wysiwyg_div') + '</st' + 'yle>');
}
<!--@if($editor_toolbar === 'simple')-->

View file

@ -21,7 +21,7 @@ function getAutoSavedSrl(ret_obj, response_tags, c) {
(function($){
"use strict";
var default_ckeconfig = {
bodyClass: 'xe_content editable',
bodyClass: 'rhymix_content xe_content editable',
toolbarCanCollapse: true,
toolbarGroups: [
{ name: 'clipboard', groups: [ 'undo', 'clipboard' ] },

View file

@ -922,9 +922,9 @@ class fileController extends file
$args->height = $file_info['height'];
$args->duration = $file_info['duration'];
// Set original type if the file is converted
// Set original type
$args->original_type = null;
if($file_info['converted'])
if($file_info['type'] !== $file_info['original_type'])
{
$args->original_type = $file_info['original_type'];
}

View file

@ -3611,7 +3611,7 @@ class memberController extends member
$columnList = array('document_srl', 'module_srl', 'member_srl', 'ipaddress');
$oDocument = DocumentModel::getDocument($document_srl, false, false, $columnList);
$member_srl = $oDocument->get('member_srl');
$member_srl = abs($oDocument->get('member_srl'));
$module_srl = $oDocument->get('module_srl');
if(!$member_srl || $member_srl == $logged_info->member_srl) return;
@ -3639,7 +3639,7 @@ class memberController extends member
$columnList = array('comment_srl', 'module_srl', 'member_srl', 'ipaddress');
$oComment = CommentModel::getComment($comment_srl, FALSE, $columnList);
$module_srl = $oComment->get('module_srl');
$member_srl = $oComment->get('member_srl');
$member_srl = abs($oComment->get('member_srl'));
if(!$member_srl || $member_srl == $logged_info->member_srl) return;
if(!ModuleModel::getGrant(ModuleModel::getModuleInfoByModuleSrl($module_srl), $logged_info)->manager) return;

View file

@ -131,6 +131,7 @@ class ncenterliteAdminController extends ncenterlite
$args->member_srl = $logged_info->member_srl;
$args->srl = 1;
$args->target_srl = 1;
$args->target_p_srl = 1;
$args->type = $this->_TYPE_TEST;
$args->target_type = $this->_TYPE_TEST;
$args->target_url = getUrl('');
@ -169,6 +170,7 @@ class ncenterliteAdminController extends ncenterlite
$args->member_srl = $logged_info->member_srl;
$args->srl = 1;
$args->target_srl = 1;
$args->target_p_srl = 1;
$args->type = $this->_TYPE_DOCUMENT;
$args->target_type = $this->_TYPE_COMMENT;
$args->target_url = getUrl('');

View file

@ -6,7 +6,7 @@ $lang->about_act_config = 'Each module like board/blog has its own actions such
$lang->point_io = 'Point module On';
$lang->about_point_io = '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 Rhymix Core. Point record would be preserved.';
$lang->max_level = 'Max Level';
$lang->about_max_level = 'You may set the max level. Level icons should be considered and 1000 is the maximum value you can set.<br />The maximum possible value is also restricted by the max_input_vars setting of the server. The current maximum is around %d.';
$lang->about_max_level = 'You may set the max level. Level icons should be considered, and it is strongly recommended that you keep this value below 1000.';
$lang->level_icon = 'Level Icon';
$lang->about_level_icon = 'Path of level icon is "./module/point/icons/[level].gif" and max level could be different with icon set. So please be careful';
$lang->point_name = 'Point Name';

View file

@ -6,7 +6,7 @@ $lang->about_act_config = '게시판, 블로그 등 각 페이지마다 글 작
$lang->point_io = '포인트 모듈 켜기';
$lang->about_point_io = '체크 하면 포인트 모듈 기능을 켤 수 있습니다. 포인트 모듈 기능을 끌 경우, 포인트 모듈의 모든 트리거가 삭제됩니다. 포인트 기록은 유지되지만 새로 기록 되지는 않습니다.';
$lang->max_level = '최고 레벨';
$lang->about_max_level = '최고레벨을 지정할 수 있습니다. 레벨 아이콘을 염두에 두어야 하고 최고 레벨은 1000이 한계입니다.<br />서버의 max_input_vars 설정이 낮은 경우 최고 레벨에도 제한이 있을 수 있습니다. 이 서버에서는 %d까지 가능합니다.';
$lang->about_max_level = '최고레벨을 지정할 수 있습니다. 레벨 아이콘을 염두에 두어야 하고, 1000레벨 이상은 권장하지 않습니다.';
$lang->level_icon = '레벨 아이콘';
$lang->about_level_icon = '레벨 아이콘은 ./modules/point/icons/레벨.gif 로 지정되며 최고레벨과 아이콘셋이 다를 수 있으니 주의해주세요!';
$lang->point_name = '포인트 이름';

View file

@ -97,7 +97,7 @@ class pointAdminController extends point
// The highest level
$config->max_level = $args->max_level;
if($config->max_level>1000) $config->max_level = 1000;
if($config->max_level>10000) $config->max_level = 10000;
if($config->max_level<1) $config->max_level = 1;
// Set the level icon
@ -141,13 +141,15 @@ class pointAdminController extends point
$config->group_reset = $args->group_reset;
$config->group_ratchet = $args->group_ratchet;
// Per-level point configurations
unset($config->level_step);
$level_step = array_map('intval', explode(',', $args->level_step ?: '0'));
$config->level_step = array();
for($i=1;$i<=$config->max_level;$i++)
{
$key = "level_step_".$i;
$config->level_step[$i] = (int)$args->{$key};
$config->level_step[$i] = isset($level_step[$i - 1]) ? $level_step[$i - 1] : array_last($level_step);
}
// A function to calculate per-level points
$config->expression = $args->expression;

View file

@ -827,8 +827,8 @@ class pointController extends point
// Cache Settings
$cache_key = sprintf('member:point:%d', $member_srl);
$cache_path = sprintf('./files/member_extra_info/point/%s/', getNumberingPath($member_srl));
$cache_filename = sprintf('%s%d.cache.txt', $cache_path, $member_srl);
$cache_path = sprintf(RX_BASEDIR . 'files/member_extra_info/point/%s', getNumberingPath($member_srl));
$cache_filename = sprintf('%s/%d.cache.txt', $cache_path, $member_srl);
if (Rhymix\Framework\Cache::getDriverName() !== 'dummy')
{
Rhymix\Framework\Cache::set($cache_key, $point);
@ -840,7 +840,7 @@ class pointController extends point
}
getController('member')->_clearMemberCache($member_srl);
unset(self::$_member_point_cache[$member_srl]);
unset(parent::$_member_point_cache[$member_srl]);
return $output;
}

View file

@ -34,10 +34,10 @@ class pointModel extends point
$member_srl = abs($member_srl);
// Get from instance memory
if (!$from_db && isset(self::$_member_point_cache[$member_srl]))
if (!$from_db && isset(parent::$_member_point_cache[$member_srl]))
{
$exists = true;
return self::$_member_point_cache[$member_srl];
return parent::$_member_point_cache[$member_srl];
}
// Get from object cache
@ -53,12 +53,12 @@ class pointModel extends point
}
// Get from file cache
$cache_path = sprintf(_XE_PATH_ . 'files/member_extra_info/point/%s', getNumberingPath($member_srl));
$cache_filename = sprintf('%s%d.cache.txt', $cache_path, $member_srl);
$cache_path = sprintf(RX_BASEDIR . 'files/member_extra_info/point/%s', getNumberingPath($member_srl));
$cache_filename = sprintf('%s/%d.cache.txt', $cache_path, $member_srl);
if (!$from_db && file_exists($cache_filename))
{
$exists = true;
return self::$_member_point_cache[$member_srl] = intval(trim(Rhymix\Framework\Storage::read($cache_filename)));
return parent::$_member_point_cache[$member_srl] = intval(trim(Rhymix\Framework\Storage::read($cache_filename)));
}
// Get from the DB
@ -77,7 +77,7 @@ class pointModel extends point
}
// Save to cache
self::$_member_point_cache[$member_srl] = $point;
parent::$_member_point_cache[$member_srl] = $point;
if (Rhymix\Framework\Cache::getDriverName() !== 'dummy')
{
Rhymix\Framework\Cache::set($cache_key, $point);

View file

@ -15,13 +15,6 @@
<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">
<input type="number" min="0" max="{$system_max_level}" value="{$config->max_level}" name="max_level" id="max_level" />
<p class="x_help-block">{sprintf($lang->about_max_level, $system_max_level)}</p>
</div>
</div>
<div class="x_control-group">
<label for="point_name" class="x_control-label">{$lang->point_name}</label>
<div class="x_controls">
@ -29,6 +22,13 @@
<p class="x_help-block">{$lang->about_point_name}</p>
</div>
</div>
<div class="x_control-group">
<label for="max_level" class="x_control-label">{$lang->max_level}</label>
<div class="x_controls">
<input type="number" min="0" value="{$config->max_level}" name="max_level" id="max_level" />
<p class="x_help-block">{$lang->about_max_level}</p>
</div>
</div>
<div class="x_control-group">
<label for="level_icon" class="x_control-label">{$lang->level_icon}</label>
<div class="x_controls">
@ -196,7 +196,7 @@
<tr>
<td>1</td>
<td><img src="{getUrl()}modules/point/icons/{$config->level_icon}/1.gif" alt="1" /></td>
<td><label for="level_step_1" style="margin:0"><input type="number" id="level_step_1" name="level_step_1" value="{$config->level_step[1]}" style="width:120px;text-align:right" /> {$config->point_name}</label></td>
<td><label for="level_step_1" style="margin:0"><input type="number" id="level_step_1" class="level_step" value="{$config->level_step[1]}" style="width:120px;text-align:right" /> {$config->point_name}</label></td>
{@$point_group_item = $point_group[1]}
{@$title=array()}
<!--@if($point_group_item)-->
@ -220,12 +220,13 @@
<tr class="row{(($i-1)%2+1)}">
<td>{$i}</td>
<td><img src="{getUrl()}modules/point/icons/{$config->level_icon}/{$i}.gif" alt="{$i}" /></td>
<td><label for="level_step_{$i}" style="margin:0"><input type="number" id="level_step_{$i}" name="level_step_{$i}" value="{$config->level_step[$i]}" style="width:120px;text-align:right" /> {$config->point_name}</label></td>
<td><label for="level_step_{$i}" style="margin:0"><input type="number" id="level_step_{$i}" class="level_step" value="{$config->level_step[$i]}" style="width:120px;text-align:right" /> {$config->point_name}</label></td>
<td>{implode(', ', $title)}</td>
</tr>
<!--@end-->
</table>
<div class="x_clearfix">
<input id="level_step" name="level_step" type="hidden" value="{implode(',', $config->level_step)}" />
<span class="x_pull-right"><input class="x_btn x_btn-primary" type="submit" value="{$lang->cmd_save}" /></span>
</div>
</section>

View file

@ -6,6 +6,14 @@
jQuery(function($){
$('#point_module_config_form').on('submit', function() {
var level_step = [];
$(this).find('.level_step').each(function() {
level_step.push(parseInt($(this).val(), 10));
});
$('#level_step').val(level_step.join(','));
});
$('button.calc_point').click(function(){
var $this, form, elems, reset, el, fn, i=0;

View file

@ -517,7 +517,7 @@ class widgetController extends widget
$oEditorController = getController('editor');
$body = $oEditorController->transComponent($body);
$widget_content_header = sprintf('<div class="xe_content xe-widget-wrapper ' . $args->css_class . '" %sstyle="%s"><div style="%s">', $args->id, $style, $inner_style);
$widget_content_header = sprintf('<div class="rhymix_content xe_content xe-widget-wrapper ' . $args->css_class . '" %sstyle="%s"><div style="%s">', $args->id, $style, $inner_style);
$widget_content_body = $body;
$widget_content_footer = '</div></div>';
@ -568,7 +568,7 @@ class widgetController extends widget
$oWidgetController = getController('widget');
$widget_content_header = sprintf(
'<div class="xe_content widgetOutput ' . $args->css_class . '" widgetstyle="%s" style="%s" widget_padding_left="%s" widget_padding_right="%s" widget_padding_top="%s" widget_padding_bottom="%s" widget="widgetContent" document_srl="%d" %s>'.
'<div class="rhymix_content xe_content widgetOutput ' . $args->css_class . '" widgetstyle="%s" style="%s" widget_padding_left="%s" widget_padding_right="%s" widget_padding_top="%s" widget_padding_bottom="%s" widget="widgetContent" document_srl="%d" %s>'.
'<div class="widgetResize"></div>'.
'<div class="widgetResizeLeft"></div>'.
'<div class="widgetBorder">'.