Esempio n. 1
0
 function process()
 {
     $user_id = $this->interactor;
     if (!$user_id) {
         $user_id = -1;
     }
     $media_id = $this->action_query->id;
     $action = $this->action_query->action;
     $rtmediainteraction = new RTMediaInteractionModel();
     $check_action = $rtmediainteraction->check($user_id, $media_id, $action);
     if ($check_action) {
         $results = $rtmediainteraction->get_row($user_id, $media_id, $action);
         $row = $results[0];
         $curr_value = $row->value;
         $update_data = array('value' => ++$curr_value);
         $where_columns = array('user_id' => $user_id, 'media_id' => $media_id, 'action' => $action);
         $update = $rtmediainteraction->update($update_data, $where_columns);
     } else {
         $columns = array('user_id' => $user_id, 'media_id' => $media_id, 'action' => $action, 'value' => '1');
         $insert_id = $rtmediainteraction->insert($columns);
     }
     //todo update `views` column in media index table, might be need to write migration as well for old media
     global $rtmedia_points_media_id;
     $rtmedia_points_media_id = $this->action_query->id;
     do_action('rtmedia_after_view_media', $this);
     die;
 }
 function process()
 {
     $user_id = $this->interactor;
     if (!$user_id) {
         $user_id = -1;
     }
     $media_id = $this->action_query->id;
     $action = $this->action_query->action;
     $rtmediainteraction = new RTMediaInteractionModel();
     $check_action = $rtmediainteraction->check($user_id, $media_id, $action);
     if ($check_action) {
         $results = $rtmediainteraction->get_row($user_id, $media_id, $action);
         $row = $results[0];
         $curr_value = $row->value;
         $update_data = array('value' => ++$curr_value);
         $where_columns = array('user_id' => $user_id, 'media_id' => $media_id, 'action' => $action);
         $update = $rtmediainteraction->update($update_data, $where_columns);
     } else {
         $columns = array('user_id' => $user_id, 'media_id' => $media_id, 'action' => $action, 'value' => "1");
         $insert_id = $rtmediainteraction->insert($columns);
     }
     global $rtmedia_points_media_id;
     $rtmedia_points_media_id = $this->action_query->id;
     do_action("rtmedia_after_view_media", $this);
     die;
 }
