Skip to:
Content

bbPress.org


Ignore:
Timestamp:
02/03/2011 08:00:34 PM (15 years ago)
Author:
johnjamesjacoby
Message:

Login widget, and various supporting styles and functions for a smarter redirect. Fixes #1464, #1465. Props GautamGupta for original patches.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/plugin/bbp-includes/bbp-widgets.php

    r2818 r2827  
    33/**
    44 * bbPress Widgets
     5 *
     6 * Contains the forum list, topic list, reply list and login form widgets.
    57 *
    68 * @package bbPress
    79 * @subpackage Widgets
    810 */
     11
     12/**
     13 * bbPress Login Widget
     14 *
     15 * Adds a widget which displays the login form
     16 *
     17 * @since bbPress (r2827)
     18 *
     19 * @uses WP_Widget
     20 */
     21class BBP_Login_Widget extends WP_Widget {
     22
     23    /**
     24     * bbPress Login Widget
     25     *
     26     * Registers the login widget
     27     *
     28     * @since bbPress (r2827)
     29     *
     30     * @uses apply_filters() Calls 'bbp_login_widget_options' with the
     31     *                        widget options
     32     */
     33    function BBP_Login_Widget() {
     34        $widget_ops = apply_filters( 'bbp_login_widget_options', array(
     35            'classname'   => 'bbp_widget_login',
     36            'description' => __( 'The login widget.', 'bbpress' )
     37        ) );
     38
     39        parent::WP_Widget( false, __( 'bbPress Login Widget', 'bbpress' ), $widget_ops );
     40    }
     41
     42    /**
     43     * Displays the output, the login form
     44     *
     45     * @since bbPress (r2827)
     46     *
     47     * @param mixed $args Arguments
     48     * @param array $instance Instance
     49     * @uses apply_filters() Calls 'bbp_login_widget_title' with the title
     50     * @uses get_template_part() To get the login/logged in form
     51     */
     52    function widget( $args, $instance ) {
     53        extract( $args );
     54
     55        $title = apply_filters( 'bbp_login_widget_title', $instance['title'] );
     56
     57        echo $before_widget;
     58
     59        if ( !empty( $title ) )
     60            echo $before_title . $title . $after_title;
     61
     62        if ( !is_user_logged_in() ) : ?>
     63
     64            <form method="post" action="<?php bbp_wp_login_action( array( 'context' => 'login_post' ) ); ?>" class="bbp-login-form">
     65                <fieldset>
     66                    <legend><?php _e( 'Login', 'bbpress' ); ?></legend>
     67
     68                    <?php do_action( 'bbp_template_notices' ); ?>
     69
     70                    <div class="bbp-username">
     71                        <label for="user_login"><?php _e( 'Username', 'bbpress' ); ?>: </label>
     72                        <input type="text" name="log" value="<?php bbp_sanitize_val( 'user_login', 'text' ); ?>" size="20" id="user_login" tabindex="<?php bbp_tab_index(); ?>" />
     73                    </div>
     74
     75                    <div class="bbp-password">
     76                        <label for="user_pass"><?php _e( 'Password', 'bbpress' ); ?>: </label>
     77                        <input type="password" name="pwd" value="<?php bbp_sanitize_val( 'user_pass', 'password' ); ?>" size="20" id="user_pass" tabindex="<?php bbp_tab_index(); ?>" />
     78                    </div>
     79
     80                    <div class="bbp-remember-me">
     81                        <input type="checkbox" name="rememberme" value="forever" <?php checked( bbp_get_sanitize_val( 'rememberme', 'checkbox' ), true, true ); ?> id="rememberme" tabindex="<?php bbp_tab_index(); ?>" />
     82                        <label for="rememberme"><?php _e( 'Keep me signed in', 'bbpress' ); ?></label>
     83                    </div>
     84
     85                    <div class="bbp-submit-wrapper">
     86
     87                        <?php do_action( 'login_form' ); ?>
     88
     89                        <input type="submit" name="user-submit" value="<?php _e( 'Log In', 'bbpress' ); ?>" tabindex="<?php bbp_tab_index(); ?>" class="user-submit" />
     90
     91                        <?php bbp_user_login_fields(); ?>
     92
     93                    </div>
     94                </fieldset>
     95            </form>
     96
     97        <?php else : ?>
     98
     99            <div class="bbp-logged-in">
     100                <a href="<?php echo bp_loggedin_user_domain(); ?>"><?php echo get_avatar( bbp_get_current_user_id(), '40' ); ?></a>
     101                <h4><?php echo bbp_get_user_profile_link( bbp_get_current_user_id() ); ?></h4>
     102
     103                <?php bbp_logout_link(); ?>
     104            </div>
     105
     106        <?php endif;
     107
     108        echo $after_widget;
     109    }
     110
     111    /**
     112     * Update the login widget options
     113     *
     114     * @since bbPress (r2827)
     115     *
     116     * @param array $new_instance The new instance options
     117     * @param array $old_instance The old instance options
     118     */
     119    function update( $new_instance, $old_instance ) {
     120        $instance          = $old_instance;
     121        $instance['title'] = strip_tags( $new_instance['title'] );
     122
     123        return $instance;
     124    }
     125
     126    /**
     127     * Output the login widget options form
     128     *
     129     * @since bbPress (r2827)
     130     *
     131     * @param $instance Instance
     132     * @uses BBP_Login_Widget::get_field_id() To output the field id
     133     * @uses BBP_Login_Widget::get_field_name() To output the field name
     134     */
     135    function form( $instance ) {
     136        $title = !empty( $instance['title'] ) ? esc_attr( $instance['title'] ) : ''; ?>
     137
     138        <p>
     139            <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'bbpress' ); ?>
     140            <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>" /></label>
     141        </p>
     142
     143        <?php
     144    }
     145}
    9146
    10147/**
     
    83220        <?php echo $after_widget;
    84221
    85         endif;     
     222        endif;
    86223    }
    87224
     
    279416     */
    280417    function form( $instance ) {
    281         $title     = !empty( $instance['title'] )    ? esc_attr( $instance['title']     ) : '';
     418        $title     = !empty( $instance['title']     ) ? esc_attr( $instance['title']     ) : '';
    282419        $max_shown = !empty( $instance['max_shown'] ) ? esc_attr( $instance['max_shown'] ) : '';
    283420        $show_date = !empty( $instance['show_date'] ) ? esc_attr( $instance['show_date'] ) : '';
Note: See TracChangeset for help on using the changeset viewer.