function _controllerHandler($pageName) { // getting post data and validating $pageData = $this->model->pageData_name($pageName); if (!$pageData || $pageData->status !== 'published') { Watermelon::displayNoPageFoundError(); return; } // displaying $id = $pageData->id; $pageData->content = Textile::textile($pageData->content); $this->pageTitle = $pageData->title; $this->noHeader = true; $view = View('page'); $view->page = $pageData; $view->commentsView = Comments::commentsView($pageData->id, 'page', '#/' . $pageName, (bool) $pageData->allowComments); $view->editHref = '%/pages/edit/' . $id . '?backTo=site'; $view->deleteHref = '%/pages/trash/' . $id; $view->display(); }
public static function postComment($id, $type, $backPage) { if (empty($id) || empty($type) || empty($backPage)) { Watermelon::displayNoPageFoundError(); return; } if (!in_array($type, array('blogpost', 'page'))) { Watermelon::displayNoPageFoundError(); return; } //-- $model = new Comments_Model(); $backPage = base64_decode($backPage); $form = Form::validate('wmelon.comments.addComment', $backPage)->get(); // testing for spam and adding if (!Users::isLogged()) { // testing for spam $commentStatus = Sblam::test('content', 'name', 'email', 'website'); // remembering user's data $_SESSION['wmelon.comments.name'] = $form->name; $_SESSION['wmelon.comments.email'] = $form->email; $_SESSION['wmelon.comments.website'] = $form->website; // assigning "visibility token" (token user needs to have in session to see his own comments, even if not approved) if (isset($_SESSION['wmelon.comments.visibilityToken'])) { $visibilityToken = $_SESSION['wmelon.comments.visibilityToken']; } else { $visibilityToken = $form->name . $form->email . mt_rand(); $visibilityToken = md5($visibilityToken); $visibilityToken = substr($visibilityToken, 16); $_SESSION['wmelon.comments.visibilityToken'] = $visibilityToken; } // adding comment switch ($commentStatus) { case 0: case 1: case -1: $model->postComment($id, $type, $form->name, $form->email, $form->website, $form->content, false, $visibilityToken); Watermelon::displayNotice('Twój komentarz zostanie sprawdzony zanim zostanie publicznie pokazany'); break; case -2: $commentID = $model->postComment($id, $type, $form->name, $form->email, $form->website, $form->content, true, $visibilityToken); Watermelon::displaySuccessNotice('Dodano komentarz'); $backPage .= '#comment-' . $commentID; break; case 2: Watermelon::displayError('Filtr uznał twój komentarz za spam. ' . Sblam::reportLink()); break; } } else { $commentID = $model->postComment_logged($id, $type, $form->content); $backPage .= '#comment-' . $commentID; } SiteRedirect($backPage); }
public function _post_action($name) { // getting post data $post = $this->model->postData_name($name); if (!$post) { Watermelon::displayNoPageFoundError(); return; } // checking if published if ($post->status !== 'published') { // displaying notice for admin, or 'not found' if (Users::isLogged()) { $this->displayNotice('Ten wpis nie jest opublikowany. Tylko Ty go możesz zobaczyć.'); } else { Watermelon::displayNoPageFoundError(); return; } } // post $post->content = Textile::textile($post->content); $post->url = '#/' . date('Y/m', $post->published) . '/' . $post->name; // displaying (if exists) $id = $post->id; $this->pageTitle = $post->title; $this->noHeader = true; $view = View('post'); $view->post = $post; $view->commentsView = Comments::commentsView($id, 'blogpost', $post->url, (bool) $post->allowComments); $view->editHref = '%/blog/edit/' . $id . '?backTo=post'; $view->deleteHref = '%/blog/trash/' . $id . '/' . base64_encode('#/'); $view->published_human = HumanDate($post->published, true, true); $view->display(); }