Esempio n. 3
0
 function process()
 {
     $actions = $this->model->get(array('id' => $this->action_query->id));
     if (!wp_verify_nonce($_POST["like_nonce"], 'rtm_media_like_nonce' . $this->media->id)) {
         die;
     }
     $rtmediainteraction = new RTMediaInteractionModel();
     $user_id = $this->interactor;
     $media_id = $this->action_query->id;
     $action = $this->action;
     $check_action = $rtmediainteraction->check($user_id, $media_id, $action);
     if ($check_action) {
         $results = $rtmediainteraction->get_row($user_id, $media_id, $action);
         $row = $results[0];
         $curr_value = $row->value;
         if ($curr_value == "1") {
             $value = "0";
             $this->increase = false;
         } else {
             $value = "1";
             $this->increase = true;
         }
         $update_data = array('value' => $value);
         $where_columns = array('user_id' => $user_id, 'media_id' => $media_id, 'action' => $action);
         $update = $rtmediainteraction->update($update_data, $where_columns);
     } else {
         $value = "1";
         $columns = array('user_id' => $user_id, 'media_id' => $media_id, 'action' => $action, 'value' => $value);
         $insert_id = $rtmediainteraction->insert($columns);
         $this->increase = true;
     }
     $actionwa = $this->action . 's';
     $return = array();
     $actions = intval($actions[0]->{$actionwa});
     if ($this->increase === true) {
         $actions++;
         $return["next"] = apply_filters('rtmedia_' . $this->action . '_label_text', $this->undo_label);
     } else {
         $actions--;
         $return["next"] = apply_filters('rtmedia_' . $this->action . '_label_text', $this->label);
     }
     if ($actions < 0) {
         $actions = 0;
     }
     $return["count"] = $actions;
     $this->model->update(array('likes' => $actions), array('id' => $this->action_query->id));
     global $rtmedia_points_media_id;
     $rtmedia_points_media_id = $this->action_query->id;
     do_action("rtmedia_after_like_media", $this);
     if (isset($_POST["json"]) && $_POST["json"] == "true") {
         echo json_encode($return);
         die;
     } else {
         wp_safe_redirect(esc_url_raw($_SERVER["HTTP_REFERER"]));
         die;
     }
     return $actions;
 }
 /**
  * Like/Unlike by media_id or activity_id
  * @global int $this->ec_server_error
  * @global type $this->msg_server_error
  * @global int $this->ec_invalid_media_id
  * @global type $this->msg_invalid_media_id
  */
 function rtmedia_api_process_like_media_request()
 {
     $this->rtmediajsonapifunction->rtmedia_api_verfiy_token();
     $this->rtmediajsonapifunction->rtmedia_api_media_activity_id_missing();
     //Like errors
     $ec_already_liked = 900001;
     $msg_already_liked = __('unliked media', 'rtmedia');
     $ec_liked_media = 900002;
     $msg_liked_media = __('liked media', 'rtmedia');
     extract($_POST);
     if (class_exists('RTMediaInteractionModel')) {
         $rtmediainteraction = new RTMediaInteractionModel();
         if (class_exists('RTMediaLike')) {
             $rtmedialike = new RTMediaLike();
         }
         $action = 'like';
         // Like or Unlike
         if (!rtmedia_media_id($media_id)) {
             echo $this->rtmedia_api_response_object('FALSE', $this->ec_invalid_media_id, $this->msg_invalid_media_id);
             exit;
         }
         $like_count_old = get_rtmedia_like(rtmedia_media_id($media_id));
         $check_action = $rtmediainteraction->check($this->user_id, $media_id, $action);
         if ($check_action) {
             $results = $rtmediainteraction->get_row($this->user_id, $media_id, $action);
             $row = $results[0];
             $curr_value = $row->value;
             if ($curr_value == "1") {
                 $value = "0";
                 $increase = false;
             } else {
                 $value = "1";
                 $increase = true;
             }
             $update_data = array('value' => $value);
             $where_columns = array('user_id' => $this->user_id, 'media_id' => $media_id, 'action' => $action);
             $update = $rtmediainteraction->update($update_data, $where_columns);
         } else {
             $value = "1";
             $columns = array('user_id' => $this->user_id, 'media_id' => $media_id, 'action' => $action, 'value' => $value);
             $insert_id = $rtmediainteraction->insert($columns);
             $increase = true;
         }
         if ($increase) {
             $like_count_old++;
         } elseif (!$increase) {
             $like_count_old--;
         }
         if ($like_count_old < 0) {
             $like_count_old = 0;
         }
         $data = array('like_count' => $like_count_old);
         if (!empty($insert_id)) {
             $rtmedialike->model->update(array('likes' => $like_count_old), array('id' => $media_id));
             echo $this->rtmedia_api_response_object('TRUE', $ec_liked_media, $msg_liked_media, $data);
             exit;
         } elseif (!empty($update)) {
             $rtmedialike->model->update(array('likes' => $like_count_old), array('id' => $media_id));
             if ($value == 1) {
                 echo $this->rtmedia_api_response_object('TRUE', $ec_liked_media, $msg_liked_media, $data);
                 exit;
             } elseif ($value == 0) {
                 echo $this->rtmedia_api_response_object('TRUE', $ec_already_liked, $msg_already_liked, $data);
                 exit;
             }
         } else {
             echo $this->rtmedia_api_response_object('FALSE', $this->ec_server_error, $this->msg_server_error);
             exit;
         }
     }
 }
Esempio n. 5
0
 /**
  * Method to reassign media to another user while deleting user
  *
  * @param type $user_id, $reassign
  *
  */
 public function reassign_wordpress_user($user_id, $reassign)
 {
     if ($reassign != null || $reassign != '') {
         // Updating media author
         $rtmedia_model = new RTMediaModel();
         $rtmedia_model->update(array('media_author' => $reassign), array('media_author' => $user_id));
         // Updating user id from interaction
         $rtmediainteraction = new RTMediaInteractionModel();
         $rtmediainteraction->update(array('user_id' => $reassign), array('user_id' => $user_id));
     }
 }
