PluginProbe
LoginPress | wp-login Custom Login Page Customizer / trunk
LoginPress | wp-login Custom Login Page Customizer vtrunk
6.2.5 6.2.4 6.2.3 6.2.2 6.2.1 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.2 1.0.20 1.0.21 1.0.22 1.0.23 1.0.3 1.0.4 All 118 releases
loginpress / js / script-login.php

script-login.php in LoginPress | wp-login Custom Login Page Customizer trunk, at js/script-login.php

156 lines 5.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php // phpcs:ignore
2
3 /**
4 * LoginPress Custom JS Script
5 *
6 * This file handles custom JavaScript injection and functionality for the LoginPress login page.
7 *
8 * @package LoginPress
9 * @since 1.2.2
10 * @version 6.2.0
11 */
12
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 /**
18 * Script-login.php is created for adding JS code in login page footer.
19 *
20 * @param string $loginpress_key The key to retrieve from loginpress_customization option.
21 * @since 1.2.2
22 * @version 1.2.3
23 * @return string|null The custom JS code if found, null otherwise.
24 */
25 function loginpress_custom_js( $loginpress_key ) {
26
27 $loginpress_array = (array) get_option( 'loginpress_customization' );
28 if ( array_key_exists( $loginpress_key, $loginpress_array ) ) {
29
30 if ( 'loginpress_custom_js' === $loginpress_key ) {
31 return $loginpress_array[ $loginpress_key ];
32 }
33 }
34 }
35
36 $loginpress_setting = get_option( 'loginpress_setting' );
37 $loginpress_autorm = isset( $loginpress_setting['auto_remember_me'] ) ? $loginpress_setting['auto_remember_me'] : 'off';
38 $loginpress_capslock = __( 'Caps Lock is on', 'loginpress' );
39 $loginpress_custom_js = loginpress_custom_js( 'loginpress_custom_js' );
40
41 if ( ! empty( $loginpress_custom_js ) ) : ?>
42 <?php
43 // WordPress 5.7+ function that properly handles script tag escaping.
44 if ( function_exists( 'wp_get_inline_script_tag' ) ) {
45 echo wp_get_inline_script_tag( $loginpress_custom_js ); // phpcs:ignore
46 } else {
47 ?>
48 <script>
49 <?php
50 // Remove HTML tags to prevent XSS while preserving JavaScript syntax.
51 echo wp_strip_all_tags( $loginpress_custom_js ); // phpcs:ignore
52 ?>
53 </script>
54 <?php
55 }
56 ?>
57 <?php endif; ?>
58 <script>
59 document.addEventListener( 'DOMContentLoaded', function() {
60
61 if (navigator.userAgent.indexOf("Firefox") != -1) {
62 var body = document.body;
63 body.classList.add("firefox");
64 }
65 // your code goes here
66 if ( document.getElementById('user_pass') ) {
67
68 var loginpress_user_pass = document.getElementById('user_pass');
69 var loginpress_wrapper = document.createElement('div');
70 loginpress_wrapper.classList.add('user-pass-fields');
71 // insert wrapper before el in the DOM tree
72 user_pass.parentNode.insertBefore(loginpress_wrapper, loginpress_user_pass);
73
74 // move el into wrapper
75 loginpress_wrapper.appendChild(loginpress_user_pass);
76 var loginpress_user_ps = document.getElementsByClassName('user-pass-fields');
77 var loginpress_node = document.createElement("div");
78 loginpress_node.classList.add('loginpress-caps-lock');
79 var loginpress_textnode = document.createTextNode('<?php echo esc_js( $loginpress_capslock ); ?>');
80 loginpress_node.appendChild(loginpress_textnode);
81 loginpress_user_ps[0].appendChild(loginpress_node);
82 }
83
84 }, false );
85 window.onload = function(e) {
86
87 var capsLock = 'off';
88 var passwordField = document.getElementById("user_pass");
89 if ( passwordField ) {
90
91 passwordField.onkeydown = function(e) {
92 var el = this;
93 var caps = event.getModifierState && event.getModifierState( 'CapsLock' );
94 if ( caps ) {
95 capsLock = 'on';
96 el.nextElementSibling.style.display = "block";
97 } else {
98 capsLock = 'off';
99 el.nextElementSibling.style.display = "none";
100 }
101 };
102
103 passwordField.onblur = function(e) {
104 var el = this;
105 el.nextElementSibling.style.display = "none";
106 };
107
108 passwordField.onfocus = function(e) {
109 var el = this;
110 if ( capsLock == 'on' ) {
111 el.nextElementSibling.style.display = "block";
112 } else {
113 el.nextElementSibling.style.display = "none";
114 }
115 };
116 }
117
118 // if ( document.getElementById("loginform") ) {
119 // document.getElementById("loginform").addEventListener( "submit", _LoginPressFormSubmitLoader );
120 // }
121 // if ( document.getElementById("registerform") ) {
122 // document.getElementById("registerform").addEventListener( "submit", _LoginPressFormSubmitLoader );
123 // }
124 // if ( document.getElementById("lostpasswordform") ) {
125 // document.getElementById("lostpasswordform").addEventListener( "submit", _LoginPressFormSubmitLoader );
126 // }
127
128 function _LoginPressFormSubmitLoader() {
129
130 var subButton = document.getElementsByClassName("submit");
131 var myButton = document.getElementById("wp-submit");
132 var image = document.createElement("img");
133
134 myButton.setAttribute('disabled', 'disabled');
135 image.setAttribute( "src", "<?php echo esc_url( admin_url( 'images/loading.gif' ) ); ?>" );
136 image.setAttribute( "width", "20" );
137 image.setAttribute( "height", "20" );
138 image.setAttribute( "alt", "Login Loader" );
139 image.setAttribute( "style", "display: block;margin: 0 auto;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);" );
140 subButton[0].appendChild(image);
141 }
142 if(jQuery('.login-container').length==0){
143 jQuery('.language-switcher').appendTo(jQuery('#login'));
144 }else{
145 jQuery('.language-switcher').appendTo(jQuery('.login-container'));
146 }
147 };
148
149 <?php if ( 'off' !== $loginpress_autorm ) { ?>
150 var _LoginPressRMChecked = document.getElementById("rememberme");
151 if ( null != _LoginPressRMChecked ) {
152 _LoginPressRMChecked.checked = true;
153 }
154 <?php } ?>
155 </script>
156