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

Размер файла: 35.95Kb
  1. <?
  2. if( ! defined( 'SHCMS_ENGINE' ) ) {
  3. die('SHCMS Engine No access');
  4. }
  5.  
  6. //Пользователи
  7. switch($act):
  8.  
  9. default:
  10. echo '<div class="mainname">'.Lang::__('Пользователи').'</div>';
  11. echo '<div class="mainpost">';
  12. echo '<div class="subpost"><img src="'.ICON_ADMIN.'user/addressbook.png">&nbsp;<a href="'.CP_DERICTORY.'user/index.php?do=user&act=office">Управление пользователями</a></div>';
  13. echo '<div class="subpost"><img src="'.ICON_ADMIN.'user/rating.png">&nbsp;<a href="'.CP_DERICTORY.'user/index.php?do=user&act=status">Cтатус пользователя</a></div>';
  14. echo '<div class="subpost"><img src="'.ICON_ADMIN.'user/add_user.png">&nbsp;<a href="'.CP_DERICTORY.'user/index.php?do=user&act=new_user">Создание пользователя</a></div>';
  15. echo '</div>';
  16.  
  17. echo engine::home(array(Lang::__('Назад'),'index.php'));
  18. break;
  19. /*
  20. * Управление Пользователями + Создание пользователя
  21. */
  22. case 'office':
  23. echo '<div class="mainname">'.Lang::__('Поиск Пользователей').'<span class="box-toolbar"><span class="box-toolbar-link"><a href="index.php?do=user&act=new_user">Создать нового</a></span></span></div>';
  24. echo '<div class="mainpost">';
  25. //Поиск
  26. $form = new form('index.php?do=user&act=office');
  27. $form->input(Lang::__('Ник пользователя:'),'login','text');
  28. $form->submit(Lang::__('Начать поиск'),'submit');
  29. $form->display();
  30. echo '</div>';
  31. echo '<div class="mainname">'.Lang::__('Список Пользователей').'</div>';
  32. echo '<div class="mainpost">';
  33. echo "<table style='text-shadow: 0px 0px 0px #fff;' class='little-table' cellspacing='0'>";
  34. echo "<tr>
  35. <th>".Lang::__('Логин')." </th>
  36. <th>".Lang::__('Группа')."</th>
  37. <th>".Lang::__('Действие')."</th>
  38. </tr>";
  39. if($_POST['submit'])
  40. {
  41. $submit = $_POST['submit'];
  42. }
  43. if( isset( $submit ) )
  44. {
  45. //Проверка существуйте ли название поиска
  46. if( isset( $_POST['login'] ) )
  47. {
  48. $login = $_POST['login'];
  49. }
  50. //Глобальная обработка названии
  51. $login = trim($login);
  52. $login = $db->safesql($login);
  53. $login = htmlspecialchars($login);
  54. //Если поиск превышает больше 20 символов выводит ошибку
  55. if ( !empty( $login ) )
  56. {
  57. if ( strlen( $login ) > 20 )
  58. {
  59. echo '<br/>';
  60. echo engine::error(Lang::__('Длинный запрос!')); // error
  61. } else {
  62. //Запрос в базу по названию
  63. $result = $db->query("SELECT `id`,`name`, `nick`,`reg_date`,`group` FROM `users` WHERE `name` LIKE '%$login%' OR `nick` LIKE '%$login%'");
  64. //Обработка .......
  65. if ( $db->num_rows() > 0 )
  66. {
  67. $row = $db->get_array($result); //Получение всех данных
  68. $num = $db->num_rows($result); // Получение счетчика
  69. do {
  70. // Делаем запрос, получающий пользователей
  71. $search = "SELECT * FROM `users` WHERE `id` = '$row[id]'";
  72. $searchl = $db->query($search);
  73. //Проверка на доступность данных
  74. if ( $db->num_rows() > 0 )
  75. {
  76. $wsearch = $db->get_array($searchl);
  77. }
  78. $igroup = user::users($row['id'],array('group'));
  79. if( $igroup != 15 )
  80. {
  81. echo '<tr class="even">';
  82. //Получение Ника
  83. $nick = user::users($row['id'],array('nick'),true);
  84. //Вывод ника и подбираем цвет
  85. echo '<td><font color="6E2A06";><b>'.$nick.'</b></font></td>';
  86. //Получаем права к каждому пользователю
  87. $group = array(15 => '<font color="green";>'.Lang::__('Админы').'</font>', 1 => '<font color="720479";>'.Lang::__('Юзеры').'</font>', 0 => '<font color="red";>'.Lang::__('Гости').'</font>');
  88. //Выводим права и подбираем к правам цвета необходимые
  89. echo '<td>'.$group[$row['group']].'</td>';
  90. //Действие над пользователем (Удаление / Редактирование)
  91. echo '<td>';
  92. echo '<a style="margin-bottom:5px;" class="Button_secondary" href="index.php?do=user&act=edituser&id='.$row['id'].'">Изменить</a>
  93. <a class="Button_secondary" href="index.php?do=user&act=delete_user&id='.$row['id'].'">Удалить</a><br/>
  94. <a class="Button_secondary" href="index.php?do=ban&id='.$row['id'].'">Блокировать</a>';
  95. echo '</td>';
  96. echo '</tr>';
  97. }
  98. } while ( $row = $db->get_array( $result ) );
  99. }
  100. }
  101. }
  102. echo '</table><br/>';
  103. }else {
  104. //Выводим счетчик постов
  105. if ($result = $db->query("SELECT COUNT(*) FROM `users`")) {
  106. /* Переход к строке №400 */
  107. $result->data_seek(399);
  108. /* Получение строки */
  109. $row = $result->fetch_row();
  110. }
  111. $newlist = new Navigation($row[0],10, true);
  112. $user_all = $db->query("SELECT * FROM `users` ". $newlist->limit()."");
  113. while($all_user = $db->get_array($user_all)) {
  114. $nick = user::users($all_user['id'],array('nick'),true);
  115. $igroup = user::users($all_user['id'],array('group'));
  116. if($igroup != 15) {
  117. echo '<tr class="even">';
  118. echo '<td><font color="6E2A06";>'.$nick.'</font></td>';
  119.  
  120. $group = array(15 => '<font color="green";>'.Lang::__('Админы').'</font>', 1 => '<font color="720479";>'.Lang::__('Юзеры').'</font>', 0 => '<font color="red";>'.Lang::__('Гости').'</font>');
  121. echo '<td>'.$group[$all_user['group']].'</td>';
  122. echo '<td>';
  123. echo '<a style="margin-bottom:5px;" class="Button_secondary" href="index.php?do=user&act=edituser&id='.$all_user['id'].'">Изменить</a>
  124. <a class="Button_secondary" href="index.php?do=user&act=delete_user&id='.$all_user['id'].'">Удалить</a><br/>
  125. <a class="Button_secondary" href="index.php?do=ban&id='.$all_user['id'].'">Блокировать</a>';
  126. echo '</td>';
  127. echo '</tr>';
  128. }
  129. }
  130. //Далее закрываем таблицу
  131. echo "</table> </div>";
  132. //Вывод навигации
  133. echo $newlist->pagination('do=user&act=office');
  134. }
  135. echo engine::home(array(Lang::__('Назад'),'index.php?do=user'));
  136. echo '</div>';
  137. break;
  138. //Создаем нового пользователя
  139. case 'new_user':
  140. echo '<div class="mainname">'.Lang::__('Создать пользователя').'</div>';
  141. echo '<div class="mainpost">';
  142. $error = array();
  143. if(isset($_POST['submit_new'])) {
  144. $nick = filter_input( INPUT_POST, 'login', FILTER_SANITIZE_STRING );
  145. $email = filter_input( INPUT_POST, 'email', FILTER_SANITIZE_EMAIL );
  146. $email = filter_var( $email, FILTER_VALIDATE_EMAIL );
  147. $password = filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING);
  148.  
  149. if( strlen($password) < 5 ) $error['password'][] = 'Пароль должен быть выше 5 символов';
  150. if( engine::strlen_shcms( $nick,'utf-8' ) > 30 or engine::strlen_shcms( trim( $nick ), 'utf-8' ) < 3) $error['login'][] = 'Недопустимая длина ника. Логин должен быть больше 3 символов и меньше 30 символов!';
  151. if( preg_match( "/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\{\+]/", $nick ) ) $error['login'][] = 'Ваш ник недопустим к регистрации';
  152. if( preg_match('/[0-9]+/',engine::format_r($nick))) $error['login'][] = 'В начале запрещено использовать числовые значение';
  153. if( empty( $email ) or strlen( $email ) > 50 OR @count( explode( '@',$email ) ) != 2 ) $error['email'][] = 'Введенный Email неверный';
  154. if( strpos( strtolower( $nick ), '.php' ) !== false ) $error['login'][] = 'Введенный ник недопустим';
  155. if( stripos( urlencode($nick), '%AD') !== FALSE) {
  156. $error['login'][] = 'Введенный ник недопустим';
  157. }
  158. if( function_exists('mb_strtolower') ) {
  159. $nick = engine::trim(mb_strtolower($nick, 'utf-8'));
  160. } else {
  161. $nick = engine::trim(strtolower( $nick ));
  162. }
  163. $cnick = $db->super_query( "SELECT COUNT(*) as count FROM `users` WHERE nick = '$nick'" );
  164. if( $cnick['count'] ) $error['login'][] = 'Введенный Логин уже существует';
  165. $row = $db->super_query( "SELECT COUNT(*) as count FROM `users` WHERE email = '$email'" );
  166. if( $row['count'] ) $error['email'][] = 'Введенный Email уже существует';
  167. $regt = time();
  168. if(empty($error)) {
  169. $shgen = engine::shgen($password);
  170. $ok_reg = $db->query("INSERT INTO `users` (`nick`,`password`,`email`,`reg_date`,`lastdate`) VALUES ('".$db->safesql($nick)."', '".$shgen."', '".$db->safesql($email)."','".time()."','".time()."')");
  171. if($ok_reg == true) {
  172. echo engine::success(Lang::__('Пользователь зарегестрирован!'));
  173. echo '</div>';
  174. echo engine::home(array(Lang::__('Назад'),'index.php?do=user&act=new_user'));
  175. exit;
  176. }else {
  177. //header("Locaion: index.php?do=user&act=new_user");
  178. exit;
  179. }
  180. }
  181. }
  182. $form = new form('index.php?do=user&act=new_user');
  183. //Ник при регистрации
  184. $form->input('<b>Имя пользователя <font color="red">*</font></b>','login','text',htmlspecialchars($nick),(isset($error['login']) ? '<span style="color:red"><small>' . implode('<br />', $error['login']) . '</small></span><br />' : ''));
  185. //Описание...
  186. $form->text('<div style="font-size:11px;color: #a4a4a4;">Между 3 и 30 символами</div><br/>');
  187. //Email нужен при регистрации для уведомлений
  188. $form->input('<b>E-mail адрес <font color="red">*</font></b>','email','text',htmlspecialchars($email),(isset($error['email']) ? '<span style="color:red"><small>' . implode('<br />', $error['email']) . '</small></span><br />' : ''));
  189. //Описание....
  190. $form->text('<div style="font-size:11px;color: #a4a4a4;">Email необходим для восстановления пароля, подтвержать не нужно</div>');
  191. //Пароль при регистрации (Надежные)
  192. $form->input('<br/><b>Пароль <font color="red">*</font></b>','password','password',false,(isset($error['password']) ? '<span style="color:red"><small>' . implode('<br />', $error['password']) . '</small></span><br />' : ''));
  193. //Описание...
  194. $form->text('<div style="font-size:11px;color: #a4a4a4;">Вы должны использовать сложный пароль, содержащий не менее 3 и не более 32 символов</div>');
  195. $form->text('<hr/><img src="../icons/user/warning.png">&nbsp; Новый пользователь сразу попадет в группу "Пользователи"<br/>');
  196. $form->text('<img src="../icons/user/frame.png">&nbsp; Указанные параметры <font color="red">обязательно</font> нужно заполнять!');
  197. $form->text('</div><div class="submit">');
  198. $form->submit(Lang::__('Создать'),'submit_new');
  199. //Путь если хотите оставить все как есть
  200. $form->text('или <span class="cancel"><a href="index.php?do=user&act=office">Отменить</a></span></div>');
  201. $form->display();
  202. echo '</div>';
  203. break;
  204. //Редактирование пользователя
  205. case 'edituser':
  206. $id = intval($_GET['id']);
  207. $edituser = $db->get_array($db->query("SELECT * FROM `users` WHERE `id` = '".intval($id)."'"));
  208. if($edituser['id'] == false) {
  209. header('Location: index.php?do=user&act=office');
  210. exit;
  211. }
  212. if($edituser['group'] == 15) {
  213. header('Location: index.php?do=user&act=office');
  214. exit;
  215. }
  216. if(isset($_POST['edit_submit'])) {
  217. //Обрабатывет на правильность ICQ
  218. $icq_uin = engine::icq($_POST['icq']);
  219. //Обрабатывает поле Skype
  220. //Если с ошибками она то выведит ошибку
  221. if(isset($_POST['skype'])) {
  222. if(!empty($_POST['skype'])) {
  223. if(!engine::skype($_POST['skype'])) {
  224. echo engine::error(Lang::__('Некорректно указан Skype'));
  225. echo engine::home(array(Lang::__('Назад'),'?act=core'));
  226. exit;
  227. }
  228. }
  229. }
  230. //Обрабатывает поле Обо мне
  231. //Если в текст будет превышен допустимых символов то выведит ошибку
  232. if(isset($_POST['desc'])) {
  233. if(substr($_POST['desc'], 0, 1000) > 1000) {
  234. echo engine::error(Lang::__('Обо мне: Не должно превышать 1 000 символов'));
  235. echo engine::home(array(Lang::__('Назад'),'index.php?do=user&act=edituser&id='.$id.''));
  236. exit;
  237. }else {
  238. $desc = $_POST['desc'];
  239. }
  240. }
  241. //Если все правильно то обновляем данные
  242. $mysql = $db->query('UPDATE `users` SET `icq` = "'.intval($icq_uin).'",`site` = "'.$_POST['site'].'",`skype` = "'.$_POST['skype'].'",`city` = "'.$db->safesql($_POST['city']).'", `pol` = "'.$_POST['pol'].'", `desc` = "'.$db->safesql($desc).'" WHERE `id` = '.intval($id).'');
  243. //При правильности
  244. if($mysql == true) {
  245. echo engine::success(Lang::__('Настройки сохранены'));
  246. echo engine::home(array('Назад','index.php?do=user&act=edituser&id='.$id.''));
  247. exit;
  248. //При ошибки
  249. }else {
  250. echo engine::error(Lang::__('Настройки не сохранены'));
  251. echo engine::home(array('Назад','index.php?do=user&act=edituser&id='.$id.''));
  252. exit;
  253. }
  254. }
  255. //Полезные данные выдаются при регистрации
  256. echo '<div class="mainname">'.Lang::__('Редактирование пользователя').'</div>'; // 1
  257. echo '<div class="mainpost">';
  258. //Выводит IP, Когда последний раз были в сети, Дата регистрации
  259. echo '<div class="subpost">
  260. IP: &nbsp;'.$edituser['logged_ip'].'<br/>
  261. Последний визин: &nbsp; '.date::make_date($edituser['lastdate']).'<br/>
  262. Дата регистрации: &nbsp; '.date::make_date($edituser['reg_date']).'</div>
  263. <div class="subpost">
  264. <div style="padding: 8px;">Логин: '.$edituser['nick'].'<span style="float:right;"><a href="index.php?do=user&act=editlogin&id='.$id.'"><img src="../icons/user/edit.png"></a></span></div>
  265. <div style="padding: 8px;">Пароль: ******** <span style="float:right;"><a href="index.php?do=user&act=editpassword&id='.$id.'"><img src="../icons/user/edit.png"></a></span></div>
  266. <div style="padding: 8px;">Email: '.$edituser['email'].' <span style="float:right;"><a href="index.php?do=user&act=editemail&id='.$id.'"><img src="../icons/user/edit.png"></a></span></div>
  267. </div>';
  268. //Форма редактировании
  269. $form = new form('index.php?do=user&act=edituser&id='.$id.''); //Путь
  270. $form->text('<div class="subpost">');
  271. $form->textarea(Lang::__('О себе:'),'desc',$edituser['desc']); //О себе
  272. $form->input(Lang::__('Сайт:'),'site','text',$edituser['site']); //Поле сайт
  273. $form->input(Lang::__('ICQ:'),'icq','text',$edituser['icq']); // Поле для ввода уина(ICQ)
  274. $form->input(Lang::__('Skype:'),'skype','text',$edituser['skype']); //Скайп
  275. $form->input(Lang::__('Место жительства:'),'city','text',$edituser['city']); //Ваше Место жительства (Город где живете)
  276. $form->text('<hr/>');
  277. //Пол в 2 разряда (2 => Мужской - 3 => Женский )
  278. $form->select(Lang::__('Пол:'),'pol',array(Lang::__('Не определился') => 1, Lang::__('Мужской') => 2, Lang::__('Женский') => 3),$edituser['pol']);
  279. $form->text('</div>');
  280. $form->text('</div><div class="submit">');
  281. //Счетчик
  282. $form->submit(Lang::__('Изменить'),'edit_submit');
  283. //Путь если хотите оставить все как есть
  284. $form->text('или <span class="cancel"><a href="index.php?do=user&act=office">Отменить</a></span></div>');
  285. $form->display(); //Обработка форма и вывод полей;
  286. break;
  287. //Редактирование логина
  288. case 'editlogin':
  289. //проверяем в ID нумерное значение
  290. $id = intval($_GET['id']);
  291. //Вывод данных по выбранному id
  292. $editlogin = $db->get_array($db->query("SELECT * FROM `users` WHERE `id` = '".intval($id)."'"));
  293. //Если по вашему id ничего нет то назад
  294. if($editlogin['id'] == false) {
  295. header('Location: index.php?do=user&act=office');
  296. exit;
  297. }
  298. //Обработка формы
  299. //Проверка на нажатия кнопки
  300. if(isset($_POST['login_submit'])) {
  301. //Обрабатывает ник
  302. $nick = isset($_POST['new_login']) ? trim($_POST['new_login']) : '';
  303. //Проверяем Логин
  304. if(empty($nick)) {
  305. echo engine::error(Lang::__('Не введен логин'));
  306. echo engine::home(array('Назад','index.php?do=user&act=editlogin&id='.$id.''));
  307. exit;
  308. }elseif(mb_strlen($nick) < 2 || mb_strlen($nick) > 30) { //Разрешение максимального введения символа
  309. echo engine::error(Lang::__('Недопустимая длина логина'));
  310. echo engine::home(array('Назад','index.php?do=user&act=editlogin&id='.$id.''));
  311. exit;
  312. }
  313. //Если есть запрещенные символы то выводит ошибку
  314. if($nick != $db->safesql($nick)) {
  315. echo engine::error(Lang::__('В Имени содержатся запрещенные символы'));
  316. echo engine::home(array('Назад','index.php?do=user&act=editlogin&id='.$id.''));
  317. exit;
  318. }
  319. //Выводим данные по нику
  320. $regnick = $db->query("SELECT * FROM `users` WHERE `nick`='" . $db->safesql($nick) ."'");
  321. //Проверка сводобен ли введенный ник
  322. if ($db->get_array($regnick) != 0) {
  323. echo engine::error(Lang::__('Введенный вами Логин занят'));
  324. echo engine::home(array('Назад','index.php?do=user&act=editlogin&id='.$id.''));
  325. exit;
  326. }
  327. //Заливаем, и обрабатываем данные по базе по определенному id
  328. $db_user = $db->query("UPDATE `users` SET `nick` = '".$db->safesql($nick)."' WHERE `id` = '".intval($id)."'"); // UDDATE MYSQLI
  329. if($db_user == true) {
  330. echo engine::success('Логин изменен успешно'); // _1
  331. echo engine::home(array('Назад','index.php?do=user&act=editlogin&id='.$id.'')); // _2
  332. exit;
  333. }else {
  334. echo engine::error('Ошибка при редактировании логина'); // _1
  335. echo engine::home(array('Назад','index.php?do=user&act=editlogin&id='.$id.'')); // _2
  336. exit;
  337. }
  338. }
  339. //Форма редактирования логина
  340. echo '<div class="mainname">'.Lang::__('Редактирование Логина').'</div>';
  341. echo '<div class="mainpost">';
  342. $form = new form('index.php?do=user&act=editlogin&id='.$editlogin['id'].'');
  343. $form->input(Lang::__('Логин'),'new_login','text',$editlogin['nick']);
  344. $form->text('</div><div class="submit">');
  345. $form->submit(Lang::__('Сохранить'),'login_submit');
  346. $form->text('</div>');
  347. $form->display(); //Получаем данные и выводим форму
  348. //Переадресация
  349. echo engine::home(array('Назад','index.php?do=user&act=edituser&id='.$id.''));
  350. break;
  351. //Редактирование Пароля
  352. case 'editpassword':
  353. //проверяем в ID нумерное значение
  354. $id = intval($_GET['id']);
  355. //Выводим данные по определенному id
  356. $editpassword = $db->get_array($db->query("SELECT * FROM `users` WHERE `id` = '".intval($id)."'"));
  357. if($editpassword['group'] == 15) {
  358. header('Location: index.php?do=user&act=office');
  359. exit;
  360. }
  361. //Проверка на доступность данные по id
  362. if($editpassword['id'] == false) {
  363. header('Location: index.php?do=user&act=office');
  364. exit;
  365. } $error = array();
  366. //Обрабатывает форму
  367. if(isset($_POST['pass_submit'])) {
  368. //
  369. $password = filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING);
  370. if( strlen($password) < 5 ) $error['password'][] = 'Пароль должен быть выше 5 символов';
  371. $shgen = engine::shgen($password);
  372. if(empty($error)) {
  373. //Заливаем данные и обновляем данные
  374. $db_user = $db->query("UPDATE `users` SET `password` = '".$shgen."' WHERE `id` = '".intval($id)."'");
  375. if($db_user == true) {
  376. echo engine::success('Пароль изменен успешно'); // Ok
  377. echo engine::home(array('Назад','index.php?do=user&act=editpassword&id='.$id.'')); //__Hom
  378. exit; //Exit
  379. }else {
  380. echo engine::error('Ошибка при редактировании пароля'); // Error
  381. echo engine::home(array('Назад','index.php?do=user&act=editpassword&id='.$id.'')); //__hom
  382. exit; //Exit
  383. } //
  384. }
  385. }
  386. //Форма редактирование пароля
  387. echo '<div class="mainname">'.Lang::__('Редактирование Пароля').'</div>';
  388. echo '<div class="mainpost">';
  389. $form = new form('index.php?do=user&act=editpassword&id='.$editpassword['id'].'');
  390. $form->input('<b>Пароль <font color="red">*</font></b>','password','text',false,(isset($error['password']) ? '<span style="color:red"><small>' . implode('<br />', $error['password']) . '</small></span><br />' : ''));
  391. $form->text('</div><div class="submit">');
  392. $form->submit(Lang::__('Сохранить'),'pass_submit');
  393. $form->text('</div>');
  394. $form->display(); //Получаем данные и выводим форму
  395. //Переадресация
  396. echo engine::home(array('Назад','index.php?do=user&act=edituser&id='.$id.''));
  397. break;
  398. case 'editemail':
  399. //проверяем в ID нумерное значение
  400. $id = intval($_GET['id']);
  401. //Получение данных по id
  402. $editemail = $db->get_array($db->query("SELECT * FROM `users` WHERE `id` = '".intval($id)."'"));
  403. //Если в id есть пользователь выводит все что неободимо
  404. //Если нет выводит ошибку
  405. if($editemail['id'] == false) {
  406. header('Location: index.php?do=user&act=office');
  407. exit;
  408. }
  409. //Проверям идет ли работа с формой
  410. if(isset($_POST['email_submit'])) {
  411. // $mail true
  412. $mail = isset($_POST['email']) ? trim($_POST['email']) : '';
  413. //Проверяем правильно ли введен Email
  414. $valid_email = filter_var($mail, FILTER_VALIDATE_EMAIL);
  415. if($valid_email === false) { //__False / _True
  416. echo engine::error(Lang::__('Некорректный E-mail адрес')); //__Err
  417. echo engine::home(array('Назад','index.php?do=user&act=editemail&id='.$id.''));
  418. exit;
  419. }
  420. //Если введенный емаил уже есть в базе данных то выводит ошибку
  421. $reqmail = $db->query("SELECT * FROM `users` WHERE `email`='" . $db->safesql($mail) ."'");
  422. if ($db->get_array($reqmail) != 0) { // Num != 0
  423. echo engine::error(Lang::__('Введенный вами Email занят')); // __Err
  424. echo engine::home(array('Назад','index.php?do=user&act=editemail&id='.$id.''));
  425. exit;
  426. }
  427. // Заливаем данные и обновляем таблицу email
  428. $db_user = $db->query("UPDATE `users` SET `email` = '".$db->safesql($mail)."' WHERE `id` = '".intval($id)."'");
  429. if($db_user == true) {
  430. echo engine::success('Email изменен успешно');
  431. echo engine::home(array('Назад','index.php?do=user&act=editemail&id='.$id.''));
  432. exit;
  433. }else {
  434. echo engine::error('Ошибка при редактировании email`а');
  435. echo engine::home(array('Назад','index.php?do=user&act=editemail&id='.$id.''));
  436. exit;
  437. }
  438. }
  439. //Форма редактирования
  440. echo '<div class="mainname">'.Lang::__('Редактирование Email').'</div>';
  441. echo '<div class="mainpost">';
  442. $form = new form('index.php?do=user&act=editemail&id='.$editemail['id'].'');
  443. $form->input(Lang::__('Email'),'email','text',$editemail['email']);
  444. $form->text('</div><div class="submit">');
  445. $form->submit(Lang::__('Сохранить'),'email_submit');
  446. $form->text('</div>');
  447. $form->display(); //Получаем данные и выводим поля
  448. //Переадресация
  449. echo engine::home(array('Назад','index.php?do=user&act=edituser&id='.$id.''));
  450. break;
  451. //Удаление определенного пользователя
  452. case 'delete_user':
  453. $id = intval($_GET['id']);
  454. $delete = $db->get_array($db->query( "SELECT * FROM `users` WHERE `id` = '{$id}'" ));
  455. if($delete['group'] == 15) {
  456. header('Location: index.php?do=user&act=office');
  457. exit;
  458. }
  459. if(isset($_POST['yes_delete'])) {
  460. $db->query("DELETE FROM `users` WHERE `id` = '".intval($id)."'"); // Удаление пользователя
  461. $db->query("DELETE FROM `chat` WHERE `id_user` = '".intval($id)."'"); //Удаление всех сообщений пользователя
  462. $db->query("DELETE FROM `forum_post` WHERE `id_user` = '".intval($id)."'"); // Удаление всех постов в форуме пользователя
  463. $db->query("DELETE FROM `forum_topics` WHERE `id_user` = '".intval($id)."'"); //Удаление всех тем в форуме пользователя
  464. $db->query("DELETE FROM `like` WHERE `id_user` = '".intval($id)."'"); //Удаление все понравившиеся темы пользователя
  465. $db->query("DELETE FROM `log_auth` WHERE `id_user` = '".intval($id)."'");//Удаление логов входа пользователя
  466. $db->query("DELETE FROM `log_user` WHERE `id_user` = '".intval($id)."'"); //Удаление новых уведомлений пользователя
  467. $db->query("DELETE FROM `messaging` WHERE `id_user` = '".intval($id)."'"); //Удаление всех почт пользователя
  468. $db->query("DELETE FROM `messaging_topics` WHERE `id_user` = '".intval($id)."'"); //Удаление созданных тем пользователя
  469. $db->query("DELETE FROM `messaging_topics_user` WHERE `id_user` = '".intval($id)."'"); //Удаление тем пользователя
  470. $db->query("DELETE FROM `news_comment` WHERE `id_user` = '".intval($id)."'"); //Удаление всех комментарий пользователя
  471. //Переадресация автоматическая
  472. header("Location: index.php?do=user&act=office");
  473. }
  474. if(isset($_POST['no_delete'])) {
  475. header('Location: index.php?do=user&act=office');
  476. exit;
  477. }
  478. //Подтверждение
  479. echo '<div class="mainname">'.Lang::__('Подтверждение удаление').'</div>';
  480. echo '<div class="mainpost">';
  481. echo Lang::__('Вы действительно хотите удалить выбранного пользователя? Данное действие невозможно будет отменить.').'<hr/>';
  482. //Форма удаление
  483. echo '<div style="text-align:right;">';
  484. $form = new form('index.php?do=user&act=delete_user&id='.$id.'');
  485. $form->submit(Lang::__('Да'),'yes_delete');
  486. $form->submit(Lang::__('Нет'),'no_delete');
  487. $form->display();
  488. echo '</div></div>';
  489.  
  490. break;
  491. /*
  492. * Статус пользователя
  493. */
  494. case 'status':
  495. echo '<div class="mainname">'.Lang::__('Статус пользователя').'<span class="box-toolbar"><span class="box-toolbar-link"><a href="index.php?do=user&act=new_status">Добавить статус</a></span></span></div>';
  496. echo '<div class="mainpost">';
  497. echo "<table style='text-shadow: 0px 0px 0px #fff;' class='little-table' cellspacing='0'>";
  498. echo "<tr>
  499. <th>".Lang::__('Название:')." </th>
  500. <th>".Lang::__('Баллы:')."</th>
  501. </tr>";
  502. $reput = $db->query("SELECT * FROM `status_user`");
  503. while($status = $db->get_array($reput)) {
  504. echo '<tr class="even">';
  505. echo '<td>'.$status['name'].'</td>';
  506. echo '<td>'.engine::number($status['points']).'</td>';
  507. echo '<td style="padding: 1px;">
  508. <a title="'.Lang::__('Редактировать').'" class="Button_secondary"href="index.php?do=user&act=edit_status&id='.$status['id'].'"><img src="../icons/user/edit_status.png"></a>
  509. <a title="'.Lang::__('Удалить').'" class="Button_secondary"href="index.php?do=user&act=delete_status&id='.$status['id'].'"><img src="../icons/user/editdelete.png"></a>
  510. </td>';
  511. echo '</tr>';
  512. }
  513. echo "</table>";
  514. echo '</div>';
  515. echo engine::home(array('Назад','index.php?do=user'));
  516. break;
  517. //Добавить новый статус для пользователя
  518. case 'new_status':
  519. if(isset($_POST['new_submit'])) {
  520. $name = engine::proc_name($_POST['name']);
  521. $points = intval($_POST['points']);
  522. if(empty($name)) {
  523. echo engine::error(Lang::__('Введите названия'));
  524. echo engine::home(array('Назад','index.php?do=user&act=new_status'));
  525. exit;
  526. }
  527. if(empty($points)) {
  528. echo engine::error(Lang::__('Введите баллы'));
  529. echo engine::home(array('Назад','index.php?do=user&act=new_status'));
  530. exit;
  531. }
  532. $edit_status = $db->query("INSERT INTO `status_user` (`name`,`points`) VALUES ('".$db->safesql($name)."','".intval($points)."')");
  533. if($edit_status == true) {
  534. echo engine::success('Параметры успешно изменены');
  535. echo engine::home(array('Назад','index.php?do=user&act=new_status'));
  536. exit;
  537. }else {
  538. echo engine::error('Ошибка при изменение параметр');
  539. echo engine::home(array('Назад','index.php?do=user&act=new_status'));
  540. exit;
  541. }
  542. }
  543. echo '<div class="mainname">'.Lang::__('Новый статус').'</div>';
  544. echo '<div class="mainpost">';
  545. $form = new form('index.php?do=user&act=new_status');
  546. $form->input(Lang::__('Название статуса:'),'name','text');
  547. $form->input(Lang::__('Количество баллов:'),'points','text');
  548. $form->submit(Lang::__('Добавить'),'new_submit');
  549. $form->display();
  550. echo '</div>';
  551. //Переадресация
  552. echo engine::home(array('Назад','index.php?do=user&act=status'));
  553. break;
  554. //Редактировать статус
  555. case 'edit_status':
  556. $id = intval($_GET['id']);
  557. $status = $db->get_array($db->query("SELECT * FROM `status_user` WHERE `id` = '".intval($id)."'"));
  558. if(isset($_POST['edit_status'])) {
  559. $name = engine::proc_name($_POST['name']);
  560. $points = intval($_POST['points']);
  561. if(empty($name)) {
  562. echo engine::error(Lang::__('Введите названия'));
  563. echo engine::home(array('Назад','index.php?do=user&act=edit_status&id='.$status['id'].''));
  564. exit;
  565. }
  566. if(empty($points)) {
  567. echo engine::error(Lang::__('Введите количество баллов'));
  568. echo engine::home(array('Назад','index.php?do=user&act=edit_status&id='.$status['id'].''));
  569. exit;
  570. }
  571. $edit_status = $db->query("UPDATE `status_user` SET `name` = '".$db->safesql($name)."',`points` = '".intval($points)."' WHERE `id` = '".intval($id)."'");
  572. if($edit_status == true) {
  573. echo engine::success('Параметры успешно изменены');
  574. echo engine::home(array('Назад','index.php?do=user&act=edit_status&id='.$status['id'].''));
  575. exit;
  576. }else {
  577. echo engine::error('Ошибка при изменение параметр');
  578. echo engine::home(array('Назад','index.php?do=user&act=edit_status&id='.$status['id'].''));
  579. exit;
  580. }
  581. }
  582. echo '<div class="mainname">'.Lang::__('Редактирование статуса').'</div>';
  583. echo '<div class="mainpost">';
  584. $form = new form('index.php?do=user&act=edit_status&id='.$status['id'].'');
  585. $form->input(Lang::__('Название'),'name','text',$status['name']);
  586. $form->input(Lang::__('Количество баллов'),'points','text',$status['points']);
  587. $form->submit(Lang::__('Применить'),'edit_status');
  588. $form->display();
  589. echo '</div>';
  590. //Переадресация
  591. echo engine::home(array('Назад','index.php?do=user&act=status'));
  592. break;
  593. //Удаление статуса
  594. case 'delete_status':
  595. $id = intval($_GET['id']); //Проверка на нумерное значение в $id
  596. //Удаление статуса
  597. $db->query("DELETE FROM `status_user` WHERE `id` = '".intval($id)."'");
  598. //Переадресация
  599. header("Location: index.php?do=user&act=status");
  600. break;
  601. endswitch;
  602.  
  603. ?>