2009-12-21 23:07:40 +00:00
< ? php
/*
Widget Name : Latest Thumbnail
Widget URI : http :// comicpress . org /
Description : Display a thumbnail of the latest comic .
Author : Philip M . Hofer ( Frumph )
Version : 1.02
Author URI : http :// frumph . net /
*/
class ComicPressLatestThumbnailWidget extends WP_Widget {
function ComicPressLatestThumbnailWidget ( $skip_widget_init = false ) {
if ( ! $skip_widget_init ) {
$widget_ops = array ( 'classname' => __CLASS__ , 'description' => __ ( 'Display a thumbnail of the latest comic, clickable to go to the comic post.' , 'comicpress' ) );
$this -> WP_Widget ( __CLASS__ , __ ( 'ComicPress Latest Thumbnail' , 'comicpress' ), $widget_ops );
}
}
function widget ( $args , $instance ) {
2009-12-26 16:06:56 +00:00
global $post , $wp_query ;
if ( ! is_home () && $instance [ 'onlyhome' ]) return ;
extract ( $args , EXTR_SKIP );
echo $before_widget ;
$title = empty ( $instance [ 'title' ]) ? '' : apply_filters ( 'widget_title' , $instance [ 'title' ]);
if ( ! empty ( $title ) ) { echo $before_title . $title . $after_title ; };
2009-12-30 11:57:23 +00:00
Protect ();
$comic_query = 'showposts=1&cat=' . get_all_comic_categories_as_cat_string ();
query_posts ( $comic_query );
2009-12-26 16:06:56 +00:00
$archive_image = null ;
2009-12-30 11:57:23 +00:00
if ( have_posts ()) {
while ( have_posts ()) : the_post ();
new function comicpress_display_comic_image() which you can pass a string "archive,rss,mini,comic" whatever order you want to try first, as well as can pass boolean use thumbnail which will check if the post has a thumbnail image if so use that and bypass the other thumbs
echo comicpress_display_comic_image("rss,comic", true);
is a valid usage, will check if there's a thumbnail for the post and use that, otherwise check the rss directory for an image, if can't find that, default to the comic directory.
Signed-off-by: Philip M. Hofer (Frumph) <frumph_dragon@yahoo.com>
2010-01-02 18:49:59 +00:00
$temp_query = $wp_query -> is_single ;
$wp_query -> is_single = true ;
echo " <a href= \" " . get_permalink () . " \" > " . comicpress_display_comic_image ( 'rss,archive,mini,comic' , true ) . " </a> \r \n " ;
$wp_query -> is_single = $temp_query ;
2009-12-30 11:57:23 +00:00
endwhile ;
}
Restore ();
UnProtect ();
wp_reset_query ();
2009-12-26 16:06:56 +00:00
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-26 16:06:56 +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-26 16:06:56 +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-26 16:06:56 +00:00
$onlyhome = $instance [ 'onlyhome' ];
2009-12-21 23:07:40 +00:00
?>
< p >< label for = " <?php echo $this->get_field_id ('title'); ?> " >< ? php _e ( 'Title:' , 'comicpress' ); ?> <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-26 16:06:56 +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>
< ? php
2009-12-21 23:07:40 +00:00
}
}
?>