Does anybody know how to change the landing page after a post is posted. Right now it goes tot he post's actual page. I would like it to back to the main blogs list...
info@elgg.org
Security issues should be reported to security@elgg.org!
©2014 the Elgg Foundation
Elgg is a registered trademark of Thematic Networks.
Cover image by RaĆ¼l Utrera is used under Creative Commons license.
Icons by Flaticon and FontAwesome.
- New_age@Ejirefeedafe
New_age - 0 likes
You must log in to post replies.Visit mod/blog/actions/blog/save.php and replace with this code
<?php
/**
* Save blog entity
*
* @package Blog
*/
// start a new sticky form session in case of failure
elgg_make_sticky_form('blog');
// save or preview
$save = (bool)get_input('save');
// store errors to pass along
$error = FALSE;
$error_forward_url = REFERER;
$user = elgg_get_logged_in_user_entity();
// edit or create a new entity
$guid = get_input('guid');
if ($guid) {
$entity = get_entity($guid);
if (elgg_instanceof($entity, 'object', 'blog') && $entity->canEdit()) {
$blog = $entity;
} else {
register_error(elgg_echo('blog:error:post_not_found'));
forward(get_input('forward', REFERER));
}
// save some data for revisions once we save the new edit
$revision_text = $blog->description;
$new_post = $blog->new_post;
} else {
$blog = new ElggBlog();
$blog->subtype = 'blog';
$new_post = TRUE;
}
// set the previous status for the hooks to update the time_created and river entries
$old_status = $blog->status;
// set defaults and required values.
$values = array(
'title' => '',
'description' => '',
'status' => 'draft',
'access_id' => ACCESS_DEFAULT,
'comments_on' => 'On',
'excerpt' => '',
'tags' => '',
'container_guid' => (int)get_input('container_guid'),
);
// fail if a required entity isn't set
$required = array('title', 'description');
// load from POST and do sanity and access checking
foreach ($values as $name => $default) {
$value = get_input($name, $default);
if (in_array($name, $required) && empty($value)) {
$error = elgg_echo("blog:error:missing:$name");
}
if ($error) {
break;
}
switch ($name) {
case 'tags':
if ($value) {
$values[$name] = string_to_tag_array($value);
} else {
unset ($values[$name]);
}
break;
case 'excerpt':
if ($value) {
$values[$name] = elgg_get_excerpt($value);
}
break;
case 'container_guid':
// this can't be empty or saving the base entity fails
if (!empty($value)) {
if (can_write_to_container($user->getGUID(), $value)) {
$values[$name] = $value;
} else {
$error = elgg_echo("blog:error:cannot_write_to_container");
}
} else {
unset($values[$name]);
}
break;
// don't try to set the guid
case 'guid':
unset($values['guid']);
break;
default:
$values[$name] = $value;
break;
}
}
// if preview, force status to be draft
if ($save == false) {
$values['status'] = 'draft';
}
// assign values to the entity, stopping on error.
if (!$error) {
foreach ($values as $name => $value) {
if (FALSE === ($blog->$name = $value)) {
$error = elgg_echo('blog:error:cannot_save' . "$name=$value");
break;
}
}
}
// only try to save base entity if no errors
if (!$error) {
if ($blog->save()) {
// remove sticky form entries
elgg_clear_sticky_form('blog');
// remove autosave draft if exists
$blog->deleteAnnotations('blog_auto_save');
// no longer a brand new post.
$blog->deleteMetadata('new_post');
// if this was an edit, create a revision annotation
if (!$new_post && $revision_text) {
$blog->annotate('blog_revision', $revision_text);
}
system_message(elgg_echo('blog:message:saved'));
$status = $blog->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') {
add_to_river('river/object/blog/create', 'create', elgg_get_logged_in_user_guid(), $blog->getGUID());
if ($guid) {
$blog->time_created = time();
$blog->save();
}
} elseif ($old_status == 'published' && $status == 'draft') {
elgg_delete_river(array(
'object_guid' => $blog->guid,
'action_type' => 'create',
));
}
if ($blog->status == 'published' || $save == false) {
forward("blog/all");
} else {
forward("blog/edit/$blog->guid");
}
} else {
register_error(elgg_echo('blog:error:cannot_save'));
forward($error_forward_url);
}
} else {
register_error($error);
forward($error_forward_url);
}