/** * Create new model * * @return void */ protected function doActionCreate() { $data = $this->getRequestData(); $review = new \XLite\Module\XC\Reviews\Model\Review(); $review->map($data); $review->setProfile($this->getProfile()); $review->setIp(ip2long($_SERVER['REMOTE_ADDR']) ?: 0); if (!$review->getEmail()) { $review->setEmail($this->getProfileField('email')); } if (!$review->getReviewerName()) { $review->setReviewerName($this->getProfileField('reviewerName')); } $status = false == \XLite\Core\Config::getInstance()->XC->Reviews->disablePendingReviews || !$review->getReview() ? \XLite\Module\XC\Reviews\Model\Review::STATUS_APPROVED : \XLite\Module\XC\Reviews\Model\Review::STATUS_PENDING; $review->setStatus($status); $product = \XLite\Core\Database::getRepo('XLite\\Model\\Product')->find($this->getProductId()); $review->setProduct($product); $product->addReviews($review); \XLite\Core\Database::getEM()->flush(); $message = 'Thank your for sharing your opinion with us!'; if (!$review->getReview()) { $message = 'Your product rating is saved. Thank you!'; } $this->updateReviewIds($review); \XLite\Core\TopMessage::addInfo(static::t($message)); }