Example #1
0
 /**
  * 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));
 }