public function execute() { $data = $this->getReqiestData(); $comment_id = $data['comment_id']; unset($data['comment_id']); $data['datetime'] = date('Y-m-d H:i:s'); $contact_data = $this->getContactData(); $data = array_merge($data, $contact_data); $this->errors += $this->comment_model->validate($data); if ($this->errors) { return false; } // taking into account possibility of stack $photo_id = $data['photo_id']; $photo_model = new photosPhotoModel(); $parent_id = $photo_model->getStackParentId($photo_id); if ($parent_id) { // if it is stack work with parent $photo_id = $parent_id; } $data['photo_id'] = $photo_id; if (!isset($data['ip']) && ($ip = waRequest::getIp())) { $ip = ip2long($ip); if ($ip > 2147483647) { $ip -= 4294967296; } $data['ip'] = $ip; } $id = $this->comment_model->add($data, $comment_id); $this->added_comment = $this->comment_model->getById($id); if (preg_match('/(\\d+)/', $data['photo_comments_count_text'], $m)) { $count = $m[1] + 1; $this->response['photo_comments_count_text'] = _wp('%d comment', '%d comments', $count); } $comment = $data; $comment['id'] = $id; $comment['author'] = $this->getResponseAuthorData(); $comment['status'] = photosCommentModel::STATUS_PUBLISHED; $photo_id = $comment['photo_id']; $this->view->assign('wrap_li', true); $this->view->assign('comment', $comment); $this->view->assign('contact_rights', wa()->getUser()->getRights('contacts', 'backend')); $this->response['html'] = $this->view->fetch($this->template); }