Make WordPress Core

Changeset 8751


Ignore:
Timestamp:
08/27/2008 07:36:12 PM (18 years ago)
Author:
ryan
Message:

crazyhorse dash see #7552

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/dashboard.php

    r8600 r8751  
    3434        wp_register_sidebar_widget( 'dashboard_recent_comments', __( 'Recent Comments' ), 'wp_dashboard_recent_comments',
    3535                array( 'all_link' => 'edit-comments.php', 'notice' => $notice, 'width' => 'half' )
     36        );
     37
     38
     39        // QuickPress Widget
     40        if ( 'post' === strtolower( $_SERVER['REQUEST_METHOD'] ) && isset( $_POST['action'] ) && 0 === strpos( $_POST['action'], 'post-quickpress' ) ) {
     41                $view = get_permalink( $_POST['post_ID'] );
     42                $edit = clean_url( get_edit_post_link( $_POST['post_ID'] ) );
     43                if ( 'post-quickpress-publish' == $_POST['action'] )
     44                        $notice = sprintf( __( 'Post Published. <a href="%s">View post</a> | <a href="%s">Edit post</a>' ), clean_url( $view ), $edit );
     45                else
     46                        $notice = sprintf( __( 'Draft Saved. <a href="%s">Preview post</a> | <a href="%s">Edit post</a>' ), clean_url( add_query_arg( 'preview', 1, $view ) ), $edit );
     47        } else {
     48                $notice = '';
     49        }
     50        wp_register_sidebar_widget( 'dashboard_quick_press', __( 'QuickPress' ), 'wp_dashboard_quick_press',
     51                array( 'all_link' => array( 'edit.php?post_status=draft', __('View All Drafts') ), 'width' => 'half', 'height' => 'double', 'notice' => $notice )
     52        );
     53        wp_register_widget_control( 'dashboard_quick_press', __( 'QuickPress' ), 'wp_dashboard_empty_control',
     54                array( 'widget_id' => 'dashboard_quick_press' )
     55        );
     56
     57        // Inbox Widget
     58        wp_register_sidebar_widget( 'dashboard_inbox', __( 'Inbox' ), 'wp_dashboard_inbox',
     59                array( 'all_link' => 'inbox.php', 'height' => 'double' )
     60        );
     61        wp_register_widget_control( 'dashboard_inbox', __( 'Inbox' ), 'wp_dashboard_empty_control',
     62                array( 'widget_id' => 'dashboard_inbox' )
    3663        );
    3764
    … …  
    107134                wp_register_sidebar_widget( $widget_id (unique slug) , $widget_title, $output_callback,
    108135                        array(
    109                                 'all_link'  => full url for "See All" link,
     136                                'all_link'  => full url for "View All" link,
    110137                                'feed_link' => full url for "RSS" link,
    111138                                'width'     => 'fourth', 'third', 'half', 'full' (defaults to 'half'),
    … …  
    133160        // Hard code the sidebar's widgets and order
    134161        $dashboard_widgets = array();
     162        $dashboard_widgets[] = 'dashboard_inbox';
     163        $dashboard_widgets[] = 'dashboard_quick_press';
     164/*
    135165        $dashboard_widgets[] = 'dashboard_recent_comments';
    136166        $dashboard_widgets[] = 'dashboard_incoming_links';
    … …  
    138168        if ( current_user_can( 'activate_plugins' ) )
    139169                $dashboard_widgets[] = 'dashboard_plugins';
     170*/
    140171        $dashboard_widgets[] = 'dashboard_secondary';
    141172
    142173        // Filter widget order
    143174        $dashboard_widgets = apply_filters( 'wp_dashboard_widgets', $dashboard_widgets );
     175        if ( in_array( 'dashboard_quick_press', $dashboard_widgets ) ) {
     176//              add_action( 'admin_head', 'wp_teeny_mce' );
     177                add_action( 'admin_head', 'wp_dashboard_quick_press_js' );
     178        }
    144179
    145180        $wp_dashboard_sidebars = array( 'wp_dashboard' => $dashboard_widgets, 'array_version' => 3.5 );
    … …  
    206241                $sidebar_before_widget = str_replace( "<div class='dashboard-widget-holder ", "<div class='dashboard-widget-holder " . join( ' ', $the_classes ) . ' ', $sidebar_before_widget );
    207242
    208         $links = array();
    209         if ( $widget_all_link )
    210                 $links[] = '<a href="' . clean_url( $widget_all_link ) . '">' . __( 'See&nbsp;All' ) . '</a>';
     243        $top_links = $bottom_links = array();
     244        if ( $widget_all_link ) {
     245                $widget_all_link = (array) $widget_all_link;
     246                $bottom_links[] = '<a href="' . clean_url( $widget_all_link[0] ) . '">' . ( isset($widget_all_link[1]) ? $widget_all_link[1] : __( 'View All' ) ) . '</a>';
     247        }
    211248
    212249        $content_class = 'dashboard-widget-content';
    … …  
    220257                        $sidebar_before_widget .= '<form action="' . clean_url(remove_query_arg( 'edit' ))  . '" method="post">';
    221258                        $sidebar_after_widget   = "<div class='dashboard-widget-submit'><input type='hidden' name='sidebar' value='wp_dashboard' /><input type='hidden' name='widget_id' value='$widget_id' /><input type='submit' value='" . __( 'Save' ) . "' /></div></form>$sidebar_after_widget";
    222                         $links[] = '<a href="' . clean_url(remove_query_arg( 'edit' )) . '">' . __( 'Cancel' ) . '</a>';
     259                        $top_links[] = '<a href="' . clean_url(remove_query_arg( 'edit' )) . '">' . __( 'Cancel' ) . '</a>';
    223260                } else {
    224                         $links[] = '<a href="' . clean_url(add_query_arg( 'edit', $widget_id )) . "#$widget_id" . '">' . __( 'Edit' ) . '</a>';
     261                        $top_links[] = '<a href="' . clean_url(add_query_arg( 'edit', $widget_id )) . "#$widget_id" . '">' . __( 'Edit' ) . '</a>';
    225262                }
    226263        }
    227264
    228265        if ( $widget_feed_link )
    229                 $links[] = '<img class="rss-icon" src="' . includes_url('images/rss.png') . '" alt="' . __( 'rss icon' ) . '" /> <a href="' . clean_url( $widget_feed_link ) . '">' . __( 'RSS' ) . '</a>';
    230 
    231         $links = apply_filters( "wp_dashboard_widget_links_$widget_id", $links );
    232 
    233         // Add links to widget's title bar
    234         if ( $links ) {
    235                 $sidebar_before_title .= '<span>';
    236                 $sidebar_after_title   = '</span><small>' . join( '&nbsp;|&nbsp;', $links ) . "</small><br class='clear' />$sidebar_after_title";
    237         }
     266                $bottom_links[] = '<img class="rss-icon" src="' . includes_url('images/rss.png') . '" alt="' . __( 'rss icon' ) . '" /> <a href="' . clean_url( $widget_feed_link ) . '">' . __( 'RSS' ) . '</a>';
     267
     268        $bottom_links = apply_filters( "wp_dashboard_widget_links_$widget_id", $bottom_links );
    238269
    239270        // Could have put this in widget-content.  Doesn't really matter
    … …  
    246277        $sidebar_after_title .= "\t\t\t<div class='$content_class'>\n\n";
    247278
     279        // Add links to widget's title bar
     280        if ( $top_links ) {
     281                $sidebar_before_title .= '<span>';
     282                $sidebar_after_title   = '</span><small>' . join( '&nbsp;|&nbsp;', $top_links ) . "</small><br class='clear' />$sidebar_after_title";
     283        }
     284
     285        // Add links to bottom of widget
     286        if ( $bottom_links )
     287                $sidebar_after_widget .= "<p class='dashboard-widget-links'>" . join( ' | ', $bottom_links ) . "</p>";
     288
    248289        $sidebar_after_widget .= "\t\t\t</div>\n\n";
    249290
    … …  
    258299
    259300/* Dashboard Widgets */
     301
     302function wp_dashboard_quick_press( $sidebar_args ) {
     303        extract( $sidebar_args, EXTR_SKIP );
     304
     305        echo $before_widget;
     306
     307        echo $before_title;
     308        echo $widget_name;
     309        echo $after_title;
     310
     311        if ( ( 'post' === strtolower( $_SERVER['REQUEST_METHOD'] ) ) && 'post-quickpress-save-cont' === $_POST['action'] ) {
     312                $post = get_post_to_edit( $_POST['post_ID'] );
     313        } else {
     314                $_REQUEST = array(); // hack
     315                $post = get_default_post_to_edit();
     316        }
     317?>
     318
     319        <form name="post" action="<?php echo clean_url( admin_url( 'post.php' ) ); ?>" method="post" id="quick-press">
     320                <h3 id="quick-post-title"><label for="title"><?php _e('Title') ?></label></h3>
     321                <div class="input-text-wrap">
     322                        <input type="text" name="post_title" id="title" autocomplete="off" value="<?php echo attribute_escape( $post->post_title ); ?>" />
     323                </div>
     324
     325                <h3><label for="content"><?php _e('Post') ?></label></h3>
     326                <div class="textarea-wrap">
     327                        <textarea name="content" id="quickpress-content" class="mceEditor" rows="3" cols="15"><?php echo $post->post_content; ?></textarea>
     328                </div>
     329
     330                <h3><label for="tags-input"><?php _e('Tags') ?></label></h3>
     331                <div class="input-text-wrap">
     332                        <input type="text" name="tags_input" id="tags-input" value="<?php echo get_tags_to_edit( $post->ID ); ?>" />
     333                </div>
     334                <p class='field-tip'><?php _e('Separate tags with commas'); ?></p>
     335
     336                <p class="submit">
     337                        <input type="hidden" name="action" id="quickpost-action" value="post-quickpress-save" />
     338                        <input type="hidden" name="quickpress_post_ID" value="<?php echo (int) $post->ID; ?>" />
     339                        <?php wp_nonce_field('add-post'); ?>
     340                        <input type="submit" name="save" id="save-post" class="button" value="<?php _e('Save'); ?>" />
     341                        <input type="submit" name="save-cont" id="save-cont" class="button" value="<?php _e('Save and Continue'); ?>" />
     342                        <input type="submit" name="publish" id="publish" accesskey="p" class="button button-highlighted" value="<?php _e('Publish'); ?>" />
     343                </p>
     344
     345<?php
     346        $drafts_query = new WP_Query( array(
     347                'post_type' => 'post',
     348                'what_to_show' => 'posts',
     349                'post_status' => 'draft',
     350                'author' => $GLOBALS['current_user']->ID,
     351                'posts_per_page' => 5,
     352                'orderby' => 'modified',
     353                'order' => 'DESC'
     354        ) );
     355
     356        if ( $drafts_query->posts ) :
     357                $list = array();
     358                foreach ( $drafts_query->posts as $draft ) {
     359                        $url = get_edit_post_link( $draft->ID );
     360                        $title = get_the_title( $draft->ID );
     361                        $list[] = "<a href='$url' title='" . sprintf( __( 'Edit "%s"' ), attribute_escape( $title ) ) . "'>$title</a>";
     362                }
     363?>
     364
     365                <h3><?php _e('Recent Drafts'); ?></h3>
     366                <p id='recent-drafts'>
     367                        <?php echo join( ', ', $list ); ?>
     368                </p>
     369
     370<?php
     371
     372        endif; // drafts
     373
     374?>
     375
     376        </form>
     377
     378<?php
     379
     380        echo $after_widget;
     381}
     382
     383function wp_dashboard_quick_press_js() {
     384?>
     385<script type="text/javascript">
     386/* <![CDATA[ */
     387var quickPressLoad = function($) {
     388        var act = $('#quickpost-action');
     389        var t = $('#quick-press').submit( function() {
     390                if ( 'post-quickpress-save-cont' == act.val() ) {
     391                        return true;
     392                }
     393
     394                var head = $('#dashboard_quick_press div.dashboard-widget').children( 'div').hide().end().find('h3 small');
     395                head.prepend( '<img src="images/loading.gif" style="margin: 0 6px 0 0; vertical-align: middle" />' );
     396
     397                if ( 'post' == act.val() ) { act.val( 'post-quickpress-publish' ); }
     398
     399                if ( 'undefined' != typeof tinyMCE ) {
     400                        tinyMCE.get('quickpress-content').save();
     401                        tinyMCE.get('quickpress-content').remove();
     402                }
     403
     404                $('#dashboard_quick_press').load( t.attr( 'action' ) + ' #dashboard_quick_press > *', t.serializeArray(), function() {
     405                        if ( 'undefined' != typeof wpTeenyMCEInit && $.isFunction( wpTeenyMCEInit ) ) { wpTeenyMCEInit(); }
     406                        quickPressLoad($);
     407                } );
     408                return false;
     409        } );
     410
     411        $('#publish').click( function() { act.val( 'post-quickpress-publish' ); } );
     412        $('#save-cont').click( function() { act.val( 'post-quickpress-save-cont' ); t.attr( 'action', 'post.php' ); } );
     413};
     414jQuery( quickPressLoad );
     415/* ]]> */
     416</script>
     417<?php
     418}
     419
     420
     421function wp_dashboard_inbox( $sidebar_args ) {
     422        extract( $sidebar_args, EXTR_SKIP );
     423
     424        echo $before_widget;
     425
     426        echo $before_title;
     427        echo $widget_name;
     428        echo $after_title;
     429
     430?>
     431
     432        <style type="text/css">
     433                #inbox-filter ul {
     434                        list-style: none;
     435                        margin: 0;
     436                        padding: 0;
     437                        position: relative;
     438                }
     439                #inbox-filter ul li {
     440                        position: relative;
     441                        padding-right: 20px;
     442                }
     443                #inbox-filter ul input.checkbox {
     444                        float: left;
     445                }
     446                #inbox-filter ul p {
     447                        float: left;
     448                        margin: 0;
     449                        margin-left: -40px;
     450                        width: 100%;
     451                        position: relative;
     452                        left: 50px;
     453                }
     454                #inbox-message {
     455                        margin:0 0 0 7.5em;
     456                        padding:5px;
     457                }
     458        </style>
     459        <script type="text/javascript">
     460                jQuery( function($) {
     461                        $('#inbox-filter').submit( function() { return false; } )
     462                                .find( ':button' ).click( function() {
     463                                        var done = $(':checked').size().toString(), txt = (done == '1') ? '<?php _e(' item archived'); ?>' : '<?php _e(' items archived'); ?>';
     464                                        $(':checked').parent().slideUp( 'normal', function() {
     465                                                $('.inbox-count').text( $('#inbox-filter li:visible').size().toString() );
     466                                                $('#inbox-message').addClass('updated');
     467                                                $('#inbox-message').text(done+txt+" (This feature isn't enabled in this prototype)");
     468                                        } );
     469                                } );
     470                } );
     471        </script>
     472
     473        <form id="inbox-filter" action="" method="get">
     474                <p class="actions"><input type="button" value="Archive" name="archive" class="button"></p>
     475                <div id="inbox-message"></div>
     476                <br class="clear" />
     477               
     478                <ul>
     479
     480<?php   $crazy_posts = array( '', 'some post', 'a post', 'my cool post' ); foreach ( wp_get_inbox_items() as $k => $item ) : // crazyhorse ?>
     481
     482                        <li id="message-<?php echo $k; ?>">
     483                                <input type="checkbox" name="messages[]" value="<?php echo $k; ?>" class="checkbox" />
     484                                <p><?php
     485                                        if ( $item->href )
     486                                                echo "<a href='$item->href' class='no-crazy'>";
     487                                        echo wp_specialchars( $item->text );
     488                                        if ( strlen( $item->text ) > 180 ) // crazyhorse
     489                                                echo '<br/><span class="inbox-more">more&hellip;</span>';
     490                                        if ( $item->href )
     491                                                echo '</a>';
     492                                ?><br />
     493                                -- <cite><?php
     494                                        echo $item->from;
     495                                        if ( 'comment' == $item->type ) // crazyhorse
     496                                                echo " on &quot;<a href='#' class='no-crazy'>{$crazy_posts[$item->parent]}</a>&quot;";
     497                                ?></cite>, <?php echo "$item->date, $item->time"; ?>
     498                                </p>
     499                                <br class="clear" />
     500                        </li>
     501
     502<?php   endforeach; ?>
     503
     504                </ul>
     505        </form>
     506
     507<?php
     508
     509        echo $after_widget;
     510}
    260511
    261512function wp_dashboard_recent_comments( $sidebar_args ) {
    … …  
    510761/* Dashboard Widgets Controls. Ssee also wp_dashboard_empty() */
    511762
     763// Temp
     764function wp_dashboard_empty_control() {
     765        echo "This feature isn't enabled in this prototype.";
     766}
     767
    512768// Calls widget_control callback
    513769function wp_dashboard_trigger_widget_control( $widget_control_id = false ) {
Note: See TracChangeset for help on using the changeset viewer.