openvk/Web/Models/Entities/Traits/TIgnorable.php
lalka2018 874a654bd4 Спустя три месяца
- Новые методы апи, newsfeed addBan и deleteBan. В newsfeed.getGlobal добавлен параметр return_banned хотя в ориг вк он был в newsfeed.get
- Все методы, связанные с игнором, перемещены в трейт
- Я уже забыл чё я там ещё добавил. А, ну да. В окне игноров теперь вместо описания группычеловека показывается кнопка "не игнорировать". И Кнопка Показать Игноры Не Показывается Если Игноров Нет
2023-12-26 15:37:09 +03:00

48 lines
1.3 KiB
PHP

<?php declare(strict_types=1);
namespace openvk\Web\Models\Entities\Traits;
use Chandler\Database\DatabaseConnection;
use openvk\Web\Models\Entities\User;
trait TIgnorable
{
function isIgnoredBy(User $user): bool
{
$ctx = DatabaseConnection::i()->getContext();
$data = [
"owner" => $user->getId(),
"ignored_source" => $this->getRealId(),
];
$sub = $ctx->table("ignored_sources")->where($data);
if(!$sub->fetch()) {
return false;
}
return true;
}
function getIgnoresCount()
{
return sizeof(DatabaseConnection::i()->getContext()->table("ignored_sources")->where("ignored_source", $this->getRealId()));
}
function toggleIgnore(User $user): bool
{
if($this->isIgnoredBy($user)) {
DatabaseConnection::i()->getContext()->table("ignored_sources")->where([
"owner" => $user->getId(),
"ignored_source" => $this->getRealId(),
])->delete();
return false;
} else {
DatabaseConnection::i()->getContext()->table("ignored_sources")->insert([
"owner" => $user->getId(),
"ignored_source" => $this->getRealId(),
]);
return true;
}
}
}