WordPress.org

Make WordPress Core

Ticket #4259: widgets.diff

File widgets.diff, 3.5 KB (added by Denis-de-Bernardy, 11 years ago)
  • widgets.php

     
    324324        extract($args);
    325325        $options = get_option('widget_pages');
    326326        $title = empty($options['title']) ? __('Pages') : $options['title'];
     327        $exclude = "";
     328        foreach ( (array) $options['exclude'] as $val )
     329        {
     330                $exclude .= ( $exclude ? ',' : '' ) . $val;
     331        }
    327332        echo $before_widget . $before_title . $title . $after_title . "<ul>\n";
    328         wp_list_pages("title_li=");
     333        wp_list_pages('sort_column=menu_order,post_title&title_li=' . ( $exclude ? ('&exclude=' . $exclude ) : ''));
    329334        echo "</ul>\n" . $after_widget;
    330335}
    331336
     
    333338        $options = $newoptions = get_option('widget_pages');
    334339        if ( $_POST["pages-submit"] ) {
    335340                $newoptions['title'] = strip_tags(stripslashes($_POST["pages-title"]));
     341                preg_match_all("/\d+/", $_POST["pages-exclude"], $exclude);
     342                $newoptions['exclude'] = end($exclude);
    336343        }
    337344        if ( $options != $newoptions ) {
    338345                $options = $newoptions;
    339346                update_option('widget_pages', $options);
    340347        }
    341348        $title = attribute_escape($options['title']);
     349        $exclude = "";
     350        foreach ( (array) $options['exclude'] as $val )
     351        {
     352                $exclude .= ( $exclude ? ', ' : '' ) . $val;
     353        }
    342354?>
    343355                        <p><label for="pages-title"><?php _e('Title:'); ?> <input style="width: 250px;" id="pages-title" name="pages-title" type="text" value="<?php echo $title; ?>" /></label></p>
     356                        <p><label for="pages-exclude"><?php _e('Exclude (Page ID list):'); ?> <input style="width: 250px;" id="pages-exclude" name="pages-exclude" type="text" value="<?php echo $exclude; ?>" /></label></p>
    344357                        <input type="hidden" id="pages-submit" name="pages-submit" value="1" />
    345358<?php
    346359}
     
    487500        extract($args);
    488501        $options = get_option('widget_text');
    489502        $title = $options[$number]['title'];
    490         if ( empty($title) )
    491                 $title = '&nbsp;';
     503        $filter = (bool) $options[$number]['filter'];
    492504        $text = $options[$number]['text'];
    493505?>
    494506                <?php echo $before_widget; ?>
    495507                        <?php $title ? print($before_title . $title . $after_title) : null; ?>
    496                         <div class="textwidget"><?php echo $text; ?></div>
     508                        <div class="textwidget"><?php echo $filter ? wpautop($text) : $text; ?></div>
    497509                <?php echo $after_widget; ?>
    498510<?php
    499511}
     
    507519                $newoptions[$number]['text'] = stripslashes($_POST["text-text-$number"]);
    508520                if ( !current_user_can('unfiltered_html') )
    509521                        $newoptions[$number]['text'] = stripslashes(wp_filter_post_kses($newoptions[$number]['text']));
     522                $newoptions[$number]['filter'] = isset($_POST["text-filter-$number"]);
    510523        }
    511524        if ( $options != $newoptions ) {
    512525                $options = $newoptions;
     
    514527        }
    515528        $title = attribute_escape($options[$number]['title']);
    516529        $text = attribute_escape($options[$number]['text']);
     530        $filter = (bool) $options[$number]['filter'];
    517531?>
    518532                        <input style="width: 450px;" id="text-title-<?php echo "$number"; ?>" name="text-title-<?php echo "$number"; ?>" type="text" value="<?php echo $title; ?>" />
    519533                        <textarea style="width: 450px; height: 280px;" id="text-text-<?php echo "$number"; ?>" name="text-text-<?php echo "$number"; ?>"><?php echo $text; ?></textarea>
     534                        <label for="text-filter-<?php echo "$number"; ?>"><input type="checkbox" id="text-filter-<?php echo "$number"; ?>" name="text-filter-<?php echo "$number"; ?>" id="text-filter-<?php echo "$number"; ?>" <?php echo $filter ? "checked" : ""; ?> />&nbsp;<?php _e('Automatically insert paragraphs'); ?>
    520535                        <input type="hidden" id="text-submit-<?php echo "$number"; ?>" name="text-submit-<?php echo "$number"; ?>" value="1" />
    521536<?php
    522537}