getPostsFromUsersWall((int)$owner_id) as $post) { $items[] = (object)[ "id" => $post->getVirtualId(), "from_id" => $post->getOwner()->getId(), "owner_id" => $post->getTargetWall(), "date" => $post->getPublicationTime()->timestamp(), "post_type" => "post", "text" => $post->getText(), "can_edit" => 0, // TODO "can_delete" => $post->canBeDeletedBy($this->getUser()), "can_pin" => 0, // TODO "can_archive" => false, // TODO MAYBE "is_archived" => false, "post_source" => (object)["type" => "vk"], "comments" => (object)[ "count" => $post->getCommentsCount(), "can_post" => 1 ], "likes" => (object)[ "count" => $post->getLikesCount(), "user_likes" => (int) $post->hasLikeFrom($this->getUser()), "can_like" => 1, "can_publish" => 1, ], "reposts" => (object)[ "count" => $post->getRepostCount(), "user_reposted" => 0 ] ]; } $profiles = []; $groups = []; $groups[0] = 'lol'; $groups[2] = 'cec'; if($extended == 1) return (object)[ "items" => (array)$items, "cock" => (array)$groups ]; else return (object)[ "items" => (array)$items ]; } function post(string $owner_id, string $message, int $from_group = 0, int $signed = 0): object { $this->requireUser(); $owner_id = intval($owner_id); $wallOwner = ($owner_id > 0 ? (new UsersRepo)->get($owner_id) : (new ClubsRepo)->get($owner_id * -1)) ?? $this->fail(18, "User was deleted or banned"); if($owner_id > 0) $canPost = $wallOwner->getPrivacyPermission("wall.write", $this->getUser()); else if($owner_id < 0) if($wallOwner->canBeModifiedBy($this->getUser())) $canPost = true; else $canPost = $wallOwner->canPost(); else $canPost = false; if($canPost == false) $this->fail(15, "Access denied"); $flags = 0; if($from_group == 1) $flags |= 0b10000000; if($signed == 1) $flags |= 0b01000000; try { $post = new Post; $post->setOwner($this->getUser()->getId()); $post->setWall($owner_id); $post->setCreated(time()); $post->setContent($message); $post->setFlags($flags); $post->save(); } catch(\LogicException $ex) { $this->fail(100, "One of the parameters specified was missing or invalid"); } if($wall > 0 && $wall !== $this->user->identity->getId()) (new WallPostNotification($wallOwner, $post, $this->user->identity))->emit(); return (object)["post_id" => $post->getVirtualId()]; } }