Make WordPress Core

Changeset 1562


Ignore:
Timestamp:
08/25/2004 03:24:09 PM (22 years ago)
Author:
michelvaldrighi
Message:

added blogger.editPost and blogger.deletePost, time to move on to metaWeblog API addition

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/xmlrpc.php

    r1429 r1562  
    4747                  'blogger.setTemplate' => 'this:blogger_setTemplate',
    4848                  'blogger.newPost' => 'this:blogger_newPost',
     49                  'blogger.editPost' => 'this:blogger_editPost',
     50                  'blogger.deletePost' => 'this:blogger_deletePost',
    4951
    5052                  'demo.sayHello' => 'this:sayHello',
    … …  
    149151          $content .= '<category>'.$categories.'</category>';
    150152          $content .= stripslashes($post_data['Content']);
    151          
     153
    152154          $struct = array(
    153155            'userid'    => $post_data['Author_ID'],
    … …  
    156158            'postid'  => $post_data['ID']
    157159          );
    158          
     160
    159161          return $struct;
    160162        }
    … …  
    274276          $filename = get_settings('home').'/'.get_settings('blogfilename');
    275277          $filename = preg_replace('#http://.+?/#', $_SERVER['DOCUMENT_ROOT'].'/', $filename);
    276          
     278
    277279          $f = fopen($filename, 'r');
    278280          $content = fread($f, filesize($filename));
    … …  
    308310          $filename = get_settings('home').'/'.get_settings('blogfilename');
    309311          $filename = preg_replace('#http://.+?/#', $_SERVER['DOCUMENT_ROOT'].'/', $filename);
    310          
     312
    311313          if ($f = fopen($filename, 'w+')) {
    312314            fwrite($f, $content);
    … …  
    344346          $post_author = $user_data->ID;
    345347
    346           $post_title = addslashes(xmlrpc_getposttitle($content));
     348          $post_title = xmlrpc_getposttitle($content);
    347349          $post_category = xmlrpc_getpostcategory($content);
    348350
    … …  
    365367          return $post_ID;
    366368        }
     369
     370
     371        /* blogger.editPost ...edits a post */
     372        function blogger_editPost($args) {
     373
     374          global $wpdb;
     375
     376          $post_ID     = $args[1];
     377          $user_login  = $args[2];
     378          $user_pass   = $args[3];
     379          $new_content = $args[4];
     380          $publish     = $args[5];
     381
     382          if (!$this->login_pass_ok($user_login, $user_pass)) {
     383            return $this->error;
     384          }
     385
     386          $actual_post = wp_get_single_post($post_ID,ARRAY_A);
     387
     388          if (!$actual_post) {
     389                return new IXR_Error(404, 'Sorry, no such post.');
     390          }
     391
     392          $post_author_data = get_userdata($actual_post['post_author']);
     393          $user_data = get_userdatabylogin($user_login);
     394
     395          if (!user_can_edit_post($user_data->ID, $post_ID)) {
     396            return new IXR_Error(401, 'Sorry, you do not have the right to edit this post.');
     397          }
     398
     399          extract($actual_post);
     400          $content = $newcontent;
     401
     402          $post_title = xmlrpc_getposttitle($content);
     403          $post_category = xmlrpc_getpostcategory($content);
     404
     405          $content = xmlrpc_removepostdata($content);
     406          $post_content = format_to_post($content);
     407
     408          $postdata = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt');
     409
     410          $result = wp_update_post($postdata);
     411
     412          if (!$result) {
     413                return new IXR_Error(500, 'For some strange yet very annoying reason, this post could not be edited.');
     414          }
     415
     416          return true;
     417        }
     418
     419
     420        /* blogger.deletePost ...deletes a post */
     421        function blogger_deletePost($args) {
     422
     423          global $wpdb;
     424
     425          $post_ID     = $args[1];
     426          $user_login  = $args[2];
     427          $user_pass   = $args[3];
     428          $publish     = $args[4];
     429
     430          if (!$this->login_pass_ok($user_login, $user_pass)) {
     431            return $this->error;
     432          }
     433
     434          $actual_post = wp_get_single_post($post_ID,ARRAY_A);
     435
     436          if (!$actual_post) {
     437                return new IXR_Error(404, 'Sorry, no such post.');
     438          }
     439
     440          $user_data = get_userdatabylogin($user_login);
     441
     442          if (!user_can_delete_post($user_data->ID, $post_ID)) {
     443            return new IXR_Error(401, 'Sorry, you do not have the right to delete this post.');
     444          }
     445
     446          $result = wp_delete_post($post_ID);
     447
     448          if (!$result) {
     449                return new IXR_Error(500, 'For some strange yet very annoying reason, this post could not be deleted.');
     450          }
     451
     452          return true;
     453        }
     454
    367455}
    368456
     457
    369458$wp_xmlrpc_server = new wp_xmlrpc_server();
    370459
Note: See TracChangeset for help on using the changeset viewer.