Files
wordpress-theme-aksrt/src/Core/ScriptsPart1b.php
T

715 lines
30 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* @package AKSRT
*/
namespace AKSRT\Core;
defined('ABSPATH') || exit;
trait ScriptsPart1b {
public function enqueue_public(): void {
$base_uri = get_template_directory_uri();
$version = AKSRT_VERSION;
// Keep WordPress's managed jQuery so core and plugin UI scripts share one compatible API.
wp_enqueue_script('jquery');
$public_filename = file_exists(get_template_directory() . '/assets/css/build/public.min.css')
? 'public.min.css'
: 'public.css';
$public_bundle = get_template_directory() . '/assets/css/build/' . $public_filename;
wp_enqueue_style(
'bootstrap',
$base_uri . '/assets/css/bootstrap.min.css',
[],
'3.4.1'
);
aksrt_enqueue_fontawesome(['bootstrap']);
$main_css_path = get_template_directory() . '/assets/css/main.min.css';
wp_enqueue_style(
'aksrt-main',
$base_uri . '/assets/css/main.min.css',
['aksrt-font-awesome'],
file_exists($main_css_path) ? (string) filemtime($main_css_path) : $version
);
wp_enqueue_style(
'aksrt-public',
$base_uri . '/assets/css/build/' . $public_filename,
['aksrt-main'],
file_exists($public_bundle) ? (string) filemtime($public_bundle) : $version
);
$lazy_animation = class_exists('\AKSRT\Settings\Settings')
? (string) \AKSRT\Settings\Settings::get_value('lazy_animation', 'blur')
: 'blur';
if ($lazy_animation === 'fade') {
wp_add_inline_style('aksrt-public', '.lazyloaded{--lazy-animation:lazy_fade!important;}');
} elseif ($lazy_animation === 'scale') {
wp_add_inline_style('aksrt-public', '.lazyloaded{--lazy-animation:lazy_scale!important;}');
}
$core_dep = 'aksrt-public';
$deps = [$core_dep];
$enqueue_module = function ($slug) use ($base_uri, $version, $deps) {
$path = get_template_directory() . '/assets/css/frontend/' . $slug . '.css';
wp_enqueue_style(
'aksrt-' . $slug,
$base_uri . '/assets/css/frontend/' . $slug . '.css',
$deps,
(file_exists($path) ? (string) filemtime($path) : $version)
);
};
// 顶部导航用户卡片(legacy header-userbox 模块样式)。
$enqueue_module('header-userbox');
if (!is_user_logged_in() || (bool) get_query_var('aksrt_sign')) {
$auth_css = get_template_directory() . '/assets/css/routes/sign.css';
wp_enqueue_style(
'aksrt-auth',
$base_uri . '/assets/css/routes/sign.css',
[$core_dep],
file_exists($auth_css) ? (string) filemtime($auth_css) : $version
);
}
// Shared VIP purchase/poll coordinator for modal and credits surfaces.
$vip_on = class_exists('\AKSRT\Settings\Settings')
&& !empty(\AKSRT\Settings\Settings::get_payment_vip_settings()['enabled']);
$credits_on = is_user_logged_in()
&& class_exists('\AKSRT\Settings\Settings')
&& \AKSRT\Settings\Settings::credits_enabled();
$balance_on = is_user_logged_in()
&& !empty(\AKSRT\Settings\Settings::get_payment_recharge_settings()['enabled']);
$affiliate_on = is_user_logged_in()
&& class_exists('\\AKSRT\\Settings\\Settings')
&& !empty(\AKSRT\Settings\Settings::get_affiliate_settings()['enabled']);
$signin_on = is_user_logged_in()
&& class_exists('\AKSRT\Credits\Signin')
&& class_exists('\AKSRT\Settings\Settings')
&& !empty(\AKSRT\Settings\Settings::get_signin_reward_settings()['enabled']);
$vip_coordinator = get_template_directory() . '/assets/js/vip-purchase-coordinator.js';
if ((($vip_on && is_user_logged_in()) || $credits_on || $affiliate_on) && file_exists($vip_coordinator)) {
wp_enqueue_script(
'aksrt-vip-coordinator',
$base_uri . '/assets/js/vip-purchase-coordinator.js',
['loader_js'],
(string) filemtime($vip_coordinator),
true
);
}
// VIP modal (legacy .pay-vip)
if ($vip_on && is_user_logged_in()) {
$vip_css = get_template_directory() . '/assets/css/frontend/vip-modal.css';
if (file_exists($vip_css)) {
wp_enqueue_style(
'aksrt-vip-modal',
$base_uri . '/assets/css/frontend/vip-modal.css',
[$core_dep],
(string) filemtime($vip_css)
);
}
$vip_js = get_template_directory() . '/assets/js/pay-vip.js';
if (file_exists($vip_js)) {
wp_enqueue_script(
'aksrt-pay-vip',
$base_uri . '/assets/js/pay-vip.js',
['loader_js', 'aksrt-vip-coordinator'],
(string) filemtime($vip_js),
true
);
}
}
// 4b. 路由判定
$is_home_or_archive = is_home() || is_front_page() || is_archive() || is_search();
// 资源单页(post + _aksrt_is_resource)
$is_single_resource = (function_exists('aksrt_is_resource_post') && is_singular() && aksrt_is_resource_post(get_queried_object_id()));
// 普通博客 single(排除资源型 post)
$is_single_post = is_singular('post') && !$is_single_resource;
// 付费下载/付费墙:任意 singular 需收银台/下载脚本
$is_paid_content_single = false;
if (is_singular()) {
$qid = (int) get_queried_object_id();
if ($qid > 0) {
if (function_exists('aksrt_is_downloadable_content') && aksrt_is_downloadable_content($qid)) {
$is_paid_content_single = true;
} elseif (function_exists('aksrt_is_paid_post') && aksrt_is_paid_post($qid)) {
$is_paid_content_single = true;
} elseif (function_exists('aksrt_get_pay_meta')) {
$pm = aksrt_get_pay_meta($qid);
$pt = (string) ($pm['pay_type'] ?? 'no');
$is_paid_content_single = ($pt !== '' && $pt !== 'no');
}
}
}
// 独立下载页模板
$is_download_file_page = is_page_template('templates/pages/page-download-file.php');
// 资源虚拟列表 /resources/
$is_resource_archive = function_exists('aksrt_is_resource_archive') && aksrt_is_resource_archive();
// /user/{nicename}/ 自定义重写路由(class-aksrt-user.php 注册)
// 此路径下 is_page() / is_page_template() 均为 false,需手动识别以正确入队 CSS
$is_profile_route = (bool) get_query_var('aksrt_author_identifier');
$is_user_center_route = (bool) get_query_var('aksrt_user_center');
$is_static_page = is_page() || is_singular('page') || $is_profile_route || $is_user_center_route;
$is_auth_route = (bool) get_query_var('aksrt_sign');
$is_auth_page = $is_auth_route
|| (function_exists('aksrt_is_auth_page_request') && aksrt_is_auth_page_request());
$is_profile_page = $is_profile_route
|| (function_exists('aksrt_is_user_home_page') && aksrt_is_user_home_page())
|| (function_exists('aksrt_is_user_center_page') && aksrt_is_user_center_page())
|| is_page_template('templates/pages/page-profile.php')
|| is_page_template('templates/pages/page-user-home.php');
$is_fixed_homepage = function_exists('aksrt_is_fixed_homepage_request') && aksrt_is_fixed_homepage_request();
// CMS route detection.
$is_cms_mode = function_exists('aksrt_is_cms_mode') ? aksrt_is_cms_mode() : false;
$singular_assets = $this->resolve_singular_asset_requirements(
$is_single_post,
$is_single_resource,
$is_paid_content_single
);
// 打印样式(media=print):内容页常驻,无设置开关(参考主题未提供该配置)。
if ($is_single_post || $is_single_resource || $is_static_page) {
$print_path = get_template_directory() . '/assets/css/frontend/print.css';
wp_enqueue_style(
'aksrt-print',
$base_uri . '/assets/css/frontend/print.css',
[],
file_exists($print_path) ? (string) filemtime($print_path) : $version,
'print'
);
}
// 首页/归档/搜索:卡片 + 侧栏
if ($is_home_or_archive && !$is_fixed_homepage) {
$enqueue_module('post-card');
$enqueue_module('sidebar');
$enqueue_module('breadcrumb');
}
// Normal articles: one small core bundle plus content/settings-driven feature leaves.
if ($is_single_post && !empty($singular_assets['is_article'])) {
$single_filename = file_exists(get_template_directory() . '/assets/css/build/single.min.css')
? 'single.min.css'
: 'single.css';
$single_path = get_template_directory() . '/assets/css/build/' . $single_filename;
wp_enqueue_style(
'aksrt-single-core',
$base_uri . '/assets/css/build/' . $single_filename,
[$core_dep],
file_exists($single_path) ? (string) filemtime($single_path) : $version
);
$single_features = [
'has_code' => 'single-post/code-blocks',
'needs_navigation' => 'single-post/navigation',
'needs_cover' => 'single-post/cover',
'needs_related_toc' => 'single-post/related-toc',
'needs_reward' => 'single-post/rewards',
'has_hidden_content' => 'single-post/hidden-content',
'needs_pay_box' => 'pay-box',
];
$single_feature_handles = [];
foreach ($single_features as $requirement => $part) {
if (empty($singular_assets[$requirement])) {
continue;
}
$path = get_template_directory() . '/assets/css/frontend/' . $part . '.css';
if (!file_exists($path)) {
continue;
}
$handle = 'aksrt-' . str_replace('/', '-', $part);
wp_enqueue_style(
$handle,
$base_uri . '/assets/css/frontend/' . $part . '.css',
['aksrt-single-core'],
(string) filemtime($path)
);
$single_feature_handles[] = $handle;
}
// Preserve the public aggregate handle without requesting its @import file.
wp_register_style(
'aksrt-single-post',
false,
array_merge(['aksrt-single-core'], $single_feature_handles),
$version
);
wp_enqueue_style('aksrt-single-post');
if (!empty($singular_assets['needs_post_card'])) {
$enqueue_module('post-card');
}
if (!empty($singular_assets['needs_sidebar'])) {
$enqueue_module('sidebar');
}
if (!empty($singular_assets['needs_breadcrumb'])) {
$enqueue_module('breadcrumb');
}
}
// 评论区样式(硬切换后全部自有):任何会渲染评论区的 singular
// (普通文章 / 资源型 post / 启用评论的页面)统一加载 build 聚合。
// 缺失时手机端 .mobile-fixed 抽屉规则不生效,表单会按文档流直接显示。
if (is_singular() && !empty($singular_assets['needs_comments'])) {
$comments_filename = file_exists(get_template_directory() . '/assets/css/build/comments.min.css')
? 'comments.min.css'
: 'comments.css';
$comments_path = get_template_directory() . '/assets/css/build/' . $comments_filename;
wp_enqueue_style(
'aksrt-comments',
$base_uri . '/assets/css/build/' . $comments_filename,
[$core_dep],
file_exists($comments_path) ? (string) filemtime($comments_path) : $version
);
}
// 静态页面 + 用户中心 + 友链等
if ($is_static_page) {
$enqueue_module('pages');
$enqueue_module('single-post'); // 复用 entry-content 排版
$enqueue_module('post-card'); // post-grid / post-card(用户中心文章列表)
$enqueue_module('breadcrumb');
// 评论区样式由上方 is_singular 统一入口按 needs_comments 加载。
}
// 举报脚本:举报入口渲染于文章页 meta 菜单、评论区与用户主页/个人中心,
// 因此 singular 页面与 profile 路由都需要加载(文章页举报按钮此前无脚本支撑)。
// 禁封脚本:禁封入口渲染于用户主页封面三点菜单、评论区三点菜单与文章
// 作者栏三点菜单,与举报脚本同一组页面,合并加载。
if (is_singular() || $is_profile_page) {
$report_js_path = get_template_directory() . '/assets/js/report.js';
if (file_exists($report_js_path)) {
wp_enqueue_script(
'aksrt-report',
$base_uri . '/assets/js/report.js',
['loader_js'],
filemtime($report_js_path) ?: $version,
true
);
}
$user_ban_js_path = get_template_directory() . '/assets/js/user-ban.js';
if (file_exists($user_ban_js_path)) {
wp_enqueue_script(
'aksrt-user-ban',
$base_uri . '/assets/js/user-ban.js',
['loader_js'],
filemtime($user_ban_js_path) ?: $version,
true
);
}
}
// 用户中心 / 公开主页:路由专属 CSS
if ($is_profile_page) {
// 关注脚本已在全局栈注册(ScriptsPart1c),data-aksrt-follow 按钮
// 也渲染于文章页作者栏与各处用户卡片,不能仅限本路由加载。
$author_js_path = get_template_directory() . '/assets/js/author.js';
if (file_exists($author_js_path)) {
wp_enqueue_script(
'aksrt-author',
$base_uri . '/assets/js/author.js',
['loader_js'],
(string) filemtime($author_js_path),
true
);
}
// Enqueue every profile leaf directly. Nested @imports are not versioned,
// so browsers can otherwise retain stale layout/modal rules after deploys.
$profile_parts = ['layout', 'lists', 'modals'];
$profile_deps = [$core_dep];
foreach ($profile_parts as $part_index => $part) {
$part_path = get_template_directory() . '/assets/css/routes/profile/' . $part . '.css';
$is_last_part = $part_index === count($profile_parts) - 1;
$part_handle = $is_last_part ? 'aksrt-route-profile' : 'aksrt-route-profile-' . $part;
wp_enqueue_style(
$part_handle,
$base_uri . '/assets/css/routes/profile/' . $part . '.css',
$profile_deps,
file_exists($part_path) ? (string) filemtime($part_path) : $version
);
$profile_deps = [$part_handle];
}
// 本人中心 vs 公开主页拆分加载
$is_public_user_home = $is_profile_route
|| (function_exists('aksrt_is_user_home_page') && aksrt_is_user_home_page())
|| is_page_template('templates/pages/page-user-home.php');
if ($is_public_user_home) {
// /user/{nicename}/ 公开主页
$user_home_css_path = get_template_directory() . '/assets/css/routes/user-home.css';
wp_enqueue_style(
'aksrt-route-user-home',
$base_uri . '/assets/css/routes/user-home.css',
['aksrt-route-profile'],
file_exists($user_home_css_path) ? (string) filemtime($user_home_css_path) : $version
);
} else {
// Keep the legacy aggregate's cascade order, but give every leaf its
// own cache version. The final leaf retains the public aggregate handle.
$user_center_parts = [
'user-center/shell',
'user-center/credits',
'user-center/vip',
'user-center/level',
'user-center/settings',
'user-center/revenue',
'user-center/revenue-earnings',
'user-center/responsive',
];
$user_center_deps = ['aksrt-route-profile'];
foreach ($user_center_parts as $part_index => $part) {
$part_path = get_template_directory() . '/assets/css/routes/' . $part . '.css';
$is_last_part = $part_index === count($user_center_parts) - 1;
$part_handle = $is_last_part
? 'aksrt-route-user-center'
: 'aksrt-route-' . str_replace('/', '-', $part);
wp_enqueue_style(
$part_handle,
$base_uri . '/assets/css/routes/' . $part . '.css',
$user_center_deps,
file_exists($part_path) ? (string) filemtime($part_path) : $version
);
$user_center_deps = [$part_handle];
}
// Orders is a lazy user-center panel, so its independent assets must
// be ready before client-side panel replacement can insert its markup.
$has_orders_panel = false;
if (class_exists('\AKSRT\User\Center')) {
$dashboard_tabs = \AKSRT\User\Center::get_instance()->get_dashboard_tabs();
$has_orders_panel = isset($dashboard_tabs['orders']);
}
if ($has_orders_panel) {
$orders_css = get_template_directory() . '/assets/css/routes/orders.css';
if (file_exists($orders_css)) {
wp_enqueue_style(
'aksrt-orders',
$base_uri . '/assets/css/routes/orders.css',
[$core_dep],
(string) filemtime($orders_css)
);
}
$order_center_js = get_template_directory() . '/assets/js/order-center.js';
if (file_exists($order_center_js)) {
wp_enqueue_script(
'aksrt-order-center',
$base_uri . '/assets/js/order-center.js',
['loader_js'],
(string) filemtime($order_center_js),
true
);
}
}
$identity_js = get_template_directory() . '/assets/js/routes/user-center-auth.js';
if (file_exists($identity_js)) {
wp_enqueue_script(
'aksrt-route-user-center-auth',
$base_uri . '/assets/js/routes/user-center-auth.js',
['loader_js'],
(string) filemtime($identity_js),
true
);
}
$user_center_deps = file_exists($identity_js)
? ['loader_js', 'aksrt-route-user-center-auth']
: ['loader_js'];
if ($has_orders_panel && wp_script_is('aksrt-order-center', 'registered')) {
$user_center_deps[] = 'aksrt-order-center';
}
wp_enqueue_script(
'aksrt-route-user-center',
$base_uri . '/assets/js/routes/user-center.js',
$user_center_deps,
file_exists(get_template_directory() . '/assets/js/routes/user-center.js')
? (string) filemtime(get_template_directory() . '/assets/js/routes/user-center.js')
: $version,
true
);
}
}
// 搜索结果页:路由专属 CSS(顶部卡片/胶囊搜索框/工具栏/空状态/关键词高亮)
if (is_search()) {
wp_enqueue_style(
'aksrt-route-search',
$base_uri . '/assets/css/routes/search.css',
['aksrt-public', 'aksrt-post-card'],
$version
);
}
// 分类汇总页:路由专属 CSS
if (is_page_template('templates/pages/page-categories.php')) {
wp_enqueue_style(
'aksrt-route-categories',
$base_uri . '/assets/css/routes/categories.css',
['aksrt-public'],
$version
);
}
// 友情链接页:路由专属 CSS
if (is_page_template('templates/pages/page-friends.php')) {
wp_enqueue_style(
'aksrt-route-friends',
$base_uri . '/assets/css/routes/friends.css',
['aksrt-public'],
file_exists(get_template_directory() . '/assets/css/routes/friends.css')
? (string) filemtime(get_template_directory() . '/assets/css/routes/friends.css')
: $version
);
}
// 网址导航页(legacy links.php)
// 文章导航页(legacy postsnavs.php)
if (is_page_template('templates/pages/page-posts-navs.php')) {
$page_navs_js = get_template_directory() . '/assets/js/page-navs.js';
if (file_exists($page_navs_js)) {
wp_enqueue_script(
'aksrt-page-navs',
$base_uri . '/assets/js/page-navs.js',
['loader_js'],
(string) filemtime($page_navs_js),
true
);
}
$pn_css = get_template_directory() . '/assets/css/routes/posts-navs.css';
if (file_exists($pn_css)) {
wp_enqueue_style(
'aksrt-route-posts-navs',
$base_uri . '/assets/css/routes/posts-navs.css',
['aksrt-public'],
(string) filemtime($pn_css)
);
}
$section_navs = get_template_directory() . '/assets/js/section-navs.js';
if (file_exists($section_navs)) {
wp_enqueue_script(
'aksrt-section-navs',
$base_uri . '/assets/js/section-navs.js',
['jquery'],
(string) filemtime($section_navs),
true
);
}
$pn_js = get_template_directory() . '/assets/js/posts-navs-page.js';
if (file_exists($pn_js)) {
wp_enqueue_script(
'aksrt-posts-navs-page',
$base_uri . '/assets/js/posts-navs-page.js',
['loader_js'],
(string) filemtime($pn_js),
true
);
}
}
// 文章归档页
if (is_page_template('templates/pages/page-archives.php')) {
$ar_css = get_template_directory() . '/assets/css/routes/archives.css';
if (file_exists($ar_css)) {
wp_enqueue_style(
'aksrt-route-archives',
$base_uri . '/assets/css/routes/archives.css',
['aksrt-public'],
(string) filemtime($ar_css)
);
}
}
// 消息中心页
if (get_query_var('aksrt_message_view')) {
$messages_css = get_template_directory() . '/assets/css/frontend/messages.css';
if (file_exists($messages_css)) {
wp_enqueue_style(
'aksrt-messages',
$base_uri . '/assets/css/frontend/messages.css',
['aksrt-public'],
(string) filemtime($messages_css)
);
}
$messages_js = get_template_directory() . '/assets/js/messages.js';
if (file_exists($messages_js)) {
wp_enqueue_script(
'aksrt-messages',
$base_uri . '/assets/js/messages.js',
['loader_js'],
(string) filemtime($messages_js),
true
);
}
}
// Unified authentication page shell.
if ($is_auth_page) {
$enqueue_module('pages');
}
// 404 页面
if (is_404()) {
$enqueue_module('pages');
}
// Resource archives use the canonical legacy article-card stylesheet.
if ($is_resource_archive || $is_single_resource || ($is_cms_mode && ($is_home_or_archive || $is_static_page) && !$is_fixed_homepage)) {
if (!$is_home_or_archive && !$is_single_post && !$is_static_page) {
$enqueue_module('post-card');
}
}
// 单篇资源专属样式
if ($is_single_resource) {
$enqueue_module('single-post');
// 资源单页同样渲染文章封面(needs_cover 对资源文章同样成立)。
// cover 样式必须以 filemtime 版本号的 leaf 直接入队:聚合文件的
// @import 无版本号,浏览器会拿旧缓存(含已废弃的 .single-cover
// padding 规则)把封面高度链挤成 0,导致封面空白。
if (!empty($singular_assets['needs_cover'])) {
$single_cover_path = get_template_directory() . '/assets/css/frontend/single-post/cover.css';
if (file_exists($single_cover_path)) {
wp_enqueue_style(
'aksrt-single-post-cover',
$base_uri . '/assets/css/frontend/single-post/cover.css',
$deps,
(string) filemtime($single_cover_path)
);
}
}
$resource_meta_path = get_template_directory() . '/assets/css/frontend/resource-meta/part.css';
wp_enqueue_style(
'aksrt-resource-meta',
$base_uri . '/assets/css/frontend/resource-meta/part.css',
$deps,
file_exists($resource_meta_path) ? (string) filemtime($resource_meta_path) : $version
);
// 评论区样式由统一入口按 needs_comments 加载。
}
// 资源归档专属样式
if ($is_resource_archive) {
$enqueue_module('resource-archive');
}
// 单篇资源 / 付费内容 / 独立下载页:下载 + 收银台脚本
if ($is_single_resource || $is_paid_content_single || $is_download_file_page) {
$cms_download_css_path = get_template_directory() . '/assets/css/frontend/cms-download.css';
wp_enqueue_style(
'aksrt-cms-download',
$base_uri . '/assets/css/frontend/cms-download.css',
[$core_dep],
file_exists($cms_download_css_path) ? (string) filemtime($cms_download_css_path) : $version
);
$cms_download_js_path = get_template_directory() . '/assets/js/cms-download.js';
wp_enqueue_script(
'aksrt-cms-download',
$base_uri . '/assets/js/cms-download.js',
['loader_js'],
file_exists($cms_download_js_path) ? (string) filemtime($cms_download_js_path) : $version,
true
);
}
if ($is_fixed_homepage) {
$homepage_filename = file_exists(get_template_directory() . '/assets/css/build/homepage.min.css')
? 'homepage.min.css'
: 'homepage.css';
$homepage_bundle = get_template_directory() . '/assets/css/build/' . $homepage_filename;
wp_enqueue_style(
'aksrt-homepage-fixed',
$base_uri . '/assets/css/build/' . $homepage_filename,
['aksrt-public'],
file_exists($homepage_bundle) ? (string) filemtime($homepage_bundle) : $version
);
}
// 积分相关:已登录 + 启用积分功能时全站加载
if ($credits_on || $balance_on || $affiliate_on) {
$enqueue_module('credits');
// profile 页:加载 credits.js(签到 + 邀请 + 提现交互)
if ($is_profile_page) {
$affiliate_deps = [];
if ($affiliate_on) {
// 推广二维码生成库(本地打包,无外部 CDN)。
$qrcode_js_path = get_template_directory() . '/assets/js/vendor/qrcode.min.js';
wp_enqueue_script(
'aksrt-qrcode',
$base_uri . '/assets/js/vendor/qrcode.min.js',
[],
file_exists($qrcode_js_path) ? (string) filemtime($qrcode_js_path) : $version,
true
);
$affiliate_deps[] = 'aksrt-qrcode';
}
$credits_js_path = get_template_directory() . '/assets/js/credits.js';
wp_enqueue_script(
'aksrt-credits',
$base_uri . '/assets/js/credits.js',
array_merge(['loader_js', 'aksrt-vip-coordinator'], $affiliate_deps),
file_exists($credits_js_path) ? (string) filemtime($credits_js_path) : $version,
true
);
}
}
if ($signin_on) {
$signin_js_path = get_template_directory() . '/assets/js/signin.js';
wp_enqueue_script(
'aksrt-signin',
$base_uri . '/assets/js/signin.js',
['loader_js'],
file_exists($signin_js_path) ? (string) filemtime($signin_js_path) : $version,
true
);
}
// Badges UI: user center + public profile (legacy medal modal/list).
if (class_exists('\AKSRT\User\Badges') && \AKSRT\User\Badges::enabled()) {
$is_badge_surface = $is_profile_page
|| is_author()
|| (function_exists('aksrt_is_user_home_page') && aksrt_is_user_home_page())
|| (function_exists('aksrt_is_user_center_page') && aksrt_is_user_center_page());
if ($is_badge_surface) {
$enqueue_module('medal');
$badge_actions_path = get_template_directory() . '/assets/js/user-badge-actions.js';
if (file_exists($badge_actions_path)) {
wp_enqueue_script(
'aksrt-user-badge-actions',
$base_uri . '/assets/js/user-badge-actions.js',
['loader_js'],
(string) filemtime($badge_actions_path),
true
);
}
}
}
$this->enqueue_public_fonts_js_and_data(
$base_uri,
$core_dep,
$deps,
$is_fixed_homepage,
$is_home_or_archive,
$is_single_post,
$is_single_resource,
$version,
$singular_assets
);
}
}