예제 #1
0
 public function checkRated($object_id, $object_type, $user_id)
 {
     if (!empty($user_id)) {
         $ratingTable = new Book_Model_DbTable_Ratings();
         $select = $ratingTable->select()->where('parent_object_type = ?', $object_type)->where('parent_object_id = ?', $object_id)->where('user_id = ?', $user_id);
         return $ratingTable->fetchRow($select) != NULL;
     }
     return NULL;
 }
예제 #2
0
 public function setRating($user_id, $rating)
 {
     $ratingTable = new Book_Model_DbTable_Ratings();
     $select = $ratingTable->select()->where('parent_object_type = ?', $this->getType())->where('parent_object_id = ?', $this->getIdentity())->where('user_id = ?', $user_id);
     $row = $ratingTable->fetchRow($select);
     if (empty($row)) {
         $row = $ratingTable->createRow(array('parent_object_type' => $this->getType(), 'parent_object_id' => $this->getIdentity(), 'user_id' => $user_id, 'rating' => $rating));
         $row->save();
         $signatureTable = new Book_Model_DbTable_Signatures();
         $select = $signatureTable->select()->where('parent_object_id = ?', $this->getIdentity())->where('parent_object_type = ?', $this->getType());
         $signatureRow = $signatureTable->fetchRow($select);
         if ($signatureRow == NULL) {
             $signatureRow = $signatureTable->createRow(array('parent_object_id' => $this->getIdentity(), 'parent_object_type' => $this->getType()));
         }
         $signatureRow->rating_count = $signatureRow->rating_count + 1;
         $ratingSum = $this->getRatingSum();
         if ($ratingSum != 0) {
             $signatureRow->rating = $ratingSum / $signatureRow->rating_count;
         } else {
             $signatureRow->rating = $rating;
         }
         $signatureRow->save();
     }
 }