Просмотр файла pages/smiles.php

Размер файла: 9.62Kb
  1. <?php
  2. include '../engine/includes/start.php';
  3. $set['title'] = 'Смайлы';
  4.  
  5. include H . 'engine/includes/head.php';
  6.  
  7. $i = 0;
  8.  
  9. /*
  10. * пабличный скрипт. автор неизвестен
  11. */
  12.  
  13.  
  14. /*
  15. * Глобальный фикс =)
  16. */
  17.  
  18. if (!$admin && ($act != 'kat' || empty($act)))
  19. {
  20. $act = null;
  21. }
  22.  
  23.  
  24.  
  25. switch($act)
  26. {
  27. default:
  28. $sql->query("SELECT `id`, `name` FROM `smiles` WHERE `type` = 'kat'");
  29.  
  30. if ($sql->num_rows())
  31. {
  32. while($kat = $sql->fetch())
  33. {
  34. echo '<a href="?act=kat&amp;id='.$kat['id'].'"><div class="'.($i++ % 2 ? 'p_m' : 'p_t').'">'.$kat['name'].'</div></a>';
  35. }
  36. }
  37. else
  38. {
  39. echo 'Пока смайлов нет';
  40. }
  41.  
  42. if ($admin)
  43. {
  44. echo '<a class="link" href="?act=add_kat">Добавить категорию</a>';
  45. }
  46. break;
  47. case 'kat':
  48. $sql->query("SELECT * FROM `smiles` WHERE `type` = 'kat' AND `id` = $id");
  49.  
  50. if (!$sql->num_rows())
  51. {
  52. echo 'not found';
  53. include incDir . 'foot.php';
  54. }
  55.  
  56. $kat = $sql->fetch();
  57.  
  58. echo '<div class="menu_razd"><b>Директория</b>: '.$kat['name'].'</div>';
  59. if ($admin)
  60. {
  61. echo '<a href="?act=new&amp;id='.$id.'" class="link">&raquo; Добавить смайл</a>';
  62. }
  63.  
  64. Core::get('page.class');
  65.  
  66. $total = $sql->query("SELECT COUNT(*) FROM `smiles` WHERE `parent_id` = '$id'")->result();
  67. $page = new page($total, $set['p_str']);
  68.  
  69. if ($total == 0)
  70. {
  71. echo '<div class="err">Нет смайлов</div>';
  72. }
  73.  
  74. $sql->query("SELECT * FROM `smiles` WHERE `parent_id` = '$id' ORDER BY `id` ASC LIMIT ".$page->limit());
  75. while($post = $sql->fetch())
  76. {
  77. echo '<img src="/style/smiles/'.$post['name'].'.gif" alt="'.$post['name'].'"/> '.$post['symbol'].' <br />';
  78.  
  79. if ($admin)
  80. {
  81. echo '<a href="?act=del&amp;id='.$post['id'].'">удалить</a>'.
  82. ' | <a href="?act=edit&amp;id='.$post['id'].'">редактировать</a><br />';
  83. }
  84. echo '<br />';
  85. }
  86.  
  87. $page->display('?act=kat&amp;id='.$id.'&amp;');
  88.  
  89. echo '<a href="?act" class="link">Все категории</a>';
  90. if ($admin)
  91. {
  92. echo
  93. '<a href="?act=edit_kat&amp;id='.$id.'" class="link">Редактировать</a>'.
  94. '<a href="?act=del_kat&amp;id='.$id.'" class="link">Удалить категорию</a>';
  95. }
  96. break;
  97.  
  98. case 'new':
  99. if ($admin)
  100. {
  101. if (isset($_FILES['file']))
  102. {
  103. $type = $_FILES['file']['type'];
  104. if ($type !== 'image/jpeg' && $type!=='image/jpg' && $type!=='image/gif' && $type!=='image/png')
  105. $err='Это не картинка.';
  106. $name = Core::form('name');
  107. $name_len = mb_strlen($name);
  108. if ($name_len < 1)
  109. $err='Слишком короткое название';
  110. if ($name_len > 32)
  111. $err='Слишком днинное название';
  112.  
  113. if ($sql->query("SELECT COUNT(*) FROM `smiles` WHERE `name` = '$name' and `type` ='smile'")->result() == 1)
  114. $err='Такой смайл уже есть';
  115.  
  116. if (!isset($err))
  117. {
  118. $namef = pathinfo($_FILES['file']['name'], PATHINFO_FILENAME);
  119. $tmp = $_FILES['file']['tmp_name'];
  120. $sql->query("INSERT INTO `smiles` (`name`, `symbol`, `parent_id`, `type`) values('$namef', '$name', '$id', 'smile')");
  121.  
  122. move_uploaded_file($tmp, H.'style/smiles/'.$namef.'.gif');
  123.  
  124. echo '<div class="msg">Смайл успешно добавлен</div>';
  125. }
  126. else
  127. echo Core::msg_show($err);
  128. }
  129. else
  130. {
  131. ?>
  132. <form method="post" action="?act=new&amp;id=<?=$id?>" enctype='multipart/form-data'>
  133. Название:<br />
  134. <input name="name" type="text" maxlength='32' value='' /><br />
  135. Прикрепить картинку:<br />
  136. <input type="file" name="file"/><br />
  137. <input value='Добавить' type='submit' name='ok' /><br />
  138. </form>
  139. <?php
  140. }
  141. echo '<a href="?act=kat&amp;id='.$id.'" class="link">&larr; Назад</a>';
  142. }
  143. break;
  144.  
  145. case 'edit':
  146. if ($admin)
  147. {
  148. if ($sql->query('SELECT COUNT(*) FROM `smiles` WHERE `id` = '.$id.' and `type` = "smile" LIMIT 1')->result() == 0)
  149. echo 'Смайл не найден!';
  150. else
  151. {
  152. $bm = $sql->query('SELECT * FROM `smiles` WHERE `id` = '.$id.' LIMIT 1')->fetch();
  153. if (isset($_POST['ok']))
  154. {
  155. $name = Core::form('name');
  156. $name_len = mb_strlen($name);
  157.  
  158. if ($name_len < 1)
  159. echo 'Название слишком короткое';
  160. elseif ($name_len > 32)
  161. echo 'Название слишком длинное';
  162. else
  163. {
  164. $sql->query("UPDATE `smiles` SET `symbol` = '$name' WHERE `id` = '$bm[id]' LIMIT 1");
  165. echo '<div class="msg">Смайл успешно отредактирован</div>';
  166. }
  167. }
  168. else
  169. {
  170. ?>
  171. <form method='post' action='?act=edit&amp;id=<?=$id?>'>
  172. <b>Название</b><br /><input type='text' name='name' value='<?=$bm['symbol']?>'/> <br />
  173. <input type='submit' value='Сохранить' name='ok' /><br />
  174. </form>
  175. <?php
  176. }
  177. echo '<a href="?act=kat&amp;id='.$bm['parent_id'].'">Назад</a>';
  178. }
  179. }
  180. break;
  181.  
  182. case 'del':
  183. if ($admin)
  184. {
  185. if ($sql->query("SELECT COUNT(*) FROM `smiles` WHERE `id` = '$id' and `type`='smile' LIMIT 1")->result()==0)
  186. echo 'Смайл не найден!';
  187. else
  188. {
  189. $bm = $sql->query("SELECT * FROM `smiles` WHERE `id` = '$id' LIMIT 1")->fetch();
  190. if (isset($_POST['ok']))
  191. {
  192. $sql->query("DELETE FROM `smiles` WHERE `id` = '$id'");
  193. unlink(H.'style/smiles/'.$bm['name'].'.gif');
  194. echo '<div class="msg">Смайл успешно удален</div>';
  195. }
  196. else
  197. {
  198. ?>
  199. Вы уверены, что хотите удалить этoт смайл?<br />
  200. <form method='post' action='?act=del&amp;id=<?=$id?>'>
  201. <input type='submit' name='ok' value='Да' />
  202. </form>
  203. <a href='?act=kat&amp;id=<?=$bm['parent_id']?>' class="link">Нет</a>
  204. <?php
  205. }
  206. }
  207. }
  208. break;
  209.  
  210. case 'add_kat':
  211. if ($moder)
  212. {
  213. if (isset($_POST['name']))
  214. {
  215. $name = Core::form('name');
  216. $name_len = mb_strlen($name);
  217.  
  218. if ($name_len < 0)
  219. echo 'Название слишком короткое';
  220. elseif ($name_len > 50)
  221. echo 'Название слишком длинное';
  222. elseif ($sql->query("SELECT COUNT(*) FROM `smiles` WHERE `name` = '$name' and `type` = 'kat' LIMIT 1")->result() != 0)
  223. echo 'Такая категория уже есть!';
  224. else
  225. {
  226. $sql->query("INSERT INTO `smiles` (`name`, `type`, `parent_id`) values ('$name', 'kat', '0')");
  227. echo '<div class="msg">Категория успешно добавлена</div>';
  228. }
  229. }
  230. else
  231. {
  232. ?>
  233. <form method='post' action='?act=add_kat'>
  234. Название:<br />
  235. <input type='text' name='name' value=''/><br />
  236. <input type='submit' value='Создать'/>
  237. </form>
  238. <?php
  239. }
  240. echo '<a href="?act" class="link">Назад</a>';
  241. }
  242. break;
  243.  
  244. case 'edit_kat':
  245. if ($admin)
  246. {
  247. if ($sql->query("SELECT COUNT(*) FROM `smiles` WHERE `id` = '$id' and `type` = 'kat' LIMIT 1")->result()==0)
  248. echo 'Категория не найдена!';
  249. else
  250. {
  251. $bm = $sql->query("SELECT * FROM `smiles` WHERE `id` = '$id' LIMIT 1")->fetch();
  252. if (isset($_POST['name']))
  253. {
  254. $name = Core::form('name');
  255. $name_len = mb_strlen($name);
  256.  
  257. if ($name_len < 1)
  258. echo 'Название слишком короткое';
  259. elseif ($name_len > 50)
  260. echo 'Название слишком длинное';
  261. else
  262. {
  263. $sql->query("UPDATE `smiles` SET `name` = '$name' WHERE `id` = '$bm[id]' LIMIT 1");
  264. echo '<div class="msg">Категория успешно отредактирована</div>';
  265. }
  266. }
  267. else
  268. {
  269. ?>
  270. <form method='post' action='?act=edit_kat&amp;id=<?=$bm['id']?>'>
  271. <b>Название</b><br />
  272. <input type='text' name='name' value='<?=$bm['name']?>'/> <br />
  273. <input type='submit' value='Сохранить'/><br />
  274. </form>
  275. <?php
  276. }
  277. }
  278. echo '<a href="?act" class="link">Назад</a>';
  279. }
  280. break;
  281.  
  282. case 'del_kat':
  283. if ($admin)
  284. {
  285. if ($sql->query("SELECT COUNT(*) FROM `smiles` WHERE `id` = '$id' and `type` = 'kat' LIMIT 1")->result()==0)
  286. echo 'Категория не найдена!';
  287. elseif ($sql->query("SELECT COUNT(*) FROM `smiles` WHERE `parent_id` = '$id'")->result() > 0)
  288. echo 'Категория не пуста';
  289. else
  290. {
  291. $bm = $sql->query("SELECT * FROM `smiles` WHERE `id` = '$id' LIMIT 1")->fetch();
  292. if (isset($_POST['ok']))
  293. {
  294. $sql->query("SELECT `name` FROM `smiles` WHERE `parent_id` = '$bm[id]'");
  295. while ($f = $sql->result())
  296. {
  297. unlink(H.'style/smiles/'.$f['name'].'.gif');
  298. }
  299.  
  300. $sql->query("DELETE FROM `smiles` WHERE `parent_id` = '$bm[id]'");
  301. $sql->query("DELETE FROM `smiles` WHERE `id` = '$bm[id]'");
  302. echo '<div class="msg">Категория успешно удалена</div>';
  303. }
  304. else
  305. {
  306. ?>Вы уверены, что хотите удалить эту категорию?<br />
  307. <form method='post' action='?act=del_kat&amp;id=<?=$bm['id']?>'>
  308. <input type='submit' name='ok' value='Да' />
  309. </form>
  310. <?php
  311. }
  312. echo '<a href="?act" class="link">Назад</a>';
  313. }
  314. }
  315. break;
  316. }
  317. echo
  318. '<a href="?" class="link">Смайлы</a>'.
  319. '<a href="bbcodes.php" class="link">Бб коды</a>'.
  320. '<a href="/" class="link">Главная</a>';
  321.  
  322. include '../engine/includes/foot.php';