コード例 #1
0
 public function actionLike()
 {
     $user_id = Yii::app()->user->id;
     if (Yii::app()->request->isAjaxRequest && !empty($user_id)) {
         $tbl = Yii::app()->getRequest()->getPost('_tbl');
         $item_id = Yii::app()->getRequest()->getPost('_item_id');
         $hash = md5($tbl . $item_id . $user_id);
         $likesObj = Likes::model()->find('hash=:_hash', array(':_hash' => $hash));
         if (empty($likesObj->id)) {
             $likesObj = new Likes();
             $likesObj->tbl = $tbl;
             $likesObj->item_id = $item_id;
             $likesObj->user_id = $user_id;
             $likesObj->hash = $hash;
             $likesObj->save();
             Yii::app()->db->createCommand("UPDATE {$tbl} SET likes=likes+1 WHERE id=" . intval($item_id))->execute();
             echo json_encode(array('status' => 'ok', 'data' => 'like'));
         } else {
             $likesObj->delete();
             Yii::app()->db->createCommand("UPDATE {$tbl} SET likes=likes-1 WHERE id=" . intval($item_id))->execute();
             echo json_encode(array('status' => 'ok', 'data' => 'unlike'));
         }
     } else {
         throw new CException('Not Found', 404);
     }
 }
コード例 #2
0
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     $itemid = Input::get('itemid');
     $itemtype = Input::get('itemtype');
     $userid = Input::get('userid');
     $key = Input::get('key');
     $retVal = array('status' => 'ERR', 'msg' => 'Invalid Session');
     try {
         $user = \Member::where('session_key', '=', $key)->exists();
         if (!$user) {
             return Response::json($retVal);
         }
         $media = \Media::where('_id', '=', $itemid)->exists();
         //var_dump($media);
         if (!$media) {
             $retVal = array('status' => 'ERR', 'msg' => 'Invalid item.');
             return Response::json($retVal);
         }
         $like = new \Likes();
         $like->itemid = $itemid;
         $like->itemtype = $itemtype;
         $like->userid = $userid;
         $like->save();
         $newCount = \Likes::where('itemid', '=', $itemid)->count();
         $retVal = array('status' => 'OK', 'count' => $newCount, 'itemid' => $itemid, 'itemtype' => $itemtype);
         return Response::json($retVal);
     } catch (ModelNotFoundException $e) {
     }
 }
コード例 #3
0
ファイル: LikeController.php プロジェクト: noikiy/Like-System
 public function like()
 {
     if (Input::has("post_id")) {
         $post_id = explode("_", Input::get("post_id"));
         //Find if user already liked the post
         if (Likes::where("post_id", $post_id[1])->where("user_id", "1")->count() > 0) {
             Likes::where("post_id", $post_id[1])->where("user_id", "1")->delete();
             return Response::json(array("result" => "1", "isunlike" => "0", "text" => "Like"));
         } else {
             $like = new Likes();
             //We are using hardcoded user id for now , in production change
             //it to Sentry::getId() if using Sentry for authentication
             $like->user_id = "1";
             $like->post_id = $post_id[1];
             $like->save();
             return Response::json(array("result" => "1", "isunlike" => "1", "text" => "unlike"));
         }
         return Response::json(array("result" => "1", "isunlike" => "1", "text" => "unlike"));
     } else {
         //No post id no access sorry
         return Response::json(array("result" => "0"));
     }
 }