public function login($params = array()) { $this->load(); $this->status['status'] = 'fail'; if (!Session::csrf($params['mariana-csrf'])) { $this->status['errors'] = array(Lang::get('csrf-check-fail')); return $this->return_json($this->status); } $creds = array(); $creds['user_login'] = $params['username']; $creds['user_password'] = $params['password']; $creds['remember'] = true; $user = wp_signon($creds, false); if (is_wp_error($user)) { $this->status['errors'] = array(Lang::get('login-errors')); return $this->return_json($this->status); } else { $u = MfrUsers::find($user->ID)[0]; Session::set('id', $user->ID); Session::set('nice_name', $user->user_nicename); Session::set('first_name', $user->user_firstname); Session::set('last_name', $user->user_lastname); Session::set('email', $user->user_email); Session::set('level', $u->level); Session::set('gender', $u->gender); Session::set('coach', $u->coach); Session::set('active', $u->active); # Get user info: wp_set_auth_cookie($user->ID, 0, 0); $ip = mfr_get_ip(); $date = time(); $sql = 'INSERT INTO `mfr_user_login` ( `date`, `ip`, `user_id`) VALUES ( ?, ?, ?);'; $stmt = Framework\Database::getConnection()->prepare($sql); $stmt->bindParam(1, $date); $stmt->bindParam(2, $ip); $stmt->bindParam(3, $user->ID); $stmt->execute(); $this->status['status'] = 'ok'; } return $this->return_json($this->status); }
public static function userWorkoutFacade($user_id) { //$workout_sql = 'SELECT mfr_treinos_users.user_id, mfr_treinos_users.workout_id,mfr_treinos_users.date_given, mfr_treinos.instructions, mfr_treinos_exercicios.exercicio_id, mfr_treinos_exercicios.day, mfr_treinos_exercicios.series, mfr_treinos_exercicios.reps, mfr_treinos_exercicios.rest, mfr_treinos_progresso.weight, mfr_treinos_progresso.reps FROM mfr_treinos_users INNER JOIN mfr_treinos ON mfr_treinos_users.workout_id = mfr_treinos.id INNER JOIN mfr_treinos_exercicios ON mfr_treinos.id = mfr_treinos_exercicios.treino_id INNER JOIN mfr_treinos_progresso ON mfr_treinos_exercicios.exercicio_id = mfr_treinos_progresso.exercise_id AND mfr_treinos_exercicios.treino_id = mfr_treinos_progresso.workout_id WHERE mfr_treinos_users.user_id = ?'; $workout_sql = 'SELECT mfr_treinos_exercicios.exercicio_id, mfr_treinos_exercicios.day, mfr_treinos_exercicios.series, mfr_treinos_exercicios.rest, mfr_treinos_exercicios.reps, mfr_treinos_users.workout_id, mfr_treinos_progresso.exercise_id, mfr_treinos_progresso.weight, mfr_treinos_progresso.reps, mfr_treinos_progresso.attempts, mfr_exercicios.name, mfr_exercicios.video, mfr_treinos_exercicios.day_desc FROM mfr_treinos_users INNER JOIN mfr_treinos ON mfr_treinos_users.workout_id = mfr_treinos.id INNER JOIN mfr_treinos_exercicios ON mfr_treinos.id = mfr_treinos_exercicios.treino_id INNER JOIN mfr_treinos_progresso ON mfr_treinos_exercicios.exercicio_id = mfr_treinos_progresso.exercise_id INNER JOIN mfr_exercicios ON mfr_treinos_progresso.exercise_id = mfr_exercicios.id WHERE mfr_treinos_users.user_id = ?'; $stmt = \Mariana\Framework\Database::getConnection()->prepare($workout_sql); $stmt->bindParam(1, $user_id); $stmt->execute(); $workout = $stmt->fetchAll(PDO::FETCH_ASSOC); $return_workout = array(); $i = 0; while ($i < 8) { $tmp = array(); foreach ($workout as $w) { if (isset($w['day']) && $w['day'] == $i) { array_push($tmp, $w); } } $i++; if (sizeof($tmp) > 0) { array_push($return_workout, $tmp); } } return $return_workout; }
public static function wp_create_user($user_id, $user_name, $brought_by) { # Update Wp Db $u = new WpUsers(); $u->ID = $user_id; $u->user_nicename = $user_name; $u->display_name = $user_name; $u->save(); # Insert into mfr_db $sql = 'INSERT INTO `mfr_users` (`id`, `date_created`, `last_updated`, `level`, `coach`, `coaching_status`, `last_notification` , `last_chat_message` , `brought_by`) VALUES (?,?,?,?,\'0\',\'0\',\'0\',\'0\', ?)'; $sql_time = time(); $sql_level = '1'; $stmt = \Mariana\Framework\Database::getConnection()->prepare($sql); $stmt->bindParam(1, $user_id); $stmt->bindParam(2, $sql_time); $stmt->bindParam(3, $sql_time); $stmt->bindParam(4, $sql_level); $stmt->bindParam(5, $brought_by); if ($stmt->execute()) { #creating the user files; $path = USER_PATH . DS . $user_id; if (mkdir($path, 0777)) { # Create notification files $file = fopen(USER_PATH . DS . $user_id . DS . "notify.txt", "w"); fwrite($file, ''); fclose($file); # Create user upload directory $path = UPLOAD_PATH . DS . $user_id; if (mkdir($path, 0777)) { return true; } } return false; } return false; }
public static function getAnswer($id, $topic_id) { $user_id = Session::get('id'); $sql = "\n Select\n DISTINCT (makefitreal.mfr_forum_answers.id),\n makefitreal.mfr_forum_answers.topic_id as subject_id,\n makefitreal.mfr_forum_answers.date_created,\n makefitreal.mfr_forum_answers.last_updated,\n makefitreal.mfr_forum_answers.content,\n makefitreal.mfr_forum_answers.accepted,\n makefitreal.mfr_forum_answers.user_id,\n makefitreal.mfr_users.level,\n makefitreal.mfr_users.avatar,\n makefitreal.mfr_forum_likes.subject_id,\n makefitreal.wp_users.ID As ID1,\n makefitreal.mfr_forum_topics.user_id As owner_id,\n (SELECT count(makefitreal.mfr_forum_likes.id) FROM makefitreal.mfr_forum_likes WHERE makefitreal.mfr_forum_likes.subject_id = :topicId AND makefitreal.mfr_forum_likes.type = 'answer') as likes,\n (SELECT count(makefitreal.mfr_forum_likes.id) FROM makefitreal.mfr_forum_likes WHERE makefitreal.mfr_forum_likes.subject_id = :topicId AND makefitreal.mfr_forum_likes.type = 'answer' AND makefitreal.mfr_forum_likes.user_id = :sessionId ) as i_like,\n makefitreal.wp_users.user_nicename\n From\n makefitreal.mfr_forum_likes ,\n makefitreal.mfr_forum_answers\n Inner Join\n makefitreal.mfr_users\n On makefitreal.mfr_forum_answers.user_id = makefitreal.mfr_users.id\n Inner Join\n makefitreal.wp_users\n On makefitreal.mfr_users.id = makefitreal.wp_users.ID Inner Join\n makefitreal.mfr_forum_topics\n On makefitreal.mfr_forum_answers.topic_id = makefitreal.mfr_forum_topics.id\n Where\n makefitreal.mfr_forum_answers.id = :id"; $stmt = Mariana\Framework\Database::getConnection()->prepare($sql); $stmt->bindParam(':sessionId', $user_id); $stmt->bindParam(':id', $id); $stmt->bindParam(':topicId', $topic_id); $stmt->execute(); return $stmt->fetch(PDO::FETCH_ASSOC); }
private function getAnswers($topic_id, $offset = 0) { $real_offset = $offset * 10; $remove_from_answers = ''; $return['answer'] = array(); $return['replys'] = array(); // Getting the session Id $id = Session::get('id') ? Session::get('id') : 0; // Get the answer $sql = "\n Select\n DISTINCT (makefitreal.mfr_forum_answers.id),\n makefitreal.mfr_forum_answers.topic_id as subject_id,\n makefitreal.mfr_forum_answers.date_created,\n makefitreal.mfr_forum_answers.last_updated,\n makefitreal.mfr_forum_answers.content,\n makefitreal.mfr_forum_answers.accepted,\n makefitreal.mfr_forum_answers.user_id,\n makefitreal.mfr_users.level,\n makefitreal.mfr_users.avatar,\n makefitreal.wp_users.ID As ID1,\n makefitreal.mfr_forum_topics.user_id As owner_id,\n (SELECT count(makefitreal.mfr_forum_likes.id) FROM makefitreal.mfr_forum_likes WHERE makefitreal.mfr_forum_likes.subject_id = :id AND makefitreal.mfr_forum_likes.type = 'answer') as like_count,\n (SELECT count(makefitreal.mfr_forum_likes.id) FROM makefitreal.mfr_forum_likes WHERE makefitreal.mfr_forum_likes.subject_id = :id AND makefitreal.mfr_forum_likes.type = 'answer' AND makefitreal.mfr_forum_likes.user_id = :sessionId ) as i_like,\n (SELECT count(makefitreal.mfr_forum_topics.id) FROM makefitreal.mfr_forum_topics WHERE makefitreal.mfr_forum_topics.user_id = makefitreal.wp_users.ID ) as user_topics,\n (SELECT count(makefitreal.mfr_forum_answers.id) FROM makefitreal.mfr_forum_answers WHERE makefitreal.mfr_forum_answers.user_id = makefitreal.wp_users.ID AND makefitreal.mfr_forum_answers.accepted = 1 ) as user_accepted_answers,\n makefitreal.wp_users.user_nicename\n From\n makefitreal.mfr_forum_likes ,\n makefitreal.mfr_forum_answers\n Inner Join\n makefitreal.mfr_users\n On makefitreal.mfr_forum_answers.user_id = makefitreal.mfr_users.id\n Inner Join\n makefitreal.wp_users\n On makefitreal.mfr_users.id = makefitreal.wp_users.ID Inner Join\n makefitreal.mfr_forum_topics\n On makefitreal.mfr_forum_answers.topic_id = makefitreal.mfr_forum_topics.id\n Where\n makefitreal.mfr_forum_answers.topic_id = :id\n And\n makefitreal.mfr_forum_likes.type = 'answer'\n And\n makefitreal.mfr_forum_answers.accepted = 1\n\n Limit 1\n\n "; $stmt = Database::getConnection()->prepare($sql); $stmt->bindParam(':id', $topic_id); $stmt->bindParam(':sessionId', $id); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC); if (isset($row['id'])) { $return['answer'] = array($row); $remove_from_answers = 'And makefitreal.mfr_forum_answers.id != ' . $row['id']; } // Get all replys $sql = "\n Select\n DISTINCT (makefitreal.mfr_forum_answers.id),\n makefitreal.mfr_forum_answers.topic_id as subject_id,\n makefitreal.mfr_forum_answers.date_created,\n makefitreal.mfr_forum_answers.last_updated,\n makefitreal.mfr_forum_answers.content,\n makefitreal.mfr_forum_answers.accepted,\n makefitreal.mfr_forum_answers.user_id,\n makefitreal.mfr_users.level,\n makefitreal.mfr_users.avatar,\n makefitreal.wp_users.ID As ID1,\n makefitreal.mfr_forum_topics.user_id As owner_id,\n (SELECT count(makefitreal.mfr_forum_likes.id) FROM makefitreal.mfr_forum_likes WHERE makefitreal.mfr_forum_likes.subject_id = :id AND makefitreal.mfr_forum_likes.type = 'answer') as likes,\n (SELECT count(makefitreal.mfr_forum_likes.id) FROM makefitreal.mfr_forum_likes WHERE makefitreal.mfr_forum_likes.subject_id = :id AND makefitreal.mfr_forum_likes.type = 'answer' AND makefitreal.mfr_forum_likes.user_id = :sessionId ) as i_like,\n makefitreal.wp_users.user_nicename\n From\n makefitreal.mfr_forum_likes ,\n makefitreal.mfr_forum_answers\n Inner Join\n makefitreal.mfr_users\n On makefitreal.mfr_forum_answers.user_id = makefitreal.mfr_users.id\n Inner Join\n makefitreal.wp_users\n On makefitreal.mfr_users.id = makefitreal.wp_users.ID Inner Join\n makefitreal.mfr_forum_topics\n On makefitreal.mfr_forum_answers.topic_id = makefitreal.mfr_forum_topics.id\n Where\n makefitreal.mfr_forum_answers.topic_id = :id\n And\n makefitreal.mfr_forum_likes.type = 'answer'\n {$remove_from_answers}\n\n "; $stmt = Database::getConnection()->prepare($sql); $stmt->bindParam(':id', $topic_id); $stmt->bindParam(':sessionId', $id); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_NUM); $stmt->execute(); $return['replys'] = $stmt->fetchAll(PDO::FETCH_ASSOC); return $return; }
/** * Default method; */ public function tracking($request = array()) { $user_id = Session::get('id'); $time = time(); /** * @recieved: * POST http://localhost:8000/coaching/workout-tracking/ array(4) { ["workout-id"]=>string(1) "1" ["workout-day"]=>string(1) "1" ["weight"]=>array(3) { [11]=>string(1) "0" [1]=>string(1) "0" [16]=>string(1) "0" } ["exercise-complete"]=>array(3) { [11]=>string(5) "false" [1]=>string(5) "false" [16]=>string(5) "false" } } * @objective: update into mfr-treinos-progresso if ( ['exercise-complete'][id] = "true" */ foreach ($request['exercise-complete'] as $key => $pair) { $exercise_id = $key; if ($pair == 'true') { $sql = 'UPDATE `mfr_treinos_progresso` SET `weight` = ?, `last_updated` = ?, `attempts` = 0 WHERE `mfr_treinos_progresso`.`user_id` = ? AND `mfr_treinos_progresso`.`exercise_id` = ? AND `mfr_treinos_progresso`.`workout_id` = ?;'; $stmt = Database::getConnection()->prepare($sql); $stmt->bindParam(1, $request['weight'][$key]); $stmt->bindParam(2, $time); $stmt->bindParam(3, $user_id); $stmt->bindParam(4, $key); $stmt->bindParam(5, $request['workout-id']); $stmt->execute(); } if ($pair == 'false') { if ($request['attempts'][$key] + 1 > 3) { array_push($this->errors, Lang::get('maximum-attemps-at-exercise')); (double) ($new_weight = (double) $request['weight'][$key] * 0.75); $sql = 'UPDATE `mfr_treinos_progresso` SET `weight` = ?, `last_updated` = ?, `attempts` = 0 WHERE `mfr_treinos_progresso`.`user_id` = ? AND `mfr_treinos_progresso`.`exercise_id` = ? AND `mfr_treinos_progresso`.`workout_id` = ?;'; $stmt = Database::getConnection()->prepare($sql); $stmt->bindParam(1, $new_weight); $stmt->bindParam(2, $time); $stmt->bindParam(3, $user_id); $stmt->bindParam(4, $key); $stmt->bindParam(5, $request['workout-id']); $stmt->execute(); } else { $attempts = $request['attempts'][$key] + 1; $sql = 'UPDATE `mfr_treinos_progresso` SET `last_updated` = ?, `attempts` = ? WHERE `user_id` = ? AND `mfr_treinos_progresso`.`exercise_id` = ? AND `workout_id` = ?;'; $stmt = Database::getConnection()->prepare($sql); $stmt->bindParam(1, $time); $stmt->bindParam(2, $attempts); $stmt->bindParam(3, $user_id); $stmt->bindParam(4, $key); $stmt->bindParam(5, $request['workout-id']); $stmt->execute(); } } } echo json_encode(array('success' => 'ok', 'errors' => $this->errors)); }
public static function migrate() { self::setup(); # Vars $database = Config::get('database')['database']; $dir_tables = ROOT . DS . 'app' . DS . 'files' . DS . 'database' . DS . 'tables' . DS . $database . DS; # Create the database self::createDatabase($database); # Get every php file in the directory $php = glob($dir_tables . "*.php"); foreach ($php as $p) { $file = str_replace('.php', '', str_replace($dir_tables, '', $p)); if (!is_dir($dir_tables . $file)) { mkdir($dir_tables . $file, 0700); } $sql = "CREATE TABLE IF NOT EXISTS {$file} ( `id` INT NOT NULL ) ENGINE = InnoDB; "; Database::getConnection()->prepare($sql)->execute(); self::updateTable($file); #quick Fix $cli = new \CLI(array('create:model', $file)); } }
public function delete() { if ($this->params['type'] == 'topic') { $sql = 'DELETE FROM mfr_forum_topics WHERE id = :id '; } else { $sql = 'DELETE FROM mfr_forum_answers WHERE id = :id '; } if (Session::get('level') < 2) { $sql .= ' AND user_id = :user_id '; } $stmt = \Mariana\Framework\Database::getConnection()->prepare($sql); $stmt->bindParam(':id', $this->params['id']); if (Session::get('level') < 2) { $user_id = Session::get('id'); $stmt->bindParam(':user_id', $user_id); } if ($stmt->execute()) { echo json_encode(array('success' => 'ok', 'message' => 'Apagado com sucesso!')); } else { echo json_encode(array('success' => 'fail')); } }