public static function while_plugins($category = array()) { global $db; $categories = \site\utils::validate_user_data($category); $where = $orderby = $limit = array(); if (isset($categories['max'])) { if (!empty($categories['max'])) { $limit[] = $categories['max']; } } else { $page = !empty($_GET['page']) ? (int) $_GET['page'] : 1; $per_page = isset($categories['per_page']) ? (int) $categories['per_page'] : \query\main::get_option('items_per_page'); $offset = isset($page) && $page > 1 ? ($page - 1) * $per_page : 0; $limit[] = $offset; $limit[] = $per_page; } /* WHERE / ORDER BY */ if (!empty($categories['search'])) { $search = implode('.*', explode(' ', trim($categories['search']))); $where[] = 'CONCAT(name, description) REGEXP "' . \site\utils::dbp($search) . '"'; } if (isset($categories['show'])) { $show = array_map('trim', explode(',', strtolower($categories['show']))); foreach ($show as $v) { switch ($v) { case 'languages': $where[] = 'scope = "language"'; break; case 'payment_gateways': $where[] = 'scope = "pay_gateway"'; break; case 'feed_servers': $where[] = 'scope = "feed_server"'; break; case 'applications': $where[] = 'scope = ""'; break; } } } if (isset($categories['orderby'])) { $order = array_map('trim', explode(',', strtolower($categories['orderby']))); foreach ($order as $v) { switch ($v) { case 'name': $orderby[] = 'name'; break; case 'name desc': $orderby[] = 'name DESC'; break; case 'date': $orderby[] = 'date'; break; case 'date desc': $orderby[] = 'date DESC'; break; } } } /* */ $stmt = $db->stmt_init(); $stmt->prepare("SELECT id, user, name, image, scope, main, options, menu, menu_ready, menu_icon, extend_vars, description, version, update_checker, uninstall, visible, date FROM " . DB_TABLE_PREFIX . "plugins" . (empty($where) ? '' : ' WHERE ' . implode(' AND ', $where)) . (empty($orderby) ? '' : ' ORDER BY ' . implode(', ', array_filter($orderby))) . (empty($limit) ? '' : ' LIMIT ' . implode(',', $limit))); $stmt->execute(); $stmt->bind_result($id, $user, $name, $image, $scope, $main_file, $options_file, $menu, $menu_ready, $menu_icon, $vars, $description, $version, $update_checker, $uninstall, $visible, $date); $data = array(); while ($info = $stmt->fetch()) { $data[] = (object) array('ID' => $id, 'user' => $user, 'name' => htmlspecialchars($name), 'image' => htmlspecialchars($image), 'scope' => htmlspecialchars($scope), 'main_file' => htmlspecialchars($main_file), 'options_file' => htmlspecialchars($options_file), 'menu' => $menu, 'menu_ready' => $menu_ready, 'menu_icon' => $menu_icon, 'vars' => @unserialize($vars), 'description' => htmlspecialchars($description), 'update_checker' => htmlspecialchars($update_checker), 'version' => $version, 'uninstall_preview' => @unserialize($uninstall), 'visible' => $visible, 'date' => $date); } $stmt->close(); return $data; }
public static function while_invoices($category = array()) { global $db; $categories = \site\utils::validate_user_data($category); $where = $orderby = $limit = array(); if (isset($categories['max'])) { if (!empty($categories['max'])) { $limit[] = $categories['max']; } } else { $page = !empty($_GET['page']) ? (int) $_GET['page'] : 1; $per_page = isset($categories['per_page']) ? (int) $categories['per_page'] : \query\main::get_option('items_per_page'); $offset = isset($page) && $page > 1 ? ($page - 1) * $per_page : 0; $limit[] = $offset; $limit[] = $per_page; } /* WHERE / ORDER BY */ if (!empty($categories['search'])) { $search = implode('.*', explode(' ', trim($categories['search']))); $where[] = 'CONCAT(t.gateway, t.transaction_id, t.details) REGEXP "' . \site\utils::dbp($search) . '"'; } if (isset($categories['show'])) { switch ($categories['show']) { case 'paid': $where[] = 'paid > 0'; break; case 'unpaid': $where[] = 'paid = 0'; break; case 'delivered': $where[] = 'delivered > 0'; break; case 'undelivered': $where[] = 'delivered = 0'; break; case 'undeliveredpayments': $where[] = 'paid > 0 AND delivered = 0'; } } if (!empty($categories['date'])) { $date = array_map('trim', explode(',', $categories['date'])); $where[] = 't.date >= FROM_UNIXTIME(' . \site\utils::dbp($date[0]) . ')'; if (isset($date[1])) { $where[] = 't.date <= FROM_UNIXTIME(' . \site\utils::dbp($date[1]) . ')'; } } if (isset($categories['orderby'])) { $order = array_map('trim', explode(',', strtolower($categories['orderby']))); foreach ($order as $v) { switch ($v) { case 'rand': $orderby[] = 'RAND()'; break; case 'date': $orderby[] = 't.date'; break; case 'date desc': $orderby[] = 't.date DESC'; break; case 'price': $orderby[] = 't.price'; break; case 'price desc': $orderby[] = 't.price DESC'; break; } } } /* */ $stmt = $db->stmt_init(); $stmt->prepare("SELECT t.id, t.user, u.name, u.avatar, t.gateway, t.price, t.transaction_id, t.state, t.details, t.lastupdate, t.paid, t.delivered, t.date FROM " . DB_TABLE_PREFIX . "p_transactions t LEFT JOIN " . DB_TABLE_PREFIX . "users u ON (u.id = t.user)" . (empty($where) ? '' : ' WHERE ' . implode(' AND ', $where)) . (empty($orderby) ? '' : ' ORDER BY ' . implode(', ', array_filter($orderby))) . (empty($limit) ? '' : ' LIMIT ' . implode(',', $limit))); $stmt->execute(); $stmt->bind_result($id, $user, $user_name, $user_avatar, $gateway, $price, $transaction_id, $state, $details, $last_update, $paid, $delivered, $date); $data = array(); while ($stmt->fetch()) { $data[] = (object) array('ID' => $id, 'user' => $user, 'user_name' => $user_name, 'user_avatar' => $user_avatar, 'gateway' => htmlspecialchars($gateway), 'price' => $price, 'price_format' => sprintf(PRICE_FORMAT, \site\utils::money_format($price)), 'transaction_id' => htmlspecialchars($transaction_id), 'state' => htmlspecialchars($state), 'details' => htmlspecialchars($details), 'last_update' => $last_update, 'paid' => $paid, 'delivered' => $delivered, 'date' => $date); } $stmt->close(); return $data; }
public static function while_rewards_reqs($category = array()) { global $db; $categories = \site\utils::validate_user_data($category); $where = $orderby = $limit = array(); if (isset($categories['max'])) { if (!empty($categories['max'])) { $limit[] = $categories['max']; } } else { $page = !empty($_GET['page']) ? (int) $_GET['page'] : 1; $per_page = isset($categories['per_page']) ? (int) $categories['per_page'] : \query\main::get_option('items_per_page'); $offset = isset($page) && $page > 1 ? ($page - 1) * $per_page : 0; $limit[] = $offset; $limit[] = $per_page; } /* WHERE / ORDER BY */ if (!empty($categories['user'])) { $where[] = 'user = "******"'; } if (!empty($categories['reward'])) { $where[] = 'reward = "' . (int) $categories['reward'] . '"'; } if (!empty($categories['search'])) { $search = implode('.*', explode(' ', trim($categories['search']))); $where[] = 'fields REGEXP "' . \site\utils::dbp($search) . '"'; } if (isset($categories['show'])) { $show = strtolower($categories['show']); switch ($show) { case 'valid': $where[] = 'claimed = 1'; break; case 'notvalid': $where[] = 'claimed = 0'; break; } } if (isset($categories['orderby'])) { $order = array_map('trim', explode(',', strtolower($categories['orderby']))); foreach ($order as $v) { switch ($v) { case 'rand': $orderby[] = 'RAND()'; break; case 'date': $orderby[] = 'date'; break; case 'date desc': $orderby[] = 'date DESC'; break; case 'points': $orderby[] = 'points'; break; case 'points desc': $orderby[] = 'points DESC'; break; } } } /* */ $stmt = $db->stmt_init(); $stmt->prepare("SELECT id, name, user, points, reward, (SELECT COUNT(*) FROM " . DB_TABLE_PREFIX . "rewards WHERE id = r.reward), fields, claimed, date FROM " . DB_TABLE_PREFIX . "rewards_reqs r" . (empty($where) ? '' : ' WHERE ' . implode(' AND ', $where)) . (empty($orderby) ? '' : ' ORDER BY ' . implode(', ', array_filter($orderby))) . (empty($limit) ? '' : ' LIMIT ' . implode(',', $limit))); $stmt->execute(); $stmt->bind_result($id, $name, $user, $points, $reward, $reward_exists, $fields, $claimed, $date); $data = array(); while ($stmt->fetch()) { $data[] = (object) array('ID' => $id, 'name' => htmlspecialchars($name), 'user' => $user, 'points' => $points, 'reward' => $reward, 'reward_exists' => $reward_exists > 0 ? 1 : 0, 'fields' => @unserialize($fields), 'claimed' => $claimed, 'date' => $date); } $stmt->close(); return $data; }
public static function while_head_lines($category = array()) { global $db; $categories = \site\utils::validate_user_data($category); $where = $orderby = $limit = array(); if (isset($categories['max'])) { if (!empty($categories['max'])) { $limit[] = $categories['max']; } } else { $page = !empty($_GET['page']) ? (int) $_GET['page'] : 1; $per_page = isset($categories['per_page']) ? (int) $categories['per_page'] : \query\main::get_option('items_per_page'); $offset = isset($page) && $page > 1 ? ($page - 1) * $per_page : 0; $limit[] = $offset; $limit[] = $per_page; } /* WHERE / ORDER BY */ if (!empty($categories['search'])) { $search = implode('.*', explode(' ', trim($categories['search']))); $where[] = 'CONCAT(text, plugin) REGEXP "' . \site\utils::dbp($search) . '"'; } if (isset($categories['show'])) { switch ($categories['show']) { case 'admin': $where[] = 'admin > 0'; break; case 'theme': $where[] = 'theme > 0'; break; } } if (isset($categories['orderby'])) { $order = array_map('trim', explode(',', strtolower($categories['orderby']))); foreach ($order as $v) { switch ($v) { case 'date': $orderby[] = 'date'; break; case 'date desc': $orderby[] = 'date DESC'; break; } } } /* */ $stmt = $db->stmt_init(); $stmt->prepare("SELECT id, text, admin, theme, plugin, date FROM " . DB_TABLE_PREFIX . "head" . (empty($where) ? '' : ' WHERE ' . implode(' AND ', $where)) . (empty($orderby) ? '' : ' ORDER BY ' . implode(', ', array_filter($orderby))) . (empty($limit) ? '' : ' LIMIT ' . implode(',', $limit))); $stmt->execute(); $stmt->bind_result($id, $text, $admin, $theme, $plugin, $date); $data = array(); while ($stmt->fetch()) { $data[] = (object) array('ID' => $id, 'text' => $text, 'admin' => $admin, 'theme' => $theme, 'plugin' => $plugin, 'date' => $date); } $stmt->close(); return $data; }