Beispiel #1
0
/**
 * blogger.getPost retieves a given post.
 *
 * This API call is not documented on
 * {@link http://www.blogger.com/developers/api/1_docs/}
 * @see http://www.sixapart.com/developers/xmlrpc/blogger_api/bloggergetpost.html
 *
 * @param xmlrpcmsg XML-RPC Message
 *					0 appkey (string): Unique identifier/passcode of the application sending the post.
 *						(See access info {@link http://www.blogger.com/developers/api/1_docs/#access} .)
 *					1 postid (string): Unique identifier of the post to be deleted.
 *					2 username (string): Login for a Blogger user who has permission to edit the given
 *						post (either the user who originally created it or an admin of the blog).
 *					3 password (string): Password for said username.
 * @return xmlrpcresp XML-RPC Response
 */
function blogger_getpost($m)
{
    // CHECK LOGIN:
    /**
     * @var User
     */
    if (!($current_User =& xmlrpcs_login($m, 2, 3))) {
        // Login failed, return (last) error:
        return xmlrpcs_resperror();
    }
    // GET POST:
    /**
     * @var Item
     */
    if (!($edited_Item =& xmlrpcs_get_Item($m, 1))) {
        // Failed, return (last) error:
        return xmlrpcs_resperror();
    }
    // CHECK PERMISSION:
    if (!xmlrpcs_can_view_item($edited_Item, $current_User)) {
        return xmlrpcs_resperror(3);
    }
    logIO('Permission granted.');
    $post_date = mysql2date('U', $edited_Item->issue_date);
    $post_date = gmdate('Ymd', $post_date) . 'T' . gmdate('H:i:s', $post_date);
    $content = '<title>' . $edited_Item->title . '</title>';
    $content .= '<category>' . $edited_Item->main_cat_ID . '</category>';
    $content .= $edited_Item->content;
    $struct = new xmlrpcval(array('userid' => new xmlrpcval($edited_Item->creator_user_ID), 'dateCreated' => new xmlrpcval($post_date, 'dateTime.iso8601'), 'content' => new xmlrpcval($content), 'postid' => new xmlrpcval($edited_Item->ID)), 'struct');
    logIO('OK.');
    return new xmlrpcresp($struct);
}
Beispiel #2
0
/**
 * mt.publishPost
 *
 * @see http://www.sixapart.com/developers/xmlrpc/movable_type_api/mtpublishpost.html
 *
 * @param xmlrpcmsg XML-RPC Message
 *					0 postid (string): Unique identifier of the post to publish
 *					1 username (string): Login for a user who is member of the blog.
 *					2 password (string): Password for said username.
 */
function mt_publishPost($m)
{
    global $localtimenow, $DB;
    // CHECK LOGIN:
    /**
     * @var User
     */
    if (!($current_User =& xmlrpcs_login($m, 1, 2))) {
        // Login failed, return (last) error:
        return xmlrpcs_resperror();
    }
    logIO('mt_publishPost: Login OK');
    // GET POST:
    /**
     * @var Item
     */
    if (!($edited_Item =& xmlrpcs_get_Item($m, 0))) {
        // Failed, return (last) error:
        return xmlrpcs_resperror();
    }
    if (!$current_User->check_perm('item_post!published', 'edit', false, $edited_Item)) {
        return xmlrpcs_resperror(3);
        // Permission denied
    }
    logIO('mt_publishPost: Permission granted');
    logIO('mt_publishPost: Old post status: ' . $edited_Item->status);
    $edited_Item->set('status', 'published');
    //$edited_Item->set( 'datestart', date('Y-m-d H:i:s', $localtimenow) );
    if ($edited_Item->dbupdate() === false) {
        // Could not update item...
        return xmlrpcs_resperror(99, 'Database error: ' . $DB->last_error);
        // DB error
    }
    logIO('mt_publishPost: Item published.');
    // Execute or schedule notifications & pings:
    logIO('mt_publishPost: Handling notifications...');
    $edited_Item->handle_post_processing(false, false);
    logIO('mt_publishPost: OK.');
    return new xmlrpcresp(new xmlrpcval(1, 'boolean'));
}
Beispiel #3
0
/**
 * mt.getPostCategories : Get the categories for a given post.
 *
 * @param xmlrpcmsg XML-RPC Message
 *					0 postid (string): Unique identifier of the post to query
 *					1 username (string): Login for a Blogger user who is member of the blog.
 *					2 password (string): Password for said username.
 */
