2009-12-21 23:07:40 +00:00
< ? php
/*
Widget Name : Comic Blog Post Widget
Widget URI : http :// comicpress . org /
Description : Display 's the comic' s blog post .
Author : Philip M . Hofer ( Frumph )
Version : 1.05
Author URI : http :// frumph . net /
2010-01-23 12:02:49 +00:00
*/
2009-12-21 23:07:40 +00:00
class ComicPressComicBlogPostWidget extends WP_Widget {
function ComicPressComicBlogPostWidget ( $skip_widget_init = false ) {
if ( ! $skip_widget_init ) {
2009-12-30 11:56:58 +00:00
$widget_ops = array ( 'classname' => __CLASS__ , 'description' => __ ( 'Displays the comic blog post. (used within the comic sidebar areas)' , 'comicpress' ) );
2009-12-21 23:07:40 +00:00
$this -> WP_Widget ( __CLASS__ , __ ( 'ComicPress Comic Blog Post' , 'comicpress' ), $widget_ops );
}
}
function widget ( $args , $instance ) {
global $post , $wp_query ;
2010-01-23 12:02:49 +00:00
if ( ! is_home () && $instance [ 'onlyhome' ] || ( is_page () || is_archive () || is_search ())) return ;
2009-12-30 11:56:58 +00:00
extract ( $args , EXTR_SKIP );
2010-01-23 12:02:49 +00:00
if ( is_home ()) {
Protect ();
$comic_query = 'showposts=1&cat=' . get_all_comic_categories_as_cat_string ();
$posts = query_posts ( $comic_query );
if ( have_posts ()) {
while ( have_posts ()) : the_post ();
if ( ! empty ( $post -> post_content )) {
echo $before_widget ;
$temp_query = $wp_query -> is_single ;
$wp_query -> is_single = true ;
$title = empty ( $instance [ 'title' ]) ? '' : apply_filters ( 'widget_title' , $instance [ 'title' ]);
if ( ! empty ( $title ) ) { echo " <div class= \" comic-post-header \" > " . $title . " </div> \r \n " ; }
the_content ();
$wp_query -> is_single = $temp_query ;
echo $after_widget ;
}
endwhile ;
}
Restore ();
UnProtect ();
wp_reset_query ();
} else {
if ( ! empty ( $post -> post_content )) {
echo $before_widget ;
$title = empty ( $instance [ 'title' ]) ? '' : apply_filters ( 'widget_title' , $instance [ 'title' ]);
if ( ! empty ( $title ) ) { echo " <div class= \" comic-post-header \" > " . $title . " </div> \r \n " ; }
the_content ();
echo $after_widget ;
}
2009-12-21 23:07:40 +00:00
}
}
function update ( $new_instance , $old_instance ) {
$instance = $old_instance ;
$instance [ 'title' ] = strip_tags ( $new_instance [ 'title' ]);
2009-12-30 11:56:58 +00:00
$instance [ 'onlyhome' ] = ( bool )( $new_instance [ 'onlyhome' ] == 1 ? true : false );
2009-12-21 23:07:40 +00:00
return $instance ;
}
function form ( $instance ) {
2009-12-30 11:56:58 +00:00
$instance = wp_parse_args ( ( array ) $instance , array ( 'title' => '' , 'onlyhome' => false ) );
2009-12-21 23:07:40 +00:00
$title = strip_tags ( $instance [ 'title' ]);
2009-12-30 11:56:58 +00:00
$onlyhome = $instance [ 'onlyhome' ];
2009-12-21 23:07:40 +00:00
?>
< p >< label for = " <?php echo $this->get_field_id ('title'); ?> " > Heading :< br />< input class = " widefat " id = " <?php echo $this->get_field_id ('title'); ?> " name = " <?php echo $this->get_field_name ('title'); ?> " type = " text " value = " <?php echo attribute_escape( $title ); ?> " /></ label ></ p >
2009-12-30 11:56:58 +00:00
< p >< label for = " <?php echo $this->get_field_id ('onlyhome'); ?> " >< input id = " <?php echo $this->get_field_id ('onlyhome'); ?> " name = " <?php echo $this->get_field_name ('onlyhome'); ?> " type = " checkbox " value = " 1 " < ? php checked ( true , $onlyhome ); ?> /> Display only on the home page?</label></p>
2009-12-21 23:07:40 +00:00
< ? php
}
}
?>