function blogapi_blogger_edit_post

6.x blogapi.module blogapi_blogger_edit_post($appkey, $postid, $username, $password, $content, $publish)

Blogging API callback. Modifies the specified blog node.

1 call to blogapi_blogger_edit_post()
blogapi_metaweblog_edit_post in drupal-6.x/modules/blogapi/blogapi.module
1 string reference to 'blogapi_blogger_edit_post'
blogapi_xmlrpc in drupal-6.x/modules/blogapi/blogapi.module
Implementation of hook_xmlrpc().

File

drupal-6.x/modules/blogapi/blogapi.module, line 248
Enable users to post using applications that support XML-RPC blog APIs.

Code

function blogapi_blogger_edit_post($appkey, $postid, $username, $password, $content, $publish) {

  $user = blogapi_validate_user($username, $password);

  if (!$user->uid) {
    return blogapi_error($user);
  }

  $node = node_load($postid);
  if (!$node) {
    return blogapi_error(t('n/a'));
  }
  // Let the teaser be re-generated.
  unset($node->teaser);

  if (!node_access('update', $node)) {
    return blogapi_error(t('You do not have permission to update this post.'));
  }
  // Save the original status for validation of permissions.
  $original_status = $node->status;
  $node->status = $publish;

  // check for bloggerAPI vs. metaWeblogAPI
  if (is_array($content)) {
    $node->title = $content['title'];
    $node->body = $content['description'];
    _blogapi_mt_extra($node, $content);
  }
  else {
    $node->title = blogapi_blogger_title($content);
    $node->body = $content;
  }

  node_invoke_nodeapi($node, 'blogapi edit');

  $valid = blogapi_status_error_check($node, $original_status);
  if ($valid !== TRUE) {
    return $valid;
  }

  node_validate($node);
  if ($errors = form_get_errors()) {
    return blogapi_error(implode("\n", $errors));
  }

  if (user_access('administer nodes') && !isset($edit['date'])) {
    $node->date = format_date($node->created, 'custom', 'Y-m-d H:i:s O');
  }
  $node = node_submit($node);
  node_save($node);
  if ($node->nid) {
    watchdog('content', '@type: updated %title using Blog API.', array('@type' => $node->type, '%title' => $node->title), WATCHDOG_NOTICE, l(t('view'), "node/$node->nid"));
    return TRUE;
  }

  return blogapi_error(t('Error storing post.'));
}