public function generate() { // displaying errors (if any) foreach ($this->errors as $error) { if ($this->globalMessages) { Watermelon::displayError($error); } else { $r .= '<div class="error">' . $error . '</div>'; } } $this->errors = array(); // storing form object in session (so that in can be reconstructed on action page) $_SESSION['Form_' . $this->formID] = serialize($this); // extra <form> attributes $attributes = ''; foreach ($this->extraFormAttributes as $attribute => $value) { $attributes .= ' ' . $attribute . '="' . $value . '"'; } // generating $r .= '<form action="' . SiteURL($this->actionPage) . '" method="post"' . $attributes . ">\n"; $r .= '<input type="hidden" name="formID" value="' . $this->formID . '">' . "\n"; // items foreach ($this->items as $item) { if (is_object($item)) { $r .= $item->generate() . "\n"; } else { $r .= $item . "\n"; } } // submit button if ($this->displaySubmitButton) { if (empty($this->submitLabel)) { $submitLabel = ' value="Zapisz"'; } else { $submitLabel = ' value="' . $this->submitLabel . '"'; } $r .= '<label><span></span><input type="submit"' . $submitLabel . '></label>'; } //-- $r .= '</form>'; return $r; }
public function displayError($message) { Watermelon::displayError($message); }
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); }