PageRenderTime 47ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/wp/wp-content/plugins/members/includes/widget-login-form.php

https://bitbucket.org/akeda/bmw-id-hris
PHP | 262 lines | 173 code | 41 blank | 48 comment | 10 complexity | 31cb7417b2365cc5293961b876dd0c05 MD5 | raw file
  1. <?php
  2. /**
  3. * Creates a widget that allows users to add a login form to a widget area.
  4. *
  5. * @package Members
  6. * @subpackage Includes
  7. */
  8. /**
  9. * Login form widget class.
  10. *
  11. * @since 0.1.0
  12. */
  13. class Members_Widget_Login extends WP_Widget {
  14. /**
  15. * Set up the widget's unique name, ID, class, description, and other options.
  16. *
  17. * @since 0.1.0
  18. */
  19. function Members_Widget_Login() {
  20. /* Set up the widget options. */
  21. $widget_options = array(
  22. 'classname' => 'login',
  23. 'description' => esc_html__( 'A widget that allows users to log into your site.', 'members' )
  24. );
  25. /* Set up the widget control options. */
  26. $control_options = array(
  27. 'width' => 800,
  28. 'height' => 350,
  29. 'id_base' => 'members-widget-login'
  30. );
  31. /* Create the widget. */
  32. $this->WP_Widget( 'members-widget-login', esc_attr__( 'Login Form', 'members' ), $widget_options, $control_options );
  33. }
  34. /**
  35. * Outputs the widget based on the arguments input through the widget controls.
  36. *
  37. * @since 0.1.0
  38. */
  39. function widget( $args, $instance ) {
  40. global $user_identity, $user_ID;
  41. extract( $args );
  42. /* Set up the arguments for wp_login_form(). */
  43. $args = array(
  44. 'form_id' => !empty( $instance['form_id'] ) ? esc_attr( $instance['form_id'] ) : 'loginform',
  45. 'label_username' => esc_html( $instance['label_username'] ),
  46. 'label_password' => esc_html( $instance['label_password'] ),
  47. 'label_remember' => esc_html( $instance['label_remember'] ),
  48. 'label_log_in' => esc_html( $instance['label_log_in'] ),
  49. 'id_username' => esc_attr( $instance['id_username'] ),
  50. 'id_password' => esc_attr( $instance['id_password'] ),
  51. 'id_remember' => esc_attr( $instance['id_submit'] ),
  52. 'id_submit' => esc_attr( $instance['remember'] ),
  53. 'remember' => !empty( $instance['remember'] ) ? true : false,
  54. 'value_username' => esc_attr( $instance['value_username'] ),
  55. 'value_remember' => !empty( $instance['value_remember'] ) ? true : false,
  56. 'echo' => false,
  57. );
  58. if ( !empty( $instance['redirect'] ) )
  59. $args['redirect'] = esc_url( $instance['redirect'] );
  60. /* Get the logged in/out text. */
  61. $logged_in_text = apply_filters( 'widget_text', $instance['logged_in_text'] );
  62. $logged_out_text = apply_filters( 'widget_text', $instance['logged_out_text'] );
  63. $show_avatar = !empty( $instance['show_avatar'] ) ? true : false;
  64. /* Output the theme's $before_widget wrapper. */
  65. echo $before_widget;
  66. /* If a title was input by the user, display it. */
  67. if ( !empty( $instance['title'] ) )
  68. echo $before_title . apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ) . $after_title;
  69. /* If the current user is logged in. */
  70. if ( is_user_logged_in() ) {
  71. /* Show avatar if enabled. */
  72. if ( !empty( $show_avatar ) )
  73. echo get_avatar( $user_ID );
  74. /* Show logged in text if any is written. */
  75. if ( !empty( $logged_in_text ) )
  76. echo do_shortcode( shortcode_unautop( wpautop( $logged_in_text ) ) );
  77. }
  78. /* If the current user is not logged in. */
  79. else {
  80. /* Show avatar if enabled. */
  81. if ( $show_avatar )
  82. echo get_avatar( $user_ID );
  83. /* Show logged out text if any is written. */
  84. if ( $logged_out_text )
  85. echo do_shortcode( shortcode_unautop( wpautop( $logged_out_text ) ) );
  86. /* Output the login form. */
  87. echo '<div class="members-login-form">' . wp_login_form( $args ) . '</div>';
  88. }
  89. /* Close the theme's widget wrapper. */
  90. echo $after_widget;
  91. }
  92. /**
  93. * Updates the widget control options for the particular instance of the widget.
  94. *
  95. * @since 0.1.0
  96. */
  97. function update( $new_instance, $old_instance ) {
  98. $instance = $old_instance;
  99. $instance['title'] = strip_tags( $new_instance['title'] );
  100. $instance['label_username'] = strip_tags( $new_instance['label_username'] );
  101. $instance['label_password'] = strip_tags( $new_instance['label_password'] );
  102. $instance['label_remember'] = strip_tags( $new_instance['label_remember'] );
  103. $instance['label_log_in'] = strip_tags( $new_instance['label_log_in'] );
  104. $instance['id_username'] = strip_tags( $new_instance['id_username'] );
  105. $instance['id_password'] = strip_tags( $new_instance['id_password'] );
  106. $instance['id_remember'] = strip_tags( $new_instance['id_remember'] );
  107. $instance['id_submit'] = strip_tags( $new_instance['id_submit'] );
  108. $instance['value_username'] = strip_tags( $new_instance['value_username'] );
  109. $instance['remember'] = ( isset( $new_instance['remember'] ) ? 1 : 0 );
  110. $instance['value_remember'] = ( isset( $new_instance['value_remember'] ) ? 1 : 0 );
  111. $instance['show_avatar'] = ( isset( $new_instance['show_avatar'] ) ? 1 : 0 );
  112. if ( current_user_can('unfiltered_html') ) {
  113. $instance['logged_in_text'] = $new_instance['logged_in_text'];
  114. $instance['logged_out_text'] = $new_instance['logged_out_text'];
  115. }
  116. else {
  117. $instance['logged_in_text'] = wp_filter_post_kses( $new_instance['logged_in_text'] );
  118. $instance['logged_out_text'] = wp_filter_post_kses( $new_instance['logged_out_text'] );
  119. }
  120. return $instance;
  121. }
  122. /**
  123. * Displays the widget control options in the Widgets admin screen.
  124. *
  125. * @since 0.1.0
  126. */
  127. function form( $instance ) {
  128. /* Set up the default form values. */
  129. $defaults = array(
  130. 'title' => esc_attr__( 'Log In', 'members' ),
  131. 'label_username' => esc_attr__( 'Username', 'members' ),
  132. 'label_password' => esc_attr__( 'Password', 'members' ),
  133. 'label_log_in' => esc_attr__( 'Log In', 'members' ),
  134. 'label_remember' => esc_attr__('Remember Me', 'members' ),
  135. 'form_id' => 'loginform',
  136. 'id_username' => 'user_login',
  137. 'id_password' => 'user_pass',
  138. 'id_remember' => 'rememberme',
  139. 'id_submit' => 'wp-submit',
  140. 'remember' => true,
  141. 'value_remember' => false,
  142. 'value_username' => '',
  143. 'show_avatar' => true,
  144. 'logged_out_text' => esc_html__( 'Please log into the site.', 'members' ),
  145. 'logged_in_text' => esc_html__( 'You are currently logged in.', 'members' )
  146. );
  147. /* Merge the user-selected arguments with the defaults. */
  148. $instance = wp_parse_args( (array) $instance, $defaults );
  149. $logged_in_text = format_to_edit( $instance['logged_in_text'] );
  150. $logged_out_text = format_to_edit( $instance['logged_out_text'] ); ?>
  151. <div style="float: left; width: 31%; margin-right: 3.5%;">
  152. <p>
  153. <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title:', 'members' ); ?></label>
  154. <input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" />
  155. </p>
  156. <p>
  157. <label for="<?php echo $this->get_field_id( 'label_username' ); ?>"><code>label_username</code></label>
  158. <input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'label_username' ); ?>" name="<?php echo $this->get_field_name( 'label_username' ); ?>" value="<?php echo $instance['label_username']; ?>" />
  159. </p>
  160. <p>
  161. <label for="<?php echo $this->get_field_id( 'label_password' ); ?>"><code>label_password</code></label>
  162. <input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'label_password' ); ?>" name="<?php echo $this->get_field_name( 'label_password' ); ?>" value="<?php echo $instance['label_password']; ?>" />
  163. </p>
  164. <p>
  165. <label for="<?php echo $this->get_field_id( 'label_log_in' ); ?>"><code>label_log_in</code></label>
  166. <input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'label_log_in' ); ?>" name="<?php echo $this->get_field_name( 'label_log_in' ); ?>" value="<?php echo $instance['label_log_in']; ?>" />
  167. </p>
  168. <p>
  169. <label for="<?php echo $this->get_field_id( 'label_remember' ); ?>"><code>label_remember</code></label>
  170. <input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'label_remember' ); ?>" name="<?php echo $this->get_field_name( 'label_remember' ); ?>" value="<?php echo $instance['label_remember']; ?>" />
  171. </p>
  172. </div>
  173. <div style="float: left; width: 31%; margin-right: 3.5%;">
  174. <p>
  175. <label for="<?php echo $this->get_field_id( 'value_username' ); ?>"><code>value_username</code></label>
  176. <input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'value_username' ); ?>" name="<?php echo $this->get_field_name( 'value_username' ); ?>" value="<?php echo $instance['value_username']; ?>" />
  177. </p>
  178. <p>
  179. <label for="<?php echo $this->get_field_id( 'id_username' ); ?>"><code>id_username</code></label>
  180. <input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'id_username' ); ?>" name="<?php echo $this->get_field_name( 'id_username' ); ?>" value="<?php echo $instance['id_username']; ?>" />
  181. </p>
  182. <p>
  183. <label for="<?php echo $this->get_field_id( 'id_remember' ); ?>"><code>id_remember</code></label>
  184. <input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'id_remember' ); ?>" name="<?php echo $this->get_field_name( 'id_remember' ); ?>" value="<?php echo $instance['id_remember']; ?>" />
  185. </p>
  186. <p>
  187. <label for="<?php echo $this->get_field_id( 'id_password' ); ?>"><code>id_password</code></label>
  188. <input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'id_password' ); ?>" name="<?php echo $this->get_field_name( 'id_password' ); ?>" value="<?php echo $instance['id_password']; ?>" />
  189. </p>
  190. <p>
  191. <label for="<?php echo $this->get_field_id( 'id_submit' ); ?>"><code>id_submit</code></label>
  192. <input type="text" class="widefat code" id="<?php echo $this->get_field_id( 'id_submit' ); ?>" name="<?php echo $this->get_field_name( 'id_submit' ); ?>" value="<?php echo $instance['id_submit']; ?>" />
  193. </p>
  194. </div>
  195. <div style="float: right; width: 31%;">
  196. <p>
  197. <input class="checkbox" type="checkbox" <?php checked( $instance['remember'], true ); ?> id="<?php echo $this->get_field_id( 'remember' ); ?>" name="<?php echo $this->get_field_name( 'remember' ); ?>" />
  198. <label for="<?php echo $this->get_field_id( 'remember' ); ?>"><?php _e( '"Remember me" checkbox?', 'members' ); ?> <code>remember</code></label>
  199. </p>
  200. <p>
  201. <input class="checkbox" type="checkbox" <?php checked( $instance['value_remember'], true ); ?> id="<?php echo $this->get_field_id( 'value_remember' ); ?>" name="<?php echo $this->get_field_name( 'value_remember' ); ?>" />
  202. <label for="<?php echo $this->get_field_id( 'value_remember' ); ?>"><?php _e( 'Check "remember me"?', 'members' ); ?> <code>value_remember</code></label>
  203. </p>
  204. <p>
  205. <label for="<?php echo $this->get_field_id( 'show_avatar' ); ?>">
  206. <input class="checkbox" type="checkbox" <?php checked( $instance['show_avatar'], true ); ?> id="<?php echo $this->get_field_id( 'show_avatar' ); ?>" name="<?php echo $this->get_field_name( 'show_avatar' ); ?>" /> <?php _e('Display avatar?', 'widgets-reloaded'); ?></label>
  207. </p>
  208. <p>
  209. <label for="<?php echo $this->get_field_id( 'logged_out_text' ); ?>"><?php _e( 'Logged out text:', 'members' ); ?></label>
  210. <textarea class="widefat" rows="2" cols="20" id="<?php echo $this->get_field_id( 'logged_out_text' ); ?>" name="<?php echo $this->get_field_name('logged_out_text'); ?>" style="width:100%;"><?php echo $logged_out_text; ?></textarea>
  211. </p>
  212. <p>
  213. <label for="<?php echo $this->get_field_id( 'logged_in_text' ); ?>"><?php _e( 'Logged in text:', 'members' ); ?></label>
  214. <textarea class="widefat" rows="2" cols="20" id="<?php echo $this->get_field_id( 'logged_in_text' ); ?>" name="<?php echo $this->get_field_name('logged_in_text'); ?>" style="width:100%;"><?php echo $logged_in_text; ?></textarea>
  215. </p>
  216. </div>
  217. <div style="clear:both;">&nbsp;</div>
  218. <?php
  219. }
  220. }
  221. ?>