public function executeRate() { if ($this->getRequest()->isXmlHttpRequest()) { $rating = $this->getRequestParameter('rating'); $item_id = $this->getRequestParameter('it'); if ($rating > 5) { $rating = 5; } if ($rating < 0) { $rating = 0; } $this->user = $this->getUser()->getRaykuUser(); $c = new Criteria(); $c->add(ItemRatingPeer::ITEM_ID, $item_id); $c->add(ItemRatingPeer::USER_ID, $this->user->getId()); $item_rating = ItemRatingPeer::doSelect($c); if ($item_rating) { return $this->renderText('already'); } else { $item_rating = new ItemRating(); $item_rating->setUserId($this->user->getId()); $item_rating->setItemId($item_id); $item_rating->setRating($rating); $item_rating->save(); return $this->renderText('success'); } return $this->renderText('fail'); } }