* added wp.getCategories
* fixed metaWeblog_newPost with categories (didn't work for many
writers)
This commit is contained in:
Grischa Brockhaus 2011-12-23 13:50:51 +01:00
parent a2a72e7eda
commit a2bd73f912

View file

@ -7,13 +7,12 @@ if (empty($HTTP_RAW_POST_DATA)) {
$HTTP_RAW_POST_DATA = implode("\r\n", file('php://input')); $HTTP_RAW_POST_DATA = implode("\r\n", file('php://input'));
} }
$debug_xmlrpc = 2; $debug_xmlrpc = 1;
if ($debug_xmlrpc) { if ($debug_xmlrpc) {
//@define('DEBUG_LOG_XMLRPC', '/tmp/rpc.log'); //@define('DEBUG_LOG_XMLRPC', '/tmp/rpc.log');
@define('DEBUG_LOG_XMLRPC', dirname(__FILE__) . "/rpc.log"); @define('DEBUG_LOG_XMLRPC', dirname(__FILE__) . "/rpc.log");
$fp = fopen(DEBUG_LOG_XMLRPC, 'a'); $fp = fopen(DEBUG_LOG_XMLRPC, 'a');
fwrite($fp, '[' . date('d.m.Y H:i') . ']' . print_r($HTTP_RAW_POST_DATA, true)); fwrite($fp, '[' . date('d.m.Y H:i') . ']' . print_r($HTTP_RAW_POST_DATA, true));
fwrite($fp, "\n REQUEST: " . print_r($_REQUEST, true) . "\n");
fclose($fp); fclose($fp);
ob_start(); ob_start();
@define('DEBUG_XMLRPC', true); @define('DEBUG_XMLRPC', true);
@ -30,6 +29,8 @@ $dispatches = array(
/* WordPress API */ /* WordPress API */
'wp.getUsersBlogs' => 'wp.getUsersBlogs' =>
array('function' => 'wp_getUsersBlogs'), array('function' => 'wp_getUsersBlogs'),
'wp.getCategories' =>
array('function' => 'wp_getCategories'),
/* BLOGGER API */ /* BLOGGER API */
'blogger.getUsersBlogs' => 'blogger.getUsersBlogs' =>
@ -106,6 +107,9 @@ function wp_getUsersBlogs($message) {
return($r); return($r);
} }
function wp_getCategories($message) {
return mt_getCategoryList($message);
}
function blogger_getUsersBlogs($message) { function blogger_getUsersBlogs($message) {
global $serendipity; global $serendipity;
@ -414,25 +418,32 @@ function universal_fetchCategories($post_categories) {
$categories = array(); $categories = array();
if (is_array($post_categories)) { if (is_array($post_categories)) {
universal_debug("fetchCategories: \n" . print_r($post_categories, true)); if (is_array($post_categories[0])) { // if it is a cat_id hash
foreach($post_categories AS $cat_id => $cat_obj) { foreach($post_categories AS $cat_id => $cat_obj) {
if (is_object($cat_obj)) { if (is_object($cat_obj)) {
$cat_name = $cat_obj->getval(); $cat_name = $cat_obj->getval();
if (!empty($cat_name)) { if (!empty($cat_name)) {
$cat = serendipity_fetchCategories(null, $cat_name); $cat = serendipity_fetchCategories(null, $cat_name);
if (isset($cat[0]['categoryid'])) { if (isset($cat[0]['categoryid'])) {
$categories[$cat[0]['categoryid']] = $cat[0]['categoryid']; $categories[$cat[0]['categoryid']] = $cat[0]['categoryid'];
}
}
} elseif (is_array($cat_obj) && isset($cat_obj['categoryId'])) {
$cat_id = $cat_obj['categoryId']->getval();
if (!empty($cat_id)) {
$categories[$cat_id] = $cat_id;
} }
}
} elseif (is_array($cat_obj) && isset($cat_obj['categoryId'])) {
$cat_id = $cat_obj['categoryId']->getval();
if (!empty($cat_id)) {
$categories[$cat_id] = $cat_id;
} }
} }
} }
else { // Just an array with names, has to be resolved to ids
foreach($post_categories AS $cat_name) {
$info = serendipity_fetchCategoryInfo(0, $cat_name);
$cat_id= $info['categoryid'];
$categories[$cat_id] = $cat_id;
}
}
} }
return $categories; return $categories;
} }
@ -463,8 +474,7 @@ function metaWeblog_newPost($message) {
$val = $message->params[3]; $val = $message->params[3];
if (is_object($val)) { if (is_object($val)) {
$post_array = $val->getval(); $post_array = XML_RPC_decode($val);// $val->getval();
universal_debug("Incoming Data: " . print_r($post_array, true));
} else { } else {
$post_array = array(); $post_array = array();
} }