WordPress.org

Plugin Directory

Changeset 567933


Ignore:
Timestamp:
07/05/12 18:29:04 (22 months ago)
Author:
georgestephanis
Message:

Bumping up to multi-widget compatible

Location:
category-posts-widget
Files:
3 edited
1 copied

Legend:

Unmodified
Added
Removed
  • category-posts-widget/tags/1.0/readme.txt

    r324064 r567933  
    55Requires at least: 2.7 
    66Tested up to: 3.0.3 
    7 Stable tag: trunk 
     7Stable tag: 1.0 
    88 
    99This widget will let you display a list of the most recent posts in a single category in your sidebar. 
  • category-posts-widget/trunk/readme.txt

    r324064 r567933  
    44Tags: category, categories, widget 
    55Requires at least: 2.7 
    6 Tested up to: 3.0.3 
    7 Stable tag: trunk 
     6Tested up to: 3.4.1 
     7Stable tag: 2.0 
    88 
    99This widget will let you display a list of the most recent posts in a single category in your sidebar. 
     
    2828== Changelog == 
    2929 
     30= 2.0 = 
     31* Now Multi-Widget Friendly, with 200% more awesome! 
     32 
    3033= 1.0 = 
    3134* Release. 
     
    3336== Upgrade Notice == 
    3437 
     38= 2.0 = 
     39When you upgrade, you will need to re-create your widget from version 1.0 -- there is no clean upgrade path. 
     40 
    3541= 1.0 = 
    3642Not Applicable.  Initial Release. 
  • category-posts-widget/trunk/widget_cat_posts.php

    r322977 r567933  
    66Author: E. George Stephanis 
    77Author URI: http://www.Stephanis.info/ 
    8 Version: 1.0 
     8Version: 2.0 
    99*/ 
    1010 
    11 register_activation_hook    (   __FILE__,           array('single_category_posts_widget', 'activate')       ); 
    12 register_deactivation_hook  (   __FILE__,           array('single_category_posts_widget', 'deactivate')     ); 
    13 add_action                  (   "widgets_init",     array('single_category_posts_widget', 'register')       ); 
     11class single_category_posts_widget extends WP_Widget { 
    1412 
    15 class single_category_posts_widget { 
     13    public function __construct() { 
     14        parent::__construct( 
     15            'single_category_posts_widget', 
     16            'Single Category Posts Widget', 
     17            array( 'description' => __( 'A widget to display the most recent posts from a single category' ) ), 
     18        ); 
     19    } 
    1620 
    17     function activate() 
    18     { 
    19         if( get_option( 'single_category_posts_widget_title' ) === FALSE ) { 
    20             update_option( 'single_category_posts_widget_title', 'Recent Category Posts' ); 
    21         } 
    22         if( get_option( 'single_category_posts_widget_category' ) === FALSE ) { 
    23             update_option( 'single_category_posts_widget_category', 0 ); 
    24         } 
    25         if( get_option( 'single_category_posts_widget_qty' ) === FALSE ) { 
    26             update_option( 'single_category_posts_widget_qty', 5 ); 
    27         } 
    28     } 
    29      
    30     function deactivate() 
    31     { 
    32         delete_option( 'single_category_posts_widget_title' ); 
    33         delete_option( 'single_category_posts_widget_category' ); 
    34         delete_option( 'single_category_posts_widget_qty' ); 
    35     } 
    36      
    37     function register() 
    38     { 
    39         wp_register_sidebar_widget( 'recent-category-posts', 'Recent Posts in Category', array('single_category_posts_widget', 'widget' )); 
    40         wp_register_widget_control( 'recent-category-posts', 'Recent Posts in Category', array('single_category_posts_widget', 'control' )); 
    41     } 
    42      
    43     function control() 
    44     { 
    45         if (isset($_POST['single_category_posts_widget_title']))        update_option(  'single_category_posts_widget_title',       mysql_real_escape_string($_POST['single_category_posts_widget_title'])      ); 
    46         if (isset($_POST['single_category_posts_widget_category']))     update_option(  'single_category_posts_widget_category',    intval($_POST['single_category_posts_widget_category']) ); 
    47         if (isset($_POST['single_category_posts_widget_qty']))          update_option(  'single_category_posts_widget_qty',         intval($_POST['single_category_posts_widget_qty'])      ); 
     21    public function form( $instance ) { 
     22        $title = isset( $instance[ 'title' ] ) ? $instance[ 'title' ] : __( 'Recent Posts in Category' ); 
     23        $cat = isset( $instance[ 'cat' ] ) ? intval( $instance[ 'cat' ] ) : 0; 
     24        $qty = isset( $instance[ 'qty' ] ) ? intval( $instance[ 'qty' ] ) : 5; 
    4825        ?> 
    49         <p><label> 
    50             <strong>Widget Title:</strong><br /> 
    51             <input class="widefat" type="text" name="single_category_posts_widget_title" value="<?php echo get_option( 'single_category_posts_widget_title' ); ?>" /></label></p> 
    52         <p><label> 
    53             <strong>What Category:</strong><br /> 
     26        <p> 
     27            <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>  
     28            <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" /> 
     29        </p> 
     30        <p> 
     31            <label for="<?php echo $this->get_field_id( 'cat' ); ?>"><?php _e( 'Category:' ); ?></label>  
    5432            <?php wp_dropdown_categories( Array( 
    5533                        'orderby'            => 'ID',  
     
    5937                        'hide_if_empty'      => false, 
    6038                        'echo'               => 1, 
    61                         'selected'           => get_option( 'single_category_posts_widget_category' ), 
     39                        'selected'           => $cat, 
    6240                        'hierarchical'       => 1,  
    63                         'name'               => 'single_category_posts_widget_category', 
    64                         'id'                 => 'single_category_posts_widget_category', 
     41                        'name'               => $this->get_field_name( 'cat' ), 
     42                        'id'                 => $this->get_field_id( 'cat' ), 
    6543                        'class'              => 'widefat', 
    6644                        'taxonomy'           => 'category', 
    67                     ) ); ?></label></p> 
    68         <p><label> 
    69             <strong>How Many Posts:</strong><br /> 
    70             <input class="widefat" type="text" name="single_category_posts_widget_qty" value="<?php echo get_option( 'single_category_posts_widget_qty' ); ?>" /></label></p> 
    71         <?php 
     45                    ) ); ?> 
     46        </p> 
     47        <p> 
     48            <label for="<?php echo $this->get_field_id( 'qty' ); ?>"><?php _e( 'Quantity:' ); ?></label>  
     49            <input id="<?php echo $this->get_field_id( 'qty' ); ?>" name="<?php echo $this->get_field_name( 'qty' ); ?>" type="number" min="1" step="1" value="<?php echo $qty; ?>" /> 
     50        </p> 
     51        <?php  
    7252    } 
    73      
    74     function widget( $args ) 
    75     { 
    76         echo $args['before_widget']; 
    77         echo $args['before_title'] . get_option( 'single_category_posts_widget_title', 'Recent Category Posts' ) . $args['after_title']; 
    78         echo self::get_cat_posts( get_option( 'single_category_posts_widget_category', 0 ), get_option( 'single_category_posts_widget_qty', 5 ) ); 
    79         echo $args['after_widget']; 
     53 
     54    public function update( $new_instance, $old_instance ) { 
     55        $instance = array(); 
     56        $instance['title'] = strip_tags( $new_instance['title'] ); 
     57        $instance['cat'] = intval( $new_instance['cat'] ); 
     58        $instance['qty'] = intval( $new_instance['qty'] ); 
     59        return $instance; 
    8060    } 
    81      
    82     function get_cat_posts( $cat, $qty ) 
    83     { 
     61 
     62    public function widget( $args, $instance ) { 
     63        extract( $args ); 
     64        $title = apply_filters( 'widget_title', $instance['title'] ); 
     65        $cat = $instance['cat']; 
     66        $qty = (int) $instance['qty']; 
     67 
     68        echo $before_widget; 
     69        if ( ! empty( $title ) ) echo $before_title . $title . $after_title; 
     70        echo self::get_cat_posts( $cat, $qty ); 
     71        echo $after_widget; 
     72    } 
     73 
     74    public function get_cat_posts( $cat, $qty ) { 
    8475        $posts = get_posts( Array( 
    8576            'cat'           =>  $cat, 
     
    8879            'numberposts'   =>  $qty 
    8980        )); 
     81 
    9082        $returnThis = ''; 
    9183        if( count( $posts ) ) 
    92             $returnThis .= '<ul>'."\r\n"; 
     84            $returnThis .= '<ul class="'.__CLASS__.'">'."\r\n"; 
    9385        foreach( $posts as $post ) 
    9486            $returnThis .= "\t".'<li><a href="'.get_permalink( $post->ID ).'">'.$post->post_title.'</a></li>'."\r\n"; 
     
    9789        return $returnThis; 
    9890    } 
    99      
     91 
    10092} 
     93register_widget( 'single_category_posts_widget' ); 
Note: See TracChangeset for help on using the changeset viewer.