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

Размер файла: 10.87Kb
  1. <?php
  2.  
  3. // проверка наличия авторизации
  4. if (!isset($user))
  5. {
  6. # Перенаправляем на главную
  7. header('Location: /');
  8. }
  9.  
  10. # Заголовок модуля
  11. $system['page_title'] = 'Аватар';
  12.  
  13. # Шапка модуля
  14. require_once(HOME .'/incfiles/header.php');
  15.  
  16. // обработка добавления
  17. if (isset($_FILES['avatar']))
  18. {
  19. // ищем верный формат изображения
  20. if (preg_match('/\.jpe?g$/i', $_FILES['avatar']['name']) && $img=imagecreatefromjpeg($_FILES['avatar']['tmp_name']))
  21. {
  22. // обработка изображения
  23. if (imagesx($img) > 100 || imagesy($img) > 100)
  24. {
  25. $img_x = imagesx($img);
  26. $img_y = imagesy($img);
  27.  
  28. // меняем размер на 100х100
  29. if ($img_x == $img_y)
  30. {
  31. $img_w = 100; // ширина
  32. $img_h = 100; // высота
  33. }
  34. else if ($img_x > $img_y)
  35. {
  36. $var = $img_x / $img_y;
  37. $img_w = 100;
  38. $img_h = ceil($img_w / $var);
  39. }
  40. else
  41. {
  42. $var = $img_y / $img_x;
  43. $img_h = 100;
  44. $img_w = ceil($img_h / $var);
  45. }
  46.  
  47. # записываем изображение
  48. $avatar=imagecreatetruecolor($img_w, $img_h);
  49. imagecopyresampled($avatar, $img, 0, 0, 0, 0, $img_w, $img_h, $img_x, $img_y);
  50. imagedestroy($img);
  51. @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
  52. @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
  53. @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
  54. @unlink(HOME .'/files/avatars/'. $user['id'] .'.gif');
  55. @unlink(HOME .'/files/avatars/'. $user['id'] .'.png');
  56. @unlink(HOME .'/files/avatars/'. $user['id'] .'.jpg');
  57. imagejpeg($avatar, HOME .'/files/avatars/'. $user['id'] .'.jpg', 100);
  58. @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
  59. imagedestroy($avatar);
  60.  
  61. # Уведомление
  62. $add_avatar = true;
  63. }
  64. else
  65. {
  66. @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
  67. @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
  68. @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
  69. @unlink(HOME .'/files/avatars/'. $user['id'] .'.gif');
  70. @unlink(HOME .'/files/avatars/'. $user['id'] .'.png');
  71. @unlink(HOME .'/files/avatars/'. $user['id'] .'.jpg');
  72.  
  73. # или просто копируем изображение
  74. copy($_FILES['avatar']['tmp_name'], HOME .'/files/avatars/'. $user['id'] .'.jpg');
  75. # Уведомление
  76. $add_avatar = true;
  77. }
  78. }
  79. else if (preg_match('/\.gif$/i', $_FILES['avatar']['name']) && $img=imagecreatefromgif($_FILES['avatar']['tmp_name']))
  80. {
  81. // обработка изображения
  82. if (imagesx($img) > 100 || imagesy($img) > 100)
  83. {
  84. $img_x = imagesx($img);
  85. $img_y = imagesy($img);
  86.  
  87. // меняем размер на 100х100
  88. if ($img_x == $img_y)
  89. {
  90. $img_w = 100; // ширина
  91. $img_h = 100; // высота
  92. }
  93. else if ($img_x > $img_y)
  94. {
  95. $var = $img_x / $img_y;
  96. $img_w = 100;
  97. $img_h = ceil($img_w / $var);
  98. }
  99. else
  100. {
  101. $var = $img_y / $img_x;
  102. $img_h = 100;
  103. $img_w = ceil($img_h / $var);
  104. }
  105.  
  106. # записываем изображение
  107. $avatar=imagecreatetruecolor($img_w, $img_h);
  108. imagecopyresampled($avatar, $img, 0, 0, 0, 0, $img_w, $img_h, $img_x, $img_y);
  109. imagedestroy($img);
  110. @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
  111. @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
  112. @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
  113. @unlink(HOME .'/files/avatars/'. $user['id'] .'.gif');
  114. @unlink(HOME .'/files/avatars/'. $user['id'] .'.png');
  115. @unlink(HOME .'/files/avatars/'. $user['id'] .'.jpg');
  116. imagejpeg($avatar, HOME .'/files/avatars/'. $user['id'] .'.gif', 100);
  117. @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
  118. imagedestroy($avatar);
  119.  
  120. # Уведомление
  121. $add_avatar = true;
  122. }
  123. else
  124. {
  125. @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
  126. @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
  127. @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
  128. @unlink(HOME .'/files/avatars/'. $user['id'] .'.gif');
  129. @unlink(HOME .'/files/avatars/'. $user['id'] .'.png');
  130. @unlink(HOME .'/files/avatars/'. $user['id'] .'.jpg');
  131.  
  132. # или просто копируем изображение
  133. copy($_FILES['avatar']['tmp_name'], HOME .'/files/avatars/'. $user['id'] .'.gif');
  134. # Уведомление
  135. $add_avatar = true;
  136. }
  137. }
  138. else if (preg_match('/\.png$/i', $_FILES['avatar']['name']) && $img=imagecreatefrompng($_FILES['avatar']['tmp_name']))
  139. {
  140. // обработка изображения
  141. if (imagesx($img) > 100 || imagesy($img) > 100)
  142. {
  143. $img_x = imagesx($img);
  144. $img_y = imagesy($img);
  145.  
  146. // меняем размер на 100х100
  147. if ($img_x == $img_y)
  148. {
  149. $img_w = 100; // ширина
  150. $img_h = 100; // высота
  151. }
  152. else if ($img_x > $img_y)
  153. {
  154. $var = $img_x / $img_y;
  155. $img_w = 100;
  156. $img_h = ceil($img_w / $var);
  157. }
  158. else
  159. {
  160. $var = $img_y / $img_x;
  161. $img_h = 100;
  162. $img_w = ceil($img_h / $var);
  163. }
  164.  
  165. # записываем изображение
  166. $avatar=imagecreatetruecolor($img_w, $img_h);
  167. imagecopyresampled($avatar, $img, 0, 0, 0, 0, $img_w, $img_h, $img_x, $img_y);
  168. imagedestroy($img);
  169. @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
  170. @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
  171. @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
  172. @unlink(HOME .'/files/avatars/'. $user['id'] .'.gif');
  173. @unlink(HOME .'/files/avatars/'. $user['id'] .'.png');
  174. @unlink(HOME .'/files/avatars/'. $user['id'] .'.jpg');
  175. imagejpeg($avatar, HOME .'/files/avatars/'. $user['id'] .'.png', 100);
  176. @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
  177. imagedestroy($avatar);
  178.  
  179. # Уведомление
  180. $add_avatar = true;
  181. }
  182. else
  183. {
  184. @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
  185. @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
  186. @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
  187. @unlink(HOME .'/files/avatars/'. $user['id'] .'.gif');
  188. @unlink(HOME .'/files/avatars/'. $user['id'] .'.png');
  189. @unlink(HOME .'/files/avatars/'. $user['id'] .'.jpg');
  190.  
  191. # или просто копируем изображение
  192. copy($_FILES['avatar']['tmp_name'], HOME .'/files/avatars/'. $user['id'] .'.png');
  193. # Уведомление
  194. $add_avatar = true;
  195. }
  196. }
  197. else
  198. {
  199. $err .= 'Неверный формат изображения<br />';
  200. }
  201. }
  202.  
  203. // проверка необходимости уведомления
  204. if ($add_avatar == true)
  205. {
  206. # Выводим уведомление
  207. echo '<div class="title">Добавление аватара</div>
  208. <div class="menu">
  209. Аватар успешно добавлен
  210. </div>';
  211.  
  212. echo '<div class="block">
  213. &raquo; <a href="/user/avatar.php">Управление аватаром</a><br />
  214. &raquo; <a href="/user/cabinet.php">Личный кабинет</a><br />
  215. &raquo; <a href="/">На главную</a>
  216. </div>';
  217.  
  218. # Ноги модуля
  219. require_once(HOME .'/incfiles/footer.php');
  220. }
  221.  
  222. // удаление аватара
  223. if (isset($_GET['delete']))
  224. {
  225. @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
  226. @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
  227. @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
  228. @unlink(HOME .'/files/avatars/'. $user['id'] .'.gif');
  229. @unlink(HOME .'/files/avatars/'. $user['id'] .'.png');
  230. @unlink(HOME .'/files/avatars/'. $user['id'] .'.jpg');
  231.  
  232. echo '<div class="title">Удаление аватара</div>
  233. <div class="menu">
  234. Ваш аватар успешно удален.
  235. </div>';
  236.  
  237. echo '<div class="block">
  238. &raquo; <a href="/user/avatar.php">Управление аватаром</a><br />
  239. &raquo; <a href="/user/cabinet.php">Личный кабинет</a><br />
  240. &raquo; <a href="/">На главную</a>
  241. </div>';
  242.  
  243. # Ноги модуля
  244. require_once(HOME .'/incfiles/footer.php');
  245. }
  246.  
  247. error($err);
  248.  
  249. # Подключаем библиотеку для аватара
  250. require_lib('avatar.php');
  251.  
  252. // проверяем существование аватара
  253. if (file_exists(HOME .'/files/avatars/'. $user['id'] .'.png') || file_exists(HOME .'/files/avatars/'. $user['id'] .'.jpg') || file_exists(HOME .'/files/avatars/'. $user['id'] .'.gif'))
  254. {
  255. echo '<div class="title">Текущий аватар</div>
  256. <div class="menu">
  257. '. avatar($user['id']) .'
  258. &raquo; <a href="/user/avatar.php?delete">Удалить аватар</a>
  259. </div>';
  260. }
  261.  
  262. echo '<div class="title">Добавить аватар</div>
  263. <form method="post" action="/user/avatar.php" enctype="multipart/form-data">
  264. <div class="menu">
  265. Выберите изображение:<br />
  266. <input type="file" name="avatar" accept="image/*, image/gif, image/png, image/jpeg" /><br />
  267. <span class="small_info">* Поддерживаются форматы: gif, png, jpg</span><br />
  268. <input type="submit" value="Добавить" />
  269. </div>
  270. </form>';
  271.  
  272. echo '<div class="block">
  273. &raquo; <a href="/user/cabinet.php">Личный кабинет</a><br />
  274. &raquo; <a href="/">На главную</a>
  275. </div>';
  276.  
  277. # Ноги модуля
  278. require_once(HOME .'/incfiles/footer.php');
  279.  
  280. ?>