From 2c0a13ebbfd994be0ad71143da712a3053a2f32c Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Tue, 19 Jun 2007 19:12:24 +0000 Subject: [PATCH] Accept 'open' and 'closed' as valid values for mt_allow_comments and mt_allow_pings in XML-RPC. Props Joseph Scott. see #4469 git-svn-id: https://develop.svn.wordpress.org/trunk@5729 602fd350-edb4-49c9-b593-d223f7449a82 --- xmlrpc.php | 138 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 114 insertions(+), 24 deletions(-) diff --git a/xmlrpc.php b/xmlrpc.php index 51dfc64139..4102cd6eeb 100644 --- a/xmlrpc.php +++ b/xmlrpc.php @@ -994,31 +994,67 @@ class wp_xmlrpc_server extends IXR_Server { $post_more = $content_struct['mt_text_more']; if(isset($content_struct["mt_allow_comments"])) { - switch((int) $content_struct["mt_allow_comments"]) { - case 0: - $comment_status = "closed"; - break; - case 1: - $comment_status = "open"; - break; - default: - $comment_status = get_option("default_comment_status"); - break; + if(!is_numeric($content_struct["mt_allow_comments"])) { + switch($content_struct["mt_allow_comments"]) { + case "closed": + $comment_status = "closed"; + break; + case "open": + $comment_status = "open"; + break; + default: + $comment_status = get_option("default_comment_status"); + break; + } } + else { + switch((int) $content_struct["mt_allow_comments"]) { + case 0: + $comment_status = "closed"; + break; + case 1: + $comment_status = "open"; + break; + default: + $comment_status = get_option("default_comment_status"); + break; + } + } + } + else { + $comment_status = get_option("default_comment_status"); } if(isset($content_struct["mt_allow_pings"])) { - switch((int) $content_struct["mt_allow_pings"]) { - case 0: - $ping_status = "closed"; - break; - case 1: - $ping_status = "open"; - break; - default: - $ping_status = get_option("default_ping_status"); - break; + if(!is_numeric($content_struct["mt_allow_pings"])) { + switch($content["mt_allow_pings"]) { + case "closed": + $ping_status = "closed"; + break; + case "open": + $ping_status = "open"; + break; + default: + $ping_status = get_option("default_ping_status"); + break; + } } + else { + switch((int) $content_struct["mt_allow_pings"]) { + case 0: + $ping_status = "closed"; + break; + case 1: + $ping_status = "open"; + break; + default: + $ping_status = get_option("default_ping_status"); + break; + } + } + } + else { + $ping_status = get_option("default_ping_status"); } if ($post_more) { @@ -1170,6 +1206,64 @@ class wp_xmlrpc_server extends IXR_Server { $post_author = $content_struct["wp_author_id"]; } + if(isset($content_struct["mt_allow_comments"])) { + if(!is_numeric($content_struct["mt_allow_comments"])) { + switch($content_struct["mt_allow_comments"]) { + case "closed": + $comment_status = "closed"; + break; + case "open": + $comment_status = "open"; + break; + default: + $comment_status = get_option("default_comment_status"); + break; + } + } + else { + switch((int) $content_struct["mt_allow_comments"]) { + case 0: + $comment_status = "closed"; + break; + case 1: + $comment_status = "open"; + break; + default: + $comment_status = get_option("default_comment_status"); + break; + } + } + } + + if(isset($content_struct["mt_allow_pings"])) { + if(!is_numeric($content_struct["mt_allow_pings"])) { + switch($content["mt_allow_pings"]) { + case "closed": + $ping_status = "closed"; + break; + case "open": + $ping_status = "open"; + break; + default: + $ping_status = get_option("default_ping_status"); + break; + } + } + else { + switch((int) $content_struct["mt_allow_pings"]) { + case 0: + $ping_status = "closed"; + break; + case 1: + $ping_status = "open"; + break; + default: + $ping_status = get_option("default_ping_status"); + break; + } + } + } + // Only set ping_status if it was provided. if(isset($content_struct["mt_allow_pings"])) { switch((int) $content_struct["mt_allow_pings"]) { @@ -1213,10 +1307,6 @@ class wp_xmlrpc_server extends IXR_Server { if ( is_array($to_ping) ) $to_ping = implode(' ', $to_ping); - if(isset($content_struct["mt_allow_comments"])) { - $comment_status = (int) $content_struct["mt_allow_comments"]; - } - // Do some timestamp voodoo $dateCreatedd = $content_struct['dateCreated']; if (!empty($dateCreatedd)) {