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); } }
/** * 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) { } }
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")); } }