} // assign values to the entity, stopping on error. if (!$error) { foreach ($values as $name => $value) { $news->{$name} = $value; } } // only try to save base entity if no errors if (!$error) { if ($news->save()) { // remove sticky form entries elgg_clear_sticky_form('news'); // remove autosave draft if exists $news->deleteAnnotations('news_auto_save'); // no longer a brand new post. $news->deleteMetadata('new_post'); // if this was an edit, create a revision annotation if (!$new_post && $revision_text) { $news->annotate('news_revision', $revision_text); } system_message(elgg_echo('news:message:saved')); $status = $news->status; // add to river if changing status or published, regardless of new post // because we remove it for drafts. if (($new_post || $old_status == 'draft') && $status == 'published') { elgg_create_river_item(array('view' => 'river/object/news/create', 'action_type' => 'create', 'subject_guid' => $news->owner_guid, 'object_guid' => $news->getGUID())); elgg_trigger_event('publish', 'news', $news); // reset the creation time for news posts that move from draft to published if ($guid) { $news->time_created = time(); $news->save();