X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fitems.php;h=01666949bbc82a36d97fdf72e8cbcb98072069d9;hb=563a24e30bc401a305fd939cfd71832764b75776;hp=887bbb5b685b5d387d0d163d795b6cce82c6e660;hpb=8a46c786f37550160d81e7b7ecbcacb4c9fff493;p=friendica.git diff --git a/include/items.php b/include/items.php index 887bbb5b68..01666949bb 100644 --- a/include/items.php +++ b/include/items.php @@ -21,6 +21,7 @@ use Friendica\Protocol\OStatus; use Friendica\Util\DateTimeFormat; use Friendica\Util\Network; use Friendica\Util\ParseUrl; +use Friendica\Util\Strings; use Friendica\Util\Temporal; require_once 'include/text.php'; @@ -308,7 +309,7 @@ function subscribe_to_hub($url, array $importer, array $contact, $hubmode = 'sub $push_url = System::baseUrl() . '/pubsub/' . $user['nickname'] . '/' . $contact['id']; // Use a single verify token, even if multiple hubs - $verify_token = ((strlen($contact['hub-verify'])) ? $contact['hub-verify'] : random_string()); + $verify_token = ((strlen($contact['hub-verify'])) ? $contact['hub-verify'] : Strings::getRandomHex()); $params= 'hub.mode=' . $hubmode . '&hub.callback=' . urlencode($push_url) . '&hub.topic=' . urlencode($contact['poll']) . '&hub.verify=async&hub.verify_token=' . $verify_token; @@ -345,13 +346,13 @@ function drop_items(array $items) } } -function drop_item($id) +function drop_item($id, $return = '') { $a = BaseObject::getApp(); // locate item to be deleted - $fields = ['id', 'uid', 'guid', 'contact-id', 'deleted']; + $fields = ['id', 'uid', 'guid', 'contact-id', 'deleted', 'gravity', 'parent']; $item = Item::selectFirstForUser(local_user(), $fields, ['id' => $id]); if (!DBA::isResult($item)) { @@ -406,11 +407,44 @@ function drop_item($id) $a->internalRedirect('display/' . $item['guid']); } + $is_comment = ($item['gravity'] == GRAVITY_COMMENT) ? true : false; + $parentitem = null; + if (!empty($item['parent'])){ + $fields = ['guid']; + $parentitem = Item::selectFirstForUser(local_user(), $fields, ['id' => $item['parent']]); + } + // delete the item Item::deleteForUser(['id' => $item['id']], local_user()); - $a->internalRedirect('network'); - //NOTREACHED + $return_url = hex2bin($return); + + // removes update_* from return_url to ignore Ajax refresh + $return_url = str_replace("update_", "", $return_url); + + // Check if delete a comment + if ($is_comment) { + // Return to parent guid + if (!empty($parentitem)) { + $a->internalRedirect('display/' . $parentitem['guid']); + //NOTREACHED + } + // In case something goes wrong + else { + $a->internalRedirect('network'); + //NOTREACHED + } + } + else { + // if unknown location or deleting top level post called from display + if (empty($return_url) || strpos($return_url, 'display') !== false) { + $a->internalRedirect('network'); + //NOTREACHED + } else { + $a->internalRedirect($return_url); + //NOTREACHED + } + } } else { notice(L10n::t('Permission denied.') . EOL); $a->internalRedirect('display/' . $item['guid']); @@ -444,7 +478,7 @@ function list_post_dates($uid, $wall) $dend = substr($dnow, 0, 8) . Temporal::getDaysInMonth(intval($dnow), intval(substr($dnow, 5))); $start_month = DateTimeFormat::utc($dstart, 'Y-m-d'); $end_month = DateTimeFormat::utc($dend, 'Y-m-d'); - $str = day_translate(DateTimeFormat::utc($dnow, 'F')); + $str = L10n::getDay(DateTimeFormat::utc($dnow, 'F')); if (empty($ret[$dyear])) { $ret[$dyear] = [];