feat(auth): rebuild the sign-in surfaces on the shared sign-card contract
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.
This commit is contained in:
1 parent
d40906b4a3
commit
41366e7fc4
15 files changed
+664
-281
No files matched your search
+11
-17
@@ -47,16 +47,18 @@ if (!function_exists('jio_get_auth_agreement_view')) {
|
||||
}
|
||||
$links = [];
|
||||
if ($enabled) {
|
||||
$links[] = $url !== '' ? sprintf('<a href="%s" target="_blank" rel="noopener noreferrer">%s</a>', esc_url($url), esc_html__('用户协议', 'jio')) : esc_html__('用户协议', 'jio');
|
||||
$links[] = $url !== '' ? sprintf('<a class="focus-color" href="%s" target="_blank" rel="noopener noreferrer">%s</a>', esc_url($url), esc_html__('用户协议', 'jio')) : esc_html__('用户协议', 'jio');
|
||||
}
|
||||
if ($privacy_enabled) {
|
||||
$links[] = $privacy_url !== '' ? sprintf('<a href="%s" target="_blank" rel="noopener noreferrer">%s</a>', esc_url($privacy_url), esc_html__('隐私协议', 'jio')) : esc_html__('隐私协议', 'jio');
|
||||
$links[] = $privacy_url !== '' ? sprintf('<a class="focus-color" href="%s" target="_blank" rel="noopener noreferrer">%s</a>', esc_url($privacy_url), esc_html__('隐私协议', 'jio')) : esc_html__('隐私协议', 'jio');
|
||||
}
|
||||
$links_html = implode(esc_html__('、', 'jio'), $links);
|
||||
$label_html = esc_html__('我已阅读并同意', 'jio') . implode(esc_html__('和', 'jio'), $links);
|
||||
|
||||
return [
|
||||
'enabled' => $enabled || $privacy_enabled,
|
||||
'required' => $required,
|
||||
'links_html' => $links_html,
|
||||
'label_html' => $label_html,
|
||||
'field_name' => 'agree_terms',
|
||||
];
|
||||
@@ -65,27 +67,19 @@ if (!function_exists('jio_get_auth_agreement_view')) {
|
||||
|
||||
if (!function_exists('jio_get_auth_sign_logo_html')) {
|
||||
/**
|
||||
* Shared logo block for full-page sign shell.
|
||||
* Shared logo block for the sign card (modal and /sign/).
|
||||
*/
|
||||
function jio_get_auth_sign_logo_html(): string {
|
||||
$logo_url = class_exists('\Jio\Settings\Settings') ? \Jio\Settings\Settings::user_logo_url() : '';
|
||||
$logo_dark_url = class_exists('\Jio\Settings\Settings') ? \Jio\Settings\Settings::user_logo_dark_url() : $logo_url;
|
||||
$logo_dark_url = class_exists('\Jio\Settings\Settings') ? \Jio\Settings\Settings::user_logo_dark_url() : $logo_url;
|
||||
$home = home_url('/');
|
||||
$name = get_bloginfo('name');
|
||||
if ($logo_url) {
|
||||
return sprintf(
|
||||
'<a href="%s"><img class="sign-logo-light" src="%s" alt="%s"><img class="sign-logo-dark" src="%s" alt="%s"></a>',
|
||||
esc_url($home),
|
||||
esc_url($logo_url),
|
||||
esc_attr($name),
|
||||
esc_url($logo_dark_url),
|
||||
esc_attr($name)
|
||||
);
|
||||
$img = function_exists('jio_get_adaptive_theme_img')
|
||||
? jio_get_adaptive_theme_img($logo_url, $logo_dark_url, $name)
|
||||
: '<img src="' . esc_url($logo_url) . '" alt="' . esc_attr($name) . '">';
|
||||
return '<div class="text-center"><div class="sign-logo box-body"><a href="' . esc_url($home) . '">' . $img . '</a></div></div>';
|
||||
}
|
||||
return sprintf(
|
||||
'<a href="%s" class="sign-logo__text">%s</a>',
|
||||
esc_url($home),
|
||||
esc_html(mb_substr((string) $name, 0, 2))
|
||||
);
|
||||
return '<div class="text-center"><div class="sign-logo box-body"><a href="' . esc_url($home) . '" class="sign-logo__text">' . esc_html(mb_substr((string) $name, 0, 2)) . '</a></div></div>';
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user