mirror of
https://github.com/friendica/friendica
synced 2025-04-22 19:10:12 +00:00
Display featured posts for contacts
This commit is contained in:
parent
8669f12176
commit
75bc4eccb7
21 changed files with 172 additions and 118 deletions
|
@ -96,7 +96,7 @@ class Statuses extends BaseApi
|
|||
}
|
||||
|
||||
if ($request['pinned']) {
|
||||
$condition = DBA::mergeConditions($condition, ['pinned' => true]);
|
||||
$condition = DBA::mergeConditions($condition, ['featured' => true]);
|
||||
}
|
||||
|
||||
if ($request['exclude_replies']) {
|
||||
|
|
|
@ -46,11 +46,7 @@ class Pin extends BaseApi
|
|||
DI::mstdnError()->RecordNotFound();
|
||||
}
|
||||
|
||||
if ($item['gravity'] != GRAVITY_PARENT) {
|
||||
DI::mstdnError()->UnprocessableEntity(DI::l10n()->t('Only starting posts can be pinned'));
|
||||
}
|
||||
|
||||
Post\ThreadUser::setPinned($this->parameters['id'], $uid, true);
|
||||
Post\Collection::add($this->parameters['id'], Post\Collection::FEATURED);
|
||||
|
||||
System::jsonExit(DI::mstdnStatus()->createFromUriId($this->parameters['id'], $uid)->toArray());
|
||||
}
|
||||
|
|
|
@ -46,11 +46,7 @@ class Unpin extends BaseApi
|
|||
DI::mstdnError()->RecordNotFound();
|
||||
}
|
||||
|
||||
if ($item['gravity'] != GRAVITY_PARENT) {
|
||||
DI::mstdnError()->UnprocessableEntity(DI::l10n()->t('Only starting posts can be pinned'));
|
||||
}
|
||||
|
||||
Post\ThreadUser::setPinned($this->parameters['id'], $uid, false);
|
||||
Post\Collection::remove($this->parameters['id'], Post\Collection::FEATURED);
|
||||
|
||||
System::jsonExit(DI::mstdnStatus()->createFromUriId($this->parameters['id'], $uid)->toArray());
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ class Pin extends BaseModule
|
|||
|
||||
$itemId = intval($this->parameters['id']);
|
||||
|
||||
$item = Post::selectFirst(['uri-id', 'uid'], ['id' => $itemId]);
|
||||
$item = Post::selectFirst(['uri-id', 'uid', 'featured'], ['id' => $itemId]);
|
||||
if (!DBA::isResult($item)) {
|
||||
throw new HTTPException\NotFoundException();
|
||||
}
|
||||
|
@ -57,9 +57,13 @@ class Pin extends BaseModule
|
|||
throw new HttpException\ForbiddenException($l10n->t('Access denied.'));
|
||||
}
|
||||
|
||||
$pinned = !Post\ThreadUser::getPinned($item['uri-id'], local_user());
|
||||
$pinned = !$item['featured'];
|
||||
|
||||
Post\ThreadUser::setPinned($item['uri-id'], local_user(), $pinned);
|
||||
if ($pinned) {
|
||||
Post\Collection::add($item['uri-id'], Post\Collection::FEATURED);
|
||||
} else {
|
||||
Post\Collection::remove($item['uri-id'], Post\Collection::FEATURED);
|
||||
}
|
||||
|
||||
// See if we've been passed a return path to redirect to
|
||||
$return_path = $_REQUEST['return'] ?? '';
|
||||
|
|
|
@ -29,6 +29,7 @@ use Friendica\Core\Protocol;
|
|||
use Friendica\Core\Session;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\DI;
|
||||
use Friendica\Model\Contact;
|
||||
use Friendica\Model\Item;
|
||||
use Friendica\Model\Post;
|
||||
use Friendica\Model\Post\Category;
|
||||
|
@ -207,20 +208,8 @@ class Status extends BaseProfile
|
|||
$items = Post::toArray($items_stmt);
|
||||
|
||||
if ($pager->getStart() == 0 && !empty($profile['uid'])) {
|
||||
$condition = ['private' => [Item::PUBLIC, Item::UNLISTED]];
|
||||
$remote_user = Session::getRemoteContactID($profile['uid']);
|
||||
if (!empty($remote_user)) {
|
||||
$permissionSets = DI::permissionSet()->selectByContactId($remote_user, $profile['uid']);
|
||||
if (!empty($permissionSets)) {
|
||||
$condition = ['psid' => array_merge($permissionSets->column('id'),
|
||||
[DI::permissionSet()->selectPublicForUser($profile['uid'])->id])];
|
||||
}
|
||||
} elseif ($profile['uid'] == local_user()) {
|
||||
$condition = [];
|
||||
}
|
||||
|
||||
$pinned_items = Post::selectPinned($profile['uid'], ['uri-id', 'pinned'], $condition);
|
||||
$pinned = Post::toArray($pinned_items);
|
||||
$pcid = Contact::getPublicIdByUserId($profile['uid']);
|
||||
$pinned = DBA::selectToArray('collection-view', [], ['cid' => $pcid]);
|
||||
$items = array_merge($items, $pinned);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue