function main($in_dir, $out_dir) { require_once __DIR__ . "/app.php"; $files_parsed = 0; $postData = new Aruna\Micropub\PostData(); foreach (list_files($in_dir) as $file) { // read post_data $in_filename = $file[0]; $out_filename = $out_dir . "/" . basename($in_filename, ".json") . ".html"; $post_data = json_decode(file_get_contents($in_filename), true); // convert mf json to viewModel $view_model = new Aruna\PostViewModel($postData->toMfArray($post_data)); // render viewModel as html $post_html = $app['twig']->render("post_" . $view_model->type() . ".html", array("post" => $view_model)); file_put_contents($out_filename, $post_html); $files_parsed += 1; } print sprintf("Processed %s files", $files_parsed); }
public function findById($post_id) { // current $q = "SELECT\n id,\n published,\n date_deleted,\n post\n FROM posts\n WHERE id = :id"; $r = $this->db->prepare($q); $r->execute([":id" => $post_id]); $post = $r->fetch(); if ($post === false) { return array(); } $post = new \Aruna\PostViewModel(json_decode($post['post'], true), $post['date_deleted']); foreach ($this->findMentionsByPostId($post_id) as $mention) { if ($mention->type() == "reply") { $post->setComment($mention); } } foreach ($this->findMentionsByPostId($post_id) as $mention) { if ($mention->type() == "like") { $post->setLike($mention); } } $out = array($post); return $out; }