fix(frontend): keep asset and homepage filters in DOM

This commit is contained in:
kate522 committed 2026-09-03 19:21:24 +08:00
1 parent a0adddce59
commit 7308f055c7
23 files changed
+362 -305

No files matched your search

-2
View File
@@ -114,9 +114,7 @@ class GlobalController extends ControllerBase {
'page' => ['type' => 'integer', 'default' => 1, 'sanitize_callback' => 'absint'],
'per_page' => ['type' => 'integer', 'default' => 10, 'sanitize_callback' => 'absint'],
'sort' => ['type' => 'string', 'default' => 'modified', 'sanitize_callback' => 'sanitize_text_field'],
'page_url' => ['type' => 'string', 'default' => '', 'sanitize_callback' => 'esc_url_raw'],
'panel' => ['type' => 'string', 'default' => 'latest', 'sanitize_callback' => 'sanitize_key'],
'source' => ['type' => 'string', 'default' => 'home', 'sanitize_callback' => 'sanitize_key'],
'tab_orderby' => ['type' => 'string', 'default' => '', 'sanitize_callback' => 'sanitize_key'],
],
]);
-1
View File
@@ -479,7 +479,6 @@ trait ScriptsPart1c {
'commentPaginationMode' => class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::get_comment_pagination_mode() : 'numbered',
'homepagePostsPerPage' => function_exists('aksrt_homepage_get_tab_posts_per_page') ? aksrt_homepage_get_tab_posts_per_page() : (int) get_option('posts_per_page'),
'homepageDefaultSort' => class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::homepage_default_sort() : 'modified',
'homepageSortAjax' => class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::homepage_sort_ajax_enabled() : true,
'homepageStickyTabs' => class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::homepage_sticky_tabs_enabled() : true,
'homePostsListEnabled' => !class_exists('\AKSRT\Settings\Settings') || \AKSRT\Settings\Settings::home_posts_list_enabled(),
'homeListSortEnabled' => !class_exists('\AKSRT\Settings\Settings') || \AKSRT\Settings\Settings::home_list_sort_enabled(),
-4
View File
@@ -175,10 +175,6 @@ class HomeCms {
return $settings['home_list1_orderby_option']['lists'][0] ?? 'modified';
}
public static function homepage_sort_ajax_enabled(): bool {
return true;
}
public static function homepage_sticky_tabs_enabled(): bool {
return true;
}
-7
View File
@@ -68,13 +68,6 @@ trait HomepageReader {
return HomeCms::homepage_default_sort();
}
/**
* Whether the homepage sortbar should refresh through AJAX.
*/
public static function homepage_sort_ajax_enabled(): bool {
return HomeCms::homepage_sort_ajax_enabled();
}
/**
* Whether the homepage tabs should use sticky/affix behaviour.
*/
+24 -1
View File
@@ -46,6 +46,16 @@ class Center {
return preg_match('/^[a-z0-9_-]+$/', (string) $value) === 1;
},
],
'asset' => [
'type' => 'string',
'default' => '',
'sanitize_callback' => 'sanitize_key',
],
'page' => [
'type' => 'integer',
'default' => 1,
'sanitize_callback' => 'absint',
],
],
]);
}
@@ -68,6 +78,17 @@ class Center {
return new \WP_Error('aksrt_user_center_context', __('用户中心数据加载失败', 'aksrt'), ['status' => 500]);
}
$asset_request = [];
if ($tab === 'credits') {
$asset = sanitize_key((string) $request->get_param('asset'));
$asset = in_array($asset, ['balance', 'points'], true) ? $asset : '';
$asset_request = [
'asset' => $asset,
'page' => max(1, min(100, (int) $request->get_param('page'))),
];
$context['asset_request'] = $asset_request;
}
$income_request = [];
if ($tab === 'creator') {
$income_request = [
@@ -104,7 +125,9 @@ class Center {
'reward_tab' => $revenue_request['reward_tab'] ?? '',
'creator_income' => $income_request,
'commission_page' => $revenue_request['commission_page'] ?? 1,
'user_page' => $revenue_request['user_page'] ?? 1,
'user_page' => $revenue_request['user_page'] ?? 1,
'asset' => $asset_request['asset'] ?? '',
'asset_page' => $asset_request['page'] ?? 1,
],
]);
}