Esempio n. 6
0
 /**
  * Like/Unlike by media_id or activity_id
  * @global int $this ->ec_server_error
  * @global type $this ->msg_server_error
  * @global int $this ->ec_invalid_media_id
  * @global type $this ->msg_invalid_media_id
  */
 function rtmedia_api_process_like_media_request()
 {
     $this->rtmediajsonapifunction->rtmedia_api_verfiy_token();
     $this->rtmediajsonapifunction->rtmedia_api_media_activity_id_missing();
     //Like errors
     $ec_already_liked = 900001;
     $msg_already_liked = esc_html__('unliked media', 'buddypress-media');
     $ec_liked_media = 900002;
     $msg_liked_media = esc_html__('liked media', 'buddypress-media');
     $media_id = filter_input(INPUT_POST, 'media_id', FILTER_SANITIZE_NUMBER_INT);
     if (class_exists('RTMediaInteractionModel')) {
         $rtmediainteraction = new RTMediaInteractionModel();
         if (class_exists('RTMediaLike')) {
             $rtmedialike = new RTMediaLike();
         }
         $action = 'like';
         // Like or Unlike
         if (!rtmedia_media_id($media_id)) {
             wp_send_json($this->rtmedia_api_response_object('FALSE', $this->ec_invalid_media_id, $this->msg_invalid_media_id));
         }
         $like_count_old = get_rtmedia_like(rtmedia_media_id($media_id));
         $check_action = $rtmediainteraction->check($this->user_id, $media_id, $action);
         if ($check_action) {
             $results = $rtmediainteraction->get_row($this->user_id, $media_id, $action);
             $row = $results[0];
             $curr_value = $row->value;
             if (1 === intval($curr_value)) {
                 $value = '0';
                 $increase = false;
             } else {
                 $value = '1';
                 $increase = true;
             }
             $update_data = array('value' => $value);
             $where_columns = array('user_id' => $this->user_id, 'media_id' => $media_id, 'action' => $action);
             $update = $rtmediainteraction->update($update_data, $where_columns);
         } else {
             $value = '1';
             $columns = array('user_id' => $this->user_id, 'media_id' => $media_id, 'action' => $action, 'value' => $value);
             $insert_id = $rtmediainteraction->insert($columns);
             $increase = true;
         }
         if ($increase) {
             $like_count_old++;
         } elseif (!$increase) {
             $like_count_old--;
         }
         if ($like_count_old < 0) {
             $like_count_old = 0;
         }
         $data = array('like_count' => $like_count_old);
         if (!empty($insert_id) && isset($rtmedialike)) {
             $rtmedialike->model->update(array('likes' => $like_count_old), array('id' => $media_id));
             wp_send_json($this->rtmedia_api_response_object('TRUE', $ec_liked_media, $msg_liked_media, $data));
         } elseif (!empty($update) && isset($rtmedialike)) {
             $rtmedialike->model->update(array('likes' => $like_count_old), array('id' => $media_id));
             if (1 === intval($value)) {
                 wp_send_json($this->rtmedia_api_response_object('TRUE', $ec_liked_media, $msg_liked_media, $data));
             } elseif (0 === intval($value)) {
                 wp_send_json($this->rtmedia_api_response_object('TRUE', $ec_already_liked, $msg_already_liked, $data));
             }
         } else {
             wp_send_json($this->rtmedia_api_response_object('FALSE', $this->ec_server_error, $this->msg_server_error));
         }
     }
 }
Esempio n. 7
0
 function process()
 {
     $actions = $this->model->get(array('id' => $this->action_query->id));
     $like_nonce = filter_input(INPUT_POST, 'like_nonce', FILTER_SANITIZE_STRING);
     if (!wp_verify_nonce($like_nonce, 'rtm_media_like_nonce' . $this->media->id)) {
         die;
     }
     $rtmediainteraction = new RTMediaInteractionModel();
     $user_id = $this->interactor;
     $media_id = $this->action_query->id;
     $action = $this->action;
     $check_action = $rtmediainteraction->check($user_id, $media_id, $action);
     if ($check_action) {
         $results = $rtmediainteraction->get_row($user_id, $media_id, $action);
         $row = $results[0];
         $curr_value = $row->value;
         if (1 === intval($curr_value)) {
             $value = '0';
             $this->increase = false;
         } else {
             $value = '1';
             $this->increase = true;
         }
         $update_data = array('value' => $value);
         $where_columns = array('user_id' => $user_id, 'media_id' => $media_id, 'action' => $action);
         $update = $rtmediainteraction->update($update_data, $where_columns);
     } else {
         $value = '1';
         $columns = array('user_id' => $user_id, 'media_id' => $media_id, 'action' => $action, 'value' => $value);
         $insert_id = $rtmediainteraction->insert($columns);
         $this->increase = true;
     }
     $actionwa = $this->action . 's';
     $return = array();
     $actions = intval($actions[0]->{$actionwa});
     if (true === $this->increase) {
         $actions++;
         $return['next'] = apply_filters('rtmedia_' . $this->action . '_label_text', $this->undo_label);
     } else {
         $actions--;
         $return['next'] = apply_filters('rtmedia_' . $this->action . '_label_text', $this->label);
     }
     $like_html = '<span class="rtmedia-like-counter"></span>';
     if ($actions > 0 && function_exists('rtmedia_who_like_html')) {
         $like_html = rtmedia_who_like_html($actions, $this->increase);
     }
     /* label for "person/people like this" in media popup" */
     if (1 === $actions) {
         $return['person_text'] = apply_filters('rtmedia_' . $this->action . '_person_label_text', $like_html);
     } else {
         $return['person_text'] = apply_filters('rtmedia_' . $this->action . '_person_label_text', $like_html);
     }
     if ($actions < 0) {
         $actions = 0;
     }
     $return['count'] = $actions;
     $this->model->update(array('likes' => $actions), array('id' => $this->action_query->id));
     global $rtmedia_points_media_id;
     $rtmedia_points_media_id = $this->action_query->id;
     do_action('rtmedia_after_like_media', $this);
     $is_json = filter_input(INPUT_POST, 'json', FILTER_SANITIZE_STRING);
     if (!empty($is_json) && 'true' === $is_json) {
         wp_send_json($return);
     } else {
         $url = rtm_get_server_var('HTTP_REFERER', 'FILTER_SANITIZE_URL');
         wp_safe_redirect(esc_url_raw($url));
         die;
     }
     return $actions;
 }