function mt_getPostCategories($m)
{
    global $xmlrpcerruser;
    global $DB;
    // CHECK LOGIN:
    /**
     * @var User
     */
    if (!($current_User =& xmlrpcs_login($m, 1, 2))) {
        // Login failed, return (last) error:
        return xmlrpcs_resperror();
    }
    // GET POST:
    /**
     * @var Item
     */
    if (!($edited_Item =& xmlrpcs_get_Item($m, 0))) {
        // Failed, return (last) error:
        return xmlrpcs_resperror();
    }
    // CHECK PERMISSION: (we need at least one post/edit status)
    if (!$current_User->check_perm('blog_post_statuses', 1, false, $edited_Item->blog_ID)) {
        // Permission denied
        return xmlrpcs_resperror(3);
        // User error 3
    }
    logIO('Permission granted.');
    $categories = postcats_get_byID($edited_Item->ID);
    // Secondary categories
    $iSize = count($categories);
    // The number of objects ie categories
    logIO("mt_getgategorylist  no of categories..." . $iSize);
    // works
    $struct = array();
    for ($i = 0; $i < $iSize; $i++) {
        logIO("mt_getPostCategories categories  ..." . $categories[$i]);
        // In database cat_ID and cat_name from tablecategories
        $sql = "SELECT * FROM T_categories WHERE  cat_ID = {$categories[$i]} ";
        logIO("mt_getgategorylist  sql..." . $sql);
        $rows = $DB->get_results($sql);
        foreach ($rows as $row) {
            $Categoryname = $row->cat_name;
            logIO("mt_getPostCategories Categoryname  ..." . $Categoryname);
        }
        // Is this the primary cat?
        $isPrimary = $categories[$i] == $edited_Item->main_cat_ID ? 1 : 0;
        $struct[$i] = new xmlrpcval(array("categoryId" => new xmlrpcval($categories[$i]), "categoryName" => new xmlrpcval($Categoryname), "isPrimary" => new xmlrpcval($isPrimary)), "struct");
    }
    logIO('OK.');
    return new xmlrpcresp(new xmlrpcval($struct, "array"));
}
Beispiel #4
0
/**
 * wp.newComment
 *
 * @see http://codex.wordpress.org/XML-RPC_wp#wp.newComment
 *
 * Leave the second and third parameter blank to send anonymous comments
 *
 * @param xmlrpcmsg XML-RPC Message
 *					0 blogid (int): Unique identifier of the blog.
 *					1 username (string): User login.
 *					2 password (string): Password for said username.
 *					3 post_id (int): Target post ID
 *					4 params (struct):
 *						- comment_parent (int)
 *						- content (string)
 *						- author (string)
 *						- author_url (string)
 *						- author_email (string)
 */
function wp_newcomment($m)
{
    // GET BLOG:
    /**
     * @var Blog
     */
    if (!($Blog =& xmlrpcs_get_Blog($m, 0))) {
        // Blog not found
        return xmlrpcs_resperror();
    }
    if (!($commented_Item =& xmlrpcs_get_Item($m, 3))) {
        // Item not found
        return xmlrpcs_resperror();
    }
    $username = $m->getParam(1);
    $username = $username->scalarval();
    $password = $m->getParam(2);
    $password = $password->scalarval();
    $options = $m->getParam(4);
    $options = xmlrpc_decode_recurse($options);
    logIO('Params: ' . var_export($options, true));
    $User = NULL;
    if (!empty($password) || !empty($username)) {
        // Not an anonymous comment, let's check username
        // CHECK LOGIN:
        /**
         * @var User
         */
        if (!($User =& xmlrpcs_login($m, 1, 2))) {
            // Login failed, return (last) error:
            return xmlrpcs_resperror();
        }
    }
    $params = array('User' => &$User, 'password' => $password, 'username' => $username, 'content' => $options['content'], 'comment_parent' => intval($options['comment_parent']), 'author' => $options['author'], 'author_url' => $options['author_url'], 'author_email' => $options['author_email']);
    return xmlrpcs_new_comment($params, $commented_Item);
}
Beispiel #5
0
/**
 * b2.getPostURL
 *
 * @param xmlrpcmsg XML-RPC Message
 *					0 ? NO LONGER USED (was: blogid (string): Unique identifier of the blog to query)
 *					1 ? (string)
 *					2 username (string): Login for a Blogger user who is member of the blog.
 *					3 password (string): Password for said username.193
 *
 *					4 post_ID (string): Post to query
 * @return xmlrpcresp XML-RPC Response
 */
