Просмотр файла admin/panel.php

Размер файла: 8.42Kb
  1. <?php
  2. include '../engine/includes/start.php';
  3.  
  4. if (!$creator)
  5. Core::stop();
  6.  
  7. $set['title']='Экспресс-панель';
  8.  
  9. include incDir.'head.php';
  10.  
  11. if (empty($_SESSION['entry_admin']))
  12. {
  13. $_SESSION['entry_admin'] = 1;
  14. $query = mysqli_query($sql->db, 'select `file` from `module_services` where `use_in`="enrty_admin"');
  15. while($file = $sql->result($query))
  16. {
  17. include_once H . $file;
  18. }
  19. }
  20. function WordCut($words)
  21. {
  22. $word = explode(' ', (string) $words);
  23. if (count($word) > 1)
  24. {
  25. $tmp = $word[0] . ' ' . $word[1] . (!empty($word[2]) ? ' ' . $word[2] : '');
  26. if (mb_strlen($tmp) > 11)
  27. {
  28. return $word[0] . '.. ';
  29. }
  30. }
  31. return $words;
  32. }
  33.  
  34. //Прошу прощения за следующие html / php - быдлокоды, я далеко не знаток css, html. Буду благодарен за подсказки на счет упрощения верстки :)
  35. if (isset($_GET['move']))
  36. {
  37. $sql->query('SELECT `name`, `pos` FROM `speed_dial` WHERE `id` = '.$id);
  38. if ($sql->num_rows() == 0)
  39. {
  40. Core::msg_show('Пункт с id '.$id.' не найден');
  41. include incDir.'foot.php';
  42. }
  43. $menu = $sql->fetch();
  44. $new_pos = $_GET['move'] == 'up' ? $menu['pos'] - 1 : $menu['pos'] + 1;
  45. $sql->query('UPDATE `speed_dial` set `pos` = '.$menu['pos'].' WHERE `pos` = '.$new_pos);
  46. $sql->query('UPDATE `speed_dial` set `pos` = '.$new_pos.' WHERE `id` = '.$id);
  47. Core::msg_show('Пункт '.$menu['name'].' перемещен', 'msg');
  48. }
  49. switch($act)
  50. {
  51. case 'add':
  52. if (isset($_POST['name']))
  53. {
  54. $icon = Core::form('icon');
  55. $host = parse_url(Core::form('link'), PHP_URL_HOST);
  56. if ($host != $_SERVER['SERVER_NAME'])
  57. {
  58. $icon = 'http://www.google.com/s2/favicons?domain=' . $host;
  59. }
  60. $sql->query("INSERT INTO `speed_dial` SET
  61. `name` = '".Core::form('name')."',
  62. `link` = '".Core::form('link')."',
  63. `icon` = '".$icon."',
  64. `new_line` = '".(!empty($_POST['new_line']) ? 1 : 0)."',
  65. `pos` = '".($sql->query('SELECT max(`pos`) FROM `speed_dial`')->result() + 1)."'");
  66. Core::msg_show('Пункт добавлен', 'msg');
  67. }
  68. else
  69. {
  70. ?>
  71. <form action="?act=add" method="post">
  72. Название:<br />
  73. <input type="text" name="name" value=""/><br />
  74. Ссылка: (оставить пустым для разделителя)<br />
  75. <input type="text" name="link" value="http://"/><br />
  76. Иконка:<br />
  77. <input type="text" name="icon" value=""/><br />
  78. С новой строки:<br />
  79. <select name="new_line">
  80. <option value="0">Нет</option>
  81. <option value="1">Да</option>
  82. </select><br />
  83. <input type="submit" value="Добавить"/>
  84. </form>
  85. <?php
  86. }
  87. echo '<a href="./panel.php" class="link">Админка</a>';
  88. break;
  89. case 'edit':
  90. $sql->query('SELECT * FROM `speed_dial` WHERE `id` = '.$id);
  91. if ($sql->num_rows() == 0)
  92. {
  93. Core::msg_show('Пункт с id '.$id.' не найден');
  94. include incDir.'foot.php';
  95. }
  96. $menu = $sql->fetch();
  97. if (isset($_POST['name']))
  98. {
  99. $sql->query("UPDATE `speed_dial` SET
  100. `name` = '".Core::form('name')."',
  101. `link` = '".Core::form('link')."',
  102. `icon` = '".Core::form('icon')."',
  103. `new_line` = '".(!empty($_POST['new_line']) ? 1 : 0)."'
  104. WHERE `id` = $id");
  105. Core::msg_show('Пункт отредактирован', 'msg');
  106. }
  107. else
  108. {
  109. ?>
  110. <form action="?act=edit&amp;id=<?=$id?>" method="post">
  111. Название:<br />
  112. <input type="text" name="name" value="<?=$menu['name']?>"/><br />
  113. Ссылка: (оставить пустым для разделителя)<br />
  114. <input type="text" name="link" value="<?=$menu['link']?>"/><br />
  115. Иконка:<br />
  116. <input type="text" name="icon" value="<?=$menu['icon']?>"/><br />
  117. С новой строки:<br />
  118. <select name="new_line">
  119. <option value="0">Нет</option>
  120. <?=$menu['new_line'] == '1' ? '<option value="1" selected="selected">' : '<option value="1">'?>Да</option>
  121. </select><br />
  122. <input type="submit" value="Изменить"/>
  123. </form>
  124. <?php
  125. }
  126. echo '<a href="./panel.php" class="link">Админка</a>';
  127. break;
  128. case 'editing':
  129. echo '<div class="menu_razd">Редактирование экспресс-панели</div>';
  130.  
  131. $pos = $sql->query('SELECT max(`pos`) from `speed_dial`')->result();
  132. $sql->query('SELECT `id`, `name`, `pos` FROM `speed_dial` ORDER BY `pos`');
  133. while ($menu = $sql->fetch())
  134. {
  135. echo
  136. '<div class="post">'.$menu['pos'] . ') '.$menu['name'], '<br />',
  137. ($menu['pos'] > 1 ? '<a href="?act=editing&amp;move=up&amp;id='.$menu['id'].'">[ &uarr; ]</a>&nbsp;&nbsp;' : ''),
  138. '[ <a href="?act=edit&amp;id='.$menu['id'].'">изменить</a> ] | [ <a href="?act=delete&amp;id='.$menu['id'].'">удалить</a> ]',
  139. ($menu['pos'] < $pos ? '&nbsp;&nbsp;<a href="?act=editing&amp;move=down&amp;id='.$menu['id'].'">[ &darr; ]</a>' : ''),
  140. '</div>';
  141. }
  142. echo '<a href="./panel.php" class="link">Админка</a>';
  143. break;
  144. case 'delete':
  145. $sql->query('SELECT `name`, `pos` FROM `speed_dial` WHERE `id` = '.$id);
  146. if ($sql->num_rows() == 0)
  147. {
  148. Core::msg_show('Пункт с id '.$id.' не найден');
  149. include incDir.'foot.php';
  150. }
  151. $menu = $sql->fetch();
  152. if (isset($_GET['confirm']))
  153. {
  154. if (empty($_SESSION['main_menu_confirm_delete']) || $_SESSION['main_menu_confirm_delete'] != $_GET['confirm'])
  155. {
  156. Core::msg_show('Удаление не подтверждено, попробуйте еще раз');
  157. }
  158. else
  159. {
  160. $sql->query('DELETE FROM `speed_dial` WHERE `id` = '.$id);
  161. $sql->query('UPDATE `speed_dial` SET `pos` = `pos` - 1 WHERE `pos` > '.$menu['pos']);
  162. Core::msg_show('Пункт удален', 'msg');
  163. }
  164. }
  165. else
  166. {
  167. $_SESSION['main_menu_confirm_delete'] = uniqid();
  168. echo '
  169. Вы действительно хотите удалить этот пункт ('.$menu['name'].')?<br />
  170. <a href="?act=delete&amp;id='.$id.'&amp;confirm='.$_SESSION['main_menu_confirm_delete'].'">Да, удалить</a>';
  171. }
  172. echo '<a href="?" class="link">Вернутся в &quot;админку&quot;</a>';
  173. break;
  174. default:
  175. echo '<div class="menu_razd">Экспресс-панель</div><table><tr>';
  176.  
  177. $sql->query('SELECT * FROM `speed_dial` ORDER BY `pos`');
  178. while ($menu = $sql->fetch())
  179. {
  180. if (empty($menu['link']))
  181. {
  182. echo '</tr></table><div class="menu_razd">'.$menu['name'].'</div><table><tr>';
  183. }
  184. else
  185. {
  186. if ($menu['new_line'] == 1)
  187. echo '</tr><tr>';
  188. echo '<td><a title="'.$menu['name'].'" href="'.$menu['link'].'"><img width="48px" src="'.$menu['icon'].'"/></a><br /><span class="status">'.WordCut($menu['name']).'</span></td>';
  189. }
  190. }
  191. echo '</tr></table><a href="." class="link">Расширенный вид админки</a>';
  192. break;
  193. }
  194. echo '<a href="/" class="link">Главная</a>';
  195. include incDir.'foot.php';