getRecord()->owner; } function getName(bool $tr = true): string { $orig_name = $this->getRecord()->name; $name = $orig_name; if($tr && $name[0] === "_") $name = tr("custom_field_" . substr($name, 1)); if(str_contains($name, "custom_field")) return $orig_name; return $name; } function getContent(): string { return $this->getRecord()->text; } function getPlace(): string { switch($this->getRecord()->place) { case AdditionalField::PLACE_CONTACTS: return "contact"; case AdditionalField::PLACE_INTERESTS: return "interest"; } return "contact"; } function isContact(): bool { return $this->getRecord()->place == AdditionalField::PLACE_CONTACTS; } function toVkApiStruct(): object { return (object) [ "type" => $this->getRecord()->place, "name" => $this->getName(), "text" => $this->getContent() ]; } static function getById(int $id) { $ctx = DatabaseConnection::i()->getContext(); $entry = $ctx->table("additional_fields")->where("id", $id)->fetch(); if(!$entry) return NULL; return new AdditionalField($entry); } static function getByOwner(int $owner): \Traversable { $ctx = DatabaseConnection::i()->getContext(); $entries = $ctx->table("additional_fields")->where("owner", $owner); foreach($entries as $entry) { yield new AdditionalField($entry); } } static function getCountByOwner(int $owner): \Traversable { return DatabaseConnection::i()->getContext()->table("additional_fields")->where("owner", $owner)->count(); } static function resetByOwner(int $owner): bool { DatabaseConnection::i()->getContext()->table("additional_fields")->where("owner", $owner)->delete(); return true; } }