diff --git a/.gitignore b/.gitignore index 3c231a4..463c2ac 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ vendor/ .idea/ -includes/config.php \ No newline at end of file +includes/config.php +temp.php \ No newline at end of file diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..35846ad --- /dev/null +++ b/.htaccess @@ -0,0 +1,21 @@ +Options +FollowSymLinks -Multiviews + + + + SetEnv HTTP_MOD_REWRITE On + RewriteEngine on + IndexIgnore * + Options +MultiViews + + ErrorDocument 404 /pageNotFound.php + + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + + RewriteRule ^My_Messages$ view_all_messages.php [NC,L] + RewriteRule ^My_Orders$ view_all_my_orders_list.php [NC,L] + RewriteRule ^My_Transactions$ view_all_my_transactions.php [NC,L] + RewriteRule ^Recent_Transactions$ view_all_recent_transactions.php [NC,L] + RewriteRule ^traders$ view_all_traders_list.php [NC,L] + + diff --git a/ajax/MyMessagesTotal.php b/ajax/MyMessagesTotal.php new file mode 100644 index 0000000..a774c03 --- /dev/null +++ b/ajax/MyMessagesTotal.php @@ -0,0 +1,26 @@ +check_user($user_id); + + if($validate_user == "" || empty($validate_user)) { + return false; + } + echo $total_my_orders = (int) $OrderClass->total_my_messages(); + } + + } diff --git a/ajax/MyOrdersTotal.php b/ajax/MyOrdersTotal.php new file mode 100644 index 0000000..1ae803b --- /dev/null +++ b/ajax/MyOrdersTotal.php @@ -0,0 +1,27 @@ +check_user($user_id); + + if($validate_user == "" || empty($validate_user)) { + return false; + } + echo $total_my_orders = (int) $OrderClass->total_my_orders(); + } + +} \ No newline at end of file diff --git a/ajax/check_new_orders.php b/ajax/check_new_orders.php new file mode 100644 index 0000000..4fc7467 --- /dev/null +++ b/ajax/check_new_orders.php @@ -0,0 +1,21 @@ +get_last_order_date($last_trade_date); + +if ($lod) { + $_SESSION['last_trade_date'] = $UserClass->time_now(); +} +echo $lod; \ No newline at end of file diff --git a/ajax/current_prices.php b/ajax/current_prices.php index 3b6fb66..f4cc17b 100644 --- a/ajax/current_prices.php +++ b/ajax/current_prices.php @@ -1,8 +1,8 @@ bc = array(); diff --git a/ajax/delOrder.php b/ajax/delOrder.php new file mode 100644 index 0000000..024783b --- /dev/null +++ b/ajax/delOrder.php @@ -0,0 +1,34 @@ +check_user($user_id); + + if($validate_user == "" || empty($validate_user)) { + return false; + } + + $del_order = $OrderClass->del_order($del_id); + + if ($del_order) { + echo true; + } + } + return false; +} \ No newline at end of file diff --git a/ajax/loadMoreMyMessages.php b/ajax/loadMoreMyMessages.php new file mode 100644 index 0000000..1e29374 --- /dev/null +++ b/ajax/loadMoreMyMessages.php @@ -0,0 +1,42 @@ +check_user($user_id); + + if($validate_user == "" || empty($validate_user)) { + return false; + } + + $std = new stdClass(); + $std->msg = array(); + $std->error = true; + + if (isset($_POST['records_per_page'], $_POST['start'])) { + + $start = (int) $_POST['start']; + $records = (int) $_POST['records_per_page']; + + $megs = $UserClass->list_messages_by_userId($user_id, $start, $records); + + if (is_array($megs) && !empty($megs)) { + $std->msg = $megs; + $std->error = false; + } + } + echo json_encode($std); + } +} \ No newline at end of file diff --git a/ajax/loadMoreMyOrders.php b/ajax/loadMoreMyOrders.php new file mode 100644 index 0000000..1d7d54f --- /dev/null +++ b/ajax/loadMoreMyOrders.php @@ -0,0 +1,88 @@ +check_user($user_id); + + if($validate_user == "" || empty($validate_user)) { + return false; + } + + if (isset($_POST['records_per_page'], $_POST['start'])) { + + $start = (int) $_POST['start']; + $records = (int) $_POST['records_per_page']; + + $iter = ""; + if (isset($OrderClass, $user_id)) { + + $myOrders = $OrderClass->UserOrdersList($user_id, $start, $records); + + if (is_array($myOrders) && !empty($myOrders)) { + + foreach($myOrders as $myOrder): + + switch ($myOrder->status) { + case '0': + $status = 'Cancelled'; + break; + case '1': + $status = 'Successful'; + break; + case '2': + $status = 'Pending'; + break; + case '3': + $status = 'Pending'; + break; + default: + $status = 'Pending'; + } + + if($myOrder->status == '1') { + $status = 'Successful'; + } else if ($myOrder->status == '2') { + $status = 'Pending'; + } else if ($myOrder->status == '3'){ + $status = 'Pending'; + } + + if($myOrder->order_type == '1') { + $OrderType = 'Sell'; + } elseif($myOrder->order_type == '0') { + $OrderType = 'Buy'; + } + + $iter .= ""; + $iter .= "$myOrder->price"; + $iter .= "$myOrder->qty"; + $iter .= ""; + if(trim($status) == 'Pending') { + $iter .= ""; + } + $iter .= ""; + $iter .= "$myOrder->offer_asset"; + $iter .= "$myOrder->want_asset"; + $iter .= "$status"; + $iter .= "".date('d M, Y h:i:sa', strtotime($myOrder->insert_dt)).""; + $iter .= ""; + endforeach; + } + } + echo $iter; + } + } +} \ No newline at end of file diff --git a/ajax/loadMoreRecentTransactions.php b/ajax/loadMoreRecentTransactions.php new file mode 100644 index 0000000..581e137 --- /dev/null +++ b/ajax/loadMoreRecentTransactions.php @@ -0,0 +1,33 @@ +msg = array(); + $std->error = true; + + if (isset($_POST['records_per_page'], $_POST['start'])) { + + $start = (int) $_POST['start']; + $records = (int) $_POST['records_per_page']; + + $megs = $OrderClass->last_transaction_list($start, $records); + + if (is_array($megs) && !empty($megs)) { + $std->trade_list = $megs; + $std->error = false; + } + } + echo json_encode($std); + } +} \ No newline at end of file diff --git a/ajax/myMessages.php b/ajax/myMessages.php new file mode 100644 index 0000000..a091735 --- /dev/null +++ b/ajax/myMessages.php @@ -0,0 +1,32 @@ +msg = null; + $std->error = true; + + $my_messages = $UserClass->list_messages_by_userId($user_id, 0, 10); + + if (is_array($my_messages) && !empty($my_messages)) { + $std->msg = $my_messages; + $std->error = false; + } + + echo json_encode($std); + + } +} \ No newline at end of file diff --git a/ajax/recentTransactionsTotal.php b/ajax/recentTransactionsTotal.php new file mode 100644 index 0000000..d689081 --- /dev/null +++ b/ajax/recentTransactionsTotal.php @@ -0,0 +1,17 @@ +total_recent_transactions(); + } + +} diff --git a/ajax/rm_root.php b/ajax/rm_root.php new file mode 100644 index 0000000..aabc4d4 --- /dev/null +++ b/ajax/rm_root.php @@ -0,0 +1,46 @@ +delete_orders_of_user($u_id_int); + } + $act_user = $UserClass->actions_user($u_id_int, $act); + + if ($act_user) { + echo $u_id_str; + } + } + return false; + } + +} \ No newline at end of file diff --git a/ajax/tradersList.php b/ajax/tradersList.php index 6cd1378..40a3c8a 100644 --- a/ajax/tradersList.php +++ b/ajax/tradersList.php @@ -18,7 +18,7 @@ if (isset($_POST['task'], $_POST['bc2']) && trim($_POST['task'])=='loadTradersLi if (isset($OrderClass)) { - $tradersList = $OrderClass->UserBalanceList($bc2); + $tradersList = $OrderClass->UserBalanceList($bc2, 1); if (is_array($tradersList) && !empty($tradersList)) { $std->traders_list = $tradersList; $std->error = false; diff --git a/ajax/transfer_tokens.php b/ajax/transfer_tokens.php new file mode 100644 index 0000000..f9014f2 --- /dev/null +++ b/ajax/transfer_tokens.php @@ -0,0 +1,133 @@ +mesg = array(); + $std->error = true; + + if ($from==$to) { + $mess = "Sender and receiver cannot be same."; + $std->error = true; + $std->mesg[] = $mess; + echo json_encode($std); + return false; + } + + if ($bc2==""||$bc2==null) { + $mess = "Please choose a Blockchain contract from second dropdown."; + $std->error = true; + $std->mesg[] = $mess; + echo json_encode($std); + return false; + } + + $validate_user_from = $UserClass->check_user($from); + $validate_user_to = $UserClass->check_user($to); + + if($validate_user_from == "" || empty($validate_user_from) || $validate_user_to == "" || empty($validate_user_to)) { + $mess = "No such user exist. Please re-check user ids."; + $std->error = true; + $std->mesg[] = $mess; + //$OrderClass->storeMessagesPublic(null, $user_id, $mess); + echo json_encode($std); + return false; + } + + $customer_bal_fr = (float) $OrderClass->check_customer_balance($bc2, $from)->balance; + $customer_bal_to = (float) $OrderClass->check_customer_balance($bc2, $to)->balance; + + if ($tokens > $customer_bal_fr) { + $mess = "Admin Token Transfer: The user has insufficient balance to make this ".$bc2." units transfer. His current Token balance is $customer_bal_fr ".$bc2."."; + $std->error = true; + $std->mesg[] = $mess; + echo json_encode($std); + $OrderClass->storeMessagesPublic(null, $from, $mess); + return false; + } + + if ($tokens < 0.0000000001) { + $mess = "Admin Token Transfer: Please provide minimum amount of 0.0000000001 BC units!"; + $OrderClass->storeMessagesPublic(null, $from, $mess); + $std->mesg[] = $mess; + echo json_encode($std); + return false; + } + + // Check order in sell table + $user_active_orders = $OrderClass->get_active_order_of_user($from, $bc2, TOP_SELLS_TABLE); + $frozen_bal_sells = 0; + $allowed_bid_amount = $customer_bal_fr; + if (is_array($user_active_orders) && !empty($user_active_orders)) { + foreach ($user_active_orders as $uao) { + $frozen_bal_sells += (float) $uao->quantity; + } + $allowed_bid_amount = $customer_bal_fr - $frozen_bal_sells; + $ext_st = "The user can transfer up to $bc2 $allowed_bid_amount only."; + if ($allowed_bid_amount == 0) { + $ext_st = "The user doesn't have any $bc2 to transfer."; + } + $msss = "The user has requested to transfer $frozen_bal_sells $bc2. $ext_st Please cancel it or reduce your transfer amount."; + } + + if ((float)$frozen_bal_sells + (float)$tokens > $customer_bal_fr) { + $OrderClass->storeMessagesPublic(null, $from, $msss); + $std->error = true; + $std->mesg[] = $msss; + echo json_encode($std); + return false; + } + + /*Finally, transfer the tokens*/ + + $new_from_bal = $customer_bal_fr - $tokens; + $new_to_bal = (float)$customer_bal_to + (float)$tokens; + + // Decrease tokens of 'from' + $update_bal_fr = $OrderClass->update_user_balance($bc2, $new_from_bal, $from); + + // Increase tokens of 'to' + $update_bal_to = $OrderClass->update_user_balance($bc2, $new_to_bal, $to); + + // Record the balance transfers or errors + if (!$update_bal_fr) { + $msss = "Failed to update Sender's balance."; + $std->error = true; + $std->mesg[] = $msss; + $OrderClass->storeMessagesPublic(null, ADMIN_ID, $msss); + echo json_encode($std); + return false; + } else if(!$update_bal_to) { + $msss = "Failed to update Receiver's balance."; + $std->error = true; + $std->mesg[] = $msss; + $OrderClass->storeMessagesPublic(null, ADMIN_ID, $msss); + echo json_encode($std); + return false; + } else { + $OrderClass->record_root_bal_update($from, $customer_bal_fr, $new_from_bal, $bc2); + $OrderClass->record_root_bal_update($to, $customer_bal_to, $new_to_bal, $bc2); + + $msss = "$bc2 transfer for user id ".$from." and ".$to." was processed successfully."; + $mess1 = "Your ".$tokens." $bc2 were transferred by Admin to user ".$to."."; + $mess2 = "You received ".$tokens." $bc2 from user ".$from." transferred by Admin."; + $std->error = false; + $std->mesg[] = $msss; + $OrderClass->storeMessagesPublic(null, ADMIN_ID, $msss); + $OrderClass->storeMessagesPublic(null, $from, $mess1); + $OrderClass->storeMessagesPublic(null, $to, $mess2); + echo json_encode($std); + return true; + } + } +} \ No newline at end of file diff --git a/ajax/update_bc_bal.php b/ajax/update_bc_bal.php new file mode 100644 index 0000000..adebd9a --- /dev/null +++ b/ajax/update_bc_bal.php @@ -0,0 +1,96 @@ +mesg = array(); + $std->error = true; + + if ($bc2==""||$bc2==null) { + $mess = "Please choose a Blockchain contract from second dropdown."; + $std->error = true; + $std->mesg[] = $mess; + echo json_encode($std); + return false; + } + + $validate_user = $UserClass->check_user($cus_id); + if($validate_user == "" || empty($validate_user)) { + $mess = "No such user exist. Please re-check user ids."; + $std->error = true; + $std->mesg[] = $mess; + echo json_encode($std); + return false; + } + + if ($balance < 0) { + $mess = "Balance must be positive number!"; + $std->error = true; + $std->mesg[] = $mess; + echo json_encode($std); + return false; + } + + if (!isset($OrderClass, $UserClass)) { + $mess = "System Error!"; + $std->error = true; + $std->mesg[] = $mess; + echo json_encode($std); + return false; + } + + $update_bal = null; + + /*Restrict decimal places while updating balance*/ + if (!validate_decimal_place($balance, 10)) { + $mess = "Max 10 decimal places allowed."; + $std->error = true; + $std->mesg[] = $mess; + echo json_encode($std); + return false; + } + + //Prev balance of user + $bal_prev = (float) $OrderClass->check_customer_balance($bc2, $cus_id)->balance; + + $update_bal = $OrderClass->update_user_balance($bc2, $balance, $cus_id); + + if (!$update_bal) { + $mess = "Failed to update balance."; + $std->error = true; + $std->mesg[] = $mess; + echo json_encode($std); + return false; + } else if($update_bal) { + // Record this change + $OrderClass->record_root_bal_update($cus_id, $bal_prev, $balance, $bc2); + $mess = "Successfully updated balance!"; + $std->error = false; + $std->mesg[] = $mess; + echo json_encode($std); + return false; + } else { + $mess = "Something went wrong. Failed to update balance!"; + $std->error = true; + $std->mesg[] = $mess; + echo json_encode($std); + return false; + } + } +} \ No newline at end of file diff --git a/classes/Orders.php b/classes/Orders.php index 4eda273..3353a3a 100644 --- a/classes/Orders.php +++ b/classes/Orders.php @@ -208,6 +208,23 @@ class Orders extends Users { return false; } + public function get_active_order_of_user($user_id, $bc, $top_table) { + if ($this->databaseConnection()) { + $query = $this->db_connection->prepare(" + SELECT * FROM $top_table WHERE `uid`= :uid ORDER BY `insert_dt` DESC + "); + $query->bindParam('uid', $user_id); + $query->execute(); + + $arr = array(); + while ($qr = $query->fetchObject()) { + $arr[] = $qr; + } + return $arr; + } + return false; + } + public function OrderMatchingQuery($bc1, $bc2) { if ($this->databaseConnection()) { @@ -1224,7 +1241,6 @@ class Orders extends Users { public function storeMessages($order_id=null, $user_id=null, $msg=null) { if($this->databaseConnection()) { - return; $now = $this->time_now(); if ($user_id == false) { return false; @@ -1247,18 +1263,25 @@ class Orders extends Users { return false; } - public function last_transaction_list($start=0, $limit = 10, $a_bc=null, $b_bc=null) { + public function last_transaction_list($start=0, $limit = 10, $a_bc=null, $b_bc=null, $uid=null) { if ($this->databaseConnection()) { $list = array(); $st = ""; - if (trim($a_bc)!==null && trim($b_bc == null)) { - $st = "WHERE ".TX_TABLE.".a_bc = '".$a_bc."'"; - } elseif(trim($a_bc)==null && trim($b_bc)!==null) { - $st = "WHERE ".TX_TABLE.".b_bc = '".$b_bc."'"; - } elseif(trim($a_bc)!==null && trim($b_bc)!==null) { - $st = "WHERE ".TX_TABLE.".a_bc = '".$a_bc."' AND ".TX_TABLE.".b_bc = '".$b_bc."'"; + $st2 = ""; + if ((int)$uid!=0 || (int)$uid!=null) { + $st2 = " AND a_buyer = $uid OR b_seller=$uid "; } + if (trim($a_bc)!=null && trim($b_bc == null)) { + $st = "WHERE ".TX_TABLE.".a_bc = '".$a_bc."'"; + } elseif(trim($a_bc)==null && trim($b_bc)!=null) { + $st = "WHERE ".TX_TABLE.".b_bc = '".$b_bc."'"; + } elseif(trim($a_bc)!=null && trim($b_bc)!=null) { + $st = "WHERE ".TX_TABLE.".a_bc = '".$a_bc."' AND ".TX_TABLE.".b_bc = '".$b_bc."'"; + } elseif (trim($a_bc)==null && trim($b_bc)==null && $uid!=null) { + $st2 = " WHERE a_buyer = $uid OR b_seller=$uid "; + } + $st.= $st2; $query = $this->db_connection->query(" SELECT txid AS T_ID, a_buyer AS BUYER_ID, b_seller AS SELLER_ID, (SELECT ".USERS_TABLE.".name FROM ".USERS_TABLE." WHERE ".USERS_TABLE.".id=BUYER_ID) AS BUYER, (SELECT ".USERS_TABLE.".name FROM ".USERS_TABLE." WHERE ".USERS_TABLE.".id=SELLER_ID) AS SELLER, b_amount AS TRADE_PRICE, ".TX_TABLE.".insert_dt, ".TX_TABLE.".qty_traded AS TRADED_QTY @@ -1280,29 +1303,39 @@ class Orders extends Users { return false; } - public function UserBalanceList($bc1='RMT', $is_active=null) { + public function UserBalanceList($bc1='', $is_active=null) { if ($this->databaseConnection()) { $list = array(); $extraQuerry = ""; + $extraQuerry1 = ""; + $extraQuerry2 = ""; if ($is_active != null) { - $extraQuerry = "AND ".USERS_TABLE.".is_active = 0 OR ".USERS_TABLE.".is_active = 1"; + $extraQuerry = "WHERE (".USERS_TABLE.".is_active = 0 OR ".USERS_TABLE.".is_active = 1) AND ".USERS_TABLE.".id = ".CREDITS_TABLE.".uid"; } else { - $extraQuerry = "AND ".USERS_TABLE.".is_active = 1"; + $extraQuerry = "WHERE ".USERS_TABLE.".is_active = 1 AND ".USERS_TABLE.".id = ".CREDITS_TABLE.".uid"; + } + + if (trim($bc1)!=null) { + $extraQuerry1 = "AND ".CREDITS_TABLE.".bc = :bc1"; + $extraQuerry2 = "ORDER BY ".CREDITS_TABLE.".balance DESC"; + } else { + $extraQuerry2 = "ORDER BY ".USERS_TABLE.".name ASC"; } $query = $this->db_connection->prepare(" - SELECT DISTINCT ".USERS_TABLE.".name, ".CREDITS_TABLE.".balance, ".CREDITS_TABLE.".bc + SELECT DISTINCT ".USERS_TABLE.".name, ".USERS_TABLE.".id AS UID, ".USERS_TABLE.".fb_id AS FACEBOOK_ID, ".CREDITS_TABLE.".balance, ".CREDITS_TABLE.".bc, ".USERS_TABLE.".is_active FROM ".USERS_TABLE.", ".CREDITS_TABLE." - WHERE ".CREDITS_TABLE.".bc = :bc1 - AND ".USERS_TABLE.".id = ".CREDITS_TABLE.".uid $extraQuerry - ORDER BY ".CREDITS_TABLE.".balance DESC + $extraQuerry1 + $extraQuerry2 "); - $query->bindParam('bc1', $bc1); + if (trim($bc1)!=null) { + $query->bindParam('bc1', $bc1); + } $query->execute(); if ($query->rowCount() > 0) { @@ -1341,27 +1374,6 @@ class Orders extends Users { return false; } - /*public function sel_bc_stats($bc1, $bc2) { - if ($this->databaseConnection()) { - $query = $this->db_connection->prepare(" - SELECT a_bc, b_bc, b_amount - FROM ".TX_TABLE." - WHERE a_bc = :a - AND b_bc = :b - ORDER BY insert_dt DESC - LIMIT 1 - "); - $query->bindParam("a", $bc1); - $query->bindParam("b", $bc2); - $query->execute(); - $data = null; - if ($query->rowCount()) { - $data = $query->fetchObject(); - } - return$data; - } - }*/ - public function tx_data($bc1=null, $bc2=null, $limit=null) { if ($this->databaseConnection()) { $st = ''; @@ -1373,7 +1385,7 @@ class Orders extends Users { } else if ($bc1==null && $bc2!=null) { $st = 'WHERE b_bc = :b GROUP BY b_bc '; } else { - $st=''; + $st=' GROUP BY a_bc '; } if ($limit != null) { $st2 = " LIMIT $limit"; @@ -1411,4 +1423,152 @@ class Orders extends Users { return false; } + public function record_root_bal_update($uid, $bal_prev, $bal_now, $bal_type) { + if ($this->databaseConnection()) { + $now = $this->time_now(); + $root = isset($_SESSION['user_id']) ? $_SESSION['user_id'] : 0; + $query = $this->db_connection->prepare(" + INSERT INTO ".ADMIN_BAL_RECORDS."(`BalStatusHistoryId`, `user_id`, `bal_prev`, `bal_now`, `type`, `root_id`, `UpdateDate`) + VALUES ('', :uid, :prev, :now, :btype, :root, '$now') + "); + $query->bindParam("uid", $uid); + $query->bindParam("prev", $bal_prev); + $query->bindParam("now", $bal_now); + $query->bindParam("btype", $bal_type); + $query->bindParam("root", $root); + + if ($query->execute()) { + return true; + } + } + return false; + } + + public function list_root_bal_changes() { + if ($this->databaseConnection()) { + $list_details = array(); + $query = $this->db_connection->prepare(" + SELECT ".ADMIN_BAL_RECORDS.".*, ".USERS_TABLE.".name, ".USERS_TABLE.".email + FROM ".ADMIN_BAL_RECORDS.", ".USERS_TABLE." + WHERE ".ADMIN_BAL_RECORDS.".user_id=".USERS_TABLE.".id + ORDER BY UpdateDate DESC + LIMIT 200 + "); + $query->execute(); + + if ($query->rowCount() > 0) { + while ($list = $query->fetchObject()) { + $list_details[] = $list; + } + } + return $list_details; + } + return false; + } + + public function get_last_order_date($date=null) { + if ($this->databaseConnection()) { + $query = $this->db_connection->query("SELECT * FROM ".ORDERS_TABLE." WHERE `insert_dt`> '$date'"); + if ($query->rowCount()) { + return true; + } + } + return false; + } + + public function delete_orders_of_user($user_id=null) { + if ($this->databaseConnection()) { + $order_ids = array(); + $query = $this->db_connection->prepare(" + SELECT order_id FROM ".TOP_BUYS_TABLE." WHERE `uid`=:uid + UNION + SELECT order_id FROM ".TOP_SELLS_TABLE." WHERE `uid`=:uid + "); + $query->bindParam('uid', $user_id); + $query->execute(); + if ($query->rowCount() > 0) { + while ($rr = $query->fetchObject()) { + $order_ids[] = $rr; + } + foreach ($order_ids as $oid) { + $this->del_order($oid->orderId, $user_id); + } + return true; + } + } + return false; + } + + public function storeMessagesPublic($order_id=null, $user_id=null, $msg=null) { + if ($this->databaseConnection()) { + $this->storeMessages($order_id, $user_id, $msg); + } + } + + public function total_recent_transactions() + { + if ($this->databaseConnection()) { + $total_orders = 0; + + $query = $this->db_connection->prepare(" + SELECT COUNT(*) AS TOTAL_ORDERS + FROM ".TX_TABLE." + "); + if ($query->execute()) { + $fetch = $query->fetchObject(); + $total_orders = (int)$fetch->TOTAL_ORDERS; + } + return $total_orders; + } + return false; + } + + function total_my_messages() { + if ($this->databaseConnection()) { + $my_total_messages = 0; + if (isset($_SESSION['user_id'])) { + $user_id = (int) $_SESSION['user_id']; + } else { + return $my_total_messages; + } + $query = $this->db_connection->prepare(" + SELECT COUNT(*) AS MY_TOTAL_MESSAGES + FROM ".MSG_TABLE." + WHERE `username_key`=:u_id + "); + $query->bindParam('u_id', $user_id); + if ($query->execute()) { + $fetch = $query->fetchObject(); + $my_total_messages = (int) $fetch->MY_TOTAL_MESSAGES; + } + return $my_total_messages; + } + return false; + } + + public function total_my_orders() + { + if ($this->databaseConnection()) { + $my_total_orders = 0; + if (isset($_SESSION['user_id'])) { + $user_id = (int)$_SESSION['user_id']; + } else { + return $my_total_orders; + } + $query = $this->db_connection->prepare(" + SELECT COUNT(*) AS MY_TOTAL_ORDERS + FROM ".ORDERS_TABLE." + WHERE `uid`=:u_id + "); + $query->bindParam('u_id', $user_id); + if ($query->execute()) { + $fetch = $query->fetchObject(); + $my_total_orders = (int)$fetch->MY_TOTAL_ORDERS; + } + return $my_total_orders; + } + return false; + } + + } \ No newline at end of file diff --git a/classes/Users.php b/classes/Users.php index 42f08c9..04ede4b 100644 --- a/classes/Users.php +++ b/classes/Users.php @@ -274,5 +274,29 @@ class Users { return false; } + public function list_messages_by_userId($user_id, $start=0, $limit=10) { + if ($this->databaseConnection()) { + $messages = array(); + + $query = $this->db_connection->prepare(" + SELECT * FROM ".MSG_TABLE." WHERE `username_key`= :uk + ORDER BY datetime DESC + LIMIT $start, $limit + "); + $query->bindParam("uk", $user_id); + if ($query->execute()) { + $rowCount = $query->rowCount(); + if ($rowCount > 0) { + while ($tr = $query->fetchObject()) { + $messages[] = $tr; + } + } + } + return $messages; + } + return false; + } + + } \ No newline at end of file diff --git a/images/spinner.gif b/images/spinner.gif new file mode 100644 index 0000000..b059fe8 Binary files /dev/null and b/images/spinner.gif differ diff --git a/includes/config.example.php b/includes/config.example.php index 456db42..806112e 100644 --- a/includes/config.example.php +++ b/includes/config.example.php @@ -51,6 +51,8 @@ define("USERS_TABLE", "USER TABLE"); define("CREDITS_TABLE", "BALANCE TABLE"); define("ORDERS_TABLE", "ORDERS TABLE"); define("TX_TABLE", "TRANSACTION TABLE"); +define("ADMIN_BAL_RECORDS", "ADMIN TABLE"); +define("MSG_TABLE", "MESSAGES TABLE"); /*FACEBOOK DETAILS*/ define("APP_ID", 'YOUR FB APP ID'); diff --git a/includes/header.php b/includes/header.php index 4a3f12e..46e1aa8 100644 --- a/includes/header.php +++ b/includes/header.php @@ -41,13 +41,14 @@ if(checkLoginStatus()) { - Home + Ranchi Mall Blockchain Contracts - + + - +