Make WordPress Core

Ticket #18426: wp.editUser.patch

File wp.editUser.patch, 143.1 KB (added by nprasath002, 13 years ago)
  • class-wp-xmlrpc-server.php

    # This patch file was generated by NetBeans IDE
    # Following Index: paths are relative to: C:\xampp\htdocs\wordtrunk\wp-includes
    # This patch can be applied using context Tools: Patch action on respective folder.
    # It uses platform neutral UTF-8 encoding and \n newlines.
    # Above lines and this line are ignored by the patching process.
     
    11<?php
     2
    23/**
    34 * XML-RPC protocol support for WordPress
    45 *
     
    3536        function __construct() {
    3637                $this->methods = array(
    3738                        // WordPress API
    38                         'wp.getUsersBlogs'              => 'this:wp_getUsersBlogs',
    39                         'wp.getPage'                    => 'this:wp_getPage',
    40                         'wp.getPages'                   => 'this:wp_getPages',
    41                         'wp.newPage'                    => 'this:wp_newPage',
    42                         'wp.deletePage'                 => 'this:wp_deletePage',
    43                         'wp.editPage'                   => 'this:wp_editPage',
    44                         'wp.getPageList'                => 'this:wp_getPageList',
    45                         'wp.getAuthors'                 => 'this:wp_getAuthors',
    46                         'wp.getCategories'              => 'this:mw_getCategories',             // Alias
    47                         'wp.getTags'                    => 'this:wp_getTags',
    48                         'wp.newCategory'                => 'this:wp_newCategory',
    49                         'wp.deleteCategory'             => 'this:wp_deleteCategory',
    50                         'wp.suggestCategories'  => 'this:wp_suggestCategories',
    51                         'wp.uploadFile'                 => 'this:mw_newMediaObject',    // Alias
    52                         'wp.getCommentCount'    => 'this:wp_getCommentCount',
    53                         'wp.getPostStatusList'  => 'this:wp_getPostStatusList',
    54                         'wp.getPageStatusList'  => 'this:wp_getPageStatusList',
    55                         'wp.getPageTemplates'   => 'this:wp_getPageTemplates',
    56                         'wp.getOptions'                 => 'this:wp_getOptions',
    57                         'wp.setOptions'                 => 'this:wp_setOptions',
    58                         'wp.getComment'                 => 'this:wp_getComment',
    59                         'wp.getComments'                => 'this:wp_getComments',
    60                         'wp.deleteComment'              => 'this:wp_deleteComment',
    61                         'wp.editComment'                => 'this:wp_editComment',
    62                         'wp.newComment'                 => 'this:wp_newComment',
     39                    'wp.getUsersBlogs' => 'this:wp_getUsersBlogs',
     40                    'wp.getPage' => 'this:wp_getPage',
     41                    'wp.getPages' => 'this:wp_getPages',
     42                    'wp.newPage' => 'this:wp_newPage',
     43                    'wp.deletePage' => 'this:wp_deletePage',
     44                    'wp.editPage' => 'this:wp_editPage',
     45                    'wp.getPageList' => 'this:wp_getPageList',
     46                    'wp.getAuthors' => 'this:wp_getAuthors',
     47                    'wp.getCategories' => 'this:mw_getCategories', // Alias
     48                    'wp.getTags' => 'this:wp_getTags',
     49                    'wp.newCategory' => 'this:wp_newCategory',
     50                    'wp.deleteCategory' => 'this:wp_deleteCategory',
     51                    'wp.suggestCategories' => 'this:wp_suggestCategories',
     52                    'wp.uploadFile' => 'this:mw_newMediaObject', // Alias
     53                    'wp.getCommentCount' => 'this:wp_getCommentCount',
     54                    'wp.getPostStatusList' => 'this:wp_getPostStatusList',
     55                    'wp.getPageStatusList' => 'this:wp_getPageStatusList',
     56                    'wp.getPageTemplates' => 'this:wp_getPageTemplates',
     57                    'wp.getOptions' => 'this:wp_getOptions',
     58                    'wp.setOptions' => 'this:wp_setOptions',
     59                    'wp.getComment' => 'this:wp_getComment',
     60                    'wp.getComments' => 'this:wp_getComments',
     61                    'wp.deleteComment' => 'this:wp_deleteComment',
     62                    'wp.editComment' => 'this:wp_editComment',
     63                    'wp.newComment' => 'this:wp_newComment',
    6364                        'wp.getCommentStatusList' => 'this:wp_getCommentStatusList',
    64                         'wp.getMediaItem'               => 'this:wp_getMediaItem',
    65                         'wp.getMediaLibrary'    => 'this:wp_getMediaLibrary',
    66                         'wp.getPostFormats'    => 'this:wp_getPostFormats',
    67 
     65                    'wp.getMediaItem' => 'this:wp_getMediaItem',
     66                    'wp.getMediaLibrary' => 'this:wp_getMediaLibrary',
     67                    'wp.getPostFormats' => 'this:wp_getPostFormats',
     68                    'wp.deleteUser' => 'this:wp_deleteUser',
    6869                        // Blogger API
    6970                        'blogger.getUsersBlogs' => 'this:blogger_getUsersBlogs',
    7071                        'blogger.getUserInfo' => 'this:blogger_getUserInfo',
     
    7576                        'blogger.newPost' => 'this:blogger_newPost',
    7677                        'blogger.editPost' => 'this:blogger_editPost',
    7778                        'blogger.deletePost' => 'this:blogger_deletePost',
    78 
    7979                        // MetaWeblog API (with MT extensions to structs)
    8080                        'metaWeblog.newPost' => 'this:mw_newPost',
    8181                        'metaWeblog.editPost' => 'this:mw_editPost',
     
    8383                        'metaWeblog.getRecentPosts' => 'this:mw_getRecentPosts',
    8484                        'metaWeblog.getCategories' => 'this:mw_getCategories',
    8585                        'metaWeblog.newMediaObject' => 'this:mw_newMediaObject',
    86 
    8786                        // MetaWeblog API aliases for Blogger API
    8887                        // see http://www.xmlrpc.com/stories/storyReader$2460
    8988                        'metaWeblog.deletePost' => 'this:blogger_deletePost',
    9089                        'metaWeblog.getTemplate' => 'this:blogger_getTemplate',
    9190                        'metaWeblog.setTemplate' => 'this:blogger_setTemplate',
    9291                        'metaWeblog.getUsersBlogs' => 'this:blogger_getUsersBlogs',
    93 
    9492                        // MovableType API
    9593                        'mt.getCategoryList' => 'this:mt_getCategoryList',
    9694                        'mt.getRecentPostTitles' => 'this:mt_getRecentPostTitles',
     
    10098                        'mt.supportedTextFilters' => 'this:mt_supportedTextFilters',
    10199                        'mt.getTrackbackPings' => 'this:mt_getTrackbackPings',
    102100                        'mt.publishPost' => 'this:mt_publishPost',
    103 
    104101                        // PingBack
    105102                        'pingback.ping' => 'this:pingback_ping',
    106103                        'pingback.extensions.getPingbacks' => 'this:pingback_extensions_getPingbacks',
    107 
    108104                        'demo.sayHello' => 'this:sayHello',
    109105                        'demo.addTwoNumbers' => 'this:addTwoNumbers'
    110106                );
    111107
    112                 $this->initialise_blog_option_info( );
     108                $this->initialise_blog_option_info();
    113109                $this->methods = apply_filters('xmlrpc_methods', $this->methods);
    114110        }
    115111
     
    155151         * @see wp_xmlrpc_server::login
    156152         */
    157153        function login_pass_ok($user_login, $user_pass) {
    158                 if ( !get_option( 'enable_xmlrpc' ) ) {
    159                         $this->error = new IXR_Error( 405, sprintf( __( 'XML-RPC services are disabled on this site. An admin user can enable them at %s'),  admin_url('options-writing.php') ) );
     154                if (!get_option('enable_xmlrpc')) {
     155                        $this->error = new IXR_Error(405, sprintf(__('XML-RPC services are disabled on this site. An admin user can enable them at %s'), admin_url('options-writing.php')));
    160156                        return false;
    161157                }
    162158
     
    177173         * @return mixed WP_User object if authentication passed, false otherwise
    178174         */
    179175        function login($username, $password) {
    180                 if ( !get_option( 'enable_xmlrpc' ) ) {
    181                         $this->error = new IXR_Error( 405, sprintf( __( 'XML-RPC services are disabled on this site. An admin user can enable them at %s'),  admin_url('options-writing.php') ) );
     176                if (!get_option('enable_xmlrpc')) {
     177                        $this->error = new IXR_Error(405, sprintf(__('XML-RPC services are disabled on this site. An admin user can enable them at %s'), admin_url('options-writing.php')));
    182178                        return false;
    183179                }
    184180
     
    189185                        return false;
    190186                }
    191187
    192                 wp_set_current_user( $user->ID );
     188                wp_set_current_user($user->ID);
    193189                return $user;
    194190        }
    195191
     
    207203                if (!is_array($array)) {
    208204                        return($wpdb->escape($array));
    209205                } else {
    210                         foreach ( (array) $array as $k => $v ) {
    211                                 if ( is_array($v) ) {
     206                        foreach ((array) $array as $k => $v) {
     207                                if (is_array($v)) {
    212208                                        $this->escape($array[$k]);
    213                                 } else if ( is_object($v) ) {
     209                                } else if (is_object($v)) {
    214210                                        //skip
    215211                                } else {
    216212                                        $array[$k] = $wpdb->escape($v);
     
    232228
    233229                $custom_fields = array();
    234230
    235                 foreach ( (array) has_meta($post_id) as $meta ) {
     231                foreach ((array) has_meta($post_id) as $meta) {
    236232                        // Don't expose protected fields.
    237                         if ( ! current_user_can( 'edit_post_meta', $post_id , $meta['meta_key'] ) )
     233                        if (!current_user_can('edit_post_meta', $post_id, $meta['meta_key']))
    238234                                continue;
    239235
    240236                        $custom_fields[] = array(
    241                                 "id"    => $meta['meta_id'],
    242                                 "key"  => $meta['meta_key'],
     237                            "id" => $meta['meta_id'],
     238                            "key" => $meta['meta_key'],
    243239                                "value" => $meta['meta_value']
    244240                        );
    245241                }
     
    258254        function set_custom_fields($post_id, $fields) {
    259255                $post_id = (int) $post_id;
    260256
    261                 foreach ( (array) $fields as $meta ) {
    262                         if ( isset($meta['id']) ) {
     257                foreach ((array) $fields as $meta) {
     258                        if (isset($meta['id'])) {
    263259                                $meta['id'] = (int) $meta['id'];
    264                                 $pmeta = get_metadata_by_mid( 'post', $meta['id'] );
    265                                 $meta['value'] = stripslashes_deep( $meta['value'] );
    266                                 if ( isset($meta['key']) ) {
    267                                         $meta['key'] = stripslashes( $meta['key'] );
    268                                         if ( $meta['key'] != $pmeta->meta_key )
     260                                $pmeta = get_metadata_by_mid('post', $meta['id']);
     261                                $meta['value'] = stripslashes_deep($meta['value']);
     262                                if (isset($meta['key'])) {
     263                                        $meta['key'] = stripslashes($meta['key']);
     264                                        if ($meta['key'] != $pmeta->meta_key)
    269265                                                continue;
    270                                         if ( current_user_can( 'edit_post_meta', $post_id, $meta['key'] ) )
    271                                                 update_metadata_by_mid( 'post', $meta['id'], $meta['value'] );
    272                                 } elseif ( current_user_can( 'delete_post_meta', $post_id, $pmeta->meta_key ) ) {
    273                                         delete_metadata_by_mid( 'post', $meta['id'] );
     266                                        if (current_user_can('edit_post_meta', $post_id, $meta['key']))
     267                                                update_metadata_by_mid('post', $meta['id'], $meta['value']);
     268                                } elseif (current_user_can('delete_post_meta', $post_id, $pmeta->meta_key)) {
     269                                        delete_metadata_by_mid('post', $meta['id']);
    274270                                }
    275                         } elseif ( current_user_can( 'add_post_meta', $post_id, stripslashes( $meta['key'] ) ) ) {
    276                                 add_post_meta( $post_id, $meta['key'], $meta['value'] );
     271                        } elseif (current_user_can('add_post_meta', $post_id, stripslashes($meta['key']))) {
     272                                add_post_meta($post_id, $meta['key'], $meta['value']);
    277273                        }
    278274                }
    279275        }
     
    285281         *
    286282         * @since 2.6.0
    287283         */
    288         function initialise_blog_option_info( ) {
     284        function initialise_blog_option_info() {
    289285                global $wp_version;
    290286
    291287                $this->blog_options = array(
    292288                        // Read only options
    293                         'software_name'         => array(
    294                                 'desc'                  => __( 'Software Name' ),
    295                                 'readonly'              => true,
    296                                 'value'                 => 'WordPress'
     289                    'software_name' => array(
     290                        'desc' => __('Software Name'),
     291                        'readonly' => true,
     292                        'value' => 'WordPress'
    297293                        ),
    298                         'software_version'      => array(
    299                                 'desc'                  => __( 'Software Version' ),
    300                                 'readonly'              => true,
    301                                 'value'                 => $wp_version
     294                    'software_version' => array(
     295                        'desc' => __('Software Version'),
     296                        'readonly' => true,
     297                        'value' => $wp_version
    302298                        ),
    303                         'blog_url'                      => array(
    304                                 'desc'                  => __( 'Site URL' ),
    305                                 'readonly'              => true,
    306                                 'option'                => 'siteurl'
     299                    'blog_url' => array(
     300                        'desc' => __('Site URL'),
     301                        'readonly' => true,
     302                        'option' => 'siteurl'
    307303                        ),
    308 
    309304                        // Updatable options
    310                         'time_zone'                     => array(
    311                                 'desc'                  => __( 'Time Zone' ),
    312                                 'readonly'              => false,
    313                                 'option'                => 'gmt_offset'
     305                    'time_zone' => array(
     306                        'desc' => __('Time Zone'),
     307                        'readonly' => false,
     308                        'option' => 'gmt_offset'
    314309                        ),
    315                         'blog_title'            => array(
    316                                 'desc'                  => __( 'Site Title' ),
    317                                 'readonly'              => false,
    318                                 'option'                        => 'blogname'
     310                    'blog_title' => array(
     311                        'desc' => __('Site Title'),
     312                        'readonly' => false,
     313                        'option' => 'blogname'
    319314                        ),
    320                         'blog_tagline'          => array(
    321                                 'desc'                  => __( 'Site Tagline' ),
    322                                 'readonly'              => false,
    323                                 'option'                => 'blogdescription'
     315                    'blog_tagline' => array(
     316                        'desc' => __('Site Tagline'),
     317                        'readonly' => false,
     318                        'option' => 'blogdescription'
    324319                        ),
    325                         'date_format'           => array(
    326                                 'desc'                  => __( 'Date Format' ),
    327                                 'readonly'              => false,
    328                                 'option'                => 'date_format'
     320                    'date_format' => array(
     321                        'desc' => __('Date Format'),
     322                        'readonly' => false,
     323                        'option' => 'date_format'
    329324                        ),
    330                         'time_format'           => array(
    331                                 'desc'                  => __( 'Time Format' ),
    332                                 'readonly'              => false,
    333                                 'option'                => 'time_format'
     325                    'time_format' => array(
     326                        'desc' => __('Time Format'),
     327                        'readonly' => false,
     328                        'option' => 'time_format'
    334329                        ),
    335                         'users_can_register'    => array(
    336                                 'desc'                  => __( 'Allow new users to sign up' ),
    337                                 'readonly'              => false,
    338                                 'option'                => 'users_can_register'
     330                    'users_can_register' => array(
     331                        'desc' => __('Allow new users to sign up'),
     332                        'readonly' => false,
     333                        'option' => 'users_can_register'
    339334                        ),
    340                         'thumbnail_size_w'      => array(
    341                                 'desc'                  => __( 'Thumbnail Width' ),
    342                                 'readonly'              => false,
    343                                 'option'                => 'thumbnail_size_w'
     335                    'thumbnail_size_w' => array(
     336                        'desc' => __('Thumbnail Width'),
     337                        'readonly' => false,
     338                        'option' => 'thumbnail_size_w'
    344339                        ),
    345                         'thumbnail_size_h'      => array(
    346                                 'desc'                  => __( 'Thumbnail Height' ),
    347                                 'readonly'              => false,
    348                                 'option'                => 'thumbnail_size_h'
     340                    'thumbnail_size_h' => array(
     341                        'desc' => __('Thumbnail Height'),
     342                        'readonly' => false,
     343                        'option' => 'thumbnail_size_h'
    349344                        ),
    350                         'thumbnail_crop'        => array(
    351                                 'desc'                  => __( 'Crop thumbnail to exact dimensions' ),
    352                                 'readonly'              => false,
    353                                 'option'                => 'thumbnail_crop'
     345                    'thumbnail_crop' => array(
     346                        'desc' => __('Crop thumbnail to exact dimensions'),
     347                        'readonly' => false,
     348                        'option' => 'thumbnail_crop'
    354349                        ),
    355                         'medium_size_w' => array(
    356                                 'desc'                  => __( 'Medium size image width' ),
    357                                 'readonly'              => false,
    358                                 'option'                => 'medium_size_w'
     350                    'medium_size_w' => array(
     351                        'desc' => __('Medium size image width'),
     352                        'readonly' => false,
     353                        'option' => 'medium_size_w'
    359354                        ),
    360                         'medium_size_h' => array(
    361                                 'desc'                  => __( 'Medium size image height' ),
    362                                 'readonly'              => false,
    363                                 'option'                => 'medium_size_h'
     355                    'medium_size_h' => array(
     356                        'desc' => __('Medium size image height'),
     357                        'readonly' => false,
     358                        'option' => 'medium_size_h'
    364359                        ),
    365                         'large_size_w'  => array(
    366                                 'desc'                  => __( 'Large size image width' ),
    367                                 'readonly'              => false,
    368                                 'option'                => 'large_size_w'
     360                    'large_size_w' => array(
     361                        'desc' => __('Large size image width'),
     362                        'readonly' => false,
     363                        'option' => 'large_size_w'
    369364                        ),
    370                         'large_size_h'  => array(
    371                                 'desc'                  => __( 'Large size image height' ),
    372                                 'readonly'              => false,
    373                                 'option'                => 'large_size_h'
     365                    'large_size_h' => array(
     366                        'desc' => __('Large size image height'),
     367                        'readonly' => false,
     368                        'option' => 'large_size_h'
    374369                        )
    375370                );
    376371
    377                 $this->blog_options = apply_filters( 'xmlrpc_blog_options', $this->blog_options );
     372                $this->blog_options = apply_filters('xmlrpc_blog_options', $this->blog_options);
    378373        }
    379374
    380375        /**
     
    392387         *  - 'blogName'
    393388         *  - 'xmlrpc' - url of xmlrpc endpoint
    394389         */
    395         function wp_getUsersBlogs( $args ) {
     390        function wp_getUsersBlogs($args) {
    396391                global $current_site;
    397392                // If this isn't on WPMU then just use blogger_getUsersBlogs
    398                 if ( !is_multisite() ) {
    399                         array_unshift( $args, 1 );
    400                         return $this->blogger_getUsersBlogs( $args );
     393                if (!is_multisite()) {
     394                        array_unshift($args, 1);
     395                        return $this->blogger_getUsersBlogs($args);
    401396                }
    402397
    403                 $this->escape( $args );
     398                $this->escape($args);
    404399
    405400                $username = $args[0];
    406401                $password = $args[1];
    407402
    408                 if ( !$user = $this->login($username, $password) )
     403                if (!$user = $this->login($username, $password))
    409404                        return $this->error;
    410405
    411406
    412                 do_action( 'xmlrpc_call', 'wp.getUsersBlogs' );
     407                do_action('xmlrpc_call', 'wp.getUsersBlogs');
    413408
    414                 $blogs = (array) get_blogs_of_user( $user->ID );
    415                 $struct = array( );
     409                $blogs = (array) get_blogs_of_user($user->ID);
     410                $struct = array();
    416411
    417                 foreach ( $blogs as $blog ) {
     412                foreach ($blogs as $blog) {
    418413                        // Don't include blogs that aren't hosted at this site
    419                         if ( $blog->site_id != $current_site->id )
     414                        if ($blog->site_id != $current_site->id)
    420415                                continue;
    421416
    422417                        $blog_id = $blog->userblog_id;
     
    424419                        $is_admin = current_user_can('manage_options');
    425420
    426421                        $struct[] = array(
    427                                 'isAdmin'               => $is_admin,
    428                                 'url'                   => get_option( 'home' ) . '/',
    429                                 'blogid'                => (string) $blog_id,
    430                                 'blogName'              => get_option( 'blogname' ),
    431                                 'xmlrpc'                => site_url( 'xmlrpc.php' )
     422                            'isAdmin' => $is_admin,
     423                            'url' => get_option('home') . '/',
     424                            'blogid' => (string) $blog_id,
     425                            'blogName' => get_option('blogname'),
     426                            'xmlrpc' => site_url('xmlrpc.php')
    432427                        );
    433428
    434                         restore_current_blog( );
     429                        restore_current_blog();
    435430                }
    436431
    437432                return $struct;
     
    452447        function wp_getPage($args) {
    453448                $this->escape($args);
    454449
    455                 $blog_id        = (int) $args[0];
    456                 $page_id        = (int) $args[1];
    457                 $username       = $args[2];
    458                 $password       = $args[3];
     450                $blog_id = (int) $args[0];
     451                $page_id = (int) $args[1];
     452                $username = $args[2];
     453                $password = $args[3];
    459454
    460                 if ( !$user = $this->login($username, $password) ) {
     455                if (!$user = $this->login($username, $password)) {
    461456                        return $this->error;
    462457                }
    463458
    464                 if ( !current_user_can( 'edit_page', $page_id ) )
    465                         return new IXR_Error( 401, __( 'Sorry, you cannot edit this page.' ) );
     459                if (!current_user_can('edit_page', $page_id))
     460                        return new IXR_Error(401, __('Sorry, you cannot edit this page.'));
    466461
    467462                do_action('xmlrpc_call', 'wp.getPage');
    468463
     
    470465                $page = get_page($page_id);
    471466
    472467                // If we found the page then format the data.
    473                 if ( $page->ID && ($page->post_type == 'page') ) {
     468                if ($page->ID && ($page->post_type == 'page')) {
    474469                        // Get all of the page content and link.
    475470                        $full_page = get_extended($page->post_content);
    476471                        $link = post_permalink($page->ID);
    477472
    478473                        // Get info the page parent if there is one.
    479474                        $parent_title = "";
    480                         if ( !empty($page->post_parent) ) {
     475                        if (!empty($page->post_parent)) {
    481476                                $parent = get_page($page->post_parent);
    482477                                $parent_title = $parent->post_title;
    483478                        }
     
    491486                        $page_date_gmt = mysql2date('Ymd\TH:i:s', $page->post_date_gmt, false);
    492487
    493488                        // For drafts use the GMT version of the date
    494                         if ( $page->post_status == 'draft' )
    495                                 $page_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $page->post_date ), 'Ymd\TH:i:s' );
     489                        if ($page->post_status == 'draft')
     490                                $page_date_gmt = get_gmt_from_date(mysql2date('Y-m-d H:i:s', $page->post_date), 'Ymd\TH:i:s');
    496491
    497492                        // Pull the categories info together.
    498493                        $categories = array();
    499                         foreach ( wp_get_post_categories($page->ID) as $cat_id ) {
     494                        foreach (wp_get_post_categories($page->ID) as $cat_id) {
    500495                                $categories[] = get_cat_name($cat_id);
    501496                        }
    502497
    503498                        // Get the author info.
    504499                        $author = get_userdata($page->post_author);
    505500
    506                         $page_template = get_post_meta( $page->ID, '_wp_page_template', true );
    507                         if ( empty( $page_template ) )
     501                        $page_template = get_post_meta($page->ID, '_wp_page_template', true);
     502                        if (empty($page_template))
    508503                                $page_template = 'default';
    509504
    510505                        $page_struct = array(
    511                                 'dateCreated'                   => new IXR_Date($page_date),
    512                                 'userid'                                => $page->post_author,
    513                                 'page_id'                               => $page->ID,
    514                                 'page_status'                   => $page->post_status,
    515                                 'description'                   => $full_page['main'],
    516                                 'title'                                 => $page->post_title,
    517                                 'link'                                  => $link,
    518                                 'permaLink'                             => $link,
    519                                 'categories'                    => $categories,
    520                                 'excerpt'                               => $page->post_excerpt,
    521                                 'text_more'                             => $full_page['extended'],
    522                                 'mt_allow_comments'             => $allow_comments,
    523                                 'mt_allow_pings'                => $allow_pings,
    524                                 'wp_slug'                               => $page->post_name,
    525                                 'wp_password'                   => $page->post_password,
    526                                 'wp_author'                             => $author->display_name,
    527                                 'wp_page_parent_id'             => $page->post_parent,
    528                                 'wp_page_parent_title'  => $parent_title,
    529                                 'wp_page_order'                 => $page->menu_order,
    530                                 'wp_author_id'                  => (string) $author->ID,
    531                                 'wp_author_display_name'        => $author->display_name,
    532                                 'date_created_gmt'              => new IXR_Date($page_date_gmt),
    533                                 'custom_fields'                 => $this->get_custom_fields($page_id),
    534                                 'wp_page_template'              => $page_template
     506                            'dateCreated' => new IXR_Date($page_date),
     507                            'userid' => $page->post_author,
     508                            'page_id' => $page->ID,
     509                            'page_status' => $page->post_status,
     510                            'description' => $full_page['main'],
     511                            'title' => $page->post_title,
     512                            'link' => $link,
     513                            'permaLink' => $link,
     514                            'categories' => $categories,
     515                            'excerpt' => $page->post_excerpt,
     516                            'text_more' => $full_page['extended'],
     517                            'mt_allow_comments' => $allow_comments,
     518                            'mt_allow_pings' => $allow_pings,
     519                            'wp_slug' => $page->post_name,
     520                            'wp_password' => $page->post_password,
     521                            'wp_author' => $author->display_name,
     522                            'wp_page_parent_id' => $page->post_parent,
     523                            'wp_page_parent_title' => $parent_title,
     524                            'wp_page_order' => $page->menu_order,
     525                            'wp_author_id' => (string) $author->ID,
     526                            'wp_author_display_name' => $author->display_name,
     527                            'date_created_gmt' => new IXR_Date($page_date_gmt),
     528                            'custom_fields' => $this->get_custom_fields($page_id),
     529                            'wp_page_template' => $page_template
    535530                        );
    536531
    537532                        return($page_struct);
     
    557552        function wp_getPages($args) {
    558553                $this->escape($args);
    559554
    560                 $blog_id        = (int) $args[0];
    561                 $username       = $args[1];
    562                 $password       = $args[2];
    563                 $num_pages      = isset($args[3]) ? (int) $args[3] : 10;
     555                $blog_id = (int) $args[0];
     556                $username = $args[1];
     557                $password = $args[2];
     558                $num_pages = isset($args[3]) ? (int) $args[3] : 10;
    564559
    565                 if ( !$user = $this->login($username, $password) )
     560                if (!$user = $this->login($username, $password))
    566561                        return $this->error;
    567562
    568                 if ( !current_user_can( 'edit_pages' ) )
    569                         return new IXR_Error( 401, __( 'Sorry, you cannot edit pages.' ) );
     563                if (!current_user_can('edit_pages'))
     564                        return new IXR_Error(401, __('Sorry, you cannot edit pages.'));
    570565
    571566                do_action('xmlrpc_call', 'wp.getPages');
    572567
    573                 $pages = get_posts( array('post_type' => 'page', 'post_status' => 'any', 'numberposts' => $num_pages) );
     568                $pages = get_posts(array('post_type' => 'page', 'post_status' => 'any', 'numberposts' => $num_pages));
    574569                $num_pages = count($pages);
    575570
    576571                // If we have pages, put together their info.
    577                 if ( $num_pages >= 1 ) {
     572                if ($num_pages >= 1) {
    578573                        $pages_struct = array();
    579574
    580                         for ( $i = 0; $i < $num_pages; $i++ ) {
     575                        for ($i = 0; $i < $num_pages; $i++) {
    581576                                $page = wp_xmlrpc_server::wp_getPage(array(
    582577                                        $blog_id, $pages[$i]->ID, $username, $password
    583578                                ));
     
    602597         */
    603598        function wp_newPage($args) {
    604599                // Items not escaped here will be escaped in newPost.
    605                 $username       = $this->escape($args[1]);
    606                 $password       = $this->escape($args[2]);
    607                 $page           = $args[3];
    608                 $publish        = $args[4];
     600                $username = $this->escape($args[1]);
     601                $password = $this->escape($args[2]);
     602                $page = $args[3];
     603                $publish = $args[4];
    609604
    610                 if ( !$user = $this->login($username, $password) )
     605                if (!$user = $this->login($username, $password))
    611606                        return $this->error;
    612607
    613608                do_action('xmlrpc_call', 'wp.newPage');
    614609
    615610                // Make sure the user is allowed to add new pages.
    616                 if ( !current_user_can('publish_pages') )
     611                if (!current_user_can('publish_pages'))
    617612                        return(new IXR_Error(401, __('Sorry, you cannot add new pages.')));
    618613
    619614                // Mark this as content for a page.
     
    634629        function wp_deletePage($args) {
    635630                $this->escape($args);
    636631
    637                 $blog_id        = (int) $args[0];
    638                 $username       = $args[1];
    639                 $password       = $args[2];
    640                 $page_id        = (int) $args[3];
     632                $blog_id = (int) $args[0];
     633                $username = $args[1];
     634                $password = $args[2];
     635                $page_id = (int) $args[3];
    641636
    642                 if ( !$user = $this->login($username, $password) )
     637                if (!$user = $this->login($username, $password))
    643638                        return $this->error;
    644639
    645640                do_action('xmlrpc_call', 'wp.deletePage');
     
    647642                // Get the current page based on the page_id and
    648643                // make sure it is a page and not a post.
    649644                $actual_page = wp_get_single_post($page_id, ARRAY_A);
    650                 if ( !$actual_page || ($actual_page['post_type'] != 'page') )
     645                if (!$actual_page || ($actual_page['post_type'] != 'page'))
    651646                        return(new IXR_Error(404, __('Sorry, no such page.')));
    652647
    653648                // Make sure the user can delete pages.
    654                 if ( !current_user_can('delete_page', $page_id) )
     649                if (!current_user_can('delete_page', $page_id))
    655650                        return(new IXR_Error(401, __('Sorry, you do not have the right to delete this page.')));
    656651
    657652                // Attempt to delete the page.
    658653                $result = wp_delete_post($page_id);
    659                 if ( !$result )
     654                if (!$result)
    660655                        return(new IXR_Error(500, __('Failed to delete the page.')));
    661656
    662657                return(true);
     
    672667         */
    673668        function wp_editPage($args) {
    674669                // Items not escaped here will be escaped in editPost.
    675                 $blog_id        = (int) $args[0];
    676                 $page_id        = (int) $this->escape($args[1]);
    677                 $username       = $this->escape($args[2]);
    678                 $password       = $this->escape($args[3]);
    679                 $content        = $args[4];
    680                 $publish        = $args[5];
     670                $blog_id = (int) $args[0];
     671                $page_id = (int) $this->escape($args[1]);
     672                $username = $this->escape($args[2]);
     673                $password = $this->escape($args[3]);
     674                $content = $args[4];
     675                $publish = $args[5];
    681676
    682                 if ( !$user = $this->login($username, $password) )
     677                if (!$user = $this->login($username, $password))
    683678                        return $this->error;
    684679
    685680                do_action('xmlrpc_call', 'wp.editPage');
    686681
    687682                // Get the page data and make sure it is a page.
    688683                $actual_page = wp_get_single_post($page_id, ARRAY_A);
    689                 if ( !$actual_page || ($actual_page['post_type'] != 'page') )
     684                if (!$actual_page || ($actual_page['post_type'] != 'page'))
    690685                        return(new IXR_Error(404, __('Sorry, no such page.')));
    691686
    692687                // Make sure the user is allowed to edit pages.
    693                 if ( !current_user_can('edit_page', $page_id) )
     688                if (!current_user_can('edit_page', $page_id))
    694689                        return(new IXR_Error(401, __('Sorry, you do not have the right to edit this page.')));
    695690
    696691                // Mark this as content for a page.
     
    722717
    723718                $this->escape($args);
    724719
    725                 $blog_id                                = (int) $args[0];
    726                 $username                               = $args[1];
    727                 $password                               = $args[2];
     720                $blog_id = (int) $args[0];
     721                $username = $args[1];
     722                $password = $args[2];
    728723
    729                 if ( !$user = $this->login($username, $password) )
     724                if (!$user = $this->login($username, $password))
    730725                        return $this->error;
    731726
    732                 if ( !current_user_can( 'edit_pages' ) )
    733                         return new IXR_Error( 401, __( 'Sorry, you cannot edit pages.' ) );
     727                if (!current_user_can('edit_pages'))
     728                        return new IXR_Error(401, __('Sorry, you cannot edit pages.'));
    734729
    735730                do_action('xmlrpc_call', 'wp.getPageList');
    736731
     
    749744
    750745                // The date needs to be formatted properly.
    751746                $num_pages = count($page_list);
    752                 for ( $i = 0; $i < $num_pages; $i++ ) {
     747                for ($i = 0; $i < $num_pages; $i++) {
    753748                        $post_date = mysql2date('Ymd\TH:i:s', $page_list[$i]->post_date, false);
    754749                        $post_date_gmt = mysql2date('Ymd\TH:i:s', $page_list[$i]->post_date_gmt, false);
    755750
     
    757752                        $page_list[$i]->date_created_gmt = new IXR_Date($post_date_gmt);
    758753
    759754                        // For drafts use the GMT version of the date
    760                         if ( $page_list[$i]->post_status == 'draft' ) {
    761                                 $page_list[$i]->date_created_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $page_list[$i]->post_date ), 'Ymd\TH:i:s' );
    762                                 $page_list[$i]->date_created_gmt = new IXR_Date( $page_list[$i]->date_created_gmt );
     755                        if ($page_list[$i]->post_status == 'draft') {
     756                                $page_list[$i]->date_created_gmt = get_gmt_from_date(mysql2date('Y-m-d H:i:s', $page_list[$i]->post_date), 'Ymd\TH:i:s');
     757                                $page_list[$i]->date_created_gmt = new IXR_Date($page_list[$i]->date_created_gmt);
    763758                        }
    764759
    765760                        unset($page_list[$i]->post_date_gmt);
     
    782777
    783778                $this->escape($args);
    784779
    785                 $blog_id        = (int) $args[0];
    786                 $username       = $args[1];
    787                 $password       = $args[2];
     780                $blog_id = (int) $args[0];
     781                $username = $args[1];
     782                $password = $args[2];
    788783
    789                 if ( !$user = $this->login($username, $password) )
     784                if (!$user = $this->login($username, $password))
    790785                        return $this->error;
    791786
    792                 if ( !current_user_can('edit_posts') )
     787                if (!current_user_can('edit_posts'))
    793788                        return(new IXR_Error(401, __('Sorry, you cannot edit posts on this site.')));
    794789
    795790                do_action('xmlrpc_call', 'wp.getAuthors');
    796791
    797792                $authors = array();
    798                 foreach ( get_users( array( 'fields' => array('ID','user_login','display_name') ) ) as $user ) {
     793                foreach (get_users(array('fields' => array('ID', 'user_login', 'display_name'))) as $user) {
    799794                        $authors[] = array(
    800                                 'user_id'      => $user->ID,
    801                                 'user_login'    => $user->user_login,
    802                                 'display_name' => $user->display_name
     795                            'user_id' => $user->ID,
     796                            'user_login' => $user->user_login,
     797                            'display_name' => $user->display_name
    803798                        );
    804799                }
    805800
     
    814809         * @param array $args Method parameters.
    815810         * @return array
    816811         */
    817         function wp_getTags( $args ) {
    818                 $this->escape( $args );
     812        function wp_getTags($args) {
     813                $this->escape($args);
    819814
    820                 $blog_id                = (int) $args[0];
    821                 $username               = $args[1];
    822                 $password               = $args[2];
     815                $blog_id = (int) $args[0];
     816                $username = $args[1];
     817                $password = $args[2];
    823818
    824                 if ( !$user = $this->login($username, $password) )
     819                if (!$user = $this->login($username, $password))
    825820                        return $this->error;
    826821
    827                 if ( !current_user_can( 'edit_posts' ) )
    828                         return new IXR_Error( 401, __( 'Sorry, you must be able to edit posts on this site in order to view tags.' ) );
     822                if (!current_user_can('edit_posts'))
     823                        return new IXR_Error(401, __('Sorry, you must be able to edit posts on this site in order to view tags.'));
    829824
    830                 do_action( 'xmlrpc_call', 'wp.getKeywords' );
     825                do_action('xmlrpc_call', 'wp.getKeywords');
    831826
    832                 $tags = array( );
     827                $tags = array();
    833828
    834                 if ( $all_tags = get_tags() ) {
    835                         foreach( (array) $all_tags as $tag ) {
    836                                 $struct['tag_id']                       = $tag->term_id;
    837                                 $struct['name']                         = $tag->name;
    838                                 $struct['count']                        = $tag->count;
    839                                 $struct['slug']                         = $tag->slug;
    840                                 $struct['html_url']                     = esc_html( get_tag_link( $tag->term_id ) );
    841                                 $struct['rss_url']                      = esc_html( get_tag_feed_link( $tag->term_id ) );
     829                if ($all_tags = get_tags()) {
     830                        foreach ((array) $all_tags as $tag) {
     831                                $struct['tag_id'] = $tag->term_id;
     832                                $struct['name'] = $tag->name;
     833                                $struct['count'] = $tag->count;
     834                                $struct['slug'] = $tag->slug;
     835                                $struct['html_url'] = esc_html(get_tag_link($tag->term_id));
     836                                $struct['rss_url'] = esc_html(get_tag_feed_link($tag->term_id));
    842837
    843838                                $tags[] = $struct;
    844839                        }
     
    858853        function wp_newCategory($args) {
    859854                $this->escape($args);
    860855
    861                 $blog_id                                = (int) $args[0];
    862                 $username                               = $args[1];
    863                 $password                               = $args[2];
    864                 $category                               = $args[3];
     856                $blog_id = (int) $args[0];
     857                $username = $args[1];
     858                $password = $args[2];
     859                $category = $args[3];
    865860
    866                 if ( !$user = $this->login($username, $password) )
     861                if (!$user = $this->login($username, $password))
    867862                        return $this->error;
    868863
    869864                do_action('xmlrpc_call', 'wp.newCategory');
    870865
    871866                // Make sure the user is allowed to add a category.
    872                 if ( !current_user_can('manage_categories') )
     867                if (!current_user_can('manage_categories'))
    873868                        return(new IXR_Error(401, __('Sorry, you do not have the right to add a category.')));
    874869
    875870                // If no slug was provided make it empty so that
    876871                // WordPress will generate one.
    877                 if ( empty($category['slug']) )
     872                if (empty($category['slug']))
    878873                        $category['slug'] = '';
    879874
    880875                // If no parent_id was provided make it empty
    881876                // so that it will be a top level page (no parent).
    882                 if ( !isset($category['parent_id']) )
     877                if (!isset($category['parent_id']))
    883878                        $category['parent_id'] = '';
    884879
    885880                // If no description was provided make it empty.
    886                 if ( empty($category["description"]) )
     881                if (empty($category["description"]))
    887882                        $category["description"] = "";
    888883
    889884                $new_category = array(
    890                         'cat_name'                              => $category['name'],
    891                         'category_nicename'             => $category['slug'],
    892                         'category_parent'               => $category['parent_id'],
    893                         'category_description'  => $category['description']
     885                    'cat_name' => $category['name'],
     886                    'category_nicename' => $category['slug'],
     887                    'category_parent' => $category['parent_id'],
     888                    'category_description' => $category['description']
    894889                );
    895890
    896891                $cat_id = wp_insert_category($new_category, true);
    897                 if ( is_wp_error( $cat_id ) ) {
    898                         if ( 'term_exists' == $cat_id->get_error_code() )
     892                if (is_wp_error($cat_id)) {
     893                        if ('term_exists' == $cat_id->get_error_code())
    899894                                return (int) $cat_id->get_error_data();
    900895                        else
    901896                                return(new IXR_Error(500, __('Sorry, the new category failed.')));
    902                 } elseif ( ! $cat_id ) {
     897                } elseif (!$cat_id) {
    903898                        return(new IXR_Error(500, __('Sorry, the new category failed.')));
    904899                }
    905900
     
    917912        function wp_deleteCategory($args) {
    918913                $this->escape($args);
    919914
    920                 $blog_id                = (int) $args[0];
    921                 $username               = $args[1];
    922                 $password               = $args[2];
    923                 $category_id    = (int) $args[3];
     915                $blog_id = (int) $args[0];
     916                $username = $args[1];
     917                $password = $args[2];
     918                $category_id = (int) $args[3];
    924919
    925                 if ( !$user = $this->login($username, $password) )
     920                if (!$user = $this->login($username, $password))
    926921                        return $this->error;
    927922
    928923                do_action('xmlrpc_call', 'wp.deleteCategory');
    929924
    930                 if ( !current_user_can('manage_categories') )
    931                         return new IXR_Error( 401, __( 'Sorry, you do not have the right to delete a category.' ) );
     925                if (!current_user_can('manage_categories'))
     926                        return new IXR_Error(401, __('Sorry, you do not have the right to delete a category.'));
    932927
    933                 return wp_delete_term( $category_id, 'category' );
     928                return wp_delete_term($category_id, 'category');
    934929        }
    935930
    936931        /**
     
    944939        function wp_suggestCategories($args) {
    945940                $this->escape($args);
    946941
    947                 $blog_id                                = (int) $args[0];
    948                 $username                               = $args[1];
    949                 $password                               = $args[2];
    950                 $category                               = $args[3];
    951                 $max_results                    = (int) $args[4];
     942                $blog_id = (int) $args[0];
     943                $username = $args[1];
     944                $password = $args[2];
     945                $category = $args[3];
     946                $max_results = (int) $args[4];
    952947
    953                 if ( !$user = $this->login($username, $password) )
     948                if (!$user = $this->login($username, $password))
    954949                        return $this->error;
    955950
    956                 if ( !current_user_can( 'edit_posts' ) )
    957                         return new IXR_Error( 401, __( 'Sorry, you must be able to edit posts to this site in order to view categories.' ) );
     951                if (!current_user_can('edit_posts'))
     952                        return new IXR_Error(401, __('Sorry, you must be able to edit posts to this site in order to view categories.'));
    958953
    959954                do_action('xmlrpc_call', 'wp.suggestCategories');
    960955
    961956                $category_suggestions = array();
    962957                $args = array('get' => 'all', 'number' => $max_results, 'name__like' => $category);
    963                 foreach ( (array) get_categories($args) as $cat ) {
     958                foreach ((array) get_categories($args) as $cat) {
    964959                        $category_suggestions[] = array(
    965                                 'category_id'   => $cat->term_id,
    966                                 'category_name' => $cat->name
     960                            'category_id' => $cat->term_id,
     961                            'category_name' => $cat->name
    967962                        );
    968963                }
    969964
     
    981976        function wp_getComment($args) {
    982977                $this->escape($args);
    983978
    984                 $blog_id        = (int) $args[0];
    985                 $username       = $args[1];
    986                 $password       = $args[2];
    987                 $comment_id     = (int) $args[3];
     979                $blog_id = (int) $args[0];
     980                $username = $args[1];
     981                $password = $args[2];
     982                $comment_id = (int) $args[3];
    988983
    989                 if ( !$user = $this->login($username, $password) )
     984                if (!$user = $this->login($username, $password))
    990985                        return $this->error;
    991986
    992                 if ( !current_user_can( 'moderate_comments' ) )
    993                         return new IXR_Error( 403, __( 'You are not allowed to moderate comments on this site.' ) );
     987                if (!current_user_can('moderate_comments'))
     988                        return new IXR_Error(403, __('You are not allowed to moderate comments on this site.'));
    994989
    995990                do_action('xmlrpc_call', 'wp.getComment');
    996991
    997                 if ( ! $comment = get_comment($comment_id) )
    998                         return new IXR_Error( 404, __( 'Invalid comment ID.' ) );
     992                if (!$comment = get_comment($comment_id))
     993                        return new IXR_Error(404, __('Invalid comment ID.'));
    999994
    1000995                // Format page date.
    1001996                $comment_date = mysql2date('Ymd\TH:i:s', $comment->comment_date, false);
    1002997                $comment_date_gmt = mysql2date('Ymd\TH:i:s', $comment->comment_date_gmt, false);
    1003998
    1004                 if ( '0' == $comment->comment_approved )
     999                if ('0' == $comment->comment_approved)
    10051000                        $comment_status = 'hold';
    1006                 else if ( 'spam' == $comment->comment_approved )
     1001                else if ('spam' == $comment->comment_approved)
    10071002                        $comment_status = 'spam';
    1008                 else if ( '1' == $comment->comment_approved )
     1003                else if ('1' == $comment->comment_approved)
    10091004                        $comment_status = 'approve';
    10101005                else
    10111006                        $comment_status = $comment->comment_approved;
     
    10131008                $link = get_comment_link($comment);
    10141009
    10151010                $comment_struct = array(
    1016                         'date_created_gmt'              => new IXR_Date($comment_date_gmt),
    1017                         'user_id'                               => $comment->user_id,
    1018                         'comment_id'                    => $comment->comment_ID,
    1019                         'parent'                                => $comment->comment_parent,
    1020                         'status'                                => $comment_status,
    1021                         'content'                               => $comment->comment_content,
    1022                         'link'                                  => $link,
    1023                         'post_id'                               => $comment->comment_post_ID,
    1024                         'post_title'                    => get_the_title($comment->comment_post_ID),
    1025                         'author'                                => $comment->comment_author,
    1026                         'author_url'                    => $comment->comment_author_url,
    1027                         'author_email'                  => $comment->comment_author_email,
    1028                         'author_ip'                             => $comment->comment_author_IP,
    1029                         'type'                                  => $comment->comment_type,
     1011                    'date_created_gmt' => new IXR_Date($comment_date_gmt),
     1012                    'user_id' => $comment->user_id,
     1013                    'comment_id' => $comment->comment_ID,
     1014                    'parent' => $comment->comment_parent,
     1015                    'status' => $comment_status,
     1016                    'content' => $comment->comment_content,
     1017                    'link' => $link,
     1018                    'post_id' => $comment->comment_post_ID,
     1019                    'post_title' => get_the_title($comment->comment_post_ID),
     1020                    'author' => $comment->comment_author,
     1021                    'author_url' => $comment->comment_author_url,
     1022                    'author_email' => $comment->comment_author_email,
     1023                    'author_ip' => $comment->comment_author_IP,
     1024                    'type' => $comment->comment_type,
    10301025                );
    10311026
    10321027                return $comment_struct;
     
    10551050                $raw_args = $args;
    10561051                $this->escape($args);
    10571052
    1058                 $blog_id        = (int) $args[0];
    1059                 $username       = $args[1];
    1060                 $password       = $args[2];
    1061                 $struct         = $args[3];
     1053                $blog_id = (int) $args[0];
     1054                $username = $args[1];
     1055                $password = $args[2];
     1056                $struct = $args[3];
    10621057
    1063                 if ( !$user = $this->login($username, $password) )
     1058                if (!$user = $this->login($username, $password))
    10641059                        return $this->error;
    10651060
    1066                 if ( !current_user_can( 'moderate_comments' ) )
    1067                         return new IXR_Error( 401, __( 'Sorry, you cannot edit comments.' ) );
     1061                if (!current_user_can('moderate_comments'))
     1062                        return new IXR_Error(401, __('Sorry, you cannot edit comments.'));
    10681063
    10691064                do_action('xmlrpc_call', 'wp.getComments');
    10701065
    1071                 if ( isset($struct['status']) )
     1066                if (isset($struct['status']))
    10721067                        $status = $struct['status'];
    10731068                else
    10741069                        $status = '';
    10751070
    10761071                $post_id = '';
    1077                 if ( isset($struct['post_id']) )
     1072                if (isset($struct['post_id']))
    10781073                        $post_id = absint($struct['post_id']);
    10791074
    10801075                $offset = 0;
    1081                 if ( isset($struct['offset']) )
     1076                if (isset($struct['offset']))
    10821077                        $offset = absint($struct['offset']);
    10831078
    10841079                $number = 10;
    1085                 if ( isset($struct['number']) )
     1080                if (isset($struct['number']))
    10861081                        $number = absint($struct['number']);
    10871082
    1088                 $comments = get_comments( array('status' => $status, 'post_id' => $post_id, 'offset' => $offset, 'number' => $number ) );
     1083                $comments = get_comments(array('status' => $status, 'post_id' => $post_id, 'offset' => $offset, 'number' => $number));
    10891084                $num_comments = count($comments);
    10901085
    1091                 if ( ! $num_comments )
     1086                if (!$num_comments)
    10921087                        return array();
    10931088
    10941089                $comments_struct = array();
    10951090
    10961091    // FIXME: we already have the comments, why query them again?
    1097                 for ( $i = 0; $i < $num_comments; $i++ ) {
     1092                for ($i = 0; $i < $num_comments; $i++) {
    10981093                        $comment = wp_xmlrpc_server::wp_getComment(array(
    10991094                                $raw_args[0], $raw_args[1], $raw_args[2], $comments[$i]->comment_ID,
    11001095                        ));
     
    11231118        function wp_deleteComment($args) {
    11241119                $this->escape($args);
    11251120
    1126                 $blog_id        = (int) $args[0];
    1127                 $username       = $args[1];
    1128                 $password       = $args[2];
    1129                 $comment_ID     = (int) $args[3];
     1121                $blog_id = (int) $args[0];
     1122                $username = $args[1];
     1123                $password = $args[2];
     1124                $comment_ID = (int) $args[3];
    11301125
    1131                 if ( !$user = $this->login($username, $password) )
     1126                if (!$user = $this->login($username, $password))
    11321127                        return $this->error;
    11331128
    1134                 if ( !current_user_can( 'moderate_comments' ) )
    1135                         return new IXR_Error( 403, __( 'You are not allowed to moderate comments on this site.' ) );
     1129                if (!current_user_can('moderate_comments'))
     1130                        return new IXR_Error(403, __('You are not allowed to moderate comments on this site.'));
    11361131
    1137                 if ( ! get_comment($comment_ID) )
    1138                         return new IXR_Error( 404, __( 'Invalid comment ID.' ) );
     1132                if (!get_comment($comment_ID))
     1133                        return new IXR_Error(404, __('Invalid comment ID.'));
    11391134
    1140                 if ( !current_user_can( 'edit_comment', $comment_ID ) )
    1141                         return new IXR_Error( 403, __( 'You are not allowed to moderate comments on this site.' ) );
     1135                if (!current_user_can('edit_comment', $comment_ID))
     1136                        return new IXR_Error(403, __('You are not allowed to moderate comments on this site.'));
    11421137
    11431138                do_action('xmlrpc_call', 'wp.deleteComment');
    11441139
     
    11721167        function wp_editComment($args) {
    11731168                $this->escape($args);
    11741169
    1175                 $blog_id        = (int) $args[0];
    1176                 $username       = $args[1];
    1177                 $password       = $args[2];
    1178                 $comment_ID     = (int) $args[3];
     1170                $blog_id = (int) $args[0];
     1171                $username = $args[1];
     1172                $password = $args[2];
     1173                $comment_ID = (int) $args[3];
    11791174                $content_struct = $args[4];
    11801175
    1181                 if ( !$user = $this->login($username, $password) )
     1176                if (!$user = $this->login($username, $password))
    11821177                        return $this->error;
    11831178
    1184                 if ( !current_user_can( 'moderate_comments' ) )
    1185                         return new IXR_Error( 403, __( 'You are not allowed to moderate comments on this site.' ) );
     1179                if (!current_user_can('moderate_comments'))
     1180                        return new IXR_Error(403, __('You are not allowed to moderate comments on this site.'));
    11861181
    1187                 if ( ! get_comment($comment_ID) )
    1188                         return new IXR_Error( 404, __( 'Invalid comment ID.' ) );
     1182                if (!get_comment($comment_ID))
     1183                        return new IXR_Error(404, __('Invalid comment ID.'));
    11891184
    1190                 if ( !current_user_can( 'edit_comment', $comment_ID ) )
    1191                         return new IXR_Error( 403, __( 'You are not allowed to moderate comments on this site.' ) );
     1185                if (!current_user_can('edit_comment', $comment_ID))
     1186                        return new IXR_Error(403, __('You are not allowed to moderate comments on this site.'));
    11921187
    11931188                do_action('xmlrpc_call', 'wp.editComment');
    11941189
    1195                 if ( isset($content_struct['status']) ) {
     1190                if (isset($content_struct['status'])) {
    11961191                        $statuses = get_comment_statuses();
    11971192                        $statuses = array_keys($statuses);
    11981193
    1199                         if ( ! in_array($content_struct['status'], $statuses) )
    1200                                 return new IXR_Error( 401, __( 'Invalid comment status.' ) );
     1194                        if (!in_array($content_struct['status'], $statuses))
     1195                                return new IXR_Error(401, __('Invalid comment status.'));
    12011196                        $comment_approved = $content_struct['status'];
    12021197                }
    12031198
    12041199                // Do some timestamp voodoo
    1205                 if ( !empty( $content_struct['date_created_gmt'] ) ) {
    1206                         $dateCreated = str_replace( 'Z', '', $content_struct['date_created_gmt']->getIso() ) . 'Z'; // We know this is supposed to be GMT, so we're going to slap that Z on there by force
     1200                if (!empty($content_struct['date_created_gmt'])) {
     1201                        $dateCreated = str_replace('Z', '', $content_struct['date_created_gmt']->getIso()) . 'Z'; // We know this is supposed to be GMT, so we're going to slap that Z on there by force
    12071202                        $comment_date = get_date_from_gmt(iso8601_to_datetime($dateCreated));
    12081203                        $comment_date_gmt = iso8601_to_datetime($dateCreated, 'GMT');
    12091204                }
    12101205
    1211                 if ( isset($content_struct['content']) )
     1206                if (isset($content_struct['content']))
    12121207                        $comment_content = $content_struct['content'];
    12131208
    1214                 if ( isset($content_struct['author']) )
     1209                if (isset($content_struct['author']))
    12151210                        $comment_author = $content_struct['author'];
    12161211
    1217                 if ( isset($content_struct['author_url']) )
     1212                if (isset($content_struct['author_url']))
    12181213                        $comment_author_url = $content_struct['author_url'];
    12191214
    1220                 if ( isset($content_struct['author_email']) )
     1215                if (isset($content_struct['author_email']))
    12211216                        $comment_author_email = $content_struct['author_email'];
    12221217
    12231218                // We've got all the data -- post it:
    12241219                $comment = compact('comment_ID', 'comment_content', 'comment_approved', 'comment_date', 'comment_date_gmt', 'comment_author', 'comment_author_email', 'comment_author_url');
    12251220
    12261221                $result = wp_update_comment($comment);
    1227                 if ( is_wp_error( $result ) )
     1222                if (is_wp_error($result))
    12281223                        return new IXR_Error(500, $result->get_error_message());
    12291224
    1230                 if ( !$result )
     1225                if (!$result)
    12311226                        return new IXR_Error(500, __('Sorry, the comment could not be edited. Something wrong happened.'));
    12321227
    12331228                return true;
     
    12461241
    12471242                $this->escape($args);
    12481243
    1249                 $blog_id        = (int) $args[0];
    1250                 $username       = $args[1];
    1251                 $password       = $args[2];
    1252                 $post           = $args[3];
     1244                $blog_id = (int) $args[0];
     1245                $username = $args[1];
     1246                $password = $args[2];
     1247                $post = $args[3];
    12531248                $content_struct = $args[4];
    12541249
    12551250                $allow_anon = apply_filters('xmlrpc_allow_anonymous_comments', false);
    12561251
    12571252                $user = $this->login($username, $password);
    12581253
    1259                 if ( !$user ) {
     1254                if (!$user) {
    12601255                        $logged_in = false;
    1261                         if ( $allow_anon && get_option('comment_registration') )
    1262                                 return new IXR_Error( 403, __( 'You must be registered to comment' ) );
    1263                         else if ( !$allow_anon )
     1256                        if ($allow_anon && get_option('comment_registration'))
     1257                                return new IXR_Error(403, __('You must be registered to comment'));
     1258                        else if (!$allow_anon)
    12641259                                return $this->error;
    12651260                } else {
    12661261                        $logged_in = true;
    12671262                }
    12681263
    1269                 if ( is_numeric($post) )
     1264                if (is_numeric($post))
    12701265                        $post_id = absint($post);
    12711266                else
    12721267                        $post_id = url_to_postid($post);
    12731268
    1274                 if ( ! $post_id )
    1275                         return new IXR_Error( 404, __( 'Invalid post ID.' ) );
     1269                if (!$post_id)
     1270                        return new IXR_Error(404, __('Invalid post ID.'));
    12761271
    1277                 if ( ! get_post($post_id) )
    1278                         return new IXR_Error( 404, __( 'Invalid post ID.' ) );
     1272                if (!get_post($post_id))
     1273                        return new IXR_Error(404, __('Invalid post ID.'));
    12791274
    12801275                $comment['comment_post_ID'] = $post_id;
    12811276
    1282                 if ( $logged_in ) {
    1283                         $comment['comment_author'] = $wpdb->escape( $user->display_name );
    1284                         $comment['comment_author_email'] = $wpdb->escape( $user->user_email );
    1285                         $comment['comment_author_url'] = $wpdb->escape( $user->user_url );
     1277                if ($logged_in) {
     1278                        $comment['comment_author'] = $wpdb->escape($user->display_name);
     1279                        $comment['comment_author_email'] = $wpdb->escape($user->user_email);
     1280                        $comment['comment_author_url'] = $wpdb->escape($user->user_url);
    12861281                        $comment['user_ID'] = $user->ID;
    12871282                } else {
    12881283                        $comment['comment_author'] = '';
    1289                         if ( isset($content_struct['author']) )
     1284                        if (isset($content_struct['author']))
    12901285                                $comment['comment_author'] = $content_struct['author'];
    12911286
    12921287                        $comment['comment_author_email'] = '';
    1293                         if ( isset($content_struct['author_email']) )
     1288                        if (isset($content_struct['author_email']))
    12941289                                $comment['comment_author_email'] = $content_struct['author_email'];
    12951290
    12961291                        $comment['comment_author_url'] = '';
    1297                         if ( isset($content_struct['author_url']) )
     1292                        if (isset($content_struct['author_url']))
    12981293                                $comment['comment_author_url'] = $content_struct['author_url'];
    12991294
    13001295                        $comment['user_ID'] = 0;
    13011296
    1302                         if ( get_option('require_name_email') ) {
    1303                                 if ( 6 > strlen($comment['comment_author_email']) || '' == $comment['comment_author'] )
    1304                                         return new IXR_Error( 403, __( 'Comment author name and email are required' ) );
    1305                                 elseif ( !is_email($comment['comment_author_email']) )
    1306                                         return new IXR_Error( 403, __( 'A valid email address is required' ) );
     1297                        if (get_option('require_name_email')) {
     1298                                if (6 > strlen($comment['comment_author_email']) || '' == $comment['comment_author'])
     1299                                        return new IXR_Error(403, __('Comment author name and email are required'));
     1300                                elseif (!is_email($comment['comment_author_email']))
     1301                                        return new IXR_Error(403, __('A valid email address is required'));
    13071302                        }
    13081303                }
    13091304
    13101305                $comment['comment_parent'] = isset($content_struct['comment_parent']) ? absint($content_struct['comment_parent']) : 0;
    13111306
    1312                 $comment['comment_content'] = isset($content_struct['content']) ? $content_struct['content'] : null;
     1307                $comment['comment_content'] = isset($content_struct['content']) ? $content_struct['content'] : null;
    13131308
    13141309                do_action('xmlrpc_call', 'wp.newComment');
    13151310
     
    13251320         * @return array
    13261321         */
    13271322        function wp_getCommentStatusList($args) {
    1328                 $this->escape( $args );
     1323                $this->escape($args);
    13291324
    1330                 $blog_id        = (int) $args[0];
    1331                 $username       = $args[1];
    1332                 $password       = $args[2];
     1325                $blog_id = (int) $args[0];
     1326                $username = $args[1];
     1327                $password = $args[2];
    13331328
    1334                 if ( !$user = $this->login($username, $password) )
     1329                if (!$user = $this->login($username, $password))
    13351330                        return $this->error;
    13361331
    1337                 if ( !current_user_can( 'moderate_comments' ) )
    1338                         return new IXR_Error( 403, __( 'You are not allowed access to details about this site.' ) );
     1332                if (!current_user_can('moderate_comments'))
     1333                        return new IXR_Error(403, __('You are not allowed access to details about this site.'));
    13391334
    13401335                do_action('xmlrpc_call', 'wp.getCommentStatusList');
    13411336
    1342                 return get_comment_statuses( );
     1337                return get_comment_statuses();
    13431338        }
    13441339
    13451340        /**
     
    13501345         * @param array $args Method parameters.
    13511346         * @return array
    13521347         */
    1353         function wp_getCommentCount( $args ) {
     1348        function wp_getCommentCount($args) {
    13541349                $this->escape($args);
    13551350
    1356                 $blog_id        = (int) $args[0];
    1357                 $username       = $args[1];
    1358                 $password       = $args[2];
    1359                 $post_id        = (int) $args[3];
     1351                $blog_id = (int) $args[0];
     1352                $username = $args[1];
     1353                $password = $args[2];
     1354                $post_id = (int) $args[3];
    13601355
    1361                 if ( !$user = $this->login($username, $password) )
     1356                if (!$user = $this->login($username, $password))
    13621357                        return $this->error;
    13631358
    1364                 if ( !current_user_can( 'edit_posts' ) )
    1365                         return new IXR_Error( 403, __( 'You are not allowed access to details about comments.' ) );
     1359                if (!current_user_can('edit_posts'))
     1360                        return new IXR_Error(403, __('You are not allowed access to details about comments.'));
    13661361
    13671362                do_action('xmlrpc_call', 'wp.getCommentCount');
    13681363
    1369                 $count = wp_count_comments( $post_id );
     1364                $count = wp_count_comments($post_id);
    13701365                return array(
    13711366                        'approved' => $count->approved,
    13721367                        'awaiting_moderation' => $count->moderated,
     
    13831378         * @param array $args Method parameters.
    13841379         * @return array
    13851380         */
    1386         function wp_getPostStatusList( $args ) {
    1387                 $this->escape( $args );
     1381        function wp_getPostStatusList($args) {
     1382                $this->escape($args);
    13881383
    1389                 $blog_id        = (int) $args[0];
    1390                 $username       = $args[1];
    1391                 $password       = $args[2];
     1384                $blog_id = (int) $args[0];
     1385                $username = $args[1];
     1386                $password = $args[2];
    13921387
    1393                 if ( !$user = $this->login($username, $password) )
     1388                if (!$user = $this->login($username, $password))
    13941389                        return $this->error;
    13951390
    1396                 if ( !current_user_can( 'edit_posts' ) )
    1397                         return new IXR_Error( 403, __( 'You are not allowed access to details about this site.' ) );
     1391                if (!current_user_can('edit_posts'))
     1392                        return new IXR_Error(403, __('You are not allowed access to details about this site.'));
    13981393
    13991394                do_action('xmlrpc_call', 'wp.getPostStatusList');
    14001395
    1401                 return get_post_statuses( );
     1396                return get_post_statuses();
    14021397        }
    14031398
    14041399        /**
     
    14091404         * @param array $args Method parameters.
    14101405         * @return array
    14111406         */
    1412         function wp_getPageStatusList( $args ) {
    1413                 $this->escape( $args );
     1407        function wp_getPageStatusList($args) {
     1408                $this->escape($args);
    14141409
    1415                 $blog_id        = (int) $args[0];
    1416                 $username       = $args[1];
    1417                 $password       = $args[2];
     1410                $blog_id = (int) $args[0];
     1411                $username = $args[1];
     1412                $password = $args[2];
    14181413
    1419                 if ( !$user = $this->login($username, $password) )
     1414                if (!$user = $this->login($username, $password))
    14201415                        return $this->error;
    14211416
    1422                 if ( !current_user_can( 'edit_pages' ) )
    1423                         return new IXR_Error( 403, __( 'You are not allowed access to details about this site.' ) );
     1417                if (!current_user_can('edit_pages'))
     1418                        return new IXR_Error(403, __('You are not allowed access to details about this site.'));
    14241419
    14251420                do_action('xmlrpc_call', 'wp.getPageStatusList');
    14261421
    1427                 return get_page_statuses( );
     1422                return get_page_statuses();
    14281423        }
    14291424
    14301425        /**
     
    14351430         * @param array $args Method parameters.
    14361431         * @return array
    14371432         */
    1438         function wp_getPageTemplates( $args ) {
    1439                 $this->escape( $args );
     1433        function wp_getPageTemplates($args) {
     1434                $this->escape($args);
    14401435
    1441                 $blog_id        = (int) $args[0];
    1442                 $username       = $args[1];
    1443                 $password       = $args[2];
     1436                $blog_id = (int) $args[0];
     1437                $username = $args[1];
     1438                $password = $args[2];
    14441439
    1445                 if ( !$user = $this->login($username, $password) )
     1440                if (!$user = $this->login($username, $password))
    14461441                        return $this->error;
    14471442
    1448                 if ( !current_user_can( 'edit_pages' ) )
    1449                         return new IXR_Error( 403, __( 'You are not allowed access to details about this site.' ) );
     1443                if (!current_user_can('edit_pages'))
     1444                        return new IXR_Error(403, __('You are not allowed access to details about this site.'));
    14501445
    1451                 $templates = get_page_templates( );
     1446                $templates = get_page_templates();
    14521447                $templates['Default'] = 'default';
    14531448
    14541449                return $templates;
     
    14621457         * @param array $args Method parameters.
    14631458         * @return array
    14641459         */
    1465         function wp_getOptions( $args ) {
    1466                 $this->escape( $args );
     1460        function wp_getOptions($args) {
     1461                $this->escape($args);
    14671462
    1468                 $blog_id        = (int) $args[0];
    1469                 $username       = $args[1];
    1470                 $password       = $args[2];
    1471                 $options        = isset( $args[3] ) ? (array) $args[3] : array();
     1463                $blog_id = (int) $args[0];
     1464                $username = $args[1];
     1465                $password = $args[2];
     1466                $options = isset($args[3]) ? (array) $args[3] : array();
    14721467
    1473                 if ( !$user = $this->login($username, $password) )
     1468                if (!$user = $this->login($username, $password))
    14741469                        return $this->error;
    14751470
    14761471                // If no specific options where asked for, return all of them
    1477                 if ( count( $options ) == 0 )
     1472                if (count($options) == 0)
    14781473                        $options = array_keys($this->blog_options);
    14791474
    14801475                return $this->_getOptions($options);
     
    14891484         * @return array
    14901485         */
    14911486        function _getOptions($options) {
    1492                 $data = array( );
    1493                 foreach ( $options as $option ) {
    1494                         if ( array_key_exists( $option, $this->blog_options ) ) {
     1487                $data = array();
     1488                foreach ($options as $option) {
     1489                        if (array_key_exists($option, $this->blog_options)) {
    14951490                                $data[$option] = $this->blog_options[$option];
    14961491                                //Is the value static or dynamic?
    1497                                 if ( isset( $data[$option]['option'] ) ) {
    1498                                         $data[$option]['value'] = get_option( $data[$option]['option'] );
     1492                                if (isset($data[$option]['option'])) {
     1493                                        $data[$option]['value'] = get_option($data[$option]['option']);
    14991494                                        unset($data[$option]['option']);
    15001495                                }
    15011496                        }
     
    15121507         * @param array $args Method parameters.
    15131508         * @return unknown
    15141509         */
    1515         function wp_setOptions( $args ) {
    1516                 $this->escape( $args );
     1510        function wp_setOptions($args) {
     1511                $this->escape($args);
    15171512
    1518                 $blog_id        = (int) $args[0];
    1519                 $username       = $args[1];
    1520                 $password       = $args[2];
    1521                 $options        = (array) $args[3];
     1513                $blog_id = (int) $args[0];
     1514                $username = $args[1];
     1515                $password = $args[2];
     1516                $options = (array) $args[3];
    15221517
    1523                 if ( !$user = $this->login($username, $password) )
     1518                if (!$user = $this->login($username, $password))
    15241519                        return $this->error;
    15251520
    1526                 if ( !current_user_can( 'manage_options' ) )
    1527                         return new IXR_Error( 403, __( 'You are not allowed to update options.' ) );
     1521                if (!current_user_can('manage_options'))
     1522                        return new IXR_Error(403, __('You are not allowed to update options.'));
    15281523
    1529                 foreach ( $options as $o_name => $o_value ) {
     1524                foreach ($options as $o_name => $o_value) {
    15301525                        $option_names[] = $o_name;
    1531                         if ( !array_key_exists( $o_name, $this->blog_options ) )
     1526                        if (!array_key_exists($o_name, $this->blog_options))
    15321527                                continue;
    15331528
    1534                         if ( $this->blog_options[$o_name]['readonly'] == true )
     1529                        if ($this->blog_options[$o_name]['readonly'] == true)
    15351530                                continue;
    15361531
    1537                         update_option( $this->blog_options[$o_name]['option'], $o_value );
     1532                        update_option($this->blog_options[$o_name]['option'], $o_value);
    15381533                }
    15391534
    15401535                //Now return the updated values
     
    15641559        function wp_getMediaItem($args) {
    15651560                $this->escape($args);
    15661561
    1567                 $blog_id                = (int) $args[0];
    1568                 $username               = $args[1];
    1569                 $password               = $args[2];
    1570                 $attachment_id  = (int) $args[3];
     1562                $blog_id = (int) $args[0];
     1563                $username = $args[1];
     1564                $password = $args[2];
     1565                $attachment_id = (int) $args[3];
    15711566
    1572                 if ( !$user = $this->login($username, $password) )
     1567                if (!$user = $this->login($username, $password))
    15731568                        return $this->error;
    15741569
    1575                 if ( !current_user_can( 'upload_files' ) )
    1576                         return new IXR_Error( 403, __( 'You are not allowed to upload files to this site.' ) );
     1570                if (!current_user_can('upload_files'))
     1571                        return new IXR_Error(403, __('You are not allowed to upload files to this site.'));
    15771572
    15781573                do_action('xmlrpc_call', 'wp.getMediaItem');
    15791574
    1580                 if ( ! $attachment = get_post($attachment_id) )
    1581                         return new IXR_Error( 404, __( 'Invalid attachment ID.' ) );
     1575                if (!$attachment = get_post($attachment_id))
     1576                        return new IXR_Error(404, __('Invalid attachment ID.'));
    15821577
    15831578                // Format page date.
    15841579                $attachment_date = mysql2date('Ymd\TH:i:s', $attachment->post_date, false);
     
    15881583                $thumbnail_link = wp_get_attachment_thumb_url($attachment->ID);
    15891584
    15901585                $attachment_struct = array(
    1591                         'date_created_gmt'              => new IXR_Date($attachment_date_gmt),
    1592                         'parent'                                => $attachment->post_parent,
    1593                         'link'                                  => $link,
    1594                         'thumbnail'                             => $thumbnail_link,
    1595                         'title'                                 => $attachment->post_title,
    1596                         'caption'                               => $attachment->post_excerpt,
    1597                         'description'                   => $attachment->post_content,
    1598                         'metadata'                              => wp_get_attachment_metadata($attachment->ID),
     1586                    'date_created_gmt' => new IXR_Date($attachment_date_gmt),
     1587                    'parent' => $attachment->post_parent,
     1588                    'link' => $link,
     1589                    'thumbnail' => $thumbnail_link,
     1590                    'title' => $attachment->post_title,
     1591                    'caption' => $attachment->post_excerpt,
     1592                    'description' => $attachment->post_content,
     1593                    'metadata' => wp_get_attachment_metadata($attachment->ID),
    15991594                );
    16001595
    16011596                return $attachment_struct;
     
    16281623                $raw_args = $args;
    16291624                $this->escape($args);
    16301625
    1631                 $blog_id        = (int) $args[0];
    1632                 $username       = $args[1];
    1633                 $password       = $args[2];
    1634                 $struct         = isset( $args[3] ) ? $args[3] : array() ;
     1626                $blog_id = (int) $args[0];
     1627                $username = $args[1];
     1628                $password = $args[2];
     1629                $struct = isset($args[3]) ? $args[3] : array();
    16351630
    1636                 if ( !$user = $this->login($username, $password) )
     1631                if (!$user = $this->login($username, $password))
    16371632                        return $this->error;
    16381633
    1639                 if ( !current_user_can( 'upload_files' ) )
    1640                         return new IXR_Error( 401, __( 'Sorry, you cannot upload files.' ) );
     1634                if (!current_user_can('upload_files'))
     1635                        return new IXR_Error(401, __('Sorry, you cannot upload files.'));
    16411636
    16421637                do_action('xmlrpc_call', 'wp.getMediaLibrary');
    16431638
    1644                 $parent_id = ( isset($struct['parent_id']) ) ? absint($struct['parent_id']) : '' ;
    1645                 $mime_type = ( isset($struct['mime_type']) ) ? $struct['mime_type'] : '' ;
    1646                 $offset = ( isset($struct['offset']) ) ? absint($struct['offset']) : 0 ;
    1647                 $number = ( isset($struct['number']) ) ? absint($struct['number']) : -1 ;
     1639                $parent_id = ( isset($struct['parent_id']) ) ? absint($struct['parent_id']) : '';
     1640                $mime_type = ( isset($struct['mime_type']) ) ? $struct['mime_type'] : '';
     1641                $offset = ( isset($struct['offset']) ) ? absint($struct['offset']) : 0;
     1642                $number = ( isset($struct['number']) ) ? absint($struct['number']) : -1;
    16481643
    1649                 $attachments = get_posts( array('post_type' => 'attachment', 'post_parent' => $parent_id, 'offset' => $offset, 'numberposts' => $number, 'post_mime_type' => $mime_type ) );
     1644                $attachments = get_posts(array('post_type' => 'attachment', 'post_parent' => $parent_id, 'offset' => $offset, 'numberposts' => $number, 'post_mime_type' => $mime_type));
    16501645                $num_attachments = count($attachments);
    16511646
    1652                 if ( ! $num_attachments )
     1647                if (!$num_attachments)
    16531648                        return array();
    16541649
    16551650                $attachments_struct = array();
    16561651
    1657                 foreach ($attachments as $attachment )
    1658                         $attachments_struct[] = $this->wp_getMediaItem( array( $raw_args[0], $raw_args[1], $raw_args[2], $attachment->ID ) );
     1652                foreach ($attachments as $attachment)
     1653                        $attachments_struct[] = $this->wp_getMediaItem(array($raw_args[0], $raw_args[1], $raw_args[2], $attachment->ID));
    16591654
    16601655                return $attachments_struct;
    16611656        }
     
    16711666          *  - password
    16721667          * @return array
    16731668          */
    1674         function wp_getPostFormats( $args ) {
    1675                 $this->escape( $args );
     1669        function wp_getPostFormats($args) {
     1670                $this->escape($args);
    16761671
    16771672                $blog_id = (int) $args[0];
    16781673                $username = $args[1];
    16791674                $password = $args[2];
    16801675
    1681                 if ( !$user = $this->login( $username, $password ) )
     1676                if (!$user = $this->login($username, $password))
    16821677                        return $this->error;
    16831678
    1684                 do_action( 'xmlrpc_call', 'wp.getPostFormats' );
     1679                do_action('xmlrpc_call', 'wp.getPostFormats');
    16851680
    16861681                $formats = get_post_format_strings();
    16871682
    16881683                # find out if they want a list of currently supports formats
    1689                 if ( isset( $args[3] ) && is_array( $args[3] ) ) {
    1690                         if ( $args[3]['show-supported'] ) {
    1691                                 if ( current_theme_supports( 'post-formats' ) ) {
    1692                                         $supported = get_theme_support( 'post-formats' );
     1684                if (isset($args[3]) && is_array($args[3])) {
     1685                        if ($args[3]['show-supported']) {
     1686                                if (current_theme_supports('post-formats')) {
     1687                                        $supported = get_theme_support('post-formats');
    16931688
    16941689                                        $data['all'] = $formats;
    16951690                                        $data['supported'] = $supported[0];
     
    17021697                return $formats;
    17031698        }
    17041699
     1700        /**
     1701         * Delete a user
     1702         *
     1703         * @uses wp_delete_user()
     1704         * @param array $args Method parameters. Contains:
     1705         *  - int     $blog_id
     1706         *  - string  $username
     1707         *  - string  $password
     1708         *  - int     $user_id
     1709         *  - int     $reassign_id
     1710         * @return True when user is deleted.
     1711         */
     1712        function wp_deleteUser($args) {
     1713                $this->escape($args);
     1714
     1715                $blog_id = (int) $args[0];
     1716                $username = $args[1];
     1717                $password = $args[2];
     1718                $user_id = (int) $args[3];
     1719
     1720                if (!$user = $this->login($username, $password))
     1721                        return $this->error;
     1722
     1723                do_action('xmlrpc_call', 'wp.deleteUser');
     1724
     1725                if (!current_user_can('delete_users'))
     1726                        return new IXR_Error(401, __('You are not allowed to delete users.'));
     1727
     1728                if (!get_userdata($user_id))
     1729                        return new IXR_Error(404, __('Invalid user ID.'));
     1730
     1731                if ($user->ID == $user_id)
     1732                        return new IXR_Error(401, __('You cannot delete yourself.'));
     1733
     1734                if (isset($args[4])) {
     1735                        $reassign_id = (int) $args[4];
     1736                        if (!get_userdata($user_id))
     1737                                return new IXR_Error(404, __('Invalid reassign user ID.'));
     1738                        if($reassign_id == $user_id)
     1739                                return new IXR_Error(404, __('Cannot reassign for a deleting user.'));
     1740                } else {
     1741                        $reassign_id = 'novalue';
     1742                }
     1743
     1744                $result = wp_delete_user($user_id, $reassign_id);
     1745
     1746                if (!$result)
     1747                        return new IXR_Error(500, __('Cannot delete user.'));
     1748
     1749                return true;
     1750        }
     1751
    17051752        /* Blogger API functions.
    17061753         * specs on http://plant.blogger.com/api and http://groups.yahoo.com/group/bloggerDev/
    17071754         */
     
    17171764         * @return array
    17181765         */
    17191766        function blogger_getUsersBlogs($args) {
    1720                 if ( is_multisite() )
     1767                if (is_multisite())
    17211768                        return $this->_multisite_getUsersBlogs($args);
    17221769
    17231770                $this->escape($args);
    17241771
    17251772                $username = $args[1];
    1726                 $password = $args[2];
     1773                $password = $args[2];
    17271774
    1728                 if ( !$user = $this->login($username, $password) )
     1775                if (!$user = $this->login($username, $password))
    17291776                        return $this->error;
    17301777
    17311778                do_action('xmlrpc_call', 'blogger.getUsersBlogs');
     
    17331780                $is_admin = current_user_can('manage_options');
    17341781
    17351782                $struct = array(
    1736                         'isAdmin' => $is_admin,
    1737                         'url'      => get_option('home') . '/',
    1738                         'blogid'  => '1',
     1783                    'isAdmin' => $is_admin,
     1784                    'url' => get_option('home') . '/',
     1785                    'blogid' => '1',
    17391786                        'blogName' => get_option('blogname'),
    1740                         'xmlrpc'   => site_url( 'xmlrpc.php' )
     1787                    'xmlrpc' => site_url('xmlrpc.php')
    17411788                );
    17421789
    17431790                return array($struct);
     
    17581805                $rpc->query('wp.getUsersBlogs', $args[1], $args[2]);
    17591806                $blogs = $rpc->getResponse();
    17601807
    1761                 if ( isset($blogs['faultCode']) )
     1808                if (isset($blogs['faultCode']))
    17621809                        return new IXR_Error($blogs['faultCode'], $blogs['faultString']);
    17631810
    1764                 if ( $_SERVER['HTTP_HOST'] == $domain && $_SERVER['REQUEST_URI'] == $path ) {
     1811                if ($_SERVER['HTTP_HOST'] == $domain && $_SERVER['REQUEST_URI'] == $path) {
    17651812                        return $blogs;
    17661813                } else {
    1767                         foreach ( (array) $blogs as $blog ) {
    1768                                 if ( strpos($blog['url'], $_SERVER['HTTP_HOST']) )
     1814                        foreach ((array) $blogs as $blog) {
     1815                                if (strpos($blog['url'], $_SERVER['HTTP_HOST']))
    17691816                                        return array($blog);
    17701817                        }
    17711818                        return array();
     
    17871834                $this->escape($args);
    17881835
    17891836                $username = $args[1];
    1790                 $password = $args[2];
     1837                $password = $args[2];
    17911838
    1792                 if ( !$user = $this->login($username, $password) )
     1839                if (!$user = $this->login($username, $password))
    17931840                        return $this->error;
    17941841
    1795                 if ( !current_user_can( 'edit_posts' ) )
    1796                         return new IXR_Error( 401, __( 'Sorry, you do not have access to user data on this site.' ) );
     1842                if (!current_user_can('edit_posts'))
     1843                        return new IXR_Error(401, __('Sorry, you do not have access to user data on this site.'));
    17971844
    17981845                do_action('xmlrpc_call', 'blogger.getUserInfo');
    17991846
    18001847                $struct = array(
    1801                         'nickname' => $user->nickname,
    1802                         'userid'    => $user->ID,
    1803                         'url'      => $user->user_url,
    1804                         'lastname' => $user->last_name,
     1848                    'nickname' => $user->nickname,
     1849                    'userid' => $user->ID,
     1850                    'url' => $user->user_url,
     1851                    'lastname' => $user->last_name,
    18051852                        'firstname' => $user->first_name
    18061853                );
    18071854
     
    18201867
    18211868                $this->escape($args);
    18221869
    1823                 $post_ID    = (int) $args[1];
     1870                $post_ID = (int) $args[1];
    18241871                $username = $args[2];
    1825                 $password = $args[3];
     1872                $password = $args[3];
    18261873
    1827                 if ( !$user = $this->login($username, $password) )
     1874                if (!$user = $this->login($username, $password))
    18281875                        return $this->error;
    18291876
    1830                 if ( !current_user_can( 'edit_post', $post_ID ) )
    1831                         return new IXR_Error( 401, __( 'Sorry, you cannot edit this post.' ) );
     1877                if (!current_user_can('edit_post', $post_ID))
     1878                        return new IXR_Error(401, __('Sorry, you cannot edit this post.'));
    18321879
    18331880                do_action('xmlrpc_call', 'blogger.getPost');
    18341881
     
    18361883
    18371884                $categories = implode(',', wp_get_post_categories($post_ID));
    18381885
    1839                 $content  = '<title>'.stripslashes($post_data['post_title']).'</title>';
    1840                 $content .= '<category>'.$categories.'</category>';
     1886                $content = '<title>' . stripslashes($post_data['post_title']) . '</title>';
     1887                $content .= '<category>' . $categories . '</category>';
    18411888                $content .= stripslashes($post_data['post_content']);
    18421889
    18431890                $struct = array(
    1844                         'userid'    => $post_data['post_author'],
     1891                    'userid' => $post_data['post_author'],
    18451892                        'dateCreated' => new IXR_Date(mysql2date('Ymd\TH:i:s', $post_data['post_date'], false)),
    1846                         'content'    => $content,
    1847                         'postid' => (string) $post_data['ID']
     1893                    'content' => $content,
     1894                    'postid' => (string) $post_data['ID']
    18481895                );
    18491896
    18501897                return $struct;
     
    18631910                $this->escape($args);
    18641911
    18651912                // $args[0] = appkey - ignored
    1866                 $blog_ID    = (int) $args[1]; /* though we don't use it yet */
     1913                $blog_ID = (int) $args[1]; /* though we don't use it yet */
    18671914                $username = $args[2];
    1868                 $password = $args[3];
    1869                 if ( isset( $args[4] ) )
    1870                         $query = array( 'numberposts' => absint( $args[4] ) );
     1915                $password = $args[3];
     1916                if (isset($args[4]))
     1917                        $query = array('numberposts' => absint($args[4]));
    18711918                else
    18721919                        $query = array();
    18731920
    1874                 if ( !$user = $this->login($username, $password) )
     1921                if (!$user = $this->login($username, $password))
    18751922                        return $this->error;
    18761923
    18771924                do_action('xmlrpc_call', 'blogger.getRecentPosts');
    18781925
    1879                 $posts_list = wp_get_recent_posts( $query );
     1926                $posts_list = wp_get_recent_posts($query);
    18801927
    1881                 if ( !$posts_list ) {
     1928                if (!$posts_list) {
    18821929                        $this->error = new IXR_Error(500, __('Either there are no posts, or something went wrong.'));
    18831930                        return $this->error;
    18841931                }
    18851932
    18861933                foreach ($posts_list as $entry) {
    1887                         if ( !current_user_can( 'edit_post', $entry['ID'] ) )
     1934                        if (!current_user_can('edit_post', $entry['ID']))
    18881935                                continue;
    18891936
    18901937                        $post_date = mysql2date('Ymd\TH:i:s', $entry['post_date'], false);
    18911938                        $categories = implode(',', wp_get_post_categories($entry['ID']));
    18921939
    1893                         $content  = '<title>'.stripslashes($entry['post_title']).'</title>';
    1894                         $content .= '<category>'.$categories.'</category>';
     1940                        $content = '<title>' . stripslashes($entry['post_title']) . '</title>';
     1941                        $content .= '<category>' . $categories . '</category>';
    18951942                        $content .= stripslashes($entry['post_content']);
    18961943
    18971944                        $struct[] = array(
     
    19001947                                'content' => $content,
    19011948                                'postid' => (string) $entry['ID'],
    19021949                        );
    1903 
    19041950                }
    19051951
    19061952                $recent_posts = array();
    1907                 for ( $j=0; $j<count($struct); $j++ ) {
     1953                for ($j = 0; $j < count($struct); $j++) {
    19081954                        array_push($recent_posts, $struct[$j]);
    19091955                }
    19101956
     
    19231969
    19241970                $this->escape($args);
    19251971
    1926                 $blog_ID    = (int) $args[1];
     1972                $blog_ID = (int) $args[1];
    19271973                $username = $args[2];
    1928                 $password = $args[3];
    1929                 $template  = $args[4]; /* could be 'main' or 'archiveIndex', but we don't use it */
     1974                $password = $args[3];
     1975                $template = $args[4]; /* could be 'main' or 'archiveIndex', but we don't use it */
    19301976
    1931                 if ( !$user = $this->login($username, $password) )
     1977                if (!$user = $this->login($username, $password))
    19321978                        return $this->error;
    19331979
    19341980                do_action('xmlrpc_call', 'blogger.getTemplate');
    19351981
    1936                 if ( !current_user_can('edit_themes') )
     1982                if (!current_user_can('edit_themes'))
    19371983                        return new IXR_Error(401, __('Sorry, this user can not edit the template.'));
    19381984
    19391985                /* warning: here we make the assumption that the blog's URL is on the same server */
    19401986                $filename = get_option('home') . '/';
    1941                 $filename = preg_replace('#https?://.+?/#', $_SERVER['DOCUMENT_ROOT'].'/', $filename);
     1987                $filename = preg_replace('#https?://.+?/#', $_SERVER['DOCUMENT_ROOT'] . '/', $filename);
    19421988
    19431989                $f = fopen($filename, 'r');
    19441990                $content = fread($f, filesize($filename));
     
    19622008
    19632009                $this->escape($args);
    19642010
    1965                 $blog_ID    = (int) $args[1];
     2011                $blog_ID = (int) $args[1];
    19662012                $username = $args[2];
    1967                 $password = $args[3];
    1968                 $content    = $args[4];
    1969                 $template  = $args[5]; /* could be 'main' or 'archiveIndex', but we don't use it */
     2013                $password = $args[3];
     2014                $content = $args[4];
     2015                $template = $args[5]; /* could be 'main' or 'archiveIndex', but we don't use it */
    19702016
    1971                 if ( !$user = $this->login($username, $password) )
     2017                if (!$user = $this->login($username, $password))
    19722018                        return $this->error;
    19732019
    19742020                do_action('xmlrpc_call', 'blogger.setTemplate');
    19752021
    1976                 if ( !current_user_can('edit_themes') )
     2022                if (!current_user_can('edit_themes'))
    19772023                        return new IXR_Error(401, __('Sorry, this user cannot edit the template.'));
    19782024
    19792025                /* warning: here we make the assumption that the blog's URL is on the same server */
    19802026                $filename = get_option('home') . '/';
    1981                 $filename = preg_replace('#https?://.+?/#', $_SERVER['DOCUMENT_ROOT'].'/', $filename);
     2027                $filename = preg_replace('#https?://.+?/#', $_SERVER['DOCUMENT_ROOT'] . '/', $filename);
    19822028
    19832029                if ($f = fopen($filename, 'w+')) {
    19842030                        fwrite($f, $content);
     
    20022048
    20032049                $this->escape($args);
    20042050
    2005                 $blog_ID    = (int) $args[1]; /* though we don't use it yet */
     2051                $blog_ID = (int) $args[1]; /* though we don't use it yet */
    20062052                $username = $args[2];
    2007                 $password = $args[3];
    2008                 $content    = $args[4];
    2009                 $publish    = $args[5];
     2053                $password = $args[3];
     2054                $content = $args[4];
     2055                $publish = $args[5];
    20102056
    2011                 if ( !$user = $this->login($username, $password) )
     2057                if (!$user = $this->login($username, $password))
    20122058                        return $this->error;
    20132059
    20142060                do_action('xmlrpc_call', 'blogger.newPost');
    20152061
    20162062                $cap = ($publish) ? 'publish_posts' : 'edit_posts';
    2017                 if ( !current_user_can($cap) )
     2063                if (!current_user_can($cap))
    20182064                        return new IXR_Error(401, __('Sorry, you are not allowed to post on this site.'));
    20192065
    20202066                $post_status = ($publish) ? 'publish' : 'draft';
     
    20312077                $post_data = compact('blog_ID', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_category', 'post_status');
    20322078
    20332079                $post_ID = wp_insert_post($post_data);
    2034                 if ( is_wp_error( $post_ID ) )
     2080                if (is_wp_error($post_ID))
    20352081                        return new IXR_Error(500, $post_ID->get_error_message());
    20362082
    2037                 if ( !$post_ID )
     2083                if (!$post_ID)
    20382084                        return new IXR_Error(500, __('Sorry, your entry could not be posted. Something wrong happened.'));
    20392085
    2040                 $this->attach_uploads( $post_ID, $post_content );
     2086                $this->attach_uploads($post_ID, $post_content);
    20412087
    20422088                logIO('O', "Posted ! ID: $post_ID");
    20432089
     
    20562102
    20572103                $this->escape($args);
    20582104
    2059                 $post_ID    = (int) $args[1];
    2060                 $username = $args[2];
    2061                 $password  = $args[3];
    2062                 $content    = $args[4];
    2063                 $publish    = $args[5];
     2105                $post_ID = (int) $args[1];
     2106                $username = $args[2];
     2107                $password = $args[3];
     2108                $content = $args[4];
     2109                $publish = $args[5];
    20642110
    2065                 if ( !$user = $this->login($username, $password) )
     2111                if (!$user = $this->login($username, $password))
    20662112                        return $this->error;
    20672113
    20682114                do_action('xmlrpc_call', 'blogger.editPost');
    20692115
    2070                 $actual_post = wp_get_single_post($post_ID,ARRAY_A);
     2116                $actual_post = wp_get_single_post($post_ID, ARRAY_A);
    20712117
    2072                 if ( !$actual_post || $actual_post['post_type'] != 'post' )
     2118                if (!$actual_post || $actual_post['post_type'] != 'post')
    20732119                        return new IXR_Error(404, __('Sorry, no such post.'));
    20742120
    20752121                $this->escape($actual_post);
    20762122
    2077                 if ( !current_user_can('edit_post', $post_ID) )
     2123                if (!current_user_can('edit_post', $post_ID))
    20782124                        return new IXR_Error(401, __('Sorry, you do not have the right to edit this post.'));
    20792125
    20802126                extract($actual_post, EXTR_SKIP);
    20812127
    2082                 if ( ('publish' == $post_status) && !current_user_can('publish_posts') )
     2128                if (('publish' == $post_status) && !current_user_can('publish_posts'))
    20832129                        return new IXR_Error(401, __('Sorry, you do not have the right to publish this post.'));
    20842130
    20852131                $post_title = xmlrpc_getposttitle($content);
     
    20902136
    20912137                $result = wp_update_post($postdata);
    20922138
    2093                 if ( !$result )
     2139                if (!$result)
    20942140                        return new IXR_Error(500, __('For some strange yet very annoying reason, this post could not be edited.'));
    20952141
    2096                 $this->attach_uploads( $ID, $post_content );
     2142                $this->attach_uploads($ID, $post_content);
    20972143
    20982144                return true;
    20992145        }
     
    21092155        function blogger_deletePost($args) {
    21102156                $this->escape($args);
    21112157
    2112                 $post_ID    = (int) $args[1];
    2113                 $username = $args[2];
    2114                 $password  = $args[3];
    2115                 $publish    = $args[4];
     2158                $post_ID = (int) $args[1];
     2159                $username = $args[2];
     2160                $password = $args[3];
     2161                $publish = $args[4];
    21162162
    2117                 if ( !$user = $this->login($username, $password) )
     2163                if (!$user = $this->login($username, $password))
    21182164                        return $this->error;
    21192165
    21202166                do_action('xmlrpc_call', 'blogger.deletePost');
    21212167
    2122                 $actual_post = wp_get_single_post($post_ID,ARRAY_A);
     2168                $actual_post = wp_get_single_post($post_ID, ARRAY_A);
    21232169
    2124                 if ( !$actual_post || $actual_post['post_type'] != 'post' )
     2170                if (!$actual_post || $actual_post['post_type'] != 'post')
    21252171                        return new IXR_Error(404, __('Sorry, no such post.'));
    21262172
    2127                 if ( !current_user_can('delete_post', $post_ID) )
     2173                if (!current_user_can('delete_post', $post_ID))
    21282174                        return new IXR_Error(401, __('Sorry, you do not have the right to delete this post.'));
    21292175
    21302176                $result = wp_delete_post($post_ID);
    21312177
    2132                 if ( !$result )
     2178                if (!$result)
    21332179                        return new IXR_Error(500, __('For some strange yet very annoying reason, this post could not be deleted.'));
    21342180
    21352181                return true;
     
    21762222        function mw_newPost($args) {
    21772223                $this->escape($args);
    21782224
    2179                 $blog_ID    = (int) $args[0]; // we will support this in the near future
    2180                 $username = $args[1];
    2181                 $password  = $args[2];
     2225                $blog_ID = (int) $args[0]; // we will support this in the near future
     2226                $username = $args[1];
     2227                $password = $args[2];
    21822228                $content_struct = $args[3];
    2183                 $publish     = isset( $args[4] ) ? $args[4] : 0;
     2229                $publish = isset($args[4]) ? $args[4] : 0;
    21842230
    2185                 if ( !$user = $this->login($username, $password) )
     2231                if (!$user = $this->login($username, $password))
    21862232                        return $this->error;
    21872233
    21882234                do_action('xmlrpc_call', 'metaWeblog.newPost');
    21892235
    21902236                $page_template = '';
    2191                 if ( !empty( $content_struct['post_type'] ) ) {
    2192                         if ( $content_struct['post_type'] == 'page' ) {
    2193                                 if ( $publish )
    2194                                         $cap = 'publish_pages';
     2237                if (!empty($content_struct['post_type'])) {
     2238                        if ($content_struct['post_type'] == 'page') {
     2239                                if ($publish)
     2240                                        $cap = 'publish_pages';
    21952241                                elseif ('publish' == $content_struct['page_status'])
    2196                                         $cap = 'publish_pages';
     2242                                        $cap = 'publish_pages';
    21972243                                else
    21982244                                        $cap = 'edit_pages';
    2199                                 $error_message = __( 'Sorry, you are not allowed to publish pages on this site.' );
     2245                                $error_message = __('Sorry, you are not allowed to publish pages on this site.');
    22002246                                $post_type = 'page';
    2201                                 if ( !empty( $content_struct['wp_page_template'] ) )
     2247                                if (!empty($content_struct['wp_page_template']))
    22022248                                        $page_template = $content_struct['wp_page_template'];
    2203                         } elseif ( $content_struct['post_type'] == 'post' ) {
    2204                                 if ( $publish )
    2205                                         $cap = 'publish_posts';
     2249                        } elseif ($content_struct['post_type'] == 'post') {
     2250                                if ($publish)
     2251                                        $cap = 'publish_posts';
    22062252                                elseif ('publish' == $content_struct['post_status'])
    2207                                         $cap = 'publish_posts';
     2253                                        $cap = 'publish_posts';
    22082254                                else
    22092255                                        $cap = 'edit_posts';
    2210                                 $error_message = __( 'Sorry, you are not allowed to publish posts on this site.' );
     2256                                $error_message = __('Sorry, you are not allowed to publish posts on this site.');
    22112257                                $post_type = 'post';
    22122258                        } else {
    22132259                                // No other post_type values are allowed here
    2214                                 return new IXR_Error( 401, __( 'Invalid post type.' ) );
     2260                                return new IXR_Error(401, __('Invalid post type.'));
    22152261                        }
    22162262                } else {
    2217                         if ( $publish )
    2218                                 $cap = 'publish_posts';
     2263                        if ($publish)
     2264                                $cap = 'publish_posts';
    22192265                        elseif ('publish' == $content_struct['post_status'])
    2220                                 $cap = 'publish_posts';
     2266                                $cap = 'publish_posts';
    22212267                        else
    22222268                                $cap = 'edit_posts';
    2223                         $error_message = __( 'Sorry, you are not allowed to publish posts on this site.' );
     2269                        $error_message = __('Sorry, you are not allowed to publish posts on this site.');
    22242270                        $post_type = 'post';
    22252271                }
    22262272
    2227                 if ( !current_user_can( $cap ) )
    2228                         return new IXR_Error( 401, $error_message );
     2273                if (!current_user_can($cap))
     2274                        return new IXR_Error(401, $error_message);
    22292275
    22302276                // Check for a valid post format if one was given
    2231                 if ( isset( $content_struct['wp_post_format'] ) ) {
    2232                         $content_struct['wp_post_format'] = sanitize_key( $content_struct['wp_post_format'] );
    2233                         if ( !array_key_exists( $content_struct['wp_post_format'], get_post_format_strings() ) ) {
    2234                                 return new IXR_Error( 404, __( 'Invalid post format' ) );
     2277                if (isset($content_struct['wp_post_format'])) {
     2278                        $content_struct['wp_post_format'] = sanitize_key($content_struct['wp_post_format']);
     2279                        if (!array_key_exists($content_struct['wp_post_format'], get_post_format_strings())) {
     2280                                return new IXR_Error(404, __('Invalid post format'));
    22352281                        }
    22362282                }
    22372283
    22382284                // Let WordPress generate the post_name (slug) unless
    22392285                // one has been provided.
    22402286                $post_name = "";
    2241                 if ( isset($content_struct['wp_slug']) )
     2287                if (isset($content_struct['wp_slug']))
    22422288                        $post_name = $content_struct['wp_slug'];
    22432289
    22442290                // Only use a password if one was given.
    2245                 if ( isset($content_struct['wp_password']) )
     2291                if (isset($content_struct['wp_password']))
    22462292                        $post_password = $content_struct['wp_password'];
    22472293
    22482294                // Only set a post parent if one was provided.
    2249                 if ( isset($content_struct['wp_page_parent_id']) )
     2295                if (isset($content_struct['wp_page_parent_id']))
    22502296                        $post_parent = $content_struct['wp_page_parent_id'];
    22512297
    22522298                // Only set the menu_order if it was provided.
    2253                 if ( isset($content_struct['wp_page_order']) )
     2299                if (isset($content_struct['wp_page_order']))
    22542300                        $menu_order = $content_struct['wp_page_order'];
    22552301
    22562302                $post_author = $user->ID;
    22572303
    22582304                // If an author id was provided then use it instead.
    2259                 if ( isset($content_struct['wp_author_id']) && ($user->ID != $content_struct['wp_author_id']) ) {
    2260                         switch ( $post_type ) {
     2305                if (isset($content_struct['wp_author_id']) && ($user->ID != $content_struct['wp_author_id'])) {
     2306                        switch ($post_type) {
    22612307                                case "post":
    2262                                         if ( !current_user_can('edit_others_posts') )
     2308                                        if (!current_user_can('edit_others_posts'))
    22632309                                                return(new IXR_Error(401, __('You are not allowed to post as this user')));
    22642310                                        break;
    22652311                                case "page":
    2266                                         if ( !current_user_can('edit_others_pages') )
     2312                                        if (!current_user_can('edit_others_pages'))
    22672313                                                return(new IXR_Error(401, __('You are not allowed to create pages as this user')));
    22682314                                        break;
    22692315                                default:
     
    22732319                        $post_author = $content_struct['wp_author_id'];
    22742320                }
    22752321
    2276                 $post_title = isset( $content_struct['title'] ) ? $content_struct['title'] : null;
    2277                 $post_content = isset( $content_struct['description'] ) ? $content_struct['description'] : null;
     2322                $post_title = isset($content_struct['title']) ? $content_struct['title'] : null;
     2323                $post_content = isset($content_struct['description']) ? $content_struct['description'] : null;
    22782324
    22792325                $post_status = $publish ? 'publish' : 'draft';
    22802326
    2281                 if ( isset( $content_struct["{$post_type}_status"] ) ) {
    2282                         switch ( $content_struct["{$post_type}_status"] ) {
     2327                if (isset($content_struct["{$post_type}_status"])) {
     2328                        switch ($content_struct["{$post_type}_status"]) {
    22832329                                case 'draft':
    22842330                                case 'pending':
    22852331                                case 'private':
     
    22972343
    22982344                $tags_input = isset($content_struct['mt_keywords']) ? $content_struct['mt_keywords'] : null;
    22992345
    2300                 if ( isset($content_struct['mt_allow_comments']) ) {
    2301                         if ( !is_numeric($content_struct['mt_allow_comments']) ) {
    2302                                 switch ( $content_struct['mt_allow_comments'] ) {
     2346                if (isset($content_struct['mt_allow_comments'])) {
     2347                        if (!is_numeric($content_struct['mt_allow_comments'])) {
     2348                                switch ($content_struct['mt_allow_comments']) {
    23032349                                        case 'closed':
    23042350                                                $comment_status = 'closed';
    23052351                                                break;
     
    23112357                                                break;
    23122358                                }
    23132359                        } else {
    2314                                 switch ( (int) $content_struct['mt_allow_comments'] ) {
     2360                                switch ((int) $content_struct['mt_allow_comments']) {
    23152361                                        case 0:
    23162362                                        case 2:
    23172363                                                $comment_status = 'closed';
     
    23282374                        $comment_status = get_option('default_comment_status');
    23292375                }
    23302376
    2331                 if ( isset($content_struct['mt_allow_pings']) ) {
    2332                         if ( !is_numeric($content_struct['mt_allow_pings']) ) {
    2333                                 switch ( $content_struct['mt_allow_pings'] ) {
     2377                if (isset($content_struct['mt_allow_pings'])) {
     2378                        if (!is_numeric($content_struct['mt_allow_pings'])) {
     2379                                switch ($content_struct['mt_allow_pings']) {
    23342380                                        case 'closed':
    23352381                                                $ping_status = 'closed';
    23362382                                                break;
     
    23422388                                                break;
    23432389                                }
    23442390                        } else {
    2345                                 switch ( (int) $content_struct['mt_allow_pings'] ) {
     2391                                switch ((int) $content_struct['mt_allow_pings']) {
    23462392                                        case 0:
    23472393                                                $ping_status = 'closed';
    23482394                                                break;
     
    23582404                        $ping_status = get_option('default_ping_status');
    23592405                }
    23602406
    2361                 if ( $post_more )
     2407                if ($post_more)
    23622408                        $post_content = $post_content . '<!--more-->' . $post_more;
    23632409
    23642410                $to_ping = null;
    2365                 if ( isset( $content_struct['mt_tb_ping_urls'] ) ) {
     2411                if (isset($content_struct['mt_tb_ping_urls'])) {
    23662412                        $to_ping = $content_struct['mt_tb_ping_urls'];
    2367                         if ( is_array($to_ping) )
     2413                        if (is_array($to_ping))
    23682414                                $to_ping = implode(' ', $to_ping);
    23692415                }
    23702416
    23712417                // Do some timestamp voodoo
    2372                 if ( !empty( $content_struct['date_created_gmt'] ) )
    2373                         $dateCreated = str_replace( 'Z', '', $content_struct['date_created_gmt']->getIso() ) . 'Z'; // We know this is supposed to be GMT, so we're going to slap that Z on there by force
    2374                 elseif ( !empty( $content_struct['dateCreated']) )
     2418                if (!empty($content_struct['date_created_gmt']))
     2419                        $dateCreated = str_replace('Z', '', $content_struct['date_created_gmt']->getIso()) . 'Z'; // We know this is supposed to be GMT, so we're going to slap that Z on there by force
     2420                elseif (!empty($content_struct['dateCreated']))
    23752421                        $dateCreated = $content_struct['dateCreated']->getIso();
    23762422
    2377                 if ( !empty( $dateCreated ) ) {
     2423                if (!empty($dateCreated)) {
    23782424                        $post_date = get_date_from_gmt(iso8601_to_datetime($dateCreated));
    23792425                        $post_date_gmt = iso8601_to_datetime($dateCreated, 'GMT');
    23802426                } else {
     
    23832429                }
    23842430
    23852431                $post_category = array();
    2386                 if ( isset( $content_struct['categories'] ) ) {
     2432                if (isset($content_struct['categories'])) {
    23872433                        $catnames = $content_struct['categories'];
    2388                         logIO('O', 'Post cats: ' . var_export($catnames,true));
     2434                        logIO('O', 'Post cats: ' . var_export($catnames, true));
    23892435
    2390                         if ( is_array($catnames) ) {
     2436                        if (is_array($catnames)) {
    23912437                                foreach ($catnames as $cat) {
    23922438                                        $post_category[] = get_cat_ID($cat);
    23932439                                }
     
    23962442
    23972443                $postdata = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'comment_status', 'ping_status', 'to_ping', 'post_type', 'post_name', 'post_password', 'post_parent', 'menu_order', 'tags_input', 'page_template');
    23982444
    2399                 $post_ID = $postdata['ID'] = get_default_post_to_edit( $post_type, true )->ID;
     2445                $post_ID = $postdata['ID'] = get_default_post_to_edit($post_type, true)->ID;
    24002446
    24012447                // Only posts can be sticky
    2402                 if ( $post_type == 'post' && isset( $content_struct['sticky'] ) ) {
    2403                         if ( $content_struct['sticky'] == true )
    2404                                 stick_post( $post_ID );
    2405                         elseif ( $content_struct['sticky'] == false )
    2406                                 unstick_post( $post_ID );
     2448                if ($post_type == 'post' && isset($content_struct['sticky'])) {
     2449                        if ($content_struct['sticky'] == true)
     2450                                stick_post($post_ID);
     2451                        elseif ($content_struct['sticky'] == false)
     2452                                unstick_post($post_ID);
    24072453                }
    24082454
    2409                 if ( isset($content_struct['custom_fields']) )
     2455                if (isset($content_struct['custom_fields']))
    24102456                        $this->set_custom_fields($post_ID, $content_struct['custom_fields']);
    24112457
    24122458                // Handle enclosures
    24132459                $thisEnclosure = isset($content_struct['enclosure']) ? $content_struct['enclosure'] : null;
    24142460                $this->add_enclosure_if_new($post_ID, $thisEnclosure);
    24152461
    2416                 $this->attach_uploads( $post_ID, $post_content );
     2462                $this->attach_uploads($post_ID, $post_content);
    24172463
    24182464                // Handle post formats if assigned, value is validated earlier
    24192465                // in this function
    2420                 if ( isset( $content_struct['wp_post_format'] ) )
    2421                         wp_set_post_terms( $post_ID, array( 'post-format-' . $content_struct['wp_post_format'] ), 'post_format' );
     2466                if (isset($content_struct['wp_post_format']))
     2467                        wp_set_post_terms($post_ID, array('post-format-' . $content_struct['wp_post_format']), 'post_format');
    24222468
    2423                 $post_ID = wp_insert_post( $postdata, true );
    2424                 if ( is_wp_error( $post_ID ) )
     2469                $post_ID = wp_insert_post($postdata, true);
     2470                if (is_wp_error($post_ID))
    24252471                        return new IXR_Error(500, $post_ID->get_error_message());
    24262472
    2427                 if ( !$post_ID )
     2473                if (!$post_ID)
    24282474                        return new IXR_Error(500, __('Sorry, your entry could not be posted. Something wrong happened.'));
    24292475
    24302476                logIO('O', "Posted ! ID: $post_ID");
     
    24332479        }
    24342480
    24352481        function add_enclosure_if_new($post_ID, $enclosure) {
    2436                 if ( is_array( $enclosure ) && isset( $enclosure['url'] ) && isset( $enclosure['length'] ) && isset( $enclosure['type'] ) ) {
     2482                if (is_array($enclosure) && isset($enclosure['url']) && isset($enclosure['length']) && isset($enclosure['type'])) {
    24372483
    24382484                        $encstring = $enclosure['url'] . "\n" . $enclosure['length'] . "\n" . $enclosure['type'];
    24392485                        $found = false;
    2440                         foreach ( (array) get_post_custom($post_ID) as $key => $val) {
     2486                        foreach ((array) get_post_custom($post_ID) as $key => $val) {
    24412487                                if ($key == 'enclosure') {
    2442                                         foreach ( (array) $val as $enc ) {
     2488                                        foreach ((array) $val as $enc) {
    24432489                                                if ($enc == $encstring) {
    24442490                                                        $found = true;
    24452491                                                        break 2;
     
    24482494                                }
    24492495                        }
    24502496                        if (!$found)
    2451                                 add_post_meta( $post_ID, 'enclosure', $encstring );
     2497                                add_post_meta($post_ID, 'enclosure', $encstring);
    24522498                }
    24532499        }
    24542500
     
    24602506         * @param int $post_ID Post ID.
    24612507         * @param string $post_content Post Content for attachment.
    24622508         */
    2463         function attach_uploads( $post_ID, $post_content ) {
     2509        function attach_uploads($post_ID, $post_content) {
    24642510                global $wpdb;
    24652511
    24662512                // find any unattached files
    2467                 $attachments = $wpdb->get_results( "SELECT ID, guid FROM {$wpdb->posts} WHERE post_parent = '0' AND post_type = 'attachment'" );
    2468                 if ( is_array( $attachments ) ) {
    2469                         foreach ( $attachments as $file ) {
    2470                                 if ( strpos( $post_content, $file->guid ) !== false )
    2471                                         $wpdb->update($wpdb->posts, array('post_parent' => $post_ID), array('ID' => $file->ID) );
     2513                $attachments = $wpdb->get_results("SELECT ID, guid FROM {$wpdb->posts} WHERE post_parent = '0' AND post_type = 'attachment'");
     2514                if (is_array($attachments)) {
     2515                        foreach ($attachments as $file) {
     2516                                if (strpos($post_content, $file->guid) !== false)
     2517                                        $wpdb->update($wpdb->posts, array('post_parent' => $post_ID), array('ID' => $file->ID));
    24722518                        }
    24732519                }
    24742520        }
     
    24852531
    24862532                $this->escape($args);
    24872533
    2488                 $post_ID    = (int) $args[0];
    2489                 $username = $args[1];
    2490                 $password  = $args[2];
     2534                $post_ID = (int) $args[0];
     2535                $username = $args[1];
     2536                $password = $args[2];
    24912537                $content_struct = $args[3];
    2492                 $publish    = $args[4];
     2538                $publish = $args[4];
    24932539
    2494                 if ( !$user = $this->login($username, $password) )
     2540                if (!$user = $this->login($username, $password))
    24952541                        return $this->error;
    24962542
    24972543                do_action('xmlrpc_call', 'metaWeblog.editPost');
    24982544
    24992545                $cap = ( $publish ) ? 'publish_posts' : 'edit_posts';
    2500                 $error_message = __( 'Sorry, you are not allowed to publish posts on this site.' );
     2546                $error_message = __('Sorry, you are not allowed to publish posts on this site.');
    25012547                $post_type = 'post';
    25022548                $page_template = '';
    2503                 if ( !empty( $content_struct['post_type'] ) ) {
    2504                         if ( $content_struct['post_type'] == 'page' ) {
    2505                                 if ( $publish || 'publish' == $content_struct['page_status'] )
    2506                                         $cap = 'publish_pages';
     2549                if (!empty($content_struct['post_type'])) {
     2550                        if ($content_struct['post_type'] == 'page') {
     2551                                if ($publish || 'publish' == $content_struct['page_status'])
     2552                                        $cap = 'publish_pages';
    25072553                                else
    25082554                                        $cap = 'edit_pages';
    2509                                 $error_message = __( 'Sorry, you are not allowed to publish pages on this site.' );
     2555                                $error_message = __('Sorry, you are not allowed to publish pages on this site.');
    25102556                                $post_type = 'page';
    2511                                 if ( !empty( $content_struct['wp_page_template'] ) )
     2557                                if (!empty($content_struct['wp_page_template']))
    25122558                                        $page_template = $content_struct['wp_page_template'];
    2513                         } elseif ( $content_struct['post_type'] == 'post' ) {
    2514                                 if ( $publish || 'publish' == $content_struct['post_status'] )
    2515                                         $cap = 'publish_posts';
     2559                        } elseif ($content_struct['post_type'] == 'post') {
     2560                                if ($publish || 'publish' == $content_struct['post_status'])
     2561                                        $cap = 'publish_posts';
    25162562                                else
    25172563                                        $cap = 'edit_posts';
    2518                                 $error_message = __( 'Sorry, you are not allowed to publish posts on this site.' );
     2564                                $error_message = __('Sorry, you are not allowed to publish posts on this site.');
    25192565                                $post_type = 'post';
    25202566                        } else {
    25212567                                // No other post_type values are allowed here
    2522                                 return new IXR_Error( 401, __( 'Invalid post type.' ) );
     2568                                return new IXR_Error(401, __('Invalid post type.'));
    25232569                        }
    25242570                } else {
    2525                         if ( $publish || 'publish' == $content_struct['post_status'] )
    2526                                 $cap = 'publish_posts';
     2571                        if ($publish || 'publish' == $content_struct['post_status'])
     2572                                $cap = 'publish_posts';
    25272573                        else
    25282574                                $cap = 'edit_posts';
    2529                         $error_message = __( 'Sorry, you are not allowed to publish posts on this site.' );
     2575                        $error_message = __('Sorry, you are not allowed to publish posts on this site.');
    25302576                        $post_type = 'post';
    25312577                }
    25322578
    2533                 if ( !current_user_can( $cap ) )
    2534                         return new IXR_Error( 401, $error_message );
     2579                if (!current_user_can($cap))
     2580                        return new IXR_Error(401, $error_message);
    25352581
    25362582                // Check for a valid post format if one was given
    2537                 if ( isset( $content_struct['wp_post_format'] ) ) {
    2538                         $content_struct['wp_post_format'] = sanitize_key( $content_struct['wp_post_format'] );
    2539                         if ( !array_key_exists( $content_struct['wp_post_format'], get_post_format_strings() ) ) {
    2540                                 return new IXR_Error( 404, __( 'Invalid post format' ) );
     2583                if (isset($content_struct['wp_post_format'])) {
     2584                        $content_struct['wp_post_format'] = sanitize_key($content_struct['wp_post_format']);
     2585                        if (!array_key_exists($content_struct['wp_post_format'], get_post_format_strings())) {
     2586                                return new IXR_Error(404, __('Invalid post format'));
    25412587                        }
    25422588                }
    25432589
     
    25462592                // If there is no post data for the give post id, stop
    25472593                // now and return an error. Other wise a new post will be
    25482594                // created (which was the old behavior).
    2549                 if ( empty($postdata["ID"]) )
     2595                if (empty($postdata["ID"]))
    25502596                        return(new IXR_Error(404, __('Invalid post ID.')));
    25512597
    25522598                $this->escape($postdata);
     
    25552601                // Let WordPress manage slug if none was provided.
    25562602                $post_name = "";
    25572603                $post_name = $postdata['post_name'];
    2558                 if ( isset($content_struct['wp_slug']) )
     2604                if (isset($content_struct['wp_slug']))
    25592605                        $post_name = $content_struct['wp_slug'];
    25602606
    25612607                // Only use a password if one was given.
    2562                 if ( isset($content_struct['wp_password']) )
     2608                if (isset($content_struct['wp_password']))
    25632609                        $post_password = $content_struct['wp_password'];
    25642610
    25652611                // Only set a post parent if one was given.
    2566                 if ( isset($content_struct['wp_page_parent_id']) )
     2612                if (isset($content_struct['wp_page_parent_id']))
    25672613                        $post_parent = $content_struct['wp_page_parent_id'];
    25682614
    25692615                // Only set the menu_order if it was given.
    2570                 if ( isset($content_struct['wp_page_order']) )
     2616                if (isset($content_struct['wp_page_order']))
    25712617                        $menu_order = $content_struct['wp_page_order'];
    25722618
    25732619                $post_author = $postdata['post_author'];
    25742620
    25752621                // Only set the post_author if one is set.
    2576                 if ( isset($content_struct['wp_author_id']) && ($user->ID != $content_struct['wp_author_id']) ) {
    2577                         switch ( $post_type ) {
     2622                if (isset($content_struct['wp_author_id']) && ($user->ID != $content_struct['wp_author_id'])) {
     2623                        switch ($post_type) {
    25782624                                case 'post':
    2579                                         if ( !current_user_can('edit_others_posts') )
     2625                                        if (!current_user_can('edit_others_posts'))
    25802626                                                return(new IXR_Error(401, __('You are not allowed to change the post author as this user.')));
    25812627                                        break;
    25822628                                case 'page':
    2583                                         if ( !current_user_can('edit_others_pages') )
     2629                                        if (!current_user_can('edit_others_pages'))
    25842630                                                return(new IXR_Error(401, __('You are not allowed to change the page author as this user.')));
    25852631                                        break;
    25862632                                default:
     
    25902636                        $post_author = $content_struct['wp_author_id'];
    25912637                }
    25922638
    2593                 if ( isset($content_struct['mt_allow_comments']) ) {
    2594                         if ( !is_numeric($content_struct['mt_allow_comments']) ) {
    2595                                 switch ( $content_struct['mt_allow_comments'] ) {
     2639                if (isset($content_struct['mt_allow_comments'])) {
     2640                        if (!is_numeric($content_struct['mt_allow_comments'])) {
     2641                                switch ($content_struct['mt_allow_comments']) {
    25962642                                        case 'closed':
    25972643                                                $comment_status = 'closed';
    25982644                                                break;
     
    26042650                                                break;
    26052651                                }
    26062652                        } else {
    2607                                 switch ( (int) $content_struct['mt_allow_comments'] ) {
     2653                                switch ((int) $content_struct['mt_allow_comments']) {
    26082654                                        case 0:
    26092655                                        case 2:
    26102656                                                $comment_status = 'closed';
     
    26192665                        }
    26202666                }
    26212667
    2622                 if ( isset($content_struct['mt_allow_pings']) ) {
    2623                         if ( !is_numeric($content_struct['mt_allow_pings']) ) {
    2624                                 switch ( $content_struct['mt_allow_pings'] ) {
     2668                if (isset($content_struct['mt_allow_pings'])) {
     2669                        if (!is_numeric($content_struct['mt_allow_pings'])) {
     2670                                switch ($content_struct['mt_allow_pings']) {
    26252671                                        case 'closed':
    26262672                                                $ping_status = 'closed';
    26272673                                                break;
     
    26332679                                                break;
    26342680                                }
    26352681                        } else {
    2636                                 switch ( (int) $content_struct["mt_allow_pings"] ) {
     2682                                switch ((int) $content_struct["mt_allow_pings"]) {
    26372683                                        case 0:
    26382684                                                $ping_status = 'closed';
    26392685                                                break;
     
    26472693                        }
    26482694                }
    26492695
    2650                 $post_title = isset( $content_struct['title'] ) ? $content_struct['title'] : null;
    2651                 $post_content = isset( $content_struct['description'] ) ? $content_struct['description'] : null;
     2696                $post_title = isset($content_struct['title']) ? $content_struct['title'] : null;
     2697                $post_content = isset($content_struct['description']) ? $content_struct['description'] : null;
    26522698
    26532699                $post_category = array();
    2654                 if ( isset( $content_struct['categories'] ) ) {
     2700                if (isset($content_struct['categories'])) {
    26552701                        $catnames = $content_struct['categories'];
    2656                         if ( is_array($catnames) ) {
     2702                        if (is_array($catnames)) {
    26572703                                foreach ($catnames as $cat) {
    26582704                                        $post_category[] = get_cat_ID($cat);
    26592705                                }
    26602706                        }
    26612707                }
    26622708
    2663                 $post_excerpt = isset( $content_struct['mt_excerpt'] ) ? $content_struct['mt_excerpt'] : null;
    2664                 $post_more = isset( $content_struct['mt_text_more'] ) ? $content_struct['mt_text_more'] : null;
     2709                $post_excerpt = isset($content_struct['mt_excerpt']) ? $content_struct['mt_excerpt'] : null;
     2710                $post_more = isset($content_struct['mt_text_more']) ? $content_struct['mt_text_more'] : null;
    26652711
    26662712                $post_status = $publish ? 'publish' : 'draft';
    2667                 if ( isset( $content_struct["{$post_type}_status"] ) ) {
    2668                         switch( $content_struct["{$post_type}_status"] ) {
     2713                if (isset($content_struct["{$post_type}_status"])) {
     2714                        switch ($content_struct["{$post_type}_status"]) {
    26692715                                case 'draft':
    26702716                                case 'pending':
    26712717                                case 'private':
     
    26782724                        }
    26792725                }
    26802726
    2681                 $tags_input = isset( $content_struct['mt_keywords'] ) ? $content_struct['mt_keywords'] : null;
     2727                $tags_input = isset($content_struct['mt_keywords']) ? $content_struct['mt_keywords'] : null;
    26822728
    2683                 if ( ('publish' == $post_status) ) {
    2684                         if ( ( 'page' == $post_type ) && !current_user_can('publish_pages') )
     2729                if (('publish' == $post_status)) {
     2730                        if (( 'page' == $post_type ) && !current_user_can('publish_pages'))
    26852731                                return new IXR_Error(401, __('Sorry, you do not have the right to publish this page.'));
    2686                         else if ( !current_user_can('publish_posts') )
     2732                        else if (!current_user_can('publish_posts'))
    26872733                                return new IXR_Error(401, __('Sorry, you do not have the right to publish this post.'));
    26882734                }
    26892735
    2690                 if ( $post_more )
     2736                if ($post_more)
    26912737                        $post_content = $post_content . "<!--more-->" . $post_more;
    26922738
    26932739                $to_ping = null;
    2694                 if ( isset( $content_struct['mt_tb_ping_urls'] ) ) {
     2740                if (isset($content_struct['mt_tb_ping_urls'])) {
    26952741                        $to_ping = $content_struct['mt_tb_ping_urls'];
    2696                         if ( is_array($to_ping) )
     2742                        if (is_array($to_ping))
    26972743                                $to_ping = implode(' ', $to_ping);
    26982744                }
    26992745
    27002746                // Do some timestamp voodoo
    2701                 if ( !empty( $content_struct['date_created_gmt'] ) )
    2702                         $dateCreated = str_replace( 'Z', '', $content_struct['date_created_gmt']->getIso() ) . 'Z'; // We know this is supposed to be GMT, so we're going to slap that Z on there by force
    2703                 elseif ( !empty( $content_struct['dateCreated']) )
     2747                if (!empty($content_struct['date_created_gmt']))
     2748                        $dateCreated = str_replace('Z', '', $content_struct['date_created_gmt']->getIso()) . 'Z'; // We know this is supposed to be GMT, so we're going to slap that Z on there by force
     2749                elseif (!empty($content_struct['dateCreated']))
    27042750                        $dateCreated = $content_struct['dateCreated']->getIso();
    27052751
    2706                 if ( !empty( $dateCreated ) ) {
     2752                if (!empty($dateCreated)) {
    27072753                        $post_date = get_date_from_gmt(iso8601_to_datetime($dateCreated));
    27082754                        $post_date_gmt = iso8601_to_datetime($dateCreated, 'GMT');
    27092755                } else {
    2710                         $post_date    = $postdata['post_date'];
     2756                        $post_date = $postdata['post_date'];
    27112757                        $post_date_gmt = $postdata['post_date_gmt'];
    27122758                }
    27132759
     
    27152761                $newpost = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'comment_status', 'ping_status', 'post_date', 'post_date_gmt', 'to_ping', 'post_name', 'post_password', 'post_parent', 'menu_order', 'post_author', 'tags_input', 'page_template');
    27162762
    27172763                $result = wp_update_post($newpost, true);
    2718                 if ( is_wp_error( $result ) )
     2764                if (is_wp_error($result))
    27192765                        return new IXR_Error(500, $result->get_error_message());
    27202766
    2721                 if ( !$result )
     2767                if (!$result)
    27222768                        return new IXR_Error(500, __('Sorry, your entry could not be edited. Something wrong happened.'));
    27232769
    27242770                // Only posts can be sticky
    2725                 if ( $post_type == 'post' && isset( $content_struct['sticky'] ) ) {
    2726                         if ( $content_struct['sticky'] == true )
    2727                                 stick_post( $post_ID );
    2728                         elseif ( $content_struct['sticky'] == false )
    2729                                 unstick_post( $post_ID );
     2771                if ($post_type == 'post' && isset($content_struct['sticky'])) {
     2772                        if ($content_struct['sticky'] == true)
     2773                                stick_post($post_ID);
     2774                        elseif ($content_struct['sticky'] == false)
     2775                                unstick_post($post_ID);
    27302776                }
    27312777
    2732                 if ( isset($content_struct['custom_fields']) )
     2778                if (isset($content_struct['custom_fields']))
    27332779                        $this->set_custom_fields($post_ID, $content_struct['custom_fields']);
    27342780
    27352781                // Handle enclosures
    27362782                $thisEnclosure = isset($content_struct['enclosure']) ? $content_struct['enclosure'] : null;
    27372783                $this->add_enclosure_if_new($post_ID, $thisEnclosure);
    27382784
    2739                 $this->attach_uploads( $ID, $post_content );
     2785                $this->attach_uploads($ID, $post_content);
    27402786
    27412787                // Handle post formats if assigned, validation is handled
    27422788                // earlier in this function
    2743                 if ( isset( $content_struct['wp_post_format'] ) )
    2744                         wp_set_post_terms( $post_ID, array( 'post-format-' . $content_struct['wp_post_format'] ), 'post_format' );
     2789                if (isset($content_struct['wp_post_format']))
     2790                        wp_set_post_terms($post_ID, array('post-format-' . $content_struct['wp_post_format']), 'post_format');
    27452791
    2746                 logIO('O',"(MW) Edited ! ID: $post_ID");
     2792                logIO('O', "(MW) Edited ! ID: $post_ID");
    27472793
    27482794                return true;
    27492795        }
     
    27602806
    27612807                $this->escape($args);
    27622808
    2763                 $post_ID    = (int) $args[0];
    2764                 $username = $args[1];
    2765                 $password  = $args[2];
     2809                $post_ID = (int) $args[0];
     2810                $username = $args[1];
     2811                $password = $args[2];
    27662812
    2767                 if ( !$user = $this->login($username, $password) )
     2813                if (!$user = $this->login($username, $password))
    27682814                        return $this->error;
    27692815
    2770                 if ( !current_user_can( 'edit_post', $post_ID ) )
    2771                         return new IXR_Error( 401, __( 'Sorry, you cannot edit this post.' ) );
     2816                if (!current_user_can('edit_post', $post_ID))
     2817                        return new IXR_Error(401, __('Sorry, you cannot edit this post.'));
    27722818
    27732819                do_action('xmlrpc_call', 'metaWeblog.getPost');
    27742820
     
    27792825                        $post_date_gmt = mysql2date('Ymd\TH:i:s', $postdata['post_date_gmt'], false);
    27802826
    27812827                        // For drafts use the GMT version of the post date
    2782                         if ( $postdata['post_status'] == 'draft' )
    2783                                 $post_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $postdata['post_date'] ), 'Ymd\TH:i:s' );
     2828                        if ($postdata['post_status'] == 'draft')
     2829                                $post_date_gmt = get_gmt_from_date(mysql2date('Y-m-d H:i:s', $postdata['post_date']), 'Ymd\TH:i:s');
    27842830
    27852831                        $categories = array();
    27862832                        $catids = wp_get_post_categories($post_ID);
    2787                         foreach($catids as $catid)
     2833                        foreach ($catids as $catid)
    27882834                                $categories[] = get_cat_name($catid);
    27892835
    27902836                        $tagnames = array();
    2791                         $tags = wp_get_post_tags( $post_ID );
    2792                         if ( !empty( $tags ) ) {
    2793                                 foreach ( $tags as $tag )
     2837                        $tags = wp_get_post_tags($post_ID);
     2838                        if (!empty($tags)) {
     2839                                foreach ($tags as $tag)
    27942840                                        $tagnames[] = $tag->name;
    2795                                 $tagnames = implode( ', ', $tagnames );
     2841                                $tagnames = implode(', ', $tagnames);
    27962842                        } else {
    27972843                                $tagnames = '';
    27982844                        }
     
    28072853                        $allow_pings = ('open' == $postdata['ping_status']) ? 1 : 0;
    28082854
    28092855                        // Consider future posts as published
    2810                         if ( $postdata['post_status'] === 'future' )
     2856                        if ($postdata['post_status'] === 'future')
    28112857                                $postdata['post_status'] = 'publish';
    28122858
    28132859                        // Get post format
    2814                         $post_format = get_post_format( $post_ID );
    2815                         if ( empty( $post_format ) )
     2860                        $post_format = get_post_format($post_ID);
     2861                        if (empty($post_format))
    28162862                                $post_format = 'standard';
    28172863
    28182864                        $sticky = false;
    2819                         if ( is_sticky( $post_ID ) )
     2865                        if (is_sticky($post_ID))
    28202866                                $sticky = true;
    28212867
    28222868                        $enclosure = array();
    2823                         foreach ( (array) get_post_custom($post_ID) as $key => $val) {
     2869                        foreach ((array) get_post_custom($post_ID) as $key => $val) {
    28242870                                if ($key == 'enclosure') {
    2825                                         foreach ( (array) $val as $enc ) {
     2871                                        foreach ((array) $val as $enc) {
    28262872                                                $encdata = split("\n", $enc);
    28272873                                                $enclosure['url'] = trim(htmlspecialchars($encdata[0]));
    28282874                                                $enclosure['length'] = (int) trim($encdata[1]);
     
    28512897                                'wp_slug' => $postdata['post_name'],
    28522898                                'wp_password' => $postdata['post_password'],
    28532899                                'wp_author_id' => (string) $author->ID,
    2854                                 'wp_author_display_name'        => $author->display_name,
     2900                            'wp_author_display_name' => $author->display_name,
    28552901                                'date_created_gmt' => new IXR_Date($post_date_gmt),
    28562902                                'post_status' => $postdata['post_status'],
    28572903                                'custom_fields' => $this->get_custom_fields($post_ID),
     
    28592905                                'sticky' => $sticky
    28602906                        );
    28612907
    2862                         if ( !empty($enclosure) ) $resp['enclosure'] = $enclosure;
     2908                        if (!empty($enclosure))
     2909                                $resp['enclosure'] = $enclosure;
    28632910
    28642911                        return $resp;
    28652912                } else {
     
    28792926
    28802927                $this->escape($args);
    28812928
    2882                 $blog_ID    = (int) $args[0];
    2883                 $username = $args[1];
    2884                 $password  = $args[2];
    2885                 if ( isset( $args[3] ) )
    2886                         $query = array( 'numberposts' => absint( $args[3] ) );
     2929                $blog_ID = (int) $args[0];
     2930                $username = $args[1];
     2931                $password = $args[2];
     2932                if (isset($args[3]))
     2933                        $query = array('numberposts' => absint($args[3]));
    28872934                else
    28882935                        $query = array();
    28892936
    2890                 if ( !$user = $this->login($username, $password) )
     2937                if (!$user = $this->login($username, $password))
    28912938                        return $this->error;
    28922939
    28932940                do_action('xmlrpc_call', 'metaWeblog.getRecentPosts');
    28942941
    2895                 $posts_list = wp_get_recent_posts( $query );
     2942                $posts_list = wp_get_recent_posts($query);
    28962943
    2897                 if ( !$posts_list )
    2898                         return array( );
     2944                if (!$posts_list)
     2945                        return array();
    28992946
    29002947                foreach ($posts_list as $entry) {
    2901                         if ( !current_user_can( 'edit_post', $entry['ID'] ) )
     2948                        if (!current_user_can('edit_post', $entry['ID']))
    29022949                                continue;
    29032950
    29042951                        $post_date = mysql2date('Ymd\TH:i:s', $entry['post_date'], false);
    29052952                        $post_date_gmt = mysql2date('Ymd\TH:i:s', $entry['post_date_gmt'], false);
    29062953
    29072954                        // For drafts use the GMT version of the date
    2908                         if ( $entry['post_status'] == 'draft' )
    2909                                 $post_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $entry['post_date'] ), 'Ymd\TH:i:s' );
     2955                        if ($entry['post_status'] == 'draft')
     2956                                $post_date_gmt = get_gmt_from_date(mysql2date('Y-m-d H:i:s', $entry['post_date']), 'Ymd\TH:i:s');
    29102957
    29112958                        $categories = array();
    29122959                        $catids = wp_get_post_categories($entry['ID']);
    2913                         foreach( $catids as $catid )
     2960                        foreach ($catids as $catid)
    29142961                                $categories[] = get_cat_name($catid);
    29152962
    29162963                        $tagnames = array();
    2917                         $tags = wp_get_post_tags( $entry['ID'] );
    2918                         if ( !empty( $tags ) ) {
    2919                                 foreach ( $tags as $tag ) {
     2964                        $tags = wp_get_post_tags($entry['ID']);
     2965                        if (!empty($tags)) {
     2966                                foreach ($tags as $tag) {
    29202967                                        $tagnames[] = $tag->name;
    29212968                                }
    2922                                 $tagnames = implode( ', ', $tagnames );
     2969                                $tagnames = implode(', ', $tagnames);
    29232970                        } else {
    29242971                                $tagnames = '';
    29252972                        }
     
    29342981                        $allow_pings = ('open' == $entry['ping_status']) ? 1 : 0;
    29352982
    29362983                        // Consider future posts as published
    2937                         if ( $entry['post_status'] === 'future' )
     2984                        if ($entry['post_status'] === 'future')
    29382985                                $entry['post_status'] = 'publish';
    29392986
    29402987                        // Get post format
    2941                         $post_format = get_post_format( $entry['ID'] );
    2942                         if ( empty( $post_format ) )
     2988                        $post_format = get_post_format($entry['ID']);
     2989                        if (empty($post_format))
    29432990                                $post_format = 'standard';
    29442991
    29452992                        $struct[] = array(
     
    29673014                                'custom_fields' => $this->get_custom_fields($entry['ID']),
    29683015                                'wp_post_format' => $post_format
    29693016                        );
    2970 
    29713017                }
    29723018
    29733019                $recent_posts = array();
    2974                 for ( $j=0; $j<count($struct); $j++ ) {
     3020                for ($j = 0; $j < count($struct); $j++) {
    29753021                        array_push($recent_posts, $struct[$j]);
    29763022                }
    29773023
     
    29903036
    29913037                $this->escape($args);
    29923038
    2993                 $blog_ID    = (int) $args[0];
    2994                 $username = $args[1];
    2995                 $password  = $args[2];
     3039                $blog_ID = (int) $args[0];
     3040                $username = $args[1];
     3041                $password = $args[2];
    29963042
    2997                 if ( !$user = $this->login($username, $password) )
     3043                if (!$user = $this->login($username, $password))
    29983044                        return $this->error;
    29993045
    3000                 if ( !current_user_can( 'edit_posts' ) )
    3001                         return new IXR_Error( 401, __( 'Sorry, you must be able to edit posts on this site in order to view categories.' ) );
     3046                if (!current_user_can('edit_posts'))
     3047                        return new IXR_Error(401, __('Sorry, you must be able to edit posts on this site in order to view categories.'));
    30023048
    30033049                do_action('xmlrpc_call', 'metaWeblog.getCategories');
    30043050
    30053051                $categories_struct = array();
    30063052
    3007                 if ( $cats = get_categories(array('get' => 'all')) ) {
    3008                         foreach ( $cats as $cat ) {
     3053                if ($cats = get_categories(array('get' => 'all'))) {
     3054                        foreach ($cats as $cat) {
    30093055                                $struct['categoryId'] = $cat->term_id;
    30103056                                $struct['parentId'] = $cat->parent;
    30113057                                $struct['description'] = $cat->name;
     
    30363082        function mw_newMediaObject($args) {
    30373083                global $wpdb;
    30383084
    3039                 $blog_ID    = (int) $args[0];
    3040                 $username = $wpdb->escape($args[1]);
    3041                 $password  = $wpdb->escape($args[2]);
    3042                 $data        = $args[3];
     3085                $blog_ID = (int) $args[0];
     3086                $username = $wpdb->escape($args[1]);
     3087                $password = $wpdb->escape($args[2]);
     3088                $data = $args[3];
    30433089
    3044                 $name = sanitize_file_name( $data['name'] );
     3090                $name = sanitize_file_name($data['name']);
    30453091                $type = $data['type'];
    30463092                $bits = $data['bits'];
    30473093
    3048                 logIO('O', '(MW) Received '.strlen($bits).' bytes');
     3094                logIO('O', '(MW) Received ' . strlen($bits) . ' bytes');
    30493095
    3050                 if ( !$user = $this->login($username, $password) )
     3096                if (!$user = $this->login($username, $password))
    30513097                        return $this->error;
    30523098
    30533099                do_action('xmlrpc_call', 'metaWeblog.newMediaObject');
    30543100
    3055                 if ( !current_user_can('upload_files') ) {
     3101                if (!current_user_can('upload_files')) {
    30563102                        logIO('O', '(MW) User does not have upload_files capability');
    30573103                        $this->error = new IXR_Error(401, __('You are not allowed to upload files to this site.'));
    30583104                        return $this->error;
    30593105                }
    30603106
    3061                 if ( $upload_err = apply_filters( 'pre_upload_error', false ) )
     3107                if ($upload_err = apply_filters('pre_upload_error', false))
    30623108                        return new IXR_Error(500, $upload_err);
    30633109
    3064                 if ( !empty($data['overwrite']) && ($data['overwrite'] == true) ) {
     3110                if (!empty($data['overwrite']) && ($data['overwrite'] == true)) {
    30653111                        // Get postmeta info on the object.
    30663112                        $old_file = $wpdb->get_row("
    30673113                                SELECT ID
     
    30803126                }
    30813127
    30823128                $upload = wp_upload_bits($name, NULL, $bits);
    3083                 if ( ! empty($upload['error']) ) {
     3129                if (!empty($upload['error'])) {
    30843130                        $errorString = sprintf(__('Could not write file %1$s (%2$s)'), $name, $upload['error']);
    30853131                        logIO('O', '(MW) ' . $errorString);
    30863132                        return new IXR_Error(500, $errorString);
     
    30943140                        'post_type' => 'attachment',
    30953141                        'post_parent' => $post_id,
    30963142                        'post_mime_type' => $type,
    3097                         'guid' => $upload[ 'url' ]
     3143                    'guid' => $upload['url']
    30983144                );
    30993145
    31003146                // Save the data
    3101                 $id = wp_insert_attachment( $attachment, $upload[ 'file' ], $post_id );
    3102                 wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $upload['file'] ) );
     3147                $id = wp_insert_attachment($attachment, $upload['file'], $post_id);
     3148                wp_update_attachment_metadata($id, wp_generate_attachment_metadata($id, $upload['file']));
    31033149
    3104                 return apply_filters( 'wp_handle_upload', array( 'file' => $name, 'url' => $upload[ 'url' ], 'type' => $type ), 'upload' );
     3150                return apply_filters('wp_handle_upload', array('file' => $name, 'url' => $upload['url'], 'type' => $type), 'upload');
    31053151        }
    31063152
    31073153        /* MovableType API functions
     
    31203166
    31213167                $this->escape($args);
    31223168
    3123                 $blog_ID    = (int) $args[0];
    3124                 $username = $args[1];
    3125                 $password  = $args[2];
    3126                 if ( isset( $args[3] ) )
    3127                         $query = array( 'numberposts' => absint( $args[3] ) );
     3169                $blog_ID = (int) $args[0];
     3170                $username = $args[1];
     3171                $password = $args[2];
     3172                if (isset($args[3]))
     3173                        $query = array('numberposts' => absint($args[3]));
    31283174                else
    31293175                        $query = array();
    31303176
    3131                 if ( !$user = $this->login($username, $password) )
     3177                if (!$user = $this->login($username, $password))
    31323178                        return $this->error;
    31333179
    31343180                do_action('xmlrpc_call', 'mt.getRecentPostTitles');
    31353181
    3136                 $posts_list = wp_get_recent_posts( $query );
     3182                $posts_list = wp_get_recent_posts($query);
    31373183
    3138                 if ( !$posts_list ) {
     3184                if (!$posts_list) {
    31393185                        $this->error = new IXR_Error(500, __('Either there are no posts, or something went wrong.'));
    31403186                        return $this->error;
    31413187                }
    31423188
    31433189                foreach ($posts_list as $entry) {
    3144                         if ( !current_user_can( 'edit_post', $entry['ID'] ) )
     3190                        if (!current_user_can('edit_post', $entry['ID']))
    31453191                                continue;
    31463192
    31473193                        $post_date = mysql2date('Ymd\TH:i:s', $entry['post_date'], false);
    31483194                        $post_date_gmt = mysql2date('Ymd\TH:i:s', $entry['post_date_gmt'], false);
    31493195
    31503196                        // For drafts use the GMT version of the date
    3151                         if ( $entry['post_status'] == 'draft' )
    3152                                 $post_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $entry['post_date'] ), 'Ymd\TH:i:s' );
     3197                        if ($entry['post_status'] == 'draft')
     3198                                $post_date_gmt = get_gmt_from_date(mysql2date('Y-m-d H:i:s', $entry['post_date']), 'Ymd\TH:i:s');
    31533199
    31543200                        $struct[] = array(
    31553201                                'dateCreated' => new IXR_Date($post_date),
     
    31593205                                'post_status' => $entry['post_status'],
    31603206                                'date_created_gmt' => new IXR_Date($post_date_gmt)
    31613207                        );
    3162 
    31633208                }
    31643209
    31653210                $recent_posts = array();
    3166                 for ( $j=0; $j<count($struct); $j++ ) {
     3211                for ($j = 0; $j < count($struct); $j++) {
    31673212                        array_push($recent_posts, $struct[$j]);
    31683213                }
    31693214
     
    31823227
    31833228                $this->escape($args);
    31843229
    3185                 $blog_ID    = (int) $args[0];
    3186                 $username = $args[1];
    3187                 $password  = $args[2];
     3230                $blog_ID = (int) $args[0];
     3231                $username = $args[1];
     3232                $password = $args[2];
    31883233
    3189                 if ( !$user = $this->login($username, $password) )
     3234                if (!$user = $this->login($username, $password))
    31903235                        return $this->error;
    31913236
    3192                 if ( !current_user_can( 'edit_posts' ) )
    3193                         return new IXR_Error( 401, __( 'Sorry, you must be able to edit posts on this site in order to view categories.' ) );
     3237                if (!current_user_can('edit_posts'))
     3238                        return new IXR_Error(401, __('Sorry, you must be able to edit posts on this site in order to view categories.'));
    31943239
    31953240                do_action('xmlrpc_call', 'mt.getCategoryList');
    31963241
    31973242                $categories_struct = array();
    31983243
    3199                 if ( $cats = get_categories(array('hide_empty' => 0, 'hierarchical' => 0)) ) {
    3200                         foreach ( $cats as $cat ) {
     3244                if ($cats = get_categories(array('hide_empty' => 0, 'hierarchical' => 0))) {
     3245                        foreach ($cats as $cat) {
    32013246                                $struct['categoryId'] = $cat->term_id;
    32023247                                $struct['categoryName'] = $cat->name;
    32033248
     
    32203265
    32213266                $this->escape($args);
    32223267
    3223                 $post_ID    = (int) $args[0];
    3224                 $username = $args[1];
    3225                 $password  = $args[2];
     3268                $post_ID = (int) $args[0];
     3269                $username = $args[1];
     3270                $password = $args[2];
    32263271
    3227                 if ( !$user = $this->login($username, $password) )
     3272                if (!$user = $this->login($username, $password))
    32283273                        return $this->error;
    32293274
    3230                 if ( !current_user_can( 'edit_post', $post_ID ) )
    3231                         return new IXR_Error( 401, __( 'Sorry, you can not edit this post.' ) );
     3275                if (!current_user_can('edit_post', $post_ID))
     3276                        return new IXR_Error(401, __('Sorry, you can not edit this post.'));
    32323277
    32333278                do_action('xmlrpc_call', 'mt.getPostCategories');
    32343279
     
    32363281                $catids = wp_get_post_categories(intval($post_ID));
    32373282                // first listed category will be the primary category
    32383283                $isPrimary = true;
    3239                 foreach ( $catids as $catid ) {
     3284                foreach ($catids as $catid) {
    32403285                        $categories[] = array(
    32413286                                'categoryName' => get_cat_name($catid),
    32423287                                'categoryId' => (string) $catid,
     
    32603305
    32613306                $this->escape($args);
    32623307
    3263                 $post_ID    = (int) $args[0];
    3264                 $username = $args[1];
    3265                 $password  = $args[2];
    3266                 $categories = $args[3];
     3308                $post_ID = (int) $args[0];
     3309                $username = $args[1];
     3310                $password = $args[2];
     3311                $categories = $args[3];
    32673312
    3268                 if ( !$user = $this->login($username, $password) )
     3313                if (!$user = $this->login($username, $password))
    32693314                        return $this->error;
    32703315
    32713316                do_action('xmlrpc_call', 'mt.setPostCategories');
    32723317
    3273                 if ( !current_user_can('edit_post', $post_ID) )
     3318                if (!current_user_can('edit_post', $post_ID))
    32743319                        return new IXR_Error(401, __('Sorry, you cannot edit this post.'));
    32753320
    3276                 foreach ( $categories as $cat ) {
     3321                foreach ($categories as $cat) {
    32773322                        $catids[] = $cat['categoryId'];
    32783323                }
    32793324
     
    32953340                do_action('xmlrpc_call', 'mt.supportedMethods');
    32963341
    32973342                $supported_methods = array();
    3298                 foreach ( $this->methods as $key => $value ) {
     3343                foreach ($this->methods as $key => $value) {
    32993344                        $supported_methods[] = $key;
    33003345                }
    33013346
     
    33323377
    33333378                $actual_post = wp_get_single_post($post_ID, ARRAY_A);
    33343379
    3335                 if ( !$actual_post )
     3380                if (!$actual_post)
    33363381                        return new IXR_Error(404, __('Sorry, no such post.'));
    33373382
    3338                 $comments = $wpdb->get_results( $wpdb->prepare("SELECT comment_author_url, comment_content, comment_author_IP, comment_type FROM $wpdb->comments WHERE comment_post_ID = %d", $post_ID) );
     3383                $comments = $wpdb->get_results($wpdb->prepare("SELECT comment_author_url, comment_content, comment_author_IP, comment_type FROM $wpdb->comments WHERE comment_post_ID = %d", $post_ID));
    33393384
    3340                 if ( !$comments )
     3385                if (!$comments)
    33413386                        return array();
    33423387
    33433388                $trackback_pings = array();
    3344                 foreach ( $comments as $comment ) {
    3345                         if ( 'trackback' == $comment->comment_type ) {
     3389                foreach ($comments as $comment) {
     3390                        if ('trackback' == $comment->comment_type) {
    33463391                                $content = $comment->comment_content;
    33473392                                $title = substr($content, 8, (strpos($content, '</strong>') - 8));
    33483393                                $trackback_pings[] = array(
    33493394                                        'pingTitle' => $title,
    3350                                         'pingURL'  => $comment->comment_author_url,
    3351                                         'pingIP'    => $comment->comment_author_IP
     3395                                    'pingURL' => $comment->comment_author_url,
     3396                                    'pingIP' => $comment->comment_author_IP
    33523397                                );
    33533398                        }
    33543399                }
     
    33683413
    33693414                $this->escape($args);
    33703415
    3371                 $post_ID    = (int) $args[0];
    3372                 $username = $args[1];
    3373                 $password  = $args[2];
     3416                $post_ID = (int) $args[0];
     3417                $username = $args[1];
     3418                $password = $args[2];
    33743419
    3375                 if ( !$user = $this->login($username, $password) )
     3420                if (!$user = $this->login($username, $password))
    33763421                        return $this->error;
    33773422
    33783423                do_action('xmlrpc_call', 'mt.publishPost');
    33793424
    3380                 if ( !current_user_can('publish_posts') || !current_user_can('edit_post', $post_ID) )
     3425                if (!current_user_can('publish_posts') || !current_user_can('edit_post', $post_ID))
    33813426                        return new IXR_Error(401, __('Sorry, you cannot publish this post.'));
    33823427
    3383                 $postdata = wp_get_single_post($post_ID,ARRAY_A);
     3428                $postdata = wp_get_single_post($post_ID, ARRAY_A);
    33843429
    33853430                $postdata['post_status'] = 'publish';
    33863431
     
    34143459                $this->escape($args);
    34153460
    34163461                $pagelinkedfrom = $args[0];
    3417                 $pagelinkedto  = $args[1];
     3462                $pagelinkedto = $args[1];
    34183463
    34193464                $title = '';
    34203465
     
    34233468                $pagelinkedto = str_replace('&', '&amp;', $pagelinkedto);
    34243469
    34253470                // Check if the page linked to is in our site
    3426                 $pos1 = strpos($pagelinkedto, str_replace(array('http://www.','http://','https://www.','https://'), '', get_option('home')));
    3427                 if ( !$pos1 )
     3471                $pos1 = strpos($pagelinkedto, str_replace(array('http://www.', 'http://', 'https://www.', 'https://'), '', get_option('home')));
     3472                if (!$pos1)
    34283473                        return new IXR_Error(0, __('Is there no link to us?'));
    34293474
    34303475                // let's find which post is linked to
    34313476                // FIXME: does url_to_postid() cover all these cases already?
    34323477                //        if so, then let's use it and drop the old code.
    34333478                $urltest = parse_url($pagelinkedto);
    3434                 if ( $post_ID = url_to_postid($pagelinkedto) ) {
     3479                if ($post_ID = url_to_postid($pagelinkedto)) {
    34353480                        $way = 'url_to_postid()';
    3436                 } elseif ( preg_match('#p/[0-9]{1,}#', $urltest['path'], $match) ) {
     3481                } elseif (preg_match('#p/[0-9]{1,}#', $urltest['path'], $match)) {
    34373482                        // the path defines the post_ID (archives/p/XXXX)
    34383483                        $blah = explode('/', $match[0]);
    34393484                        $post_ID = (int) $blah[1];
    34403485                        $way = 'from the path';
    3441                 } elseif ( preg_match('#p=[0-9]{1,}#', $urltest['query'], $match) ) {
     3486                } elseif (preg_match('#p=[0-9]{1,}#', $urltest['query'], $match)) {
    34423487                        // the querystring defines the post_ID (?p=XXXX)
    34433488                        $blah = explode('=', $match[0]);
    34443489                        $post_ID = (int) $blah[1];
    34453490                        $way = 'from the querystring';
    3446                 } elseif ( isset($urltest['fragment']) ) {
     3491                } elseif (isset($urltest['fragment'])) {
    34473492                        // an #anchor is there, it's either...
    3448                         if ( intval($urltest['fragment']) ) {
     3493                        if (intval($urltest['fragment'])) {
    34493494                                // ...an integer #XXXX (simplest case)
    34503495                                $post_ID = (int) $urltest['fragment'];
    34513496                                $way = 'from the fragment (numeric)';
    3452                         } elseif ( preg_match('/post-[0-9]+/',$urltest['fragment']) ) {
     3497                        } elseif (preg_match('/post-[0-9]+/', $urltest['fragment'])) {
    34533498                                // ...a post id in the form 'post-###'
    34543499                                $post_ID = preg_replace('/[^0-9]+/', '', $urltest['fragment']);
    34553500                                $way = 'from the fragment (post-###)';
    3456                         } elseif ( is_string($urltest['fragment']) ) {
     3501                        } elseif (is_string($urltest['fragment'])) {
    34573502                                // ...or a string #title, a little more complicated
    34583503                                $title = preg_replace('/[^a-z0-9]/i', '.', $urltest['fragment']);
    3459                                 $sql = $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_title RLIKE %s", like_escape( $title ) );
    3460                                 if (! ($post_ID = $wpdb->get_var($sql)) ) {
     3504                                $sql = $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_title RLIKE %s", like_escape($title));
     3505                                if (!($post_ID = $wpdb->get_var($sql))) {
    34613506                                        // returning unknown error '0' is better than die()ing
    34623507                                        return new IXR_Error(0, '');
    34633508                                }
     
    34703515                $post_ID = (int) $post_ID;
    34713516
    34723517
    3473                 logIO("O","(PB) URL='$pagelinkedto' ID='$post_ID' Found='$way'");
     3518                logIO("O", "(PB) URL='$pagelinkedto' ID='$post_ID' Found='$way'");
    34743519
    34753520                $post = get_post($post_ID);
    34763521
    3477                 if ( !$post ) // Post_ID not found
     3522                if (!$post) // Post_ID not found
    34783523                        return new IXR_Error(33, __('The specified target URL cannot be used as a target. It either doesn&#8217;t exist, or it is not a pingback-enabled resource.'));
    34793524
    3480                 if ( $post_ID == url_to_postid($pagelinkedfrom) )
     3525                if ($post_ID == url_to_postid($pagelinkedfrom))
    34813526                        return new IXR_Error(0, __('The source URL and the target URL cannot both point to the same resource.'));
    34823527
    34833528                // Check if pings are on
    3484                 if ( !pings_open($post) )
     3529                if (!pings_open($post))
    34853530                        return new IXR_Error(33, __('The specified target URL cannot be used as a target. It either doesn&#8217;t exist, or it is not a pingback-enabled resource.'));
    34863531
    34873532                // Let's check that the remote site didn't already pingback this entry
    3488                 if ( $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_author_url = %s", $post_ID, $pagelinkedfrom) ) )
    3489                         return new IXR_Error( 48, __( 'The pingback has already been registered.' ) );
     3533                if ($wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_author_url = %s", $post_ID, $pagelinkedfrom)))
     3534                        return new IXR_Error(48, __('The pingback has already been registered.'));
    34903535
    34913536                // very stupid, but gives time to the 'from' server to publish !
    34923537                sleep(1);
    34933538
    34943539                // Let's check the remote site
    3495                 $linea = wp_remote_fopen( $pagelinkedfrom );
    3496                 if ( !$linea )
     3540                $linea = wp_remote_fopen($pagelinkedfrom);
     3541                if (!$linea)
    34973542                        return new IXR_Error(16, __('The source URL does not exist.'));
    34983543
    34993544                $linea = apply_filters('pre_remote_source', $linea, $pagelinkedto);
    35003545
    35013546                // Work around bug in strip_tags():
    35023547                $linea = str_replace('<!DOC', '<DOC', $linea);
    3503                 $linea = preg_replace( '/[\s\r\n\t]+/', ' ', $linea ); // normalize spaces
    3504                 $linea = preg_replace( "/ <(h1|h2|h3|h4|h5|h6|p|th|td|li|dt|dd|pre|caption|input|textarea|button|body)[^>]*>/", "\n\n", $linea );
     3548                $linea = preg_replace('/[\s\r\n\t]+/', ' ', $linea); // normalize spaces
     3549                $linea = preg_replace("/ <(h1|h2|h3|h4|h5|h6|p|th|td|li|dt|dd|pre|caption|input|textarea|button|body)[^>]*>/", "\n\n", $linea);
    35053550
    35063551                preg_match('|<title>([^<]*?)</title>|is', $linea, $matchtitle);
    35073552                $title = $matchtitle[1];
    3508                 if ( empty( $title ) )
     3553                if (empty($title))
    35093554                        return new IXR_Error(32, __('We cannot find a title on that page.'));
    35103555
    3511                 $linea = strip_tags( $linea, '<a>' ); // just keep the tag we need
     3556                $linea = strip_tags($linea, '<a>'); // just keep the tag we need
    35123557
    3513                 $p = explode( "\n\n", $linea );
     3558                $p = explode("\n\n", $linea);
    35143559
    35153560                $preg_target = preg_quote($pagelinkedto, '|');
    35163561
    3517                 foreach ( $p as $para ) {
    3518                         if ( strpos($para, $pagelinkedto) !== false ) { // it exists, but is it a link?
    3519                                 preg_match("|<a[^>]+?".$preg_target."[^>]*>([^>]+?)</a>|", $para, $context);
     3562                foreach ($p as $para) {
     3563                        if (strpos($para, $pagelinkedto) !== false) { // it exists, but is it a link?
     3564                                preg_match("|<a[^>]+?" . $preg_target . "[^>]*>([^>]+?)</a>|", $para, $context);
    35203565
    35213566                                // If the URL isn't in a link context, keep looking
    3522                                 if ( empty($context) )
     3567                                if (empty($context))
    35233568                                        continue;
    35243569
    35253570                                // We're going to use this fake tag to mark the context in a bit
     
    35273572                                $excerpt = preg_replace('|\</?wpcontext\>|', '', $para);
    35283573
    35293574                                // prevent really long link text
    3530                                 if ( strlen($context[1]) > 100 )
     3575                                if (strlen($context[1]) > 100)
    35313576                                        $context[1] = substr($context[1], 0, 100) . '...';
    35323577
    3533                                 $marker = '<wpcontext>'.$context[1].'</wpcontext>';    // set up our marker
    3534                                 $excerpt= str_replace($context[0], $marker, $excerpt); // swap out the link for our marker
     3578                                $marker = '<wpcontext>' . $context[1] . '</wpcontext>';    // set up our marker
     3579                                $excerpt = str_replace($context[0], $marker, $excerpt); // swap out the link for our marker
    35353580                                $excerpt = strip_tags($excerpt, '<wpcontext>');        // strip all tags but our context marker
    35363581                                $excerpt = trim($excerpt);
    35373582                                $preg_marker = preg_quote($marker, '|');
     
    35413586                        }
    35423587                }
    35433588
    3544                 if ( empty($context) ) // Link to target not found
     3589                if (empty($context)) // Link to target not found
    35453590                        return new IXR_Error(17, __('The source URL does not contain a link to the target URL, and so cannot be used as a source.'));
    35463591
    35473592                $pagelinkedfrom = str_replace('&', '&amp;', $pagelinkedfrom);
    35483593
    3549                 $context = '[...] ' . esc_html( $excerpt ) . ' [...]';
    3550                 $pagelinkedfrom = $wpdb->escape( $pagelinkedfrom );
     3594                $context = '[...] ' . esc_html($excerpt) . ' [...]';
     3595                $pagelinkedfrom = $wpdb->escape($pagelinkedfrom);
    35513596
    35523597                $comment_post_ID = (int) $post_ID;
    35533598                $comment_author = $title;
     
    35873632                $url = $args;
    35883633
    35893634                $post_ID = url_to_postid($url);
    3590                 if ( !$post_ID ) {
     3635                if (!$post_ID) {
    35913636                        // We aren't sure that the resource is available and/or pingback enabled
    35923637                        return new IXR_Error(33, __('The specified target URL cannot be used as a target. It either doesn&#8217;t exist, or it is not a pingback-enabled resource.'));
    35933638                }
    35943639
    35953640                $actual_post = wp_get_single_post($post_ID, ARRAY_A);
    35963641
    3597                 if ( !$actual_post ) {
     3642                if (!$actual_post) {
    35983643                        // No such post = resource not found
    35993644                        return new IXR_Error(32, __('The specified target URL does not exist.'));
    36003645                }
    36013646
    3602                 $comments = $wpdb->get_results( $wpdb->prepare("SELECT comment_author_url, comment_content, comment_author_IP, comment_type FROM $wpdb->comments WHERE comment_post_ID = %d", $post_ID) );
     3647                $comments = $wpdb->get_results($wpdb->prepare("SELECT comment_author_url, comment_content, comment_author_IP, comment_type FROM $wpdb->comments WHERE comment_post_ID = %d", $post_ID));
    36033648
    3604                 if ( !$comments )
     3649                if (!$comments)
    36053650                        return array();
    36063651
    36073652                $pingbacks = array();
    3608                 foreach ( $comments as $comment ) {
    3609                         if ( 'pingback' == $comment->comment_type )
     3653                foreach ($comments as $comment) {
     3654                        if ('pingback' == $comment->comment_type)
    36103655                                $pingbacks[] = $comment->comment_author_url;
    36113656                }
    36123657
    36133658                return $pingbacks;
    36143659        }
     3660
    36153661}
     3662
    36163663?>