WordPress.org

Make WordPress Core

Changeset 8751


Ignore:
Timestamp:
08/27/2008 07:36:12 PM (10 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.