[wp-cvs] wordpress/wp-admin xmlrpc.php,1.7,1.8

Michel Valdrighi michelvaldrighi at users.sourceforge.net
Wed Aug 25 15:24:12 UTC 2004


Update of /cvsroot/cafelog/wordpress/wp-admin
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26225/wp-admin

Modified Files:
	xmlrpc.php 
Log Message:
added blogger.editPost and blogger.deletePost, time to move on to metaWeblog API addition

Index: xmlrpc.php
===================================================================
RCS file: /cvsroot/cafelog/wordpress/wp-admin/xmlrpc.php,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** xmlrpc.php	15 Jun 2004 23:24:35 -0000	1.7
--- xmlrpc.php	25 Aug 2004 15:24:09 -0000	1.8
***************
*** 47,50 ****
--- 47,52 ----
  		  'blogger.setTemplate' => 'this:blogger_setTemplate',
  		  'blogger.newPost' => 'this:blogger_newPost',
+ 		  'blogger.editPost' => 'this:blogger_editPost',
+ 		  'blogger.deletePost' => 'this:blogger_deletePost',
  
  		  'demo.sayHello' => 'this:sayHello',
***************
*** 149,153 ****
  	  $content .= '<category>'.$categories.'</category>';
  	  $content .= stripslashes($post_data['Content']);
! 	  
  	  $struct = array(
  	    'userid'    => $post_data['Author_ID'],
--- 151,155 ----
  	  $content .= '<category>'.$categories.'</category>';
  	  $content .= stripslashes($post_data['Content']);
! 
  	  $struct = array(
  	    'userid'    => $post_data['Author_ID'],
***************
*** 156,160 ****
  	    'postid'  => $post_data['ID']
  	  );
! 	  
  	  return $struct;
  	}
--- 158,162 ----
  	    'postid'  => $post_data['ID']
  	  );
! 
  	  return $struct;
  	}
***************
*** 274,278 ****
  	  $filename = get_settings('home').'/'.get_settings('blogfilename');
  	  $filename = preg_replace('#http://.+?/#', $_SERVER['DOCUMENT_ROOT'].'/', $filename);
! 	  
  	  $f = fopen($filename, 'r');
  	  $content = fread($f, filesize($filename));
--- 276,280 ----
  	  $filename = get_settings('home').'/'.get_settings('blogfilename');
  	  $filename = preg_replace('#http://.+?/#', $_SERVER['DOCUMENT_ROOT'].'/', $filename);
! 
  	  $f = fopen($filename, 'r');
  	  $content = fread($f, filesize($filename));
***************
*** 308,312 ****
  	  $filename = get_settings('home').'/'.get_settings('blogfilename');
  	  $filename = preg_replace('#http://.+?/#', $_SERVER['DOCUMENT_ROOT'].'/', $filename);
! 	  
  	  if ($f = fopen($filename, 'w+')) {
  	    fwrite($f, $content);
--- 310,314 ----
  	  $filename = get_settings('home').'/'.get_settings('blogfilename');
  	  $filename = preg_replace('#http://.+?/#', $_SERVER['DOCUMENT_ROOT'].'/', $filename);
! 
  	  if ($f = fopen($filename, 'w+')) {
  	    fwrite($f, $content);
***************
*** 344,348 ****
  	  $post_author = $user_data->ID;
  
! 	  $post_title = addslashes(xmlrpc_getposttitle($content));
  	  $post_category = xmlrpc_getpostcategory($content);
  
--- 346,350 ----
  	  $post_author = $user_data->ID;
  
! 	  $post_title = xmlrpc_getposttitle($content);
  	  $post_category = xmlrpc_getpostcategory($content);
  
***************
*** 365,370 ****
--- 367,459 ----
  	  return $post_ID;
  	}
+ 
+ 
+ 	/* blogger.editPost ...edits a post */
+ 	function blogger_editPost($args) {
+ 
+ 	  global $wpdb;
+ 
+ 	  $post_ID     = $args[1];
+ 	  $user_login  = $args[2];
+ 	  $user_pass   = $args[3];
+ 	  $new_content = $args[4];
+ 	  $publish     = $args[5];
+ 
+ 	  if (!$this->login_pass_ok($user_login, $user_pass)) {
+ 	    return $this->error;
+ 	  }
+ 
+ 	  $actual_post = wp_get_single_post($post_ID,ARRAY_A);
+ 
+ 	  if (!$actual_post) {
+ 	  	return new IXR_Error(404, 'Sorry, no such post.');
+ 	  }
+ 
+ 	  $post_author_data = get_userdata($actual_post['post_author']);
+ 	  $user_data = get_userdatabylogin($user_login);
+ 
+ 	  if (!user_can_edit_post($user_data->ID, $post_ID)) {
+ 	    return new IXR_Error(401, 'Sorry, you do not have the right to edit this post.');
+ 	  }
+ 
+ 	  extract($actual_post);
+ 	  $content = $newcontent;
+ 
+ 	  $post_title = xmlrpc_getposttitle($content);
+ 	  $post_category = xmlrpc_getpostcategory($content);
+ 
+ 	  $content = xmlrpc_removepostdata($content);
+ 	  $post_content = format_to_post($content);
+ 
+ 	  $postdata = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt');
+ 
+ 	  $result = wp_update_post($postdata);
+ 
+ 	  if (!$result) {
+ 	  	return new IXR_Error(500, 'For some strange yet very annoying reason, this post could not be edited.');
+ 	  }
+ 
+ 	  return true;
+ 	}
+ 
+ 
+ 	/* blogger.deletePost ...deletes a post */
+ 	function blogger_deletePost($args) {
+ 
+ 	  global $wpdb;
+ 
+ 	  $post_ID     = $args[1];
+ 	  $user_login  = $args[2];
+ 	  $user_pass   = $args[3];
+ 	  $publish     = $args[4];
+ 
+ 	  if (!$this->login_pass_ok($user_login, $user_pass)) {
+ 	    return $this->error;
+ 	  }
+ 
+ 	  $actual_post = wp_get_single_post($post_ID,ARRAY_A);
+ 
+ 	  if (!$actual_post) {
+ 	  	return new IXR_Error(404, 'Sorry, no such post.');
+ 	  }
+ 
+ 	  $user_data = get_userdatabylogin($user_login);
+ 
+ 	  if (!user_can_delete_post($user_data->ID, $post_ID)) {
+ 	    return new IXR_Error(401, 'Sorry, you do not have the right to delete this post.');
+ 	  }
+ 
+ 	  $result = wp_delete_post($post_ID);
+ 
+ 	  if (!$result) {
+ 	  	return new IXR_Error(500, 'For some strange yet very annoying reason, this post could not be deleted.');
+ 	  }
+ 
+ 	  return true;
+ 	}
+ 
  }
  
+ 
  $wp_xmlrpc_server = new wp_xmlrpc_server();
  




More information about the cvs mailing list