refactor: rename the theme brand and every identifier from AKSRT to Jio

Full-project rename. `git grep -i aksrt` is now empty apart from the
DBMigrator 3.3.0 changelog note that documents the rename itself.

Code identifiers
- PHP namespace AKSRT\ -> Jio\ (composer PSR-4 + 378 declarations)
- global constants AKSRT_* -> JIO_* (VERSION/DIR/URI, PAY_TYPE_*, CAPTCHA_*)
- procedural functions, hooks, options, meta keys, table names,
  cookies, query vars, ajax actions and nonces: aksrt_ -> jio_
- text domain aksrt -> jio; Theme Name -> Jio
- JS globals: aksrtData/aksrtAdminData/... -> jioData/jioAdminData/...,
  window.AKSRTCaptcha & friends -> window.JioCaptcha, Aksrt* -> Jio*
- Vue components Aks*.vue -> Jio*.vue (15 files renamed + imports)
- CSS classes/data-attrs/custom properties: aksrt- -> jio-
- REST namespace aksrt/v1 -> jio/v1 (incl. payment gateway callbacks)

Storage layer
- DB tables {prefix}aksrt_* -> {prefix}jio_*; SCHEMA_VERSION 3.2.0 -> 3.3.0
  so dbDelta creates the new names on install
- widget id_base aksrt_widget_* -> jio_widget_*
- uninstall.php drop list rebuilt from the actual migrator tables
  (dropped 3 stale entries, added the 17 missing ones)

Removed
- hardcoded https://api.aksrt.com/version.json default update endpoint;
  get_endpoint() now reads the 「更新端点」 setting and do_check() no-ops
  when it is empty

Files renamed: inc/helpers/aksrt-*.php -> jio-*.php (54),
assets/admin/src/components/form/Aks*.vue -> Jio*.vue (15).
Build artifacts regenerated: assets/css/build, assets/js/runtime,
assets/admin/build.

Verified: audit-psr4-paths errors=0, audit-admin-contracts errors=0
(warnings=56, unchanged baseline), 813/813 widget-system tests,
44/44 phpunit, php -l clean across all PHP.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
kate522andClaude Opus 5 committed 2026-11-01 20:05:04 +08:00
1 parent 5b16bc6e15
commit 35bb96e82f
997 files changed
+28216 -28188

No files matched your search

+130 -130
View File
@@ -1,12 +1,12 @@
<?php
/**
* Template Name: AKSRT - 写文章/投稿
* Template Name: Jio - 写文章/投稿
* Template Post Type: page
*
* Front-end article submission page matching the reference newposts layout.
* 注意:page-newposts.php 是「最新文章」列表,不是投稿。
*
* @package AKSRT
* @package Jio
*/
defined('ABSPATH') || exit;
@@ -39,9 +39,9 @@ wp_enqueue_editor();
$css = get_template_directory() . '/assets/css/frontend/pages/submit.css';
if (file_exists($css)) {
wp_enqueue_style(
'aksrt-submit',
'jio-submit',
get_template_directory_uri() . '/assets/css/frontend/pages/submit.css',
['aksrt-public'],
['jio-public'],
(string) filemtime($css)
);
}
@@ -49,7 +49,7 @@ $js = get_template_directory() . '/assets/js/front-submit.js';
$editor_js = get_template_directory() . '/assets/js/front-submit-editor.js';
if (file_exists($editor_js)) {
wp_enqueue_script(
'aksrt-front-submit-editor',
'jio-front-submit-editor',
get_template_directory_uri() . '/assets/js/front-submit-editor.js',
['editor'],
(string) filemtime($editor_js),
@@ -59,45 +59,45 @@ if (file_exists($editor_js)) {
$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',
'jio-front-submit-pay-download',
get_template_directory_uri() . '/assets/js/front-submit-pay-download.js',
['aksrt-front-submit-editor'],
['jio-front-submit-editor'],
(string) filemtime($pay_download_js),
true
);
}
if (file_exists($js)) {
wp_enqueue_script(
'aksrt-front-submit',
'jio-front-submit',
get_template_directory_uri() . '/assets/js/front-submit.js',
['loader_js', 'aksrt-front-submit-editor', 'aksrt-front-submit-pay-download'],
['loader_js', 'jio-front-submit-editor', 'jio-front-submit-pay-download'],
(string) filemtime($js),
true
);
$upload_image_max_bytes = \AKSRT\Core\FrontSubmit::upload_limit_bytes('image');
$upload_video_max_bytes = \AKSRT\Core\FrontSubmit::upload_limit_bytes('video');
$upload_resource_max_bytes = \AKSRT\Core\FrontSubmit::upload_limit_bytes('resource');
$image_upload_multiple = class_exists('\AKSRT\Attachment\UploadLimits')
? \AKSRT\Attachment\UploadLimits::image_batch_limit()
$upload_image_max_bytes = \Jio\Core\FrontSubmit::upload_limit_bytes('image');
$upload_video_max_bytes = \Jio\Core\FrontSubmit::upload_limit_bytes('video');
$upload_resource_max_bytes = \Jio\Core\FrontSubmit::upload_limit_bytes('resource');
$image_upload_multiple = class_exists('\Jio\Attachment\UploadLimits')
? \Jio\Attachment\UploadLimits::image_batch_limit()
: 6;
$system_tools = class_exists('\AKSRT\Settings\ExtensionRuntime')
? \AKSRT\Settings\ExtensionRuntime::get_system_tools_settings()
$system_tools = class_exists('\Jio\Settings\ExtensionRuntime')
? \Jio\Settings\ExtensionRuntime::get_system_tools_settings()
: [];
$float_scenes = is_array($system_tools['mce_float_toolbar'] ?? null) ? $system_tools['mce_float_toolbar'] : ['pc_s', 'm_s'];
$float_toolbar = wp_is_mobile() ? in_array('m_s', $float_scenes, true) : in_array('pc_s', $float_scenes, true);
wp_localize_script('aksrt-front-submit-editor', 'aksrtSubmitData', [
wp_localize_script('jio-front-submit-editor', 'jioSubmitData', [
'ajaxUrl' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('aksrt_submit'),
'restUrl' => esc_url_raw(rest_url('aksrt/v1')),
'nonce' => wp_create_nonce('jio_submit'),
'restUrl' => esc_url_raw(rest_url('jio/v1')),
'restNonce' => wp_create_nonce('wp_rest'),
'postId' => (int) ($ctx['edit_id'] ?? 0),
'mediaUrl' => esc_url_raw(rest_url('aksrt/v1/front-submit/media')),
'mediaUrl' => esc_url_raw(rest_url('jio/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'))],
'image' => ['url' => esc_url_raw(rest_url('jio/v1/front-submit/media/image'))],
'video' => ['url' => esc_url_raw(rest_url('jio/v1/front-submit/media/video'))],
'file' => ['url' => esc_url_raw(rest_url('jio/v1/front-submit/media/file'))],
],
'splitUpload' => [
@@ -117,121 +117,121 @@ if (file_exists($js)) {
],
'uploads' => [
'image' => !empty($ctx['can_upload_img']) ? [
'url' => esc_url_raw(rest_url('aksrt/v1/front-submit/upload/image')),
'url' => esc_url_raw(rest_url('jio/v1/front-submit/upload/image')),
'maxSize' => $upload_image_max_bytes,
] : null,
'video' => !empty($ctx['can_upload_video']) ? [
'url' => esc_url_raw(rest_url('aksrt/v1/front-submit/upload/video')),
'url' => esc_url_raw(rest_url('jio/v1/front-submit/upload/video')),
'maxSize' => $upload_video_max_bytes,
] : null,
'resource' => !empty($ctx['can_upload_file']) ? [
'url' => esc_url_raw(rest_url('aksrt/v1/front-submit/upload/resource')),
'url' => esc_url_raw(rest_url('jio/v1/front-submit/upload/resource')),
'maxSize' => $upload_resource_max_bytes,
] : null,
],
'i18n' => [
'confirmLeave' => __('你有未保存的更改,确定要离开吗?', 'aksrt'),
'saving' => __('保存中...', 'aksrt'),
'saved' => __('草稿已保存', 'aksrt'),
'submitting' => __('提交中...', 'aksrt'),
'submitted' => __('投稿已提交', 'aksrt'),
'error' => __('操作失败,请重试', 'aksrt'),
'confirmDelete' => __('确定要删除这个草稿吗?', 'aksrt'),
'deleting' => __('正在删除草稿…', 'aksrt'),
'deleted' => __('草稿已删除', 'aksrt'),
'uploading' => __('正在上传…', 'aksrt'),
'uploaded' => __('上传成功', 'aksrt'),
'fileTooLarge' => __('文件大小超过限制', 'aksrt'),
'lastSaved' => __('最后保存:', 'aksrt'),
'preview' => __('预览文章', 'aksrt'),
'setVideoCoverTitle' => __('为视频设置封面', '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'),
'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'),
'download' => __('下载', 'aksrt'),
'confirmLeave' => __('你有未保存的更改,确定要离开吗?', 'jio'),
'saving' => __('保存中...', 'jio'),
'saved' => __('草稿已保存', 'jio'),
'submitting' => __('提交中...', 'jio'),
'submitted' => __('投稿已提交', 'jio'),
'error' => __('操作失败,请重试', 'jio'),
'confirmDelete' => __('确定要删除这个草稿吗?', 'jio'),
'deleting' => __('正在删除草稿…', 'jio'),
'deleted' => __('草稿已删除', 'jio'),
'uploading' => __('正在上传…', 'jio'),
'uploaded' => __('上传成功', 'jio'),
'fileTooLarge' => __('文件大小超过限制', 'jio'),
'lastSaved' => __('最后保存:', 'jio'),
'preview' => __('预览文章', 'jio'),
'setVideoCoverTitle' => __('为视频设置封面', 'jio'),
'close' => __('关闭', 'jio'),
'insertImage' => __('插入图片', 'jio'),
'uploadImage' => __('上传图片', 'jio'),
'externalImage' => __('外链图片', 'jio'),
'insertVideo' => __('插入视频', 'jio'),
'uploadVideo' => __('上传视频', 'jio'),
'externalVideo' => __('外链视频', 'jio'),
'embedVideo' => __('嵌入视频', 'jio'),
'selectVideo' => __('选择或拖入视频', 'jio'),
'videoUploadHint' => __('上传完成后自动插入正文', 'jio'),
'externalVideoHint' => __('请填写视频文件地址:', 'jio'),
'embedVideoHint' => __('请输入嵌入地址或者直接粘贴 iframe 嵌入代码:', 'jio'),
'confirmEmbed' => __('确认嵌入', 'jio'),
'insertFile' => __('上传附件', 'jio'),
'uploadFile' => __('上传附件', 'jio'),
'externalFile' => __('输入地址', 'jio'),
'selectFile' => __('选择或拖入附件', 'jio'),
'fileUploadHint' => __('上传完成后自动插入正文', 'jio'),
'externalFileHint' => __('请填写附件地址:', 'jio'),
'selectImages' => __('选择或拖入图片', 'jio'),
'imageUploadHint' => __('可批量选择,上传完成后自动插入正文', 'jio'),
'selectedFiles' => __('已选择 %d 个文件', 'jio'),
'confirmUpload' => __('确认上传', 'jio'),
'externalImageHint' => __('每行填写一个图片地址:', 'jio'),
'confirmInsert' => __('确认插入', 'jio'),
'invalidMediaUrl' => __('请填写有效地址', 'jio'),
'invalidVideoUrl' => __('请填写有效的视频嵌入地址', 'jio'),
'invalidFile' => __('请选择有效文件', 'jio'),
'uploadUnavailable' => __('当前账号不能上传此类文件', 'jio'),
'mine' => __('我的媒体', 'jio'),
'mineImage' => __('我的图片', 'jio'),
'mineVideo' => __('我的视频', 'jio'),
'mineFile' => __('我的文件', 'jio'),
'search' => __('搜索', 'jio'),
'searchMedia' => __('搜索媒体(至少 2 个字符)', 'jio'),
'searchMin' => __('请输入至少 2 个字符进行搜索', 'jio'),
'clear' => __('清除', 'jio'),
'loadMore' => __('加载更多', 'jio'),
'loading' => __('加载中…', 'jio'),
'empty' => __('暂无媒体文件', 'jio'),
'emptyMedia' => __('暂无媒体文件', 'jio'),
'mediaError' => __('媒体加载失败', 'jio'),
'mediaUnavailable' => __('媒体库暂不可用', 'jio'),
'confirmSelected' => __('确认选择(%d)', 'jio'),
'maxItems' => __('最多选择 %d 个文件', 'jio'),
'maxMediaItems' => __('最多选择 %d 个文件', 'jio'),
'uploadingClose' => __('上传中,请稍候再关闭', 'jio'),
'mediaPickerUnavailable' => __('媒体选择器加载失败,请刷新页面后重试', 'jio'),
'download' => __('下载', 'jio'),
'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'),
'quote' => __('引言', 'jio'),
'quoteGray' => __('灰色引言', 'jio'),
'quoteRed' => __('红色引言', 'jio'),
'quoteBlue' => __('蓝色引言', 'jio'),
'quoteGreen' => __('绿色引言', 'jio'),
'edit' => __('编辑', 'jio'),
'insert' => __('插入', 'jio'),
'highlightCode' => __('高亮代码', 'jio'),
'selectLanguage' => __('选择语言', 'jio'),
'codeGeneric' => __('通用高亮', 'jio'),
'codeTheme' => __('主题', 'jio'),
'codeFollowGlobal' => __('跟随全局设置', 'jio'),
'codeLabel' => __('代码:', 'jio'),
'hiddenContent' => __('隐藏内容', 'jio'),
'hiddenPlaceholder' => __('隐藏内容', 'jio'),
'replyVisible' => __('回复可见', 'jio'),
'loginVisible' => __('登录可见', 'jio'),
'vipVisible' => __('VIP 可见', 'jio'),
'payVisible' => __('付费可见', 'jio'),
'addResource' => __('添加资源', 'jio'),
'editResource' => __('编辑资源', 'jio'),
'downloadUrl' => __('下载地址', 'jio'),
'enterDownloadUrl' => __('请输入资源下载地址', 'jio'),
'pasteLinkHint' => __('支持直接粘贴网盘分享链接,并自动识别提取码', 'jio'),
'resourceNote' => __('资源备注', 'jio'),
'enterResourceNote' => __('请输入资源备注', 'jio'),
'resourceNoteHint' => __('例如提取码、解压密码等', 'jio'),
'clickCopy' => __('点击复制', 'jio'),
'copyName' => __('复制名称', 'jio'),
'copyContent' => __('复制内容', 'jio'),
'copyHint' => __('填写后,用户可点击资源备注复制内容', 'jio'),
'customButton' => __('自定义按钮', 'jio'),
'customButtonPlaceholder' => __('自定义下载按钮名称', 'jio'),
'selectButtonStyle' => __('选择按钮样式', 'jio'),
'extractCode' => __('提取码', 'jio'),
'extractCodeColon' => __('提取码:', 'jio'),
'confirm' => __('确认', 'jio'),
],
]);
}
@@ -239,7 +239,7 @@ if (file_exists($js)) {
get_header();
?>
<main id="main-content" role="main" class="container" tabindex="-1">
<form id="aksrt-submit-form" data-aksrt-submit-form data-dirty="false">
<form id="jio-submit-form" data-jio-submit-form data-dirty="false">
<div class="content-wrap newposts-wrap">
<div class="content-layout">
<?php
@@ -251,7 +251,7 @@ get_header();
</div>
</div>
<div class="sidebar show-sidebar">
<?php \AKSRT\WidgetSystem\WidgetAreas::render('newposts_sidebar_top'); ?>
<?php \Jio\WidgetSystem\WidgetAreas::render('newposts_sidebar_top'); ?>
<?php
$terms = get_template_directory() . '/templates/parts/submit/sidebar-terms.php';
if (file_exists($terms)) {
@@ -266,7 +266,7 @@ get_header();
include $actions;
}
?>
<?php \AKSRT\WidgetSystem\WidgetAreas::render('newposts_sidebar_bottom'); ?>
<?php \Jio\WidgetSystem\WidgetAreas::render('newposts_sidebar_bottom'); ?>
</div>
</form>
</main>