Make WordPress Core

Changeset 1562


Ignore:
Timestamp:
08/25/2004 03:24:09 PM (20 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.