public function ShowSkinList($list = 1, $per_page = 20, $gender = 2, $order_by = 'id', $sort = 1, $mode = 'base', $ratio = 1) { global $user; $list = (int) $list; if ($list <= 0) { $list = 1; } $ratio = (int) $ratio; if (($ratio < 1 or $ratio > 64) and $ratio != 1337 and $ratio != 31337) { return ''; } $order_by = $order_by == 'id' ? 'id' : 'likes'; $sort = $sort == 2 ? 'DESC' : ''; // echo '['.$list.' |'.$per_page.' |'.$gender.' |'.$order_by.' |'.$sort.' |'.$mode.' |'.$ratio.']'; $mode_txt = 'Классические образы (64х32)'; $gender_txt = 'Женские'; if ($gender < 2) { $gender_txt = ($gender ? 'Женские' : 'Мужские') . ' и без тега'; $base_sql = "WHERE (`gender` = '2' OR `gender` = '" . ($gender ? 1 : 0) . "')"; } elseif ($gender == 2) { $gender_txt = 'Без тега'; $base_sql = "WHERE `gender` = '2'"; } elseif ($gender == 3) { $gender_txt = 'Мужские'; $base_sql = "WHERE `gender` = '0'"; } else { $base_sql = "WHERE `gender` = '1'"; } if ($mode == 'HD') { $mode_txt = 'Высокое разрешение'; } elseif ($mode == 'likes') { $gender_txt = 'Любые'; $mode_txt = 'Понравившиеся'; } if ($mode != 'likes') { if ($mode == 'HD' and $ratio == 1337) { $base_sql .= " AND `ratio` != '1'"; } else { $base_sql .= " AND `ratio` = '" . $ratio . "'"; } $skins_count = mysql_result(BD("SELECT COUNT(*) FROM `" . $this->db . "` " . $base_sql), 0); } else { if (empty($user)) { $skins_count = 0; } else { $skins_count = mysql_result(BD("SELECT COUNT(*) FROM `" . $this->db_likes . "` WHERE `user_id`= '" . $user->id() . "' AND `item_type` = '" . $this->type . "' AND `var`='1'"), 0); } } $html_skin_list = ''; if ($list > ceil($skins_count / $per_page)) { $list = 1; } if (!$skins_count) { $html_skin_list = $this->ShowPage('skin_empty.html'); } else { if ($mode != 'likes') { $result = BD("SELECT `id` FROM `" . $this->db . "` " . $base_sql . " ORDER BY `{$order_by}` {$sort} LIMIT " . $per_page * ($list - 1) . ",{$per_page}"); } else { $sql = "SELECT `item_id` AS 'id' "; $sql .= "FROM `" . $this->db . "` LEFT JOIN `" . $this->db_likes . "` ON " . $this->db . ".id = " . $this->db_likes . ".item_id "; $sql .= "WHERE " . $this->db_likes . ".user_id = '" . $user->id() . "' AND " . $this->db_likes . ".item_type = '" . $this->type . "' AND " . $this->db_likes . ".var = '1' ORDER BY " . $this->db_likes . ".id DESC LIMIT " . $per_page * ($list - 1) . ",{$per_page}"; $result = BD($sql); } if (!mysql_num_rows($result)) { $html_skin_list = $this->ShowPage('skin_empty.html'); } while ($line = mysql_fetch_array($result, MYSQL_NUM)) { $skin = new SPItem($line[0], $this->st_subdir); $html_skin_list .= $skin->Show(); } } $html_skin_list .= $this->arrowsGenerator($this->base_url . $this->url_params . '&', $list, $skins_count, $per_page); ob_start(); include $this->GetView('main.html'); return ob_get_clean(); }
public function ShowSkinList($list = 1, $per_page = 20, $gender = 2, $order_by = false, $sort = 1, $mode = 'base', $ratio = 1) { global $user; $list = (int) $list; if ($list <= 0) { $list = 1; } $ratio = (int) $ratio; if (($ratio < 1 or $ratio > 64) and $ratio != 1337 and $ratio != 31337) { return ''; } switch ($order_by) { case 'id': $order_by = 'id'; break; case 'likes': $order_by = 'likes'; break; case 'comment_last': $order_by = 'comment_last'; break; case 'comments': $order_by = 'comments'; break; default: if ($this->discus) { $order_by = 'comment_last'; } else { $order_by = 'id'; } break; } $sort = $sort == 2 ? 'DESC' : ''; // echo '['.$list.' |'.$per_page.' |'.$gender.' |'.$order_by.' |'.$sort.' |'.$mode.' |'.$ratio.']'; $mode_txt = 'Классические образы (64х32)'; $gender_txt = 'Женские'; if ($gender < 2) { $gender_txt = ($gender ? 'Женские' : 'Мужские') . ' и без тега'; $base_sql = "WHERE (`gender` = '2' OR `gender` = '" . ($gender ? 1 : 0) . "')"; } elseif ($gender == 2) { $gender_txt = 'Без тега'; $base_sql = "WHERE `gender` = '2'"; } elseif ($gender == 3) { $gender_txt = 'Мужские'; $base_sql = "WHERE `gender` = '0'"; } else { $base_sql = "WHERE `gender` = '1'"; } if ($mode == 'HD') { $mode_txt = 'Высокое разрешение'; } elseif ($mode == 'likes') { $gender_txt = 'Любые'; $mode_txt = 'Понравившиеся'; } if ($mode != 'likes') { if ($mode == 'HD' and $ratio == 1337) { $base_sql .= " AND `ratio` != '1'"; } else { $base_sql .= " AND `ratio` = '" . $ratio . "'"; } $skins_count = getDB()->fetchRow("SELECT COUNT(*) FROM `" . $this->db . "` " . $base_sql, false, 'num'); } else { if (empty($user)) { $skins_count = 0; } else { $skins_count = getDB()->fetchRow("SELECT COUNT(*) FROM `" . $this->db_likes . "` WHERE " . "`user_id`= '" . $user->id() . "' AND `item_type` = '" . $this->type . "' " . "AND `var`='1'", false, 'num'); } } if (!$skins_count) { $skins_count = 0; } else { $skins_count = (int) $skins_count[0]; } $html_skin_list = ''; if ($list > ceil($skins_count / $per_page)) { $list = 1; } if (!$skins_count) { $html_skin_list = $this->ShowPage('skin_empty.html'); } else { if ($mode != 'likes') { $result = getDB()->ask("SELECT `id` FROM `" . $this->db . "` " . $base_sql . " " . "ORDER BY `{$order_by}` {$sort} LIMIT " . $per_page * ($list - 1) . ", {$per_page}"); } else { $sql = "SELECT `item_id` AS 'id' FROM `{$this->db}` " . "LEFT JOIN `{$this->db_likes}` ON " . $this->db . ".id = {$this->db_likes}.item_id " . "WHERE {$this->db_likes}.user_id = '" . $user->id() . "' AND " . "{$this->db_likes}.item_type = '{$this->type}' AND " . "{$this->db_likes}.var = '1' ORDER BY {$this->db_likes}.id " . "DESC LIMIT " . $per_page * ($list - 1) . ", {$per_page}"; $result = getDB()->ask($sql); } while ($line = $result->fetch('num')) { $skin = new SPItem($line[0], $this->st_subdir); $html_skin_list .= $skin->Show($this->discus); } if (!$html_skin_list) { $this->ShowPage('skin_empty.html'); } } $html_skin_list .= $this->arrowsGenerator($this->base_url . $this->url_params . '&', $list, $skins_count, $per_page); ob_start(); include $this->GetView('main.html'); return ob_get_clean(); }