function b2_getposturl($m)
{
    global $xmlrpcerruser;
    global $siteurl;
    // CHECK LOGIN:
    /**
     * @var User
     */
    if (!($current_User =& xmlrpcs_login($m, 2, 3))) {
        // Login failed, return (last) error:
        return xmlrpcs_resperror();
    }
    // GET POST:
    /**
     * @var Item
     */
    if (!($edited_Item =& xmlrpcs_get_Item($m, 4))) {
        // Failed, return (last) error:
        return xmlrpcs_resperror();
    }
    // CHECK PERMISSION: (we need at least one post/edit status)
    if (!$current_User->check_perm('blog_post_statuses', 1, false, $edited_Item->blog_ID)) {
        // Permission denied
        return xmlrpcs_resperror(3);
        // User error 3
    }
    logIO('Permission granted.');
    logIO('OK.');
    return new xmlrpcresp(new xmlrpcval($edited_Item->get_permanent_url()));
}
Beispiel #6
0
/**
 * b2.getPostURL
 *
 * @param xmlrpcmsg XML-RPC Message
 *					0 ? NO LONGER USED (was: blogid (string): Unique identifier of the blog to query)
 *					1 ? (string)
 *					2 username (string): Login for a Blogger user who is member of the blog.
 *					3 password (string): Password for said username.193
 *
 *					4 post_ID (string): Post to query
 * @return xmlrpcresp XML-RPC Response
 */
function b2_getposturl($m)
{
    // CHECK LOGIN:
    /**
     * @var User
     */
    if (!($current_User =& xmlrpcs_login($m, 2, 3))) {
        // Login failed, return (last) error:
        return xmlrpcs_resperror();
    }
    // GET POST:
    /**
     * @var Item
     */
    if (!($edited_Item =& xmlrpcs_get_Item($m, 4))) {
        // Failed, return (last) error:
        return xmlrpcs_resperror();
    }
    // CHECK PERMISSION: (user needs to be able to view the item)
    if (!xmlrpcs_can_view_item($edited_Item, $User)) {
        // Permission denied
        return xmlrpcs_resperror(3);
        // User error 3
    }
    logIO('OK.');
    return new xmlrpcresp(new xmlrpcval($edited_Item->get_permanent_url()));
}
Beispiel #7
0
/**
 * metaWeblog.deletePost deletes a given post.
 *
 * This API call is not documented on
 * {@link http://www.blogger.com/developers/api/1_docs/}
 * @see http://www.xmlrpc.com/stories/storyReader$2460
 *
 * @param xmlrpcmsg XML-RPC Message
 *					0 appkey (string): Unique identifier/passcode of the application sending the post.
 *						(See access info {@link http://www.blogger.com/developers/api/1_docs/#access} .)
 *					1 postid (string): Unique identifier of the post to be deleted.
 *					2 username (string): Login for a Blogger user who has permission to edit the given
 *						post (either the user who originally created it or an admin of the blog).
 *					3 password (string): Password for said username.
 * @return xmlrpcresp XML-RPC Response
 */
function mw_deletepost($m)
{
    // CHECK LOGIN:
    if (!($current_User =& xmlrpcs_login($m, 2, 3))) {
        // Login failed, return (last) error:
        return xmlrpcs_resperror();
    }
    // GET POST:
    /**
     * @var Item
     */
    if (!($edited_Item =& xmlrpcs_get_Item($m, 1))) {
        // Failed, return (last) error:
        return xmlrpcs_resperror();
    }
    return xmlrpcs_delete_item($edited_Item);
}
Beispiel #8
0
/**
 * metaweblog.getPost retieves a given post.
 *
 * @see http://www.xmlrpc.com/metaWeblogApi#basicEntrypoints
 *
 * @param xmlrpcmsg XML-RPC Message
 *					0 postid (string): Unique identifier of the post
 *					1 username (string): Login for a Blogger user who has permission to edit the given
 *						post (either the user who originally created it or an admin of the blog).
 *					2 password (string): Password for said username.
 * @return xmlrpcresp XML-RPC Response
 */
