'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'); ?>" />