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();
 }
Example #3
0
     $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;
Example #4
0
         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;
 }