X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fitems.php;h=c3113836138c1ff8c25784a109ca22dc2b0d355d;hb=833c57cc35417dc5f44661ba4c9f7a5ec462b236;hp=f28f8f57189ba321a12633c54d563f18e83226f6;hpb=dc669fa736daa2c666b6333c550ebd98083e5ca8;p=friendica.git diff --git a/include/items.php b/include/items.php index f28f8f5718..c311383613 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'; @@ -96,7 +97,7 @@ function add_page_info_data(array $data, $no_photos = false) /// @TODO make a positive list of allowed characters $hashtag = str_replace([" ", "+", "/", ".", "#", "'", "’", "`", "(", ")", "„", "“"], ["", "", "", "", "", "", "", "", "", "", "", ""], $keyword); - $hashtags .= "#[url=" . System::baseUrl() . "/search?tag=" . rawurlencode($hashtag) . "]" . $hashtag . "[/url] "; + $hashtags .= "#[url=" . System::baseUrl() . "/search?tag=" . $hashtag . "]" . $hashtag . "[/url] "; } } @@ -147,7 +148,7 @@ function add_page_keywords($url, $photo = "", $keywords = false, $keyword_blackl $tags .= ", "; } - $tags .= "#[url=" . System::baseUrl() . "/search?tag=" . rawurlencode($hashtag) . "]" . $hashtag . "[/url]"; + $tags .= "#[url=" . System::baseUrl() . "/search?tag=" . $hashtag . "]" . $hashtag . "[/url]"; } } @@ -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; @@ -351,7 +352,7 @@ function drop_item($id, $return = '') // 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,17 +407,43 @@ function drop_item($id, $return = '') $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()); $return_url = hex2bin($return); - if (empty($return_url) || strpos($return_url, 'display') !== false) { - $a->internalRedirect('network'); - //NOTREACHED + + // 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 { - $a->internalRedirect($return_url); - //NOTREACHED + // 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);