public function beforeSaveField(&$params)
 {
     if (empty($params['photo_id'])) {
         return;
     }
     if (is_array($params['photo_id'])) {
         $photo_id = (int) reset($params['photo_id']);
     } else {
         $photo_id = (int) $params['photo_id'];
     }
     $photo_model = new photosPhotoModel();
     $photo = $photo_model->getById($photo_id);
     if (!$photo) {
         return;
     }
     if (empty($params['data'])) {
         return;
     }
     $data = $params['data'];
     if (!isset($data['rate'])) {
         return;
     }
     $contact_id = wa()->getUser()->getId();
     $vote_model = new photosPublicgalleryVoteModel();
     if ($vote_model->getByField(array('photo_id' => $photo_id, 'contact_id' => $contact_id))) {
         $params['data'] = $photo['rate'];
     } else {
         $vote_model->insert(array('photo_id' => $photo_id, 'contact_id' => wa()->getUser()->getId(), 'rate' => $data['rate'], 'datetime' => date('Y-m-d H:i:s'), 'ip' => waRequest::getIp(true)));
         $params['data']['rate'] = $vote_model->getRate($photo_id);
         $params['data']['votes_count'] = $vote_model->getVotesCount($photo_id);
     }
 }