public function comment() { if (!$this->model_journal2_blog->getCommentsStatus(Journal2Utils::getProperty($this->request->get, 'post_id'))) { $this->response->setOutput(json_encode(array('status' => 'error', 'message' => 'Comments are not allowed on this post!'))); return; } $errors = array(); $name = Journal2Utils::getProperty($this->request->post, 'name', ''); $email = Journal2Utils::getProperty($this->request->post, 'email', ''); $website = Journal2Utils::getProperty($this->request->post, 'website', ''); $comment = Journal2Utils::getProperty($this->request->post, 'comment', ''); if (!$name) { $errors[] = 'name'; } if (!$email || !preg_match('/^[^\\@]+@.*\\.[a-z]{2,6}$/i', $email)) { $errors[] = 'email'; } if (!$comment) { $errors[] = 'comment'; } if (!$errors) { $data = $this->model_journal2_blog->createComment(array('post_id' => Journal2Utils::getProperty($this->request->get, 'post_id'), 'parent_id' => Journal2Utils::getProperty($this->request->post, 'parent_id'), 'name' => $name, 'email' => $email, 'website' => $website, 'comment' => $comment)); if ($this->journal2->settings->get('config_blog_settings.auto_approve_comments', '1') === '1') { $data['time'] = date($this->language->get('time_format'), strtotime($data['date'])); $data['date'] = date($this->language->get('date_format_short'), strtotime($data['date'])); if ($data['website']) { $data['website'] = trim($data['website']); $data['website'] = trim($data['website'], '/'); $data['website'] = parse_url($data['website'], PHP_URL_SCHEME) !== null ? $data['website'] : 'http://' . $data['website']; $data['href'] = $data['website']; $data['website'] = preg_replace('#^https?://#', '', $data['website']); } $data['avatar'] = Journal2Utils::gravatar($data['email'], '', 70); $this->response->setOutput(json_encode(array('status' => 'success', 'data' => $data, 'message' => $this->journal2->settings->get('blog_form_comment_submitted', 'Comment submitted.')))); } else { $this->response->setOutput(json_encode(array('status' => 'success', 'message' => $this->journal2->settings->get('blog_form_comment_awaiting_approval', 'Comment awaiting approval.')))); } } else { $this->response->setOutput(json_encode(array('status' => 'error', 'errors' => $errors))); } }