/** @return TaggedModel */
 function getInitializedTaggedModel()
 {
     $unparsedTags = isset($_GET["tags"]) ? $_GET["tags"] : "";
     $tags = explode(self::TAG_DELIMITER, $unparsedTags);
     $pageNum = isset($_GET["page"]) && (int) $_GET["page"] ? (int) $_GET["page"] : 1;
     $apiEndpoint = isset($_GET["apiendpoint"]) ? $_GET["apiendpoint"] : "n";
     /** @var DbAccessor $dbAccessor */
     $dbAccessor = DbAccessor::instance();
     $taggedPostObjs = $dbAccessor->getTaggedPostsForTags($tags);
     return new TaggedModel($tags, $pageNum, $apiEndpoint, $taggedPostObjs);
 }
 function run()
 {
     /** @var DbAccessor $dbAccessor */
     $dbAccessor = DbAccessor::instance();
     $totalPosts = $dbAccessor->getTotalPostNum();
     $currentPage = !empty($_GET['page']) && (int) $_GET['page'] > 0 ? (int) $_GET['page'] : 1;
     $pagePostObjs = $dbAccessor->getPagePostList($currentPage);
     $this->moduleModel = new HomeModel($currentPage, $totalPosts, $pagePostObjs);
     $this->moduleView = new HomeView($this->moduleModel);
     $this->moduleView->setMainHtmlFile("home.phtml");
     $this->moduleView->displayContent();
 }
 function run()
 {
     $postDate = $_GET['date'];
     $postCleanUrlTitle = $_GET['title'];
     /** @var DbAccessor $dbAccessor */
     $dbAccessor = DbAccessor::instance();
     $postObj = $dbAccessor->getPostFromDb($postDate, $postCleanUrlTitle);
     if (empty($postObj)) {
         // perform a cheap exit for incorrect urls
         $this->moduleModel = null;
         $this->moduleView = new NotFoundView($this->moduleModel);
         $this->moduleView->setMainHtmlFile("pagenotfound.phtml");
         // echo "Page ".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']." Not Found";
     } else {
         $this->moduleModel = new PostModel($postObj->title, $postObj->subtitle, $postObj->author_name, $postObj->created, $postObj->body_text);
         $this->moduleView = new PostView($this->moduleModel);
         $this->moduleView->setMainHtmlFile("post.phtml");
     }
     $this->moduleView->displayContent();
 }