WordPress.org

Make WordPress Core

Ticket #10976: modified.10976.patch

File modified.10976.patch, 12.0 KB (added by lavoiesl, 8 years ago)

This is a revised version of http://core.trac.wordpress.org/attachment/ticket/10976/10976.widget-content.diff because is it not compatible with current WP version anymore

  • wp-admin/widgets.php

    From 837bf2b6e6f775e6628bee71c5d43dc7ec4bc291 Mon Sep 17 00:00:00 2001
    From: =?UTF-8?q?S=C3=A9bastien=20Lavoie?= <seb@wemakecustom.com>
    Date: Wed, 4 Apr 2012 17:27:21 -0400
    Subject: [PATCH] applied and modified patch
     http://core.trac.wordpress.org/attachment/ticket/10976/10976.widget-content.diff
    
    ---
     wp-admin/widgets.php            |    2 +
     wp-includes/default-widgets.php |  118 ++++++++++++++++++++++++++------
     wp-includes/widgets.php         |   17 ++++-
     3 files changed, 113 insertions(+), 24 deletions(-)
    
    diff --git a/wp-admin/widgets.php b/wp-admin/widgets.php
    index 6c05e53..771a0dd 100644
    a b register_sidebar(array( 
    121121        'after_widget' => '',
    122122        'before_title' => '',
    123123        'after_title' => '',
     124        'before_content' => '',
     125        'after_content' => '',
    124126));
    125127
    126128retrieve_widgets();
  • wp-includes/default-widgets.php

    diff --git a/wp-includes/default-widgets.php b/wp-includes/default-widgets.php
    index df7ef39..456e1d9 100644
    a b class WP_Widget_Pages extends WP_Widget { 
    3434                        echo $before_widget;
    3535                        if ( $title)
    3636                                echo $before_title . $title . $after_title;
     37                        echo $before_content;
    3738                ?>
    3839                <ul>
    3940                        <?php echo $out; ?>
    4041                </ul>
    4142                <?php
     43                        echo $after_content;
    4244                        echo $after_widget;
    4345                }
    4446        }
    class WP_Widget_Links extends WP_Widget { 
    103105                $show_images = isset($instance['images']) ? $instance['images'] : true;
    104106                $category = isset($instance['category']) ? $instance['category'] : false;
    105107
     108                $link_args = array(
     109                        'title_before' => $before_title,
     110                        'title_after' => $after_title . $before_content,
     111                        'category_before' => $before_widget,
     112                        'category_after' => $after_widget,
     113                        'show_images' => $show_images,
     114                        'show_description' => $show_description,
     115                        'show_name' => $show_name,
     116                        'show_rating' => $show_rating,
     117                        'category' => $category,
     118                        'class' => 'linkcat widget'
     119                );
     120
    106121                if ( is_admin() && !$category ) {
    107122                        // Display All Links widget as such in the widgets screen
    108123                        echo $before_widget . $before_title . _x('All Links', 'links widget') . $after_title . $after_widget;
    class WP_Widget_Links extends WP_Widget { 
    110125                }
    111126
    112127                $before_widget = preg_replace('/id="[^"]*"/','id="%id"', $before_widget);
    113                 wp_list_bookmarks(apply_filters('widget_links_args', array(
    114                         'title_before' => $before_title, 'title_after' => $after_title,
    115                         'category_before' => $before_widget, 'category_after' => $after_widget,
    116                         'show_images' => $show_images, 'show_description' => $show_description,
    117                         'show_name' => $show_name, 'show_rating' => $show_rating,
    118                         'category' => $category, 'class' => 'linkcat widget'
    119                 )));
     128
     129                echo $before_widget;
     130
     131                wp_list_bookmarks( apply_filters( 'widget_links_args', $link_args ) );
     132
     133                echo $after_content;
     134
     135                echo $after_widget;
    120136        }
    121137
    122138        function update( $new_instance, $old_instance ) {
    123139                $new_instance = (array) $new_instance;
    124                 $instance = array( 'images' => 0, 'name' => 0, 'description' => 0, 'rating' => 0);
     140                $instance = array( 'images' => 0, 'name' => 0, 'description' => 0, 'rating' => 0 );
    125141                foreach ( $instance as $field => $val ) {
    126142                        if ( isset($new_instance[$field]) )
    127143                                $instance[$field] = 1;
    class WP_Widget_Search extends WP_Widget { 
    183199                if ( $title )
    184200                        echo $before_title . $title . $after_title;
    185201
    186                 // Use current theme search form if it exists
    187                 get_search_form();
     202                echo $before_content;
     203                get_search_form(); // Use current theme search form if it exists
     204                echo $after_content;
    188205
    189206                echo $after_widget;
    190207        }
    class WP_Widget_Archives extends WP_Widget { 
    228245                if ( $title )
    229246                        echo $before_title . $title . $after_title;
    230247
     248                echo $before_content;
    231249                if ( $d ) {
    232250?>
    233251                <select name="archive-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'> <option value=""><?php echo esc_attr(__('Select Month')); ?></option> <?php wp_get_archives(apply_filters('widget_archives_dropdown_args', array('type' => 'monthly', 'format' => 'option', 'show_post_count' => $c))); ?> </select>
    class WP_Widget_Archives extends WP_Widget { 
    239257                </ul>
    240258<?php
    241259                }
     260                echo $after_content;
    242261
    243262                echo $after_widget;
    244263        }
    class WP_Widget_Meta extends WP_Widget { 
    290309                echo $before_widget;
    291310                if ( $title )
    292311                        echo $before_title . $title . $after_title;
     312                       
     313                        echo $before_content;
    293314?>
    294315                        <ul>
    295316                        <?php wp_register(); ?>
    class WP_Widget_Meta extends WP_Widget { 
    300321                        <?php wp_meta(); ?>
    301322                        </ul>
    302323<?php
     324                echo $after_content;
     325
    303326                echo $after_widget;
    304327        }
    305328
    class WP_Widget_Calendar extends WP_Widget { 
    334357        function widget( $args, $instance ) {
    335358                extract($args);
    336359                $title = apply_filters('widget_title', empty($instance['title']) ? '&nbsp;' : $instance['title'], $instance, $this->id_base);
     360
    337361                echo $before_widget;
     362
    338363                if ( $title )
    339364                        echo $before_title . $title . $after_title;
    340                 echo '<div id="calendar_wrap">';
     365
     366                if ( '' != $before_content )
     367                        echo $before_content;
     368                else
     369                        echo '<div id="calendar_wrap">';
     370
    341371                get_calendar();
    342                 echo '</div>';
     372
     373                if ( '' != $after_content )
     374                        echo $after_content;
     375                else
     376                        echo '</div>';
     377
    343378                echo $after_widget;
    344379        }
    345380
    class WP_Widget_Text extends WP_Widget { 
    378413                $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
    379414                $text = apply_filters( 'widget_text', empty( $instance['text'] ) ? '' : $instance['text'], $instance );
    380415                echo $before_widget;
    381                 if ( !empty( $title ) ) { echo $before_title . $title . $after_title; } ?>
    382                         <div class="textwidget"><?php echo !empty( $instance['filter'] ) ? wpautop( $text ) : $text; ?></div>
    383                 <?php
     416
     417                echo $before_widget;
     418
     419                if ( !empty( $title ) )
     420                        echo $before_title . $title . $after_title;
     421
     422                if ( '' != $before_content )
     423                        echo $before_content;
     424                else
     425                        echo '<div class="textwidget">';
     426
     427                echo $instance['filter'] ? wpautop( $text ) : $text;
     428
     429                if ( '' != $after_content )
     430                        echo $after_content;
     431                else
     432                        echo '</div>';
     433
    384434                echo $after_widget;
    385435        }
    386436
    class WP_Widget_Categories extends WP_Widget { 
    431481                $d = ! empty( $instance['dropdown'] ) ? '1' : '0';
    432482
    433483                echo $before_widget;
     484
    434485                if ( $title )
    435486                        echo $before_title . $title . $after_title;
    436487
    437                 $cat_args = array('orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h);
     488                echo $before_content;
     489
     490                $cat_args = array( 'orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h );
    438491
    439492                if ( $d ) {
    440493                        $cat_args['show_option_none'] = __('Select Category');
    class WP_Widget_Categories extends WP_Widget { 
    459512                <ul>
    460513<?php
    461514                $cat_args['title_li'] = '';
    462                 wp_list_categories(apply_filters('widget_categories_args', $cat_args));
     515                wp_list_categories( apply_filters( 'widget_categories_args', $cat_args ) );
    463516?>
    464517                </ul>
    465518<?php
    466519                }
    467520
     521                echo $after_content;
     522
    468523                echo $after_widget;
    469524        }
    470525
    class WP_Widget_Recent_Posts extends WP_Widget { 
    545600?>
    546601                <?php echo $before_widget; ?>
    547602                <?php if ( $title ) echo $before_title . $title . $after_title; ?>
     603                <?php echo $before_content; ?>
    548604                <ul>
    549605                <?php  while ($r->have_posts()) : $r->the_post(); ?>
    550                 <li><a href="<?php the_permalink() ?>" title="<?php echo esc_attr(get_the_title() ? get_the_title() : get_the_ID()); ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?></a></li>
     606                        <li><a href="<?php the_permalink() ?>" title="<?php echo esc_attr(get_the_title() ? get_the_title() : get_the_ID()); ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?></a></li>
    551607                <?php endwhile; ?>
    552608                </ul>
     609                <?php echo $after_content; ?>
    553610                <?php echo $after_widget; ?>
    554611<?php
    555612                // Reset the global $the_post as this query will have stomped on it
    class WP_Widget_Recent_Comments extends WP_Widget { 
    651708                if ( $title )
    652709                        $output .= $before_title . $title . $after_title;
    653710
     711                $output .= $before_content;
    654712                $output .= '<ul id="recentcomments">';
    655713                if ( $comments ) {
    656714                        foreach ( (array) $comments as $comment) {
    class WP_Widget_Recent_Comments extends WP_Widget { 
    658716                        }
    659717                }
    660718                $output .= '</ul>';
     719                $output .= $after_content;
    661720                $output .= $after_widget;
    662721
    663722                echo $output;
    class WP_Widget_RSS extends WP_Widget { 
    748807                echo $before_widget;
    749808                if ( $title )
    750809                        echo $before_title . $title . $after_title;
     810                echo $before_content;
    751811                wp_widget_rss_output( $rss, $instance );
     812                echo $after_content;
    752813                echo $after_widget;
    753814
    754815                if ( ! is_wp_error($rss) )
    class WP_Widget_Tag_Cloud extends WP_Widget { 
    10121073                $title = apply_filters('widget_title', $title, $instance, $this->id_base);
    10131074
    10141075                echo $before_widget;
     1076
    10151077                if ( $title )
    10161078                        echo $before_title . $title . $after_title;
    1017                 echo '<div class="tagcloud">';
     1079
     1080                if ( '' != $before_content )
     1081                        echo $before_content;
     1082                else
     1083                        echo '<div class="tagcloud">';
     1084
    10181085                wp_tag_cloud( apply_filters('widget_tag_cloud_args', array('taxonomy' => $current_taxonomy) ) );
    1019                 echo "</div>\n";
     1086
     1087                if ( '' != $after_content )
     1088                        echo $after_content;
     1089                else
     1090                        echo "</div>\n";
     1091
    10201092                echo $after_widget;
    10211093        }
    10221094
    class WP_Widget_Tag_Cloud extends WP_Widget { 
    10561128 *
    10571129 * @since 3.0.0
    10581130 */
    1059  class WP_Nav_Menu_Widget extends WP_Widget {
     1131class WP_Nav_Menu_Widget extends WP_Widget {
    10601132
    10611133        function __construct() {
    10621134                $widget_ops = array( 'description' => __('Use this widget to add one of your custom menus as a widget.') );
    class WP_Widget_Tag_Cloud extends WP_Widget { 
    10771149                if ( !empty($instance['title']) )
    10781150                        echo $args['before_title'] . $instance['title'] . $args['after_title'];
    10791151
     1152                echo $args['before_content'];
     1153
    10801154                wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu ) );
    10811155
     1156                echo $args['after_content'];
     1157
    10821158                echo $args['after_widget'];
    10831159        }
    10841160
  • wp-includes/widgets.php

    diff --git a/wp-includes/widgets.php b/wp-includes/widgets.php
    index 2dfafcb..5d51d2c 100644
    a b class WP_Widget { 
    3838         *
    3939         * Subclasses should over-ride this function to generate their widget code.
    4040         *
    41          * @param array $args Display arguments including before_title, after_title, before_widget, and after_widget.
     41         * @param array $args Display arguments including before_title, after_title, before_widget, after_widget, before_content, and after_content.
    4242         * @param array $instance The settings for the particular instance of the widget
    4343         */
    4444        function widget($args, $instance) {
    function register_sidebars($number = 1, $args = array()) { 
    528528 *     displayed.
    529529 * before_title - The content that will be prepended to the title when displayed.
    530530 * after_title - the content that will be appended to the title when displayed.
     531 * before_content - The content that will be prepended to the widget content when displayed.
     532 * after_content - the content that will be appended to the widget content when displayed.
    531533 *
    532534 * <em>Content</em> is assumed to be HTML and should be formatted as such, but
    533535 * doesn't have to be.
    function register_sidebar($args = array()) { 
    552554                'after_widget' => "</li>\n",
    553555                'before_title' => '<h2 class="widgettitle">',
    554556                'after_title' => "</h2>\n",
     557                'before_content' => '',
     558                'after_content' => '',
    555559        );
    556560
    557561        $sidebar = wp_parse_args( $args, $defaults );
    function the_widget($widget, $instance = array(), $args = array()) { 
    11261130        if ( !is_a($widget_obj, 'WP_Widget') )
    11271131                return;
    11281132
    1129         $before_widget = sprintf('<div class="widget %s">', $widget_obj->widget_options['classname'] );
    1130         $default_args = array( 'before_widget' => $before_widget, 'after_widget' => "</div>", 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>' );
     1133        $before_widget = sprintf( '<div class="widget %s">', $widget_obj->widget_options['classname'] );
     1134        $default_args = array(
     1135                'before_widget' => $before_widget,
     1136                'after_widget' => "</div>",
     1137                'before_title' => '<h2 class="widgettitle">',
     1138                'after_title' => '</h2>',
     1139                'before_content' => '',
     1140                'after_content' => ''
     1141        );
    11311142
    11321143        $args = wp_parse_args($args, $default_args);
    11331144        $instance = wp_parse_args($instance);