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>
99 lines
5.5 KiB
JavaScript
99 lines
5.5 KiB
JavaScript
const themeRoot = typeof window !== 'undefined' && window.jioAdminData?.themeUri
|
|
? String(window.jioAdminData.themeUri).replace(/\/$/, '')
|
|
: ''
|
|
|
|
const shareOptions = [
|
|
{ label: 'QQ空间', value: 'qzone', icon: 'fa fab fa-qq' },
|
|
{ label: '微博', value: 'weibo', icon: 'fa fab fa-weibo' },
|
|
{ label: 'QQ好友', value: 'qq', icon: 'fa fab fa-qq' },
|
|
{ label: 'Facebook', value: 'facebook', icon: 'fa fab fa-facebook-f' },
|
|
{ label: 'X', value: 'twitter', icon: 'fa fab fa-twitter' },
|
|
{ label: 'Telegram', value: 'telegram', icon: 'fa fab fa-telegram-plane' },
|
|
{ label: 'WhatsApp', value: 'whatsapp', icon: 'fa fab fa-whatsapp' },
|
|
{ label: 'LinkedIn', value: 'linkedin', icon: 'fa fab fa-linkedin-in' },
|
|
{ label: 'Reddit', value: 'reddit', icon: 'fa fab fa-reddit-alien' },
|
|
{ label: 'LINE', value: 'line', icon: 'fa fab fa-line' },
|
|
{ label: 'VK', value: 'vk', icon: 'fa fab fa-vk' },
|
|
{ label: '邮件', value: 'email', icon: 'fa fas fa-envelope' },
|
|
{ label: '海报分享', value: 'poster', icon: 'fa fas fa-image' },
|
|
{ label: '复制链接', value: 'copy', icon: 'fa fas fa-link' },
|
|
]
|
|
|
|
const defaultShareItems = {
|
|
enabled: { qzone: 'QQ空间', weibo: '微博', qq: 'QQ好友', poster: '海报分享', copy: '复制链接' },
|
|
disabled: { facebook: 'Facebook', twitter: 'X', telegram: 'Telegram', whatsapp: 'WhatsApp', linkedin: 'LinkedIn', reddit: 'Reddit', line: 'LINE', vk: 'VK', email: '邮件' },
|
|
}
|
|
|
|
export const shareSchema = {
|
|
key: 'global.share',
|
|
title: '社交分享',
|
|
icon: 'fa fas fa-share-alt',
|
|
description: '配置文章分享平台、微信 JSAPI 分享和海报分享。',
|
|
defaults: {
|
|
share_s: true,
|
|
share_items: defaultShareItems,
|
|
wechat_share_s: false,
|
|
wechat_share_option: { appid: '', app_secret: '', only_logo: false },
|
|
share_img: true,
|
|
share_img_compatible_s: false,
|
|
share_img_byimg: themeRoot ? `${themeRoot}/assets/img/slider-bg.jpg` : '',
|
|
share_logo: themeRoot ? `${themeRoot}/assets/img/logo.png` : '',
|
|
share_desc: '扫一扫 立即查看',
|
|
},
|
|
groups: [
|
|
{
|
|
key: 'share',
|
|
title: '社交分享',
|
|
icon: 'fa fas fa-share-alt',
|
|
fields: [
|
|
{ key: 'share_s', label: '文章分享功能', type: 'switcher', default: true, help: '关闭后,在文章页面将不显示分享按钮。' },
|
|
{
|
|
key: 'share_items',
|
|
label: '分享平台',
|
|
type: 'custom',
|
|
renderer: 'sorter',
|
|
sanitize_type: 'array',
|
|
default: defaultShareItems,
|
|
options: shareOptions,
|
|
description: '左侧启用并拖拽排序,右侧为未启用项(同时启用的数量不建议超过 6 个)。若开启海外平台,用户网络必须能正常访问对应服务。',
|
|
},
|
|
{ key: 'wechat_share_s', label: '微信分享有图', type: 'switcher', default: false, help: '使用微信 JSAPI 在微信 App 内分享。' },
|
|
{
|
|
key: 'wechat_share_hint',
|
|
label: '',
|
|
type: 'content',
|
|
ui_only: true,
|
|
dependsOn: { key: 'wechat_share_s', value: true },
|
|
content: '<p><strong>微信分享有图配置</strong></p><p>此功能用于用户从公众号进入页面后调用微信默认分享能力,并不会额外显示分享按钮。请在公众号后台将当前站点域名配置为 JS 接口安全域名。</p><p><a href="https://mp.weixin.qq.com/" target="_blank" rel="noopener noreferrer">前往微信公众平台</a></p>',
|
|
},
|
|
{
|
|
key: 'wechat_share_option',
|
|
label: '微信分享有图配置',
|
|
type: 'fieldset',
|
|
default: { appid: '', app_secret: '', only_logo: false },
|
|
dependsOn: { key: 'wechat_share_s', value: true },
|
|
fields: [
|
|
{ key: 'appid', label: 'AppID', type: 'input', default: '' },
|
|
{ key: 'app_secret', label: 'AppSecret', type: 'input', default: '' },
|
|
{ key: 'only_logo', label: '全部使用网站图标', type: 'switcher', default: false, help: '默认自动使用页面封面图;开启后所有页面均使用网站图标。图片启用防盗链时建议开启。' },
|
|
],
|
|
},
|
|
{ key: 'share_img', label: '生成海报分享', type: 'switcher', default: true, help: '网站图片使用 OSS 等云存储时,请先配置允许本站 Canvas 读取图片的跨域规则。' },
|
|
{
|
|
key: 'share_img_warning',
|
|
label: '',
|
|
type: 'notice',
|
|
ui_only: true,
|
|
alertType: 'warning',
|
|
content: '海报图片加载失败时,请检查图片 CDN/OSS 的跨域响应头。',
|
|
dependsOn: { key: 'share_img', value: true },
|
|
},
|
|
{ key: 'share_img_compatible_s', label: '海报分享兼容模式', type: 'switcher', default: false, dependsOn: { key: 'share_img', value: true }, help: '通过服务端代理读取海报图片,改善跨域兼容性;会增加服务器图片处理开销。' },
|
|
{ key: 'share_img_byimg', label: '海报分享默认图片', type: 'media', default: themeRoot ? `${themeRoot}/assets/img/slider-bg.jpg` : '', dependsOn: { key: 'share_img', value: true }, help: '文章没有图片时使用,建议尺寸 800×500。' },
|
|
{ key: 'share_logo', label: '海报分享 LOGO', type: 'media', default: themeRoot ? `${themeRoot}/assets/img/logo.png` : '', dependsOn: { key: 'share_img', value: true }, help: '显示在海报底部,建议尺寸 300×100、大小 50KB 以内。' },
|
|
{ key: 'share_desc', label: '海报分享底部文案', type: 'input', default: '扫一扫 立即查看', dependsOn: { key: 'share_img', value: true } },
|
|
],
|
|
},
|
|
],
|
|
}
|