function mw_getpost($m)
{
    global $xmlrpcerruser;
    // CHECK LOGIN:
    /**
     * @var User
     */
    if (!($current_User =& xmlrpcs_login($m, 1, 2))) {
        // Login failed, return (last) error:
        return xmlrpcs_resperror();
    }
    // GET POST:
    /**
     * @var Item
     */
    if (!($edited_Item =& xmlrpcs_get_Item($m, 0))) {
        // Failed, return (last) error:
        return xmlrpcs_resperror();
    }
    // CHECK PERMISSION: (we need at least one post/edit status)
    if (!$current_User->check_perm('blog_post_statuses', 1, false, $edited_Item->blog_ID)) {
        // Permission denied
        return xmlrpcs_resperror(3);
        // User error 3
    }
    logIO('Permission granted.');
    $post_date = mysql2date("U", $edited_Item->issue_date);
    $post_date = gmdate("Ymd", $post_date) . "T" . gmdate("H:i:s", $post_date);
    $struct = new xmlrpcval(array('link' => new xmlrpcval($edited_Item->get_permanent_url()), 'title' => new xmlrpcval($edited_Item->title), 'description' => new xmlrpcval($edited_Item->content), 'dateCreated' => new xmlrpcval($post_date, "dateTime.iso8601"), 'userid' => new xmlrpcval($edited_Item->creator_user_ID), 'postid' => new xmlrpcval($edited_Item->ID), 'content' => new xmlrpcval($edited_Item->content), 'permalink' => new xmlrpcval($edited_Item->get_permanent_url()), 'categories' => new xmlrpcval($edited_Item->main_cat_ID)), "struct");
    $resp = $struct;
    logIO('OK.');
    return new xmlrpcresp($resp);
}
Beispiel #9
0
/**
 * blogger.getPost retieves a given post.
 *
 * This API call is not documented on
 * {@link http://www.blogger.com/developers/api/1_docs/}
 * @see http://www.sixapart.com/developers/xmlrpc/blogger_api/bloggergetpost.html
 *
 * @param xmlrpcmsg XML-RPC Message
 *					0 appkey (string): Unique identifier/passcode of the application sending the post.
 *						(See access info {@link http://www.blogger.com/developers/api/1_docs/#access} .)
 *					1 postid (string): Unique identifier of the post to be deleted.
 *					2 username (string): Login for a Blogger user who has permission to edit the given
 *						post (either the user who originally created it or an admin of the blog).
 *					3 password (string): Password for said username.
 * @return xmlrpcresp XML-RPC Response
 */
function blogger_getpost($m)
{
    global $xmlrpcerruser;
    // CHECK LOGIN:
    /**
     * @var User
     */
    if (!($current_User =& xmlrpcs_login($m, 2, 3))) {
        // Login failed, return (last) error:
        return xmlrpcs_resperror();
    }
    // GET POST:
    /**
     * @var Item
     */
    if (!($edited_Item =& xmlrpcs_get_Item($m, 1))) {
        // Failed, return (last) error:
        return xmlrpcs_resperror();
    }
    // CHECK PERMISSION: (we need at least one post/edit status)
    // (we should be able to see even if we cannot edit the particular status of that post)
    if (!$current_User->check_perm('blog_post_statuses', 1, false, $edited_Item->blog_ID)) {
        // Permission denied
        return xmlrpcs_resperror(3);
        // User error 3
    }
    logIO('Permission granted.');
    $post_date = mysql2date("U", $edited_Item->issue_date);
    $post_date = gmdate("Ymd", $post_date) . "T" . gmdate("H:i:s", $post_date);
    $content = '<title>' . $edited_Item->title . '</title>';
    $content .= '<category>' . $edited_Item->main_cat_ID . '</category>';
    $content .= $edited_Item->content;
    $struct = new xmlrpcval(array('userid' => new xmlrpcval($edited_Item->creator_user_ID), 'dateCreated' => new xmlrpcval($post_date, 'dateTime.iso8601'), 'content' => new xmlrpcval($content), 'postid' => new xmlrpcval($edited_Item->ID)), "struct");
    logIO('OK.');
    return new xmlrpcresp($struct);
}