diff --git a/mod/editpost.php b/mod/editpost.php index 258585ef1c..d4f5567eeb 100644 --- a/mod/editpost.php +++ b/mod/editpost.php @@ -21,12 +21,18 @@ function editpost_content(App $a) } $post_id = (($a->argc > 1) ? intval($a->argv[1]) : 0); + $return_url = (($a->argc > 2) ? base64_decode($a->argv[2]) : ''); if (!$post_id) { notice(L10n::t('Item not found') . EOL); return; } + // Fallback to SESSION return_path + if (empty($return_url)) { + $return_url = $_SESSION['return_path']; + } + $fields = ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid', 'type', 'body', 'title', 'file', 'wall', 'post-type']; @@ -95,7 +101,7 @@ function editpost_content(App $a) $o .= replace_macros($tpl, [ '$is_edit' => true, - '$return_path' => $_SESSION['return_url'], + '$return_path' => $return_url, '$action' => 'item', '$share' => L10n::t('Save'), '$upload' => L10n::t('Upload photo'), diff --git a/mod/message.php b/mod/message.php index 8c9aa657df..7377ba5e48 100644 --- a/mod/message.php +++ b/mod/message.php @@ -92,7 +92,7 @@ function message_post(App $a) $a->argc = 2; $a->argv[1] = 'new'; } else { - goaway($_SESSION['return_url']); + goaway($a->cmd . '/' . $ret); } } diff --git a/src/Object/Post.php b/src/Object/Post.php index 038ca270d7..c52078e521 100644 --- a/src/Object/Post.php +++ b/src/Object/Post.php @@ -157,7 +157,7 @@ class Post extends BaseObject if ($item["event-id"] != 0) { $edpost = ["events/event/" . $item['event-id'], L10n::t("Edit")]; } else { - $edpost = ["editpost/" . $item['id'], L10n::t("Edit")]; + $edpost = ["editpost/" . $item['id'] . "/" . base64_encode($a->cmd), L10n::t("Edit")]; } $dropping = in_array($item['uid'], [0, local_user()]); } else {