set_404(); status_header(404); nocache_headers(); include get_query_template('404'); return; } // Guest without guest mode → login. if (!empty($ctx['is_guest']) && empty($ctx['settings']['guest_enabled'])) { $login = function_exists('aksrt_get_login_url') ? aksrt_get_login_url(get_permalink()) : wp_login_url(get_permalink()); wp_safe_redirect($login); exit; } // Invalid edit id → strip. if (!empty($_GET['edit']) && empty($ctx['edit_post'])) { wp_safe_redirect(remove_query_arg('edit')); exit; } // wp_editor() is rendered after get_header(); queue its runtime before wp_head. wp_enqueue_editor(); // Assets. $css = get_template_directory() . '/assets/css/frontend/pages/submit.css'; if (file_exists($css)) { wp_enqueue_style( 'aksrt-submit', get_template_directory_uri() . '/assets/css/frontend/pages/submit.css', ['aksrt-public'], (string) filemtime($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'; wp_enqueue_script( 'aksrt-front-submit-pay-download', get_template_directory_uri() . '/assets/js/front-submit-pay-download.js', [], (string) filemtime($pay_download_js), true ); wp_enqueue_script( 'aksrt-front-submit', get_template_directory_uri() . '/assets/js/front-submit.js', ['aksrt-runtime', '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', [ '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'), 'leaveWarning' => !empty($ctx['settings']['leave_warning']), 'ai' => [ 'available' => !empty($ctx['ai_available']), 'summary' => !empty($ctx['ai_available']), 'tags' => !empty($ctx['ai_available']), ], 'editor' => [ 'canUploadImage' => !empty($ctx['can_upload_img']), 'canUploadVideo' => !empty($ctx['can_upload_video']), 'canEmbedVideo' => !empty($ctx['can_iframe']), 'canUploadFile' => !empty($ctx['can_upload_file']), 'canHide' => !empty($ctx['can_hide']), 'canPay' => !empty($ctx['can_pay']), ], 'uploads' => [ 'image' => !empty($ctx['can_upload_img']) ? [ 'url' => esc_url_raw(rest_url('aksrt/v1/front-submit/upload/image')), 'maxSize' => $submit_image_max_size, ] : null, 'video' => !empty($ctx['can_upload_video']) ? [ 'url' => esc_url_raw(rest_url('aksrt/v1/front-submit/upload/video')), 'maxSize' => $submit_video_max_size, ] : null, 'resource' => !empty($ctx['can_upload_file']) ? [ 'url' => esc_url_raw(rest_url('aksrt/v1/front-submit/upload/resource')), 'maxSize' => $resource_max_size, ] : null, ], 'i18n' => [ 'confirmLeave' => __('你有未保存的更改,确定要离开吗?', 'aksrt'), 'saving' => __('保存中...', 'aksrt'), 'saved' => __('草稿已保存', 'aksrt'), 'submitting' => __('提交中...', 'aksrt'), 'submitted' => __('投稿已提交', 'aksrt'), 'error' => __('操作失败,请重试', 'aksrt'), 'confirmDelete' => __('确定要删除这个草稿吗?', 'aksrt'), 'aiGenerating' => __('生成中…', 'aksrt'), 'aiFailed' => __('AI 生成失败', 'aksrt'), 'needContent' => __('请先填写正文内容', 'aksrt'), 'aiFilled' => __('已填入,可继续编辑', 'aksrt'), 'deleting' => __('正在删除草稿…', 'aksrt'), 'deleted' => __('草稿已删除', 'aksrt'), 'uploading' => __('正在上传…', 'aksrt'), 'uploaded' => __('上传成功', 'aksrt'), 'fileTooLarge' => __('文件大小超过限制', 'aksrt'), 'lastSaved' => __('最后保存:', 'aksrt'), 'preview' => __('预览文章', 'aksrt'), 'pickImage' => __('选择图片', 'aksrt'), 'pickVideo' => __('选择视频封面图', 'aksrt'), 'videoUrl' => __('请输入视频地址', 'aksrt'), 'close' => __('关闭', 'aksrt'), 'insertImage' => __('插入图片', 'aksrt'), 'uploadImage' => __('上传图片', 'aksrt'), 'externalImage' => __('外链图片', 'aksrt'), 'insertVideo' => __('插入视频', 'aksrt'), 'uploadVideo' => __('上传视频', 'aksrt'), 'externalVideo' => __('外链视频', 'aksrt'), 'embedVideo' => __('嵌入视频', 'aksrt'), 'selectVideo' => __('选择或拖入视频', 'aksrt'), 'videoUploadHint' => __('上传完成后自动插入正文', 'aksrt'), 'externalVideoHint' => __('请填写视频文件地址:', 'aksrt'), 'embedVideoHint' => __('请输入嵌入地址或者直接粘贴 iframe 嵌入代码:', 'aksrt'), 'confirmEmbed' => __('确认嵌入', 'aksrt'), 'insertFile' => __('上传附件', 'aksrt'), 'uploadFile' => __('上传附件', 'aksrt'), 'externalFile' => __('输入地址', 'aksrt'), 'selectFile' => __('选择或拖入附件', 'aksrt'), 'fileUploadHint' => __('上传完成后自动插入正文', 'aksrt'), 'externalFileHint' => __('请填写附件地址:', 'aksrt'), 'selectImages' => __('选择或拖入图片', 'aksrt'), 'imageUploadHint' => __('可批量选择,上传完成后自动插入正文', 'aksrt'), 'selectedFiles' => __('已选择 %d 个文件', 'aksrt'), 'confirmUpload' => __('确认上传', 'aksrt'), 'externalImageHint' => __('每行填写一个图片地址:', 'aksrt'), 'confirmInsert' => __('确认插入', 'aksrt'), 'invalidMediaUrl' => __('请填写有效地址', 'aksrt'), 'invalidVideoUrl' => __('请填写有效的视频嵌入地址', 'aksrt'), 'invalidFile' => __('请选择有效文件', 'aksrt'), 'uploadUnavailable' => __('当前账号不能上传此类文件', 'aksrt'), 'download' => __('下载', 'aksrt'), 'quote' => __('引言', 'aksrt'), 'quoteGray' => __('灰色引言', 'aksrt'), 'quoteRed' => __('红色引言', 'aksrt'), 'quoteBlue' => __('蓝色引言', 'aksrt'), 'quoteGreen' => __('绿色引言', 'aksrt'), 'edit' => __('编辑', 'aksrt'), 'insert' => __('插入', 'aksrt'), 'highlightCode' => __('高亮代码', 'aksrt'), 'selectLanguage' => __('选择语言', 'aksrt'), 'codeGeneric' => __('通用高亮', 'aksrt'), 'codeTheme' => __('主题', 'aksrt'), 'codeFollowGlobal' => __('跟随全局设置', 'aksrt'), 'codeLabel' => __('代码:', 'aksrt'), 'hiddenContent' => __('隐藏内容', 'aksrt'), 'hiddenPlaceholder' => __('隐藏内容', 'aksrt'), 'replyVisible' => __('回复可见', 'aksrt'), 'loginVisible' => __('登录可见', 'aksrt'), 'vipVisible' => __('VIP 可见', 'aksrt'), 'payVisible' => __('付费可见', 'aksrt'), 'addResource' => __('添加资源', 'aksrt'), 'editResource' => __('编辑资源', 'aksrt'), 'downloadUrl' => __('下载地址', 'aksrt'), 'enterDownloadUrl' => __('请输入资源下载地址', 'aksrt'), 'pasteLinkHint' => __('支持直接粘贴网盘分享链接,并自动识别提取码', 'aksrt'), 'resourceNote' => __('资源备注', 'aksrt'), 'enterResourceNote' => __('请输入资源备注', 'aksrt'), 'resourceNoteHint' => __('例如提取码、解压密码等', 'aksrt'), 'clickCopy' => __('点击复制', 'aksrt'), 'copyName' => __('复制名称', 'aksrt'), 'copyContent' => __('复制内容', 'aksrt'), 'copyHint' => __('填写后,用户可点击资源备注复制内容', 'aksrt'), 'customButton' => __('自定义按钮', 'aksrt'), 'customButtonPlaceholder' => __('自定义下载按钮名称', 'aksrt'), 'selectButtonStyle' => __('选择按钮样式', 'aksrt'), 'extractCode' => __('提取码', 'aksrt'), 'extractCodeColon' => __('提取码:', 'aksrt'), 'confirm' => __('确认', 'aksrt'), ], ]); } get_header(); ?>