mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 17:21:39 +09:00
Merge branch 'rhymix:master' into master
This commit is contained in:
commit
0739f82c49
28 changed files with 160 additions and 58 deletions
|
|
@ -1,7 +1,7 @@
|
|||
actor: Tester
|
||||
paths:
|
||||
tests: tests
|
||||
log: tests/_output
|
||||
output: tests/_output
|
||||
data: tests/_data
|
||||
helpers: tests/_support
|
||||
bootstrap: _bootstrap.php
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ a img {
|
|||
} @else {
|
||||
word-break: $default_word_break;
|
||||
word-wrap: break-word;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
p {
|
||||
margin: 0 0 $default_paragraph_spacing 0;
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ return array(
|
|||
'homepage' => true,
|
||||
'multidomain' => true,
|
||||
'seo' => true,
|
||||
'syndication' => true,
|
||||
'trackback' => true,
|
||||
),
|
||||
|
||||
|
|
|
|||
|
|
@ -453,8 +453,8 @@ class Formatter
|
|||
}
|
||||
if ($import_type === 'scss')
|
||||
{
|
||||
$import_content = preg_replace('!//.*?\n!s', '', $import_content);
|
||||
$import_content = preg_replace('![\r\n]+!', ' ', $import_content);
|
||||
$import_content = preg_replace('@(?<!:)//.*?\n@s', '', $import_content);
|
||||
$import_content = preg_replace('@[\r\n]@', ' ', $import_content);
|
||||
}
|
||||
return trim($import_content);
|
||||
}, $content);
|
||||
|
|
|
|||
|
|
@ -91,7 +91,11 @@ class HTTP
|
|||
$target_dir = dirname($target_filename);
|
||||
if (!Storage::isDirectory($target_dir) && !Storage::createDirectory($target_dir))
|
||||
{
|
||||
return false;
|
||||
return new Helpers\HTTPHelper(new Exception('Cannot create directory: ' . $target_dir));
|
||||
}
|
||||
if (!Storage::isWritable($target_dir) && (!Storage::exists($target_filename) || !Storage::isWritable($target_filename)))
|
||||
{
|
||||
return new Helpers\HTTPHelper(new Exception('No permission to write file: ' . $target_filename));
|
||||
}
|
||||
|
||||
// Pass to request() with appropriate settings for the filename.
|
||||
|
|
|
|||
|
|
@ -205,6 +205,7 @@
|
|||
var menu_id = params.menu_id;
|
||||
var menus = ret_obj.menus;
|
||||
var html = "";
|
||||
var isMobile = navigator.userAgent.match(/mobile/i);
|
||||
|
||||
if(this.loaded_popup_menus[menu_id]) {
|
||||
html = this.loaded_popup_menus[menu_id];
|
||||
|
|
@ -234,7 +235,11 @@
|
|||
var matches = [];
|
||||
/* if(icon) styleText = " style=\"background-image:url('"+icon+"')\" "; */
|
||||
if (target === 'popup') {
|
||||
click_str = 'onclick="popopen(this.href, \''+target+'\'); return false;"';
|
||||
if (isMobile) {
|
||||
click_str = 'onclick="openFullScreenIframe(this.href, \''+target+'\'); return false;"';
|
||||
} else {
|
||||
click_str = 'onclick="popopen(this.href, \''+target+'\'); return false;"';
|
||||
}
|
||||
classText += 'popup ';
|
||||
} else if (target === 'javascript') {
|
||||
click_str = 'onclick="'+url+'; return false; "';
|
||||
|
|
@ -737,6 +742,23 @@ function zbxe_folder_close(id) {
|
|||
jQuery("#folder_"+id).hide();
|
||||
}
|
||||
|
||||
/**
|
||||
* 팝업창 대신 전체 화면 iframe을 띄우는 함수
|
||||
*/
|
||||
function openFullScreenIframe(url, target) {
|
||||
const iframe = document.createElement('iframe');
|
||||
const iframe_sequence = String(Date.now()) + Math.round(Math.random() * 1000000);
|
||||
iframe.setAttribute('id', '_rx_iframe_' + iframe_sequence);
|
||||
iframe.setAttribute('name', target || ('_rx_iframe_' + iframe_sequence))
|
||||
iframe.setAttribute('src', url + '&iframe_sequence=' + iframe_sequence);
|
||||
iframe.setAttribute('width', '100%');
|
||||
iframe.setAttribute('height', '100%');
|
||||
iframe.setAttribute('frameborder', '0');
|
||||
iframe.setAttribute('scrolling', 'no');
|
||||
iframe.setAttribute('style', 'position:fixed; top:0; left:0; width:100%; height:100%; z-index:999999999; background-color: #fff; overflow-y:auto');
|
||||
$(document.body).append(iframe);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 팝업의 경우 내용에 맞춰 현 윈도우의 크기를 조절해줌
|
||||
* 팝업의 내용에 맞게 크기를 늘리는 것은... 쉽게 되지는 않음.. ㅡ.ㅜ
|
||||
|
|
@ -930,7 +952,12 @@ var objForSavedDoc = null;
|
|||
function doDocumentLoad(obj) {
|
||||
// 저장된 게시글 목록 불러오기
|
||||
objForSavedDoc = obj.form;
|
||||
popopen(request_uri.setQuery('module','document').setQuery('act','dispTempSavedList'));
|
||||
var popup_url = request_uri.setQuery('module','document').setQuery('act','dispTempSavedList');
|
||||
if (navigator.userAgent.match(/mobile/i)) {
|
||||
openFullScreenIframe(popup_url);
|
||||
} else {
|
||||
popopen(popup_url);
|
||||
}
|
||||
}
|
||||
|
||||
/* 저장된 게시글의 선택 */
|
||||
|
|
@ -940,7 +967,7 @@ function doDocumentSelect(document_srl, module) {
|
|||
return;
|
||||
}
|
||||
|
||||
if(module===undefined) {
|
||||
if(module === undefined) {
|
||||
module = 'document';
|
||||
}
|
||||
|
||||
|
|
@ -961,7 +988,7 @@ function doDocumentSelect(document_srl, module) {
|
|||
opener.location.href = url;
|
||||
break;
|
||||
default :
|
||||
opener.location.href = opener.current_url.setQuery('document_srl', document_srl).setQuery('act', 'dispBoardWrite');
|
||||
opener.location.href = opener.current_url.setQuery('act', 'dispBoardWrite').setQuery('document_srl', document_srl);
|
||||
break;
|
||||
}
|
||||
window.close();
|
||||
|
|
|
|||
|
|
@ -1,12 +1,41 @@
|
|||
@version(2)
|
||||
@load('../../modules/admin/tpl/css/admin.bootstrap.css')
|
||||
@load('../../modules/admin/tpl/css/admin.css')
|
||||
|
||||
<div class="x popup">
|
||||
{!! $content !!}
|
||||
</div>
|
||||
<script>
|
||||
jQuery(function() {
|
||||
setTimeout(setFixedPopupSize, 500);
|
||||
});
|
||||
var _isPoped = true;
|
||||
</script>
|
||||
|
||||
@if (isset($iframe_sequence) && preg_match('/^\w+$/', $iframe_sequence))
|
||||
<script>
|
||||
const iframe_sequence = '{{ $iframe_sequence }}';
|
||||
window.opener = window.parent;
|
||||
window.close = function() {
|
||||
const iframe = parent.document.getElementById('_rx_iframe_' + iframe_sequence);
|
||||
if (iframe) {
|
||||
iframe.remove();
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.x.popup {
|
||||
width: 100vw; height: 100vh;
|
||||
display: flex; flex-direction: column;
|
||||
}
|
||||
.x.popup > form {
|
||||
width: 100vw; height: 100vh;
|
||||
display: flex; flex-direction: column;
|
||||
margin: 0 !important;
|
||||
}
|
||||
.x_modal-header { flex: 0 0 auto; }
|
||||
.x_modal-body { flex: 1; overflow: scroll; }
|
||||
.x_modal-footer { padding-bottom: 24px !important; }
|
||||
</style>
|
||||
@else
|
||||
<script>
|
||||
jQuery(function() {
|
||||
setTimeout(setFixedPopupSize, 500);
|
||||
});
|
||||
var _isPoped = true;
|
||||
</script>
|
||||
@endif
|
||||
|
|
|
|||
|
|
@ -914,6 +914,7 @@ class BoardView extends Board
|
|||
$oDocument->setDocument($document_srl);
|
||||
|
||||
$savedDoc = ($oDocument->get('module_srl') == $oDocument->get('member_srl'));
|
||||
$oDocument->add('origin_module_srl', $oDocument->get('module_srl'));
|
||||
$oDocument->add('module_srl', $this->module_srl);
|
||||
|
||||
if($oDocument->isExists())
|
||||
|
|
|
|||
|
|
@ -12,8 +12,9 @@
|
|||
<input type="hidden" name="xe_validator_id" value="modules/comment/tpl/1" />
|
||||
<div class="x_modal-header">
|
||||
<h1>{$lang->improper_comment_declare} <!--@if($type == 'cancel')-->{$lang->cmd_cancel}<!--@end--></h1>
|
||||
<a class="close_window" href="javascript:window.close()">×</a>
|
||||
</div>
|
||||
<div class="x_modal-body x_form-horizontal" style="max-height:none">
|
||||
<div class="x_modal-body">
|
||||
<blockquote>
|
||||
<section class="target_article">
|
||||
<h1>{$lang->replies}</h1>
|
||||
|
|
@ -32,11 +33,11 @@
|
|||
</div>
|
||||
</div>
|
||||
<!--@end-->
|
||||
<div class="x_modal-footer">
|
||||
<span class="x_btn-group x_pull-right">
|
||||
<button type="submit" class="x_btn x_btn-primary"><!--@if($type == 'cancel')-->{$lang->cmd_cancel_declare}<!--@else-->{$lang->cmd_submit}<!--@end--></button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_modal-footer">
|
||||
<span class="x_btn-group x_pull-right">
|
||||
<button type="submit" class="x_btn x_btn-primary"><!--@if($type == 'cancel')-->{$lang->cmd_cancel_declare}<!--@else-->{$lang->cmd_submit}<!--@end--></button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
<script cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/comment/tpl/1'">
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ class counterAdminView extends counter
|
|||
}
|
||||
|
||||
/**
|
||||
* Admin page
|
||||
* Admin page
|
||||
*
|
||||
* @return Object
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ class counter extends ModuleObject
|
|||
*/
|
||||
function moduleInstall()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -30,7 +30,7 @@ class counter extends ModuleObject
|
|||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -55,7 +55,7 @@ class counter extends ModuleObject
|
|||
*/
|
||||
function recompileCache()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,11 +70,11 @@ class counterController extends counter
|
|||
{
|
||||
$oDB = DB::getInstance();
|
||||
$oDB->begin();
|
||||
|
||||
|
||||
$args = new stdClass();
|
||||
$args->regdate = [0, $date = date('Ymd')];
|
||||
executeQuery('counter.updateCounterUnique', $args);
|
||||
|
||||
|
||||
$affected_rows = $oDB->getAffectedRows();
|
||||
if ($affected_rows == 1)
|
||||
{
|
||||
|
|
@ -88,9 +88,9 @@ class counterController extends counter
|
|||
$args->regdate = 0;
|
||||
executeQuery('counter.insertTodayStatus', $args);
|
||||
}
|
||||
|
||||
|
||||
$this->insertLog();
|
||||
|
||||
|
||||
$oDB->commit();
|
||||
}
|
||||
|
||||
|
|
@ -119,15 +119,15 @@ class counterController extends counter
|
|||
*/
|
||||
public function insertTotalStatus()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
public function deleteSiteCounterLogs()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
/* End of file counter.controller.php */
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ class counterModel extends counter
|
|||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
$args = new stdClass();
|
||||
$args->regdate = $date;
|
||||
$args->ipaddress = \RX_CLIENT_IP;
|
||||
|
|
@ -39,24 +39,24 @@ class counterModel extends counter
|
|||
{
|
||||
$_SESSION['counter_logged'][$date] = true;
|
||||
}
|
||||
|
||||
|
||||
return $iplogged;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a row of today's counter status exists
|
||||
* Check if a row of today's counter status exists
|
||||
*
|
||||
* @deprecated
|
||||
*/
|
||||
public static function isInsertedTodayStatus()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get access statistics for a given date
|
||||
*
|
||||
* @param mixed $selected_date Date(YYYYMMDD) list
|
||||
* @param mixed $selected_date Date(YYYYMMDD) list
|
||||
* @return Object
|
||||
*/
|
||||
public static function getStatus($selected_date)
|
||||
|
|
@ -212,7 +212,7 @@ class counterModel extends counter
|
|||
|
||||
$status->max = $max;
|
||||
$status->sum = $sum;
|
||||
|
||||
|
||||
return $status;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
<input type="hidden" name="xe_validator_id" value="modules/document/tpl/1" />
|
||||
<div class="x_modal-header">
|
||||
<h1>{$lang->improper_document_declare} <!--@if($type == 'cancel')-->{$lang->cmd_cancel}<!--@end--></h1>
|
||||
<a class="close_window" href="javascript:window.close()">×</a>
|
||||
</div>
|
||||
<div class="x_modal-body x_form-horizontal" style="max-height:none">
|
||||
<blockquote>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
{@Context::addMetaTag('viewport', 'width=device-width', FALSE);}
|
||||
<div>
|
||||
<div class="x_modal-header">
|
||||
<h1>{$lang->cmd_view_saved_document}</h1>
|
||||
<a class="close_window" href="javascript:window.close()">×</a>
|
||||
</div>
|
||||
<div class="x_modal-body">
|
||||
<!-- 목록 -->
|
||||
|
|
@ -41,6 +43,7 @@
|
|||
<a href="{getUrl('page',$page_navigation->last_page,'module_srl','')}" class="direction">{$lang->last_page} ›</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
<div class="x_modal-header">
|
||||
<h1>{$component_info->title}</h1>
|
||||
<a class="close_window" href="javascript:window.close()">×</a>
|
||||
</div>
|
||||
|
||||
<div class="x_modal-body">
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
{@Context::addMetaTag('viewport', 'width=device-width', FALSE);}
|
||||
<div class="x_modal-header">
|
||||
<h1>{$component_info->title}</h1>
|
||||
<a class="close_window" href="javascript:window.close()">×</a>
|
||||
</div>
|
||||
<div class="x_modal-body">
|
||||
<form action="./" method="get" onSubmit="return false" id="fo" class="x_form-horizontal">
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
{@Context::addMetaTag('viewport', 'width=device-width', FALSE);}
|
||||
<div class="x_modal-header">
|
||||
<h1>{$component_info->title}</h1>
|
||||
<a class="close_window" href="javascript:window.close()">×</a>
|
||||
</div>
|
||||
<div class="x_modal-body">
|
||||
<form action="./" method="get" onSubmit="return false" id="fo" class="x_form-horizontal">
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
</script>
|
||||
<div class="x_modal-header">
|
||||
<h1>{$component_info->title}</h1>
|
||||
<a class="close_window" href="javascript:window.close()">×</a>
|
||||
</div>
|
||||
<div class="x_modal-body">
|
||||
<form action="./" method="post" id="fo_component" onSubmit="procFilter(this, insert_poll); return false;" class="x_form-horizontal">
|
||||
|
|
@ -89,12 +90,12 @@
|
|||
<th scope="row"><div>{$lang->poll_title}</div></th>
|
||||
<td><input type="text" name="title_tidx" /></td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->poll_item} 1</div></th>
|
||||
<td><input type="text" name="item_tidx_1" /></td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->poll_item} 2</div></th>
|
||||
<td><input type="text" name="item_tidx_2" /></td>
|
||||
|
|
|
|||
|
|
@ -55,12 +55,23 @@ class EditorView extends Editor
|
|||
{
|
||||
// add a css file
|
||||
Context::loadFile($this->module_path."tpl/css/editor.css", true);
|
||||
|
||||
// List variables
|
||||
$editor_sequence = Context::get('editor_sequence');
|
||||
$component = Context::get('component');
|
||||
$iframe_sequence = Context::get('iframe_sequence');
|
||||
if (empty($editor_sequence) || !ctype_alnum($editor_sequence))
|
||||
{
|
||||
return new BaseObject(-1, 'msg_invalid_request');
|
||||
}
|
||||
if (isset($iframe_sequence) && !ctype_alnum($iframe_sequence))
|
||||
{
|
||||
return new BaseObject(-1, 'msg_invalid_request');
|
||||
}
|
||||
|
||||
$component = Context::get('component');
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$site_srl = (int)$site_module_info->site_srl;
|
||||
|
||||
// Get compoenet object
|
||||
$oComponent = EditorModel::getComponentObject($component, $editor_sequence, $site_srl);
|
||||
if(!$oComponent->toBool())
|
||||
|
|
|
|||
|
|
@ -87,7 +87,6 @@ $(function() {
|
|||
|
||||
// Patch for iOS: https://github.com/rhymix/rhymix/issues/932
|
||||
if (config.ios_patch) {
|
||||
settings.loadXeComponent = false;
|
||||
$('head').append('<style>'
|
||||
+ '.cke_wysiwyg_div { padding: 8px !important; }'
|
||||
+ 'html { min-width: unset; min-height: unset; width: unset; height: unset; margin: unset; padding: unset; }'
|
||||
|
|
@ -102,7 +101,7 @@ $(function() {
|
|||
{ name: 'styles', items: [ 'Font', 'FontSize', '-', 'Bold', 'Italic', 'Underline', 'Strike', 'TextColor', 'BGColor' ] },
|
||||
{ name: 'paragraph', items: [ 'JustifyLeft', 'JustifyCenter', 'JustifyRight' ] },
|
||||
{ name: 'clipboard', items: [ 'Cut', 'Copy', 'Paste' ] },
|
||||
{ name: 'insert', items: [ 'Link', 'Image', 'Table' ] },
|
||||
{ name: 'insert', items: [ 'Link', 'Image', 'Table', 'poll_maker' ] },
|
||||
{ name: 'tools', items: [ 'Maximize', '-', 'Source' ] }
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -210,7 +210,11 @@ function openComponent(component_name, editor_sequence, manual_url) {
|
|||
if(typeof(manual_url)!="undefined" && manual_url) popup_url += "&manual_url="+escape(manual_url);
|
||||
if(typeof(current_mid)!="undefined" && current_mid) popup_url += "&mid="+escape(current_mid);
|
||||
|
||||
popopen(popup_url, 'editorComponent');
|
||||
if (navigator.userAgent.match(/mobile/i)) {
|
||||
openFullScreenIframe(popup_url, 'editorComponent');
|
||||
} else {
|
||||
popopen(popup_url, 'editorComponent');
|
||||
}
|
||||
}
|
||||
|
||||
// 더블클릭 이벤트 발생시에 본문내에 포함된 컴포넌트를 찾는 함수
|
||||
|
|
@ -238,7 +242,12 @@ function editorSearchComponent(evt) {
|
|||
editorPrevNode = obj;
|
||||
|
||||
if(editorMode[editor_sequence]=='html') return;
|
||||
popopen(request_uri+"?module=widget&act=dispWidgetGenerateCodeInPage&selected_widget="+widget+"&module_srl="+editor_sequence,'GenerateCodeInPage');
|
||||
var popup_url = request_uri+"?module=widget&act=dispWidgetGenerateCodeInPage&selected_widget="+widget+"&module_srl="+editor_sequence
|
||||
if (navigator.userAgent.match(/mobile/i)) {
|
||||
openFullScreenIframe(popup_url, 'GenerateCodeInPage');
|
||||
} else {
|
||||
popopen(popup_url, 'GenerateCodeInPage');
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1 @@
|
|||
<div>
|
||||
{$popup_content|noescape}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -391,7 +391,7 @@ class importerAdminController extends importer
|
|||
$obj->signature = base64_decode($xmlObj->member->signature->body);
|
||||
$obj->regdate = base64_decode($xmlObj->member->regdate->body);
|
||||
$obj->last_login = base64_decode($xmlObj->member->last_login->body);
|
||||
|
||||
$obj->extra_vars = new stdClass();
|
||||
if($xmlObj->member->extra_vars)
|
||||
{
|
||||
foreach($xmlObj->member->extra_vars as $key => $val)
|
||||
|
|
@ -416,7 +416,6 @@ class importerAdminController extends importer
|
|||
{
|
||||
$obj->email_address = $obj->user_id . '@example.com';
|
||||
}
|
||||
list($obj->email_id, $obj->email_host) = explode('@', $obj->email);
|
||||
// Set the mailing option
|
||||
if($obj->allow_mailing!='Y') $obj->allow_mailing = 'N';
|
||||
// Set the message option
|
||||
|
|
@ -426,10 +425,8 @@ class importerAdminController extends importer
|
|||
if(!$obj->last_login) $obj->last_login = $obj->regdate;
|
||||
// Set the list order
|
||||
$obj->list_order = -1 * $obj->member_srl;
|
||||
// List extra vars
|
||||
$extra_vars = $obj->extra_vars;
|
||||
unset($obj->extra_vars);
|
||||
$obj->extra_vars = serialize($extra_vars);
|
||||
// Serialize extra vars
|
||||
$obj->extra_vars = serialize($obj->extra_vars);
|
||||
// Check if the same user ID exists
|
||||
$args = new stdClass;
|
||||
$args->user_id = $obj->user_id;
|
||||
|
|
@ -455,9 +452,18 @@ class importerAdminController extends importer
|
|||
$obj->email_address = $obj->user_id . '@example.com';
|
||||
}
|
||||
|
||||
list($obj->email_id, $obj->email_host) = explode('@', $obj->email_address);
|
||||
if (!$obj->email_id)
|
||||
{
|
||||
$obj->email_id = '';
|
||||
}
|
||||
if (!$obj->email_host)
|
||||
{
|
||||
$obj->email_host = '';
|
||||
}
|
||||
|
||||
// Add a member
|
||||
$output = executeQuery('member.insertMember', $obj);
|
||||
|
||||
if($output->toBool() && !($obj->password))
|
||||
{
|
||||
// Send a mail telling the user to reset his password.
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
<div class="x_modal-header">
|
||||
<h1>{$lang->cmd_spammer}</h1>
|
||||
<a class="close_window" href="javascript:window.close()">×</a>
|
||||
</div>
|
||||
|
||||
<form action="./" method="post" id="fo_management" onsubmit="return doSpammerManage();">
|
||||
|
|
@ -79,14 +80,14 @@ function progressSpammerManage( data ) {
|
|||
setTimeout( function() {
|
||||
var info = data.progress + '%';
|
||||
jQuery('#progressBar').width(data.progress + '%');
|
||||
|
||||
|
||||
if( data.total_count != undefined && parseInt( data.total_count ) > 0 ) {
|
||||
var doc_count = parseInt( data.total_count ) - parseInt( data.remain_count );
|
||||
info = info + ' (' + doc_count + ' / ' + data.total_count + ')';
|
||||
}
|
||||
|
||||
|
||||
jQuery('#progress-info').text( info );
|
||||
|
||||
|
||||
if(data.remain_count <= 0 || bSpammerManageProc === false) {
|
||||
jQuery('.stop').hide();
|
||||
if(data.remain_count <= 0) {
|
||||
|
|
@ -96,7 +97,7 @@ function progressSpammerManage( data ) {
|
|||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
doSpammerManage( data );
|
||||
}, 500 );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,9 @@
|
|||
.inc1 {
|
||||
margin: 5px;
|
||||
}
|
||||
.inc1 > a[href^="https://rhymix.org/abc"] {
|
||||
text-decoration: none;
|
||||
}
|
||||
.inc2 {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
@charset "UTF-8";
|
||||
@import url("//fonts.googleapis.com/css?family=Raleway:700,400");@import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,700;1,400;1,700&display=swap");.inc1{margin:5px}.inc2{padding-left:10px}.partial1{display:flex}.partial2{display:none}.rhymix{color:#123456;background:url("../_data/formatter/foo/bar.jpg")}.rhymix span{font-family:"테스트", Raleway, monospace;margin:320px}/*# sourceMappingURL=scss.target2.map */
|
||||
@import url("//fonts.googleapis.com/css?family=Raleway:700,400");@import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,700;1,400;1,700&display=swap");.inc1{margin:5px}.inc1>a[href^="https://rhymix.org/abc"]{text-decoration:none}.inc2{padding-left:10px}.partial1{display:flex}.partial2{display:none}.rhymix{color:#123456;background:url("../_data/formatter/foo/bar.jpg")}.rhymix span{font-family:"테스트", Raleway, monospace;margin:320px}/*# sourceMappingURL=scss.target2.map */
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
.inc1 {
|
||||
margin: $setting;
|
||||
& > a[href^="https://rhymix.org/abc"] {
|
||||
text-decoration:none;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue