WordPress.org

Make WordPress Core

Changeset 6594


Ignore:
Timestamp:
01/10/08 21:46:25 (6 years ago)
Author:
westi
Message:

Add xmlrpc methods to discover the valid post and page statuses. See #5569 props josephscott.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/post.php

    r6593 r6594  
    259259 
    260260    return false; 
     261} 
     262 
     263/** 
     264 * get_post_statuses( ) - Retuns the possible user post status values 
     265 * 
     266 * Posts have a limited set of valid status values, this provides the 
     267 * post_status values and descriptions. 
     268 * 
     269 * @package WordPress 
     270 * @subpackage Post 
     271 * @since 2.4 
     272 * 
     273 * @return array 
     274 */ 
     275function get_post_statuses( ) { 
     276    $status = array( 
     277        'draft'         => __('Draft'), 
     278        'pending'       => __('Pending Review'), 
     279        'private'       => __('Private'), 
     280        'publish'       => __('Published') 
     281    ); 
     282 
     283    return $status; 
     284} 
     285 
     286/** 
     287 * get_page_statuses( ) - Retuns the possible user page status values 
     288 * 
     289 * Pages have a limited set of valid status values, this provides the 
     290 * post_status values and descriptions. 
     291 * 
     292 * @package WordPress 
     293 * @subpackage Page 
     294 * @since 2.4 
     295 * 
     296 * @return array 
     297 */ 
     298function get_page_statuses( ) { 
     299    $status = array( 
     300        'draft'         => __('Draft'), 
     301        'private'       => __('Private'), 
     302        'publish'       => __('Published') 
     303    ); 
     304 
     305    return $status; 
    261306} 
    262307 
  • trunk/xmlrpc.php

    r6534 r6594  
    8989            'wp.uploadFile'         => 'this:mw_newMediaObject',    // Alias 
    9090            'wp.getCommentCount'    => 'this:wp_getCommentCount', 
     91            'wp.getPostStatusList'  => 'this:wp_getPostStatusList', 
     92            'wp.getPageStatusList'  => 'this:wp_getPageStatusList', 
    9193 
    9294            // Blogger API 
     
    699701 
    700702 
     703    function wp_getPostStatusList( $args ) { 
     704        $this->escape( $args ); 
     705 
     706        $blog_id    = (int) $args[0]; 
     707        $username   = $args[1]; 
     708        $password   = $args[2]; 
     709 
     710        if( !$this->login_pass_ok( $username, $password ) ) { 
     711            return new IXR_Error( 403, __( 'Bad login/pass combination.' ) ); 
     712        } 
     713 
     714        set_current_user( 0, $username ); 
     715        if( !current_user_can( 'edit_posts' ) ) { 
     716            return new IXR_Error( 403, __( 'You are not allowed access to details about this blog.' ) ); 
     717        } 
     718 
     719        return get_post_statuses( ); 
     720    } 
     721 
     722 
     723    function wp_getPageStatusList( $args ) { 
     724        $this->escape( $args ); 
     725 
     726        $blog_id    = (int) $args[0]; 
     727        $username   = $args[1]; 
     728        $password   = $args[2]; 
     729 
     730        if( !$this->login_pass_ok( $username, $password ) ) { 
     731            return new IXR_Error( 403, __( 'Bad login/pass combination.' ) ); 
     732        } 
     733 
     734        set_current_user( 0, $username ); 
     735        if( !current_user_can( 'edit_posts' ) ) { 
     736            return new IXR_Error( 403, __( 'You are not allowed acces to details about this blog.' ) ); 
     737        } 
     738 
     739        return get_page_statuses( ); 
     740    } 
     741 
     742 
    701743    /* Blogger API functions 
    702744     * specs on http://plant.blogger.com/api and http://groups.yahoo.com/group/bloggerDev/ 
     
    11481190        $post_title = $content_struct['title']; 
    11491191        $post_content = apply_filters( 'content_save_pre', $content_struct['description'] ); 
     1192 
    11501193        $post_status = $publish ? 'publish' : 'draft'; 
     1194        if( isset( $content_struct['post_status'] ) ) { 
     1195            switch( $content_struct['post_status'] ) { 
     1196                case 'draft': 
     1197                case 'private': 
     1198                case 'publish': 
     1199                    $post_status = $content_struct['post_status']; 
     1200                    break; 
     1201                case 'pending': 
     1202                    // Pending is only valid for posts, not pages. 
     1203                    if( $post_type === 'post' ) { 
     1204                        $post_status = $content_struct['post_status']; 
     1205                    } 
     1206                    break; 
     1207                default: 
     1208                    $post_status = $publish ? 'publish' : 'draft'; 
     1209                    break; 
     1210            } 
     1211        } 
    11511212         
    11521213        $post_excerpt = $content_struct['mt_excerpt']; 
     
    14481509        $post_excerpt = $content_struct['mt_excerpt']; 
    14491510        $post_more = $content_struct['mt_text_more']; 
     1511 
    14501512        $post_status = $publish ? 'publish' : 'draft'; 
     1513        if( isset( $content_struct['post_status'] ) ) { 
     1514            switch( $content_struct['post_status'] ) { 
     1515                case 'draft': 
     1516                case 'private': 
     1517                case 'publish': 
     1518                    $post_status = $content_struct['post_status']; 
     1519                    break; 
     1520                case 'pending': 
     1521                    // Pending is only valid for posts, not pages. 
     1522                    if( $post_type === 'post' ) { 
     1523                        $post_status = $content_struct['post_status']; 
     1524                    } 
     1525                    break; 
     1526                default: 
     1527                    $post_status = $publish ? 'publish' : 'draft'; 
     1528                    break; 
     1529            } 
     1530        } 
    14511531         
    14521532        $tags_input = $content_struct['mt_keywords']; 
     
    15461626            $allow_comments = ('open' == $postdata['comment_status']) ? 1 : 0; 
    15471627            $allow_pings = ('open' == $postdata['ping_status']) ? 1 : 0; 
     1628 
     1629            // Consider future posts as published 
     1630            if( $postdata['post_status'] === 'future' ) { 
     1631                $postdata['post_status'] = 'publish'; 
     1632            } 
    15481633             
    15491634            $resp = array( 
     
    16361721            $allow_comments = ('open' == $entry['comment_status']) ? 1 : 0; 
    16371722            $allow_pings = ('open' == $entry['ping_status']) ? 1 : 0; 
     1723 
     1724            // Consider future posts as published 
     1725            if( $entry['post_status'] === 'future' ) { 
     1726                $entry['post_status'] = 'publish'; 
     1727            } 
    16381728 
    16391729            $struct[] = array( 
Note: See TracChangeset for help on using the changeset viewer.