'widget_login_logout', 'description' => __( 'Login-logout widget', 'login-logout' ) ); $this->WP_Widget('login_logout', __('Login-logout', 'login-logout'), $widget_ops); } function widget( $args, $instance ) { // outputs the content of the widget extract($args); //$title = apply_filters('widget_title', empty($instance['title']) ? __('Login-logout', 'login-logout') : $instance['title'], $instance, $this->id_base); $title = apply_filters('widget_title', $instance['title']); $login_text = empty($instance['login_text']) ? __('Log in', 'login-logout') : $instance['login_text']; $logout_text = empty($instance['logout_text']) ? __('Log out', 'login-logout') : $instance['logout_text']; $show_welcome_text = $instance['show_welcome_text'] ? '1' : '0'; $welcome_text = empty($instance['welcome_text']) ? __('Welcome [username]', 'login-logout') : $instance['welcome_text']; $register_link = $instance['register_link'] ? '1' : '0'; $register_text = empty($instance['register_text']) ? __('Register', 'login-logout') : $instance['register_text']; $admin_link = $instance['admin_link'] ? '1' : '0'; $admin_text = empty($instance['admin_text']) ? __('Site Admin', 'login-logout') : $instance['admin_text']; $login_redirect_to = $instance['login_redirect_to']; $logout_redirect_to = $instance['logout_redirect_to']; $inline = $instance['inline'] ? '1' : '0'; $login_extra = $instance['login_extra']; $logout_extra = $instance['logout_extra']; echo $before_widget; if ( $title ){ echo $before_title . $title . $after_title; } $redirect_to_self = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; //$redirect_to = $_SERVER['PATH_INFO']; if( empty( $login_redirect_to ) ){ $login_redirect_to = $redirect_to_self; } if( empty( $logout_redirect_to ) ){ $logout_redirect_to = $redirect_to_self; } if( $inline ){ $wrap_before = '

'; $wrap_after = '

'; $item_before = ''; $split_char = ' | '; }else{ $wrap_before = ''; $item_before = '
  • '; $split_char = ''; } echo "\n".''."\n"; echo $wrap_before."\n"; if ( $show_welcome_text ){ if ( is_user_logged_in() ){ $current_user = wp_get_current_user(); $username = $current_user->display_name; $username_link = ''.$username.''; $welcome_text_new = str_replace('[username]', $username_link, $welcome_text); echo $item_before.'"item_welcome">'.$welcome_text_new.$item_after.$split_char; } } echo $item_before; //wp_loginout( $redirect_to_self ); if ( ! is_user_logged_in() ){ echo '"item_login">'; echo ''.$login_text.''; }else{ echo '"item_logout">'; echo ''.$logout_text.''; } echo $item_after; //wp_register(); if( $register_link ){ // register link if ( ! is_user_logged_in() ) { if ( get_option('users_can_register') ){ echo $split_char.$item_before.'"item_register">'.''.$register_text.''.$item_after; } } } if( $admin_link ){ // admin link if ( is_user_logged_in() ) { echo $split_char.$item_before.'"item_admin">'.''.$admin_text.''.$item_after; } } if ( is_user_logged_in() ) { // show extra item if( $login_extra ){ echo $split_char.$item_before.'"item_extra_login">'.$login_extra.$item_after; } }else{ if( $logout_extra ){ echo $split_char.$item_before.'"item_extra_logout">'.$logout_extra.$item_after; } } echo "\n".$wrap_after."\n"; echo $after_widget; } function update( $new_instance, $old_instance ) { // processes widget options to be saved $instance = $old_instance; $new_instance = wp_parse_args( // default values (array) $new_instance, array( 'title' => '', 'register_link' => 0, 'admin_link' => 0, 'login_redirect_to' => '', 'logout_redirect_to' => '', 'inline' => 0 ) ); $instance['title'] = strip_tags($new_instance['title']); $instance['login_text'] = trim($new_instance['login_text']); $instance['logout_text'] = trim($new_instance['logout_text']); $instance['show_welcome_text'] = $new_instance['show_welcome_text'] ? 1 : 0; $instance['welcome_text'] = trim($new_instance['welcome_text']); $instance['register_link'] = $new_instance['register_link'] ? 1 : 0; $instance['register_text'] = trim($new_instance['register_text']); $instance['admin_link'] = $new_instance['admin_link'] ? 1 : 0; $instance['admin_text'] = trim($new_instance['admin_text']); $instance['login_redirect_to'] = strip_tags($new_instance['login_redirect_to']); $instance['logout_redirect_to'] = strip_tags($new_instance['logout_redirect_to']); $instance['inline'] = $new_instance['inline'] ? 1 : 0; $instance['login_extra'] = trim($new_instance['login_extra']); $instance['logout_extra'] = trim($new_instance['logout_extra']); return $instance; } function form( $instance ) { // outputs the options form on admin $instance = wp_parse_args( (array) $instance, array( 'title' => '', 'register_link' => 0, 'admin_link' => 0, 'login_redirect_to' => '', 'logout_redirect_to' => '', 'inline' => 0 ) ); $title = strip_tags($instance['title']); $login_text = trim($instance['login_text']); $logout_text = trim($instance['logout_text']); $show_welcome_text = $instance['show_welcome_text'] ? 'checked="checked"' : ''; $welcome_text = trim($instance['welcome_text']); $register_link = $instance['register_link'] ? 'checked="checked"' : ''; $register_text = trim($instance['register_text']); $admin_link = $instance['admin_link'] ? 'checked="checked"' : ''; $admin_text = trim($instance['admin_text']); $login_redirect_to = strip_tags($instance['login_redirect_to']); $logout_redirect_to = strip_tags($instance['logout_redirect_to']); $inline = $instance['inline'] ? 'checked="checked"' : ''; $login_extra = trim($instance['login_extra']); $logout_extra = trim($instance['logout_extra']); ?>

    id="get_field_id('show_welcome_text'); ?>" name="get_field_name('show_welcome_text'); ?>" />

    id="get_field_id('register_link'); ?>" name="get_field_name('register_link'); ?>" />

    id="get_field_id('admin_link'); ?>" name="get_field_name('admin_link'); ?>" />

    id="get_field_id('inline'); ?>" name="get_field_name('inline'); ?>" />