Example #1
0
 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);
 }
Example #2
0
 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;
 }
Example #3
0
 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));
     }
 }
Example #8
0
 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'));
     }
 }