function blogapi_blogger_edit_post in Blog API 7
Same name and namespace in other branches
- 8 modules/blogapi_blogger/blogapi_blogger.module \blogapi_blogger_edit_post()
- 7.2 modules/blogapi_blogger/blogapi_blogger.module \blogapi_blogger_edit_post()
Blogging API callback. Modifies the specified blog node.
1 call to blogapi_blogger_edit_post()
1 string reference to 'blogapi_blogger_edit_post'
- blogapi_xmlrpc in ./
blogapi.module - Implement hook_xmlrpc().
File
- ./
blogapi.module, line 294 - 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[LANGUAGE_NONE][0]['value'] = $content['description'];
_blogapi_mt_extra($node, $content);
}
else {
$node->title = blogapi_blogger_title($content);
$node->body[LANGUAGE_NONE][0]['value'] = $content;
}
module_invoke_all('node_blogapi_edit', $node);
$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.'));
}