/** * Guarda me gusta de un articulo * @param $id_articulo * @param $dispositivo * @return bool|int|mixed */ public static function guardarMeGusta($id_articulo, $dispositivo) { $resultado = false; if (empty($id_articulo) || empty($dispositivo)) { return $resultado; } $megustatotal = Articulos::model()->findByPk($id_articulo); $condicion = 'id_articulo = :articulo and tipo_interaccion = :tipo and id_dispositivo = :dispositivo'; $parametros = array(":articulo" => $id_articulo, ":dispositivo" => $dispositivo, ":tipo" => self::MEGUSTA); $existe = Interacciones::model()->exists($condicion, $parametros); if (!$existe) { $transaction = Yii::app()->db->beginTransaction(); try { $modelInteraccion = new Interacciones(); $modelInteraccion->id_articulo = $id_articulo; $modelInteraccion->id_dispositivo = $dispositivo; $modelInteraccion->tipo_interaccion = self::MEGUSTA; if ($modelInteraccion->validate() && $modelInteraccion->save()) { $articulocreado = Articulos::model()->findByPk($id_articulo); $articulocreado->megusta = $articulocreado->megusta + 1; $articulocreado->update(array('megusta')); $transaction->commit(); $resultado = $articulocreado->megusta; } } catch (Exception $e) { $transaction->rollback(); $resultado = $megustatotal->megusta; Yii::log("Error occurred while saving (update scenario) artist or its 'songs'. Rolling back... . Failure reason as reported in exception: " . $e->getMessage(), CLogger::LEVEL_ERROR, __METHOD__); } } return $resultado; }
/** * Me gusta Articulo * @param objecto $articulo * @return array */ public static function megustaArticulo($articulo) { $respuesta = array('megusta' => false); if (empty($articulo)) { return $respuesta; } //INTERACCION ME GUSTA if (!empty($articulo->dispositivo)) { $respuesta = Interacciones::guardarMeGusta($articulo->id, $articulo->dispositivo); } if ($respuesta == false) { return array('megusta' => false); } else { return array('megusta' => $respuesta); } }