getRecord()->owner; } public 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; } public function getContent(): string { return $this->getRecord()->text; } public function getPlace(): string { switch ($this->getRecord()->place) { case AdditionalField::PLACE_CONTACTS: return "contact"; case AdditionalField::PLACE_INTERESTS: return "interest"; } return "contact"; } public function isContact(): bool { return $this->getRecord()->place == AdditionalField::PLACE_CONTACTS; } public function toVkApiStruct(): object { return (object) [ "type" => $this->getRecord()->place, "name" => $this->getName(), "text" => $this->getContent(), ]; } public 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); } public 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); } } public static function getCountByOwner(int $owner): \Traversable { return DatabaseConnection::i()->getContext()->table("additional_fields")->where("owner", $owner)->count(); } public static function resetByOwner(int $owner): bool { DatabaseConnection::i()->getContext()->table("additional_fields")->where("owner", $owner)->delete(); return true; } }