Plugin Directory

Changeset 659919


Ignore:
Timestamp:
01/27/2013 10:50:10 PM (13 years ago)
Author:
krawl
Message:

-Changed random order option to be a sort order to choose ascending, descending or random order
-Fixed an issue with the enabling/disabling of the include only drafts option

Location:
bcd-upcoming-posts
Files:
9 added
4 edited

Legend:

Unmodified
Added
Removed
  • bcd-upcoming-posts/trunk/bcd-upcoming-posts.php

    r637859 r659919  
    55    Description: Creates a widget that can be used to display upcoming posts.  It can be customized to display a certain number of posts and in random order.  Also, provides a shortcode to display the list.
    66    Author: Frank Jones
    7     Version: 1.3.0
     7    Version: 1.4.0
    88    Author URI: http://www.duhjones.com/
    99*/
     
    4343                'title' => '',
    4444                'posts_per_page' => '',
    45                 'random_order' => true,
    4645                'display_as_link' => false,
    4746                'include_drafts' => false,
    48                 'include_only_drafts' => false
     47                'include_only_drafts' => false,
     48                'sort_order' => 'ASC'
    4949            )
    5050        );
     
    6767        $posts_per_page_field_name = $this->get_field_name('posts_per_page');
    6868        $posts_per_page_value = attribute_escape($posts_per_page);
    69 
     69       
    7070        echo '<p>';
    7171        echo $this->build_textbox( $posts_per_page_field_id, 'Number of posts to show', 'widefat', $posts_per_page_field_name, $posts_per_page_value );
    7272        echo '</p>';
    7373       
    74        
    7574        // Show in random order
    76         $random_order = $instance['random_order'];
    77         $random_order_field_id = $this->get_field_id('random_order');
    78         $random_order_field_name = $this->get_field_name('random_order');
    79 
    80         echo '<p>';
    81         echo $this->build_checkbox( $random_order, $random_order_field_id, $random_order_field_name, 'Display in random order?', 'no' );
    82         echo '</p>';
    83        
     75        $sort_order = $instance['sort_order'];
     76        $sort_order_field_id = $this->get_field_id('sort_order');
     77        $sort_order_field_name = $this->get_field_name('sort_order');
     78        $sort_order_value = attribute_escape( $sort_order );
     79       
     80        ?>
     81        <p>
     82            <label>Sort order:</label>
     83            <select name="<?php echo $sort_order_field_name; ?>" id="<?php echo $sort_order_field_id; ?>">
     84                <option value="ASC" <?php selected( $sort_order_value, 'ASC' ); ?>>Ascending</option>
     85                <option value="DESC" <?php selected( $sort_order_value, 'DESC' ); ?>>Descending</option>
     86                <option value="rand" <?php selected( $sort_order_value, 'rand' ); ?>>Random</option>
     87            </select>
     88        </p>
     89        <?php
    8490       
    8591        // Show as hyperlink
     
    124130        $instance['title'] = $new_instance['title'];
    125131        $instance['posts_per_page'] = $new_instance['posts_per_page'];
    126         $instance['random_order'] = $new_instance['random_order'];
    127132        $instance['display_as_link'] = $new_instance['display_as_link'];
    128133        $instance['include_drafts'] = $new_instance['include_drafts'];
    129134        $instance['include_only_drafts'] = $new_instance['include_only_drafts'];
     135        $instance['sort_order'] = $new_instance['sort_order'];
    130136
    131137        return $instance;
     
    164170        }
    165171       
    166         if ( !empty( $instance['random_order'] ) && 'on' == $instance['random_order'] ) {
    167             $qry_args['orderby'] = 'rand';
     172        if ( !empty( $instance['sort_order'] ) ) {
     173            switch ( $instance['sort_order'] ) {
     174                case 'DESC':
     175                    echo 'desc';
     176                    $qry_args['order'] = 'DESC';
     177                    $qry_args['orderby'] = 'date';
     178                    break;
     179                case 'rand':
     180                    echo 'rand';
     181                    $qry_args['orderby'] = 'rand';
     182                    break;
     183                default:
     184                    echo 'default';
     185                    $qry_args['order'] = 'ASC';
     186                    $qry_args['orderby'] = 'date';
     187            }
    168188        }
    169189       
     
    248268    extract( shortcode_atts( array(
    249269        'numposts' => '',
    250         'random' => 'no',
     270        'sortorder' => 'asc',
    251271        'showmore' => 'yes',
    252272        'showlink' => 'no',
     
    286306    }
    287307   
    288     if ( !empty( $random ) && 'yes' == $random ) {
    289         $qry_args['orderby'] = 'rand';
     308    if ( !empty( $sortorder ) ) {
     309        switch ( strtolower( $sortorder ) ) {
     310            case 'desc':
     311                $qry_args['order'] = 'DESC';
     312                $qry_args['orderby'] = 'date';
     313                break;
     314            case 'rand':
     315                $qry_args['orderby'] = 'rand';
     316                break;
     317            default:
     318                $qry_args['order'] = 'ASC';
     319                $qry_args['orderby'] = 'date';
     320        }
    290321    }
    291322   
  • bcd-upcoming-posts/trunk/readme.txt

    r638017 r659919  
    44Tags: post,future,upcoming,widget
    55Requires at least: 3.4.2
    6 Tested up to: 3.5.0
    7 Stable tag: 1.3.0
     6Tested up to: 3.5.1
     7Stable tag: 1.4.0
    88License: GPLv2 or later
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    1818
    1919* Control number of posts to be displayed
    20 * Display posts in random order
     20* Display posts in ascending, descending or random order
    2121* Display post titles as a link or plain text
    2222* Display drafts along with scheduled posts
     
    4949== Changelog ==
    5050
     51= 1.4.0 =
     52* Changed random order option to be a sort order to choose ascending, descending or random order
     53* Fixed an issue with the enabling/disabling of the include only drafts option
     54
    5155= 1.3.0 =
    5256* Added a new option to the widget to choose whether or not to display drafts along with scheduled posts
     
    7175== Upgrade Notice ==
    7276
     77= 1.4.0 =
     78* Changes random order option to be a sort order to choose ascending, descending or random order
     79* Fixes an issue with the enabling/disabling of the include only drafts option
     80
    7381= 1.3.0 =
    74 * Added a new option to the widget to choose whether or not to display drafts along with scheduled posts
    75 * Added a new option to the widget to choose whether or not to display drafts instead of scheduled posts
    76 * Added a new option to the shortcode to choose whether or not to display drafts along with scheduled posts
    77 * Added a new option to the shortcode to choose whether or not to display drafts instead of scheduled posts
     82* Adds a new option to the widget to choose whether or not to display drafts along with scheduled posts
     83* Adds a new option to the widget to choose whether or not to display drafts instead of scheduled posts
     84* Adds a new option to the shortcode to choose whether or not to display drafts along with scheduled posts
     85* Adds a new option to the shortcode to choose whether or not to display drafts instead of scheduled posts
    7886
    7987= 1.2.0 =
  • bcd-upcoming-posts/trunk/scripts/bcdup-script.js

    r637859 r659919  
    11jQuery(document).ready(function($) {
    2     $('#widget-bcd_upcoming_posts-3-include_drafts').click(function () {
    3         var include_only_drafts = $('#widget-bcd_upcoming_posts-3-include_only_drafts');
    4         var include_only_drafts_label = $('#widget-bcd_upcoming_posts-3-include_only_drafts_label');
     2    $('input:checkbox[id*=include_drafts]').click(function () {
     3        var include_only_drafts = $('input:checkbox[id*=include_only_drafts]');
     4        var include_only_drafts_label = $('label[id*=include_only_drafts_label]');
    55       
    66        if ( $(this).is(':checked') ) {
     
    1414
    1515    $('.widgets-sortables').ajaxSuccess(function() {
    16         $('#widget-bcd_upcoming_posts-3-include_drafts').click(function () {
    17             var include_only_drafts = $('#widget-bcd_upcoming_posts-3-include_only_drafts');
    18             var include_only_drafts_label = $('#widget-bcd_upcoming_posts-3-include_only_drafts_label');
     16        $('input:checkbox[id*=include_drafts]').click(function () {
     17            var include_only_drafts = $('input:checkbox[id*=include_only_drafts]');
     18            var include_only_drafts_label = $('label[id*=include_only_drafts_label]');
    1919           
    2020            if ( $(this).is(':checked') ) {
Note: See TracChangeset for help on using the changeset viewer.