feat(submit): add user media library

This commit is contained in:
2026-09-04 22:53:33 +08:00
parent 44e165d34e
commit f3fcfe45da
23 changed files with 1321 additions and 945 deletions
+50 -16
View File
@@ -53,41 +53,53 @@ if (file_exists($css)) {
);
}
$js = get_template_directory() . '/assets/js/front-submit.js';
if (file_exists($js)) {
$pay_download_js = get_template_directory() . '/assets/js/front-submit-pay-download.js';
$editor_js = get_template_directory() . '/assets/js/front-submit-editor.js';
if (file_exists($editor_js)) {
wp_enqueue_script(
'aksrt-front-submit-editor',
get_template_directory_uri() . '/assets/js/front-submit-editor.js',
['editor'],
(string) filemtime($editor_js),
true
);
}
$pay_download_js = get_template_directory() . '/assets/js/front-submit-pay-download.js';
if (file_exists($pay_download_js)) {
wp_enqueue_script(
'aksrt-front-submit-pay-download',
get_template_directory_uri() . '/assets/js/front-submit-pay-download.js',
[],
['aksrt-front-submit-editor'],
(string) filemtime($pay_download_js),
true
);
}
if (file_exists($js)) {
wp_enqueue_script(
'aksrt-front-submit',
get_template_directory_uri() . '/assets/js/front-submit.js',
['loader_js', 'aksrt-front-submit-pay-download'],
['loader_js', 'aksrt-front-submit-editor', 'aksrt-front-submit-pay-download'],
(string) filemtime($js),
true
);
$mini = get_template_directory() . '/assets/js/mini-upload.js';
if (file_exists($mini)) {
wp_enqueue_script(
'aksrt-mini-upload',
get_template_directory_uri() . '/assets/js/mini-upload.js',
[],
(string) filemtime($mini),
true
);
}
$submit_image_max_size = \AKSRT\Core\FrontSubmit::upload_limit_bytes('image');
$submit_video_max_size = \AKSRT\Core\FrontSubmit::upload_limit_bytes('video');
$resource_max_size = \AKSRT\Core\FrontSubmit::upload_limit_bytes('resource');
wp_localize_script('aksrt-front-submit', 'aksrtSubmitData', [
wp_localize_script('aksrt-front-submit-editor', 'aksrtSubmitData', [
'ajaxUrl' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('aksrt_submit'),
'restUrl' => esc_url_raw(rest_url('aksrt/v1')),
'restNonce' => wp_create_nonce('wp_rest'),
'restNonce' => wp_create_nonce('wp_rest'),
'postId' => (int) ($ctx['edit_id'] ?? 0),
'mediaUrl' => esc_url_raw(rest_url('aksrt/v1/front-submit/media')),
'media' => [
'image' => ['url' => esc_url_raw(rest_url('aksrt/v1/front-submit/media/image'))],
'video' => ['url' => esc_url_raw(rest_url('aksrt/v1/front-submit/media/video'))],
'file' => ['url' => esc_url_raw(rest_url('aksrt/v1/front-submit/media/file'))],
],
'leaveWarning' => !empty($ctx['settings']['leave_warning']),
'ai' => [
'available' => !empty($ctx['ai_available']),
@@ -167,7 +179,29 @@ if (file_exists($js)) {
'invalidVideoUrl' => __('请填写有效的视频嵌入地址', 'aksrt'),
'invalidFile' => __('请选择有效文件', 'aksrt'),
'uploadUnavailable' => __('当前账号不能上传此类文件', 'aksrt'),
'mine' => __('我的媒体', 'aksrt'),
'mineImage' => __('我的图片', 'aksrt'),
'mineVideo' => __('我的视频', 'aksrt'),
'mineFile' => __('我的文件', 'aksrt'),
'search' => __('搜索', 'aksrt'),
'searchMedia' => __('搜索媒体(至少 2 个字符)', 'aksrt'),
'searchMin' => __('请输入至少 2 个字符进行搜索', 'aksrt'),
'clear' => __('清除', 'aksrt'),
'loadMore' => __('加载更多', 'aksrt'),
'loading' => __('加载中…', 'aksrt'),
'empty' => __('暂无媒体文件', 'aksrt'),
'emptyMedia' => __('暂无媒体文件', 'aksrt'),
'mediaError' => __('媒体加载失败', 'aksrt'),
'mediaUnavailable' => __('媒体库暂不可用', 'aksrt'),
'confirmSelected' => __('确认选择(%d)', 'aksrt'),
'maxItems' => __('最多选择 %d 个文件', 'aksrt'),
'maxMediaItems' => __('最多选择 %d 个文件', 'aksrt'),
'uploadingClose' => __('上传中,请稍候再关闭', 'aksrt'),
'mediaPickerUnavailable' => __('媒体选择器加载失败,请刷新页面后重试', 'aksrt'),
'pickVideoResource' => __('选择视频资源', 'aksrt'),
'pickVideoCover' => __('选择视频封面(可选)', 'aksrt'),
'download' => __('下载', 'aksrt'),
'quote' => __('引言', 'aksrt'),
'quoteGray' => __('灰色引言', 'aksrt'),
'quoteRed' => __('红色引言', 'aksrt'),