Merge branch 'rhymix:master' into master

This commit is contained in:
Lastorder 2026-01-08 20:28:49 -08:00 committed by GitHub
commit 2efe733d5f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 67 additions and 22 deletions

View file

@ -9,6 +9,8 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
<form id="fo_list" action="./" method="post">
<table id="commentListTable" class="x_table x_table-striped x_table-hover dsTg">
<caption>
<a href="{getUrl('search_target', $search_target, 'search_keyword', $search_keyword)}" cond="!empty($search_target) && $search_target !== 'is_secret' && !empty($search_keyword)" class="active">{$lang->cmd_search}({number_format($total_count)})</a>
<i>|</i>
<a href="{getUrl('','module','admin','act','dispCommentAdminList','Y')}" class="active"|cond="$search_keyword == ''">{$lang->all}<block cond="$search_keyword == ''">({number_format($total_count)})</block></a>
<i>|</i>
<a href="{getUrl('search_target','is_secret','search_keyword','N')}" class="active"|cond="$search_target == 'is_secret' && $search_keyword == 'N'">{$secret_name_list['N']}<block cond="$search_target == 'is_secret' && $search_keyword == 'N'">({number_format($total_count)})</block></a>

View file

@ -894,7 +894,7 @@ class DocumentController extends Document
if (!$manual_inserted)
{
$ev_output = $extra_item->validate($value);
if ($ev_output && !$output->toBool())
if ($ev_output && !$ev_output->toBool())
{
$oDB->rollback();
return $ev_output;

View file

@ -11,6 +11,8 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
<input type="hidden" name="page" value="{$page}" />
<table id="documentListTable" class="x_table x_table-striped x_table-hover dsTg">
<caption>
<a href="{getUrl('search_target', $search_target, 'search_keyword', $search_keyword)}" cond="!empty($search_target) && $search_target !== 'is_secret' && !empty($search_keyword)" class="active">{$lang->cmd_search}({number_format($total_count)})</a>
<i>|</i>
<a href="{getUrl('', 'module', 'admin', 'act', 'dispDocumentAdminList')}" class="active"|cond="$search_keyword == ''">{$lang->all}<block cond="$search_keyword == ''">({number_format($total_count)})</block></a>
<i>|</i>
<a href="{getUrl('search_target', 'is_secret', 'search_keyword', 'N')}" class="active"|cond="$search_target == 'is_secret' && $search_keyword == 'N'">{$status_name_list['PUBLIC']}<block cond="$search_target == 'is_secret' && $search_keyword == 'N'">({number_format($total_count)})</block></a>

View file

@ -10,8 +10,8 @@
<caption>Total : {number_format($total_count)}, Page {number_format($page)}/{number_format($total_page)}</caption>
<thead>
<tr>
<th class="title">{$lang->date}</th>
<th class="title">{$lang->title}</th>
<th class="title">{$lang->date}</th>
<th class="title" style="width:60px">{$lang->cmd_select}</th>
<th class="title" style="width:60px">{$lang->cmd_delete}</th>
</tr>
@ -19,14 +19,18 @@
<tbody>
<!--@foreach($document_list as $no => $val)-->
<tr>
<td>{$val->getRegdate("Y-m-d H:i:s")}</td>
<td>
<a href="#" class="toggle_content">{$val->getTitle()}</a>
<div id="saved_document_{$val->document_srl}" class="saved_content" style="display:none;margin:20px -120px 0 0">{$val->getContent(false)}</div>
<a href="#" class="toggle_content" data-document-srl="{$val->document_srl}">{$val->getTitle()}</a>
</td>
<td>{$val->getRegdate("Y-m-d H:i:s")}</td>
<td><a href="#" class="btn btn_select_temp_saved" data-document-srl="{$val->document_srl}" data-document-type="{$val->getDocumentType()}">{$lang->cmd_select}</a></td>
<td><a href="#" class="btn btn_delete_temp_saved" data-document-srl="{$val->document_srl}">{$lang->cmd_delete}</a></td>
</tr>
<tr id="saved_document_{$val->document_srl}" class="saved_content" style="display:none">
<td colspan="4">
{$val->getSummary(200)}
</td>
</tr>
<!--@end-->
</tbody>
</table>
@ -49,7 +53,8 @@
$(function() {
$('.toggle_content').on('click', function(event) {
event.preventDefault();
$(this).next('.saved_content').toggle();
var document_srl = $(this).data('documentSrl');
$('#saved_document_' + document_srl).toggle();
setFixedPopupSize();
});
$('.btn_select_temp_saved').on('click', function(event) {

View file

@ -189,6 +189,8 @@ class FileAdminView extends File
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('page_navigation', $output->page_navigation);
Context::set('isvalid', $args->isvalid);
// Set a template
$security = new Security();
$security->encodeHTML('file_list..');

View file

@ -12,7 +12,9 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
<input type="hidden" name="module" value="file" />
<table id="fileListTable" class="x_table x_table-striped x_table-hover">
<caption>
<a href="{getUrl('', 'module', 'admin', 'act', 'dispFileAdminList')}" class="active"|cond="!$isvalid">{$lang->all}<block cond="!$isvalid">({number_format($total_count)})</block></a>
<a href="{getUrl('search_target', $search_target, 'search_keyword', $search_keyword)}" cond="!empty($search_target) && !empty($search_keyword)" class="active">{$lang->cmd_search}({number_format($total_count)})</a>
<i>|</i>
<a href="{getUrl('', 'module', 'admin', 'act', 'dispFileAdminList')}" class="active"|cond="empty($isvalid) && empty($search_target) && empty($search_keyword)">{$lang->all}<block cond="empty($isvalid) && empty($search_target) && empty($search_keyword)">({number_format($total_count)})</block></a>
<i>|</i>
<a href="{getUrl('isvalid', 'Y')}" class="active"|cond="$isvalid == 'Y'">{$lang->is_valid}<block cond="$isvalid == 'Y'">({number_format($total_count)})</block></a>
<i>|</i>

View file

@ -341,7 +341,8 @@ $lang->set_manage_id = 'Separated by line breaks.';
$lang->count_manage_id = 'There are <span class="_deniedIDCount">%s</span> prohibited ID.';
$lang->count_manage_nick_name = 'There are <span class="_deniedNickNameCount">%s</span> prohibited nick name.';
$lang->user_list = 'Member List';
$lang->cmd_show_all_member = 'All Member';
$lang->cmd_show_all_member = 'All Members';
$lang->cmd_show_searched_member = 'Searched Members';
$lang->cmd_show_super_admin_member = 'Super Admin';
$lang->cmd_show_site_admin_member = 'Site Admin';
$lang->approval = 'Approval';

View file

@ -346,6 +346,7 @@ $lang->count_manage_id = '<span class="_deniedIDCount">%s</span>개의 금지
$lang->count_manage_nick_name = '<span class="_deniedNickNameCount">%s</span>개의 금지 닉네임이 있습니다.';
$lang->user_list = '회원 목록';
$lang->cmd_show_all_member = '모든 회원';
$lang->cmd_show_searched_member = '검색된 회원';
$lang->cmd_show_super_admin_member = '최고 관리자';
$lang->cmd_show_site_admin_member = '사이트 관리자';
$lang->approval = '승인';

View file

@ -14,7 +14,7 @@
<form action="" method="post">
<table id="memberList" class="x_table x_table-striped x_table-hover dsTg">
<caption>
<a href="{getUrl('filter_type', '', 'page', '')}" class="active"|cond="!$filter_type">{$lang->cmd_show_all_member}<block cond="!$filter_type">({$total_count})</block></a>
<a href="{getUrl('filter_type', '', 'page', '')}" class="active"|cond="empty($filter_type)">{empty($search_keyword) ? $lang->cmd_show_all_member : $lang->cmd_show_searched_member}<block cond="empty($filter_type)">({$total_count})</block></a>
<i>|</i>
<a href="{getUrl('filter_type', 'admin', 'page', '')}" class="active"|cond="$filter_type=='admin'">{$lang->cmd_show_super_admin_member}<block cond="$filter_type=='admin'">({$total_count})</block></a>
<i>|</i>

View file

@ -337,8 +337,12 @@ class SpamfilterController extends Spamfilter
if (count($target_actions))
{
$captcha_class = 'Rhymix\\Modules\\Spamfilter\\Captcha\\' . $config->captcha->type;
$captcha_class::init($config->captcha);
if (!class_exists($captcha_class))
{
return;
}
$captcha_class::init($config->captcha);
if (strncasecmp('proc', $obj->act, 4) === 0)
{
$captcha_class::check();

View file

@ -218,7 +218,7 @@ class SpamfilterModel extends Spamfilter
{
$config = ModuleModel::getModuleConfig('spamfilter');
$user = Context::get('logged_info');
if (!isset($config) || empty($config->captcha) || empty($config->captcha->type) || empty($config->captcha->site_key) || empty($config->captcha->secret_key))
if (!isset($config) || empty($config->captcha) || empty($config->captcha->type) || $config->captcha->type === 'none' || empty($config->captcha->site_key) || empty($config->captcha->secret_key))
{
return false;
}
@ -253,7 +253,7 @@ class SpamfilterModel extends Spamfilter
public static function getCaptcha($target_action = null)
{
$config = ModuleModel::getModuleConfig('spamfilter');
if (!isset($config) || empty($config->captcha) || empty($config->captcha->type) || empty($config->captcha->site_key) || empty($config->captcha->secret_key))
if (!isset($config) || empty($config->captcha) || empty($config->captcha->type) || $config->captcha->type === 'none' || empty($config->captcha->site_key) || empty($config->captcha->secret_key))
{
return null;
}
@ -285,7 +285,7 @@ class SpamfilterModel extends Spamfilter
public static function checkCaptchaResponse(?string $response = null): void
{
$config = ModuleModel::getModuleConfig('spamfilter');
if (!isset($config) || empty($config->captcha) || empty($config->captcha->type) || empty($config->captcha->site_key) || empty($config->captcha->secret_key))
if (!isset($config) || empty($config->captcha) || empty($config->captcha->type) || $config->captcha->type === 'none' || empty($config->captcha->site_key) || empty($config->captcha->secret_key))
{
throw new Exception('msg_recaptcha_not_configured');
}