X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FPinned.php;h=97364ceffbc147b9bfecb54f7ff3665346591ff4;hb=71b6226909aaef47ae4cfa7ba3d880cb0a73e2ef;hp=590bda159ea69ab4d290180ac5e87341a98f1251;hpb=30e02beb461bcfe564f69479e5562f620896f28b;p=friendica.git diff --git a/src/Module/Pinned.php b/src/Module/Pinned.php index 590bda159e..97364ceffb 100644 --- a/src/Module/Pinned.php +++ b/src/Module/Pinned.php @@ -1,8 +1,28 @@ . + * + */ namespace Friendica\Module; use Friendica\BaseModule; +use Friendica\DI; use Friendica\Model\Item; /** @@ -10,51 +30,31 @@ use Friendica\Model\Item; */ class Pinned extends BaseModule { - public static function rawContent($parameters) + public static function rawContent(array $parameters = []) { - $a = self::getApp(); - $pinned = 0; - $itemId = null; - if (!local_user()) { - exit(); + throw new \Friendica\Network\HTTPException\ForbiddenException(); } - // @TODO: Replace with parameter from router - if ($a->argc > 1) { - $itemId = intval($a->argv[1]); + if (empty($parameters['item'])) { + throw new \Friendica\Network\HTTPException\BadRequestException(); } - if (!$itemId) { - exit(); - } + $itemId = intval($parameters['item']); - $item = Item::selectFirstForUser(local_user(), ['pinned'], ['uid' => local_user(), 'id' => $itemId]); - if (empty($item)) { - exit(); - } - - if (!intval($item['pinned'])) { - $pinned = 1; - } + $pinned = !Item::getPinned($itemId, local_user()); - Item::update(['pinned' => $pinned], ['id' => $itemId]); + Item::setPinned($itemId, local_user(), $pinned); // See if we've been passed a return path to redirect to $returnPath = $_REQUEST['return'] ?? ''; - if ($returnPath) { - $rand = '_=' . time(); - if (strpos($returnPath, '?')) { - $rand = "&$rand"; - } else { - $rand = "?$rand"; - } - - $a->internalRedirect($returnPath . $rand); + if (!empty($returnPath)) { + $rand = '_=' . time() . (strpos($returnPath, '?') ? '&' : '?') . 'rand'; + DI::baseUrl()->redirect($returnPath . $rand); } // the json doesn't really matter, it will either be 0 or 1 - echo json_encode($pinned); + echo json_encode((int)$pinned); exit(); } }