The login/register page and the auth modal had drifted into a parallel system: floating-input fields, a sign-page-card shell and a bespoke jio-auth-modal wrapper that none of the theme's own sign CSS targeted. The reference card rules (.sign, .sign-img, .sign-content, .line-form-input, .scale-placeholder, .social_loginbar, .title-h-left, #u_sign .modal-dialog, .qrcode-signin-container) have been in main.css all along, so the fix is to render the reference DOM instead of re-styling a second one. auth-content.php now emits one .sign.jio-panel.blur-bg.relative card with a .tab-content of #tab-sign-in / #tab-sign-up / #tab-resetpassword / #tab-qrcode-signin / #tab-bind panes. Each pane opens with a .title-h-left.fa-2x heading plus a .muted-color.px12 link, fields are .relative.line-form.mb10 > .line-form-input + .scale-placeholder + .line-form-line, the verification trigger is the .yztx.abs-right captchsubmit button, and submits are .but.radius.jb-blue|jb-green.padding-lg.btn-block. Social entries come from the shared render_social_buttons() separator + .social_loginbar, and the OAuth bind pane uses the oauth-data-box avatar card. The modal shell is #u_sign.modal > .modal-dialog > .sign-content > .sign-img.absolute.hide-sm + .sign, and the page shell is the reference .container.sign-page > .row.sign-row.gutters-5 > .col-md-6(.col-md-offset-6/ .col-md-offset-3).sign-col with a .fixed.lazyload background and a blurred fixed footer. auth.js drives .in instead of .is-open, toggles the new password/signin-mode/invite-gate controls and no longer touches the retired markup. The page also drops two footer-hook removals that targeted functions which no longer exist, and opts out of the fixed-nav offset. The sign page's custom theme setting now actually applies: Router answers jio_forced_theme_mode, jioData.themeForced wins over the stored cookie in theme.js, theme-toggle positions are suppressed, and the page marks html/body dark or white accordingly. sign.css shrinks from ~114 lines of bespoke component styling to a thin positioning layer, and the retired classes are gone rather than kept. Verification: php -l on every changed PHP file, node --check on both JS files, node --test across widget-system, navigation and front-submit (873 passing), and tools/audit-psr4-paths.php / audit-admin-contracts.php both at 0 errors. assets/js/runtime/main.min.js was rebuilt because theme.js gained the forced theme branch.
41 lines
2.0 KiB
PHP
41 lines
2.0 KiB
PHP
<?php
|
|
/**
|
|
* Shared authentication modal shell.
|
|
*
|
|
* @package Jio
|
|
*/
|
|
|
|
defined('ABSPATH') || exit;
|
|
|
|
if (is_user_logged_in() || (class_exists('\Jio\Settings\Settings') && \Jio\Settings\Settings::close_sign())) {
|
|
return;
|
|
}
|
|
|
|
$modal_ui = class_exists('\Jio\Settings\Settings') ? \Jio\Settings\Settings::modal_ui() : [];
|
|
$images = $modal_ui['background'] ?? [];
|
|
$image_id = $images ? (int) $images[array_rand($images)] : 0;
|
|
$image_html = $image_id > 0 ? wp_get_attachment_image($image_id, 'full', false, [
|
|
'class' => 'fit-cover radius8',
|
|
'alt' => get_bloginfo('name'),
|
|
'decoding' => 'async',
|
|
]) : '';
|
|
$auto = class_exists('\Jio\Settings\Settings') ? \Jio\Settings\Settings::sign_modal_auto() : ['enabled' => false, 'waiting' => 5, 'expires' => 1];
|
|
$wechat = class_exists('\Jio\Settings\Settings') ? \Jio\Settings\Settings::get_weixingzh_settings() : [];
|
|
$initial_tab = !empty($wechat['priority']) && class_exists('\Jio\Auth\WeixinGzh') && \Jio\Auth\WeixinGzh::is_enabled() ? 'oauth' : 'signin';
|
|
$jio_auth_context = [
|
|
'surface' => 'modal',
|
|
'tab' => $initial_tab,
|
|
'show_logo' => !empty($modal_ui['show_logo']),
|
|
'redirect_to' => home_url('/'),
|
|
];
|
|
?>
|
|
<div id="u_sign" class="modal jio-auth-modal<?php echo $image_html !== '' ? ' has-sign-img' : ''; ?>" aria-hidden="true" role="dialog" aria-modal="true" aria-labelledby="jio-auth-modal-title" tabindex="-1" data-auth-modal data-auto="<?php echo !empty($auto['enabled']) ? '1' : '0'; ?>" data-auto-wait="<?php echo esc_attr((string) $auto['waiting']); ?>" data-auto-expires="<?php echo esc_attr((string) $auto['expires']); ?>">
|
|
<h2 id="jio-auth-modal-title" class="screen-reader-text"><?php esc_html_e('账户登录与注册', 'jio'); ?></h2>
|
|
<div class="modal-dialog" role="document">
|
|
<div class="sign-content">
|
|
<?php if ($image_html !== '') : ?><div class="sign-img absolute hide-sm"><?php echo $image_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></div><?php endif; ?>
|
|
<?php require get_template_directory() . '/templates/parts/auth-content.php'; ?>
|
|
</div>
|
|
</div>
|
|
</div>
|