PageRenderTime 45ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/admin/gallery.php

https://github.com/ECP-Black/ECP
PHP | 276 lines | 276 code | 0 blank | 0 comment | 48 complexity | 9cc3b6157947ad27811beede2e3cef15 MD5 | raw file
  1. <?php
  2. function admin_gallery () {
  3. global $db;
  4. $tpl = new smarty;
  5. $tpl->assign('access', get_form_rights());
  6. $tpl->assign('folders', get_dirs());
  7. $tpl->assign('lang', get_languages());
  8. $db->query('SELECT kateID, katename, galleries FROM '.DB_PRE.'ecp_gallery_kate ORDER BY katename ASC');
  9. $kate = array();
  10. while($row = $db->fetch_assoc()) {
  11. @$options .= '<option value="'.$row['kateID'].'">'.$row['katename'].'</option>';
  12. $kate[] = $row;
  13. }
  14. $tplc = new Smarty();
  15. $tplc->assign('kate', $kate);
  16. ob_start();
  17. $tplc->display(DESIGN.'/tpl/admin/gallery_kate_overview.html');
  18. $content = ob_get_contents();
  19. ob_end_clean();
  20. $tpl->assign('kate', $content);
  21. $tpl->assign('kategorien', @$options);
  22. $db->query('SELECT galleryID, folder, name, images, katename FROM '.DB_PRE.'ecp_gallery LEFT JOIN '.DB_PRE.'ecp_gallery_kate ON cID = kateID ORDER BY name ASC');
  23. $gallery = array();
  24. while($row = $db->fetch_assoc()) {
  25. $gallery[] = $row;
  26. }
  27. $tplc = new Smarty();
  28. $tplc->assign('gallery', $gallery);
  29. ob_start();
  30. $tplc->display(DESIGN.'/tpl/admin/gallery_overview.html');
  31. $content = ob_get_contents();
  32. ob_end_clean();
  33. $tpl->assign('gallery', $content);
  34. ob_start();
  35. $tpl->display(DESIGN.'/tpl/admin/gallery.html');
  36. $content = ob_get_contents();
  37. ob_end_clean();
  38. main_content(GALLERY, $content, '',1);
  39. }
  40. function admin_gallery_del($id) {
  41. global $db;
  42. $db->setMode(0);
  43. ob_end_clean();
  44. if(!isset($_SESSION['rights']['admin']['gallery']['del']) AND !isset($_SESSION['rights']['superadmin'])) {
  45. table(ERROR, NO_ADMIN_RIGHTS);
  46. } else {
  47. if($db->query()) {
  48. echo 'ok';
  49. }
  50. }
  51. die();
  52. }
  53. function admin_gallery_add_kate() {
  54. global $db;
  55. $db->setMode(0);
  56. ob_end_clean();
  57. ajax_convert_array($_POST);
  58. if(!isset($_SESSION['rights']['admin']['gallery']['kate_add']) AND !isset($_SESSION['rights']['superadmin'])) {
  59. table(ERROR, NO_ADMIN_RIGHTS);
  60. } else {
  61. if($_POST['katename'] == '') {
  62. echo NOT_NEED_ALL_INPUTS;
  63. } else {
  64. $lang = array();
  65. foreach($_POST AS $key => $value) {
  66. if(strpos($key, 'cription_')) {
  67. $lang[substr($key,strpos($key, '_')+1)] = $value;
  68. }
  69. }
  70. $lang = json_encode($lang);
  71. $sql =sprintf('INSERT INTO '.DB_PRE.'ecp_gallery_kate (katename, access, beschreibung) VALUES (\'%s\', \'%s\', \'%s\')', strsave($_POST['katename']), strsave(admin_make_rights($_POST['access'])), strsave($lang));
  72. if($db->query($sql)) {
  73. echo $db->last_id();
  74. }
  75. }
  76. }
  77. die();
  78. }
  79. function admin_gallery_edit_kate($id) {
  80. global $db;
  81. $db->setMode(0);
  82. ob_end_clean();
  83. ajax_convert_array($_POST);
  84. if(!isset($_SESSION['rights']['admin']['gallery']['kate_edit']) AND !isset($_SESSION['rights']['superadmin'])) {
  85. table(ERROR, NO_ADMIN_RIGHTS);
  86. } else {
  87. if($_POST['katename'] == '') {
  88. echo NOT_NEED_ALL_INPUTS;
  89. } else {
  90. $lang = array();
  91. foreach($_POST AS $key => $value) {
  92. if(strpos($key, 'cription_')) {
  93. $lang[substr($key,strpos($key, '_')+1)] = $value;
  94. }
  95. }
  96. $lang = json_encode($lang);
  97. $sql =sprintf('UPDATE '.DB_PRE.'ecp_gallery_kate SET katename = \'%s\', access = \'%s\', beschreibung = \'%s\' WHERE kateID = %d', strsave($_POST['katename']), strsave(admin_make_rights($_POST['access'])), strsave($lang), $id);
  98. if($db->query($sql)) {
  99. echo 'ok';
  100. }
  101. }
  102. }
  103. die();
  104. }
  105. function admin_gallery_add() {
  106. global $db;
  107. $db->setMode(0);
  108. ob_end_clean();
  109. ajax_convert_array($_POST);
  110. if(!isset($_SESSION['rights']['admin']['gallery']['add']) AND !isset($_SESSION['rights']['superadmin'])) {
  111. table(ERROR, NO_ADMIN_RIGHTS);
  112. } else {
  113. if($_POST['name'] == '' OR !$_POST['folder'] OR !$_POST['cID']) {
  114. echo NOT_NEED_ALL_INPUTS;
  115. } else {
  116. $sql =sprintf('INSERT INTO '.DB_PRE.'ecp_gallery (`name`, `userID`, `folder`, `cID`, `datum`, `access`) VALUES (\'%s\', %d, \'%s\', %d, %d, \'%s\')', strsave($_POST['name']), $_SESSION['userID'], strsave($_POST['folder']), (int)$_POST['cID'], time(), strsave(admin_make_rights($_POST['access'])));
  117. if($db->query($sql)) {
  118. echo 'ok';
  119. $db->query('UPDATE '.DB_PRE.'ecp_gallery_kate SET galleries = galleries +1 WHERE kateID ='.(int)$_POST['cID']);
  120. }
  121. }
  122. }
  123. die();
  124. }
  125. function admin_gallery_edit($id) {
  126. global $db;
  127. $db->setMode(0);
  128. ob_end_clean();
  129. ajax_convert_array($_POST);
  130. if(!isset($_SESSION['rights']['admin']['gallery']['edit']) AND !isset($_SESSION['rights']['superadmin'])) {
  131. table(ERROR, NO_ADMIN_RIGHTS);
  132. } else {
  133. if($_POST['name'] == '' OR !$_POST['folder'] OR !$_POST['cID']) {
  134. echo NOT_NEED_ALL_INPUTS;
  135. } else {
  136. $old = $db->result(DB_PRE.'ecp_gallery', 'cID', 'galleryID = '.$id);
  137. $sql =sprintf('UPDATE '.DB_PRE.'ecp_gallery SET `name` = \'%s\', `folder` = \'%s\', `cID` = %d, `access` = \'%s\' WHERE galleryID = %d', strsave($_POST['name']), strsave($_POST['folder']), (int)$_POST['cID'], strsave(admin_make_rights($_POST['access'])), $id);
  138. if($db->query($sql)) {
  139. echo 'ok';
  140. if($_POST['cID'] != $old) {
  141. $db->query('UPDATE '.DB_PRE.'ecp_gallery_kate SET galleries = galleries +1 WHERE kateID ='.(int)$_POST['cID']);
  142. $db->query('UPDATE '.DB_PRE.'ecp_gallery_kate SET galleries = galleries -1 WHERE kateID ='.$old);
  143. }
  144. }
  145. }
  146. }
  147. die();
  148. }
  149. function get_dirs($dir="") {
  150. global $db;
  151. $result = $db->query('SELECT folder FROM '.DB_PRE.'ecp_gallery');
  152. while($row = mysql_fetch_array($result)) {
  153. $verzeichnisse[] = $row[0];
  154. }
  155. $dirs = scan_dir("images/gallery/",1);
  156. foreach($dirs AS $var1) {
  157. IF(!@in_array($var1,@$verzeichnisse) OR $var1 == $dir) {
  158. IF($var1 == $dir) $option='selected="selected"'; else $option='';
  159. @$dirs .= '<option '.$option.' value="'.$var1.'">'.$var1.'</option>';
  160. }
  161. }
  162. return @$dirs;
  163. }
  164. function admin_gallery_view($id) {
  165. global $db;
  166. $gallery = $db->fetch_assoc('SELECT name, folder, images FROM '.DB_PRE.'ecp_gallery WHERE galleryID = '.$id);
  167. if(isset($gallery['name'])) {
  168. if($gallery['images']) {
  169. $limits = get_sql_limit($gallery['images'], LIMIT_GALLERY_PICS);
  170. $db->query('SELECT * FROM '.DB_PRE.'ecp_gallery_images WHERE gID = '.$id.' ORDER BY imageID ASC LIMIT '.$limits[1].','.LIMIT_GALLERY_PICS);
  171. $pics = array();
  172. while($row = $db->fetch_assoc()) {
  173. $row['uploaded'] = date(SHORT_DATE, $row['uploaded']);
  174. $pics[] = $row;
  175. }
  176. $tpl = new smarty();
  177. $tpl->assign('pics', $pics);
  178. $tpl->assign('seiten', makepagelink('?section=admin&site=gallery&func=viewgallery&id='.$id, (isset($_GET['page']) ? $_GET['page'] : 1), $limits[0]));
  179. $tpl->assign('folder', $gallery['folder']);
  180. ob_start();
  181. $tpl->display(DESIGN.'/tpl/admin/gallery_view_overview.html');
  182. $content = ob_get_contents();
  183. ob_end_clean();
  184. }
  185. $tpl = new smarty;
  186. $tpl->assign('sid', session_name().'='.session_id());
  187. $tpl->assign('pics', @$content);
  188. ob_start();
  189. $tpl->display(DESIGN.'/tpl/admin/gallery_view'.(UPLOAD_METHOD == 'old' ? '_old' : '').'.html');
  190. $content = ob_get_contents();
  191. ob_end_clean();
  192. main_content(GALLERY, $content, '',1);
  193. } else {
  194. table(ERROR, NO_ENTRIES_ID);
  195. }
  196. }
  197. function ordner_einlesen($id) {
  198. global $db;
  199. $verzeichnis = $db->result(DB_PRE.'ecp_gallery', 'folder', 'galleryID = '.$id);
  200. $files = scan_dir('images/gallery/'.$verzeichnis, true);
  201. $result = $db->query('SELECT imageID, filename FROM '.DB_PRE.'ecp_gallery_images WHERE gID = '.$id);
  202. $bilder = array();
  203. while($row = $db->fetch_assoc()) {
  204. $bilder[$row['imageID'].'_'.$row['filename']] = 0;
  205. }
  206. print_r($files);print_r($bilder);
  207. IF(!file_exists('images/gallery/'.$verzeichnis.'/thumbs')) { umask(0); mkdir('images/gallery/'.$verzeichnis.'/thumbs',0777); }
  208. foreach($files AS $name) {
  209. IF(strpos($name,'.')) {
  210. IF(array_key_exists($name, $bilder)) {
  211. $bilder[$name] = 1;
  212. } else {
  213. $size = getimagesize('images/gallery/'.$verzeichnis.'/'.$name);
  214. $db->query('INSERT INTO '.DB_PRE.'ecp_gallery_images (`gID`, `filename`, `uploaded`, `userID`) VALUES ('.$id.', \''.strsave($name).'\', '.time().', '.(int)$_SESSION['userID'].')');
  215. $pid = $db->last_id();
  216. $db->query('UPDATE '.DB_PRE.'ecp_gallery SET images = images + 1 WHERE galleryID= '.$id);
  217. if($size[0] > GALLERY_THUMB_SIZE) {
  218. resize_picture('images/gallery/'.$verzeichnis.'/'.$name, GALLERY_THUMB_SIZE, 'images/gallery/'.$verzeichnis.'/thumbs/'.$pid.'_'.$name, 100);
  219. } else {
  220. copy('images/gallery/'.$verzeichnis.'/'.$name, 'images/gallery/'.$verzeichnis.'/thumbs/'.$pid.'_'.$name);
  221. umask(0);
  222. chmod('images/gallery/'.$verzeichnis.'/thumbs/'.$pid.'_'.$name, CHMOD);
  223. }
  224. if($size[0] > GALLERY_PIC_SIZE) {
  225. resize_picture('images/gallery/'.$verzeichnis.'/'.$name, GALLERY_PIC_SIZE, 'images/gallery/'.$verzeichnis.'/'.$pid.'_'.$name, 100);
  226. unlink('images/gallery/'.$verzeichnis.'/'.$name);
  227. } else {
  228. rename('images/gallery/'.$verzeichnis.'/'.$name, 'images/gallery/'.$verzeichnis.'/'.$pid.'_'.$name);
  229. }
  230. $bilder[$name] = 1;
  231. }
  232. }
  233. }
  234. foreach($bilder AS $key=>$value) {
  235. IF($value == 0) {
  236. IF(file_exists('images/gallery/'.$verzeichnis.'/thumbs/'.$key)) unlink('images/gallery/'.$verzeichnis.'/thumbs/'.$key);
  237. $key = substr($key, strpos($key, '_')+1);
  238. $pid = $db->result(DB_PRE.'ecp_gallery_images', 'imageID', 'gID = '.$id.' AND filename = \''.strsave($key).'\'');
  239. $db->query('DELETE FROM '.DB_PRE.'ecp_gallery_images WHERE imageID='.$pid);
  240. $db->query('DELETE FROM '.DB_PRE.'ecp_comments WHERE bereich = "gallery" AND subID = '.$pid);
  241. $db->query('UPDATE '.DB_PRE.'ecp_gallery SET images = images - 1 WHERE galleryID='.$id);
  242. }
  243. }
  244. header1('?section=admin&site=gallery&func=viewgallery&id='.$id);
  245. }
  246. if (!isset($_SESSION['rights']['admin']['gallery']) AND !isset($_SESSION['rights']['superadmin'])) {
  247. table(ERROR, NO_ADMIN_RIGHTS);
  248. } else {
  249. if(isset($_GET['func'])) {
  250. switch($_GET['func']) {
  251. case 'add':
  252. admin_gallery_add();
  253. break;
  254. case 'edit':
  255. admin_gallery_edit((int)$_GET['id']);
  256. break;
  257. case 'addkate':
  258. admin_gallery_add_kate();
  259. break;
  260. case 'editkate':
  261. admin_gallery_edit_kate((int)$_GET['id']);
  262. break;
  263. case 'einlesen':
  264. ordner_einlesen((int)$_GET['id']);
  265. break;
  266. case 'viewgallery':
  267. admin_gallery_view((int)$_GET['id']);
  268. break;
  269. default:
  270. admin_gallery();
  271. }
  272. } else {
  273. admin_gallery();
  274. }
  275. }
  276. ?>