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(); }
$type = Filter::input('type', 'post', 'int'); $dislike = Filter::input('dislike', 'post', 'bool'); if (!$type or !$id) { break; } if (empty($user)) { aExit(3, 'Like not authed'); break; } $item = null; if ($type == ItemType::News) { loadTool('catalog.class.php'); $item = new News_Item($id); } elseif ($type == ItemType::Skin and isset($bd_names['sp_skins'])) { loadTool('skinposer.class.php'); $item = new SPItem($id); } if ($item) { aExit((int) $item->Like($dislike), 'Like'); } break; case 'download': $file = Filter::input('file', 'get'); if (empty($file)) { break; } $file = new File($file); if (!$file->Download()) { header("Location: " . BASE_URL . "index.php?mode=404"); } break;
aExit(0); } else { aExit(4); } break; case 'add': if (!$user->getPermission('sp_upload') or !$config['sp_upload'] and !$user_admin) { exit; break; } $max_ratio = $user->getPermission('max_ratio'); $max_fsize = $user->getPermission('max_fsize'); $max_ratio_text = 64 * $max_ratio . 'x' . 32 * $max_ratio; $skin_gender = !isset($_POST['skin_gender']) ? 2 : (int) $_POST['skin_gender']; $skin_check = empty($_POST['skin_check']) ? false : true; $sp_item = new SPItem(); $result = $sp_item->Create('skin_upload', $skin_gender, $max_fsize, $max_ratio, $skin_check); $error = ''; if ($result < 0) { $error = 'Скин уже есть в базе. <a href="index.php?mode=skinposer&cid=' . $result * -1 . '">Перейти</a>'; } else { switch ($result) { case 1: $error = 'Ошибка при загрузке файла. (Допустимый формат файла - png)'; break; case 3: $error = 'Скин занесен в блек-лист.'; break; case 4: $error = 'Размер файла превышает предельно допустимый. (' . $max_fsize . 'кб)'; break;
/** * Create a SharePoint Item * * @access public * @param array $properties List properties (Title, ...) * @throws SPException * @return array */ public function createSPItem(array $properties) { $item = SPItem::create($this, $properties); $this[] = $item; return $item; }