Просмотр файла modules/downloads/file.php

Размер файла: 9.47Kb
  1. <?php
  2. /**********************************
  3. * @package: PerfCMS *
  4. * @year: 2012 *
  5. * @author: Artas *
  6. * @link: http://perfcms.org.ua *
  7. **********************************/
  8. $locate = 'in_downloads';
  9. $file_id = abs(intval($_GET['id']));
  10. if($db->query("SELECT * FROM `downloads_files` WHERE `id` = '". $file_id ."'")->rowCount() == 0)
  11. {
  12. header('location: /downloads/');
  13. exit;
  14. }
  15. $file = $db->query("SELECT * FROM `downloads_files` WHERE `id` = '". $file_id ."'")->fetch();
  16. $file_ra = $db->query("SELECT * FROM `downloads_rating` WHERE `file_id` = '". $file_id ."'")->fetch();
  17. if(isset($_GET['act']) && $_GET['act'] == 'rate') {
  18. $rates = abs(intval($_POST['rate']));
  19. $rate = ($rates < 1 ? 1 : ($rates > 5 ? 5 : $rates));
  20. $db->query("INSERT INTO `downloads_rating` SET `rating` = '". ($file_ra['rating']+$rate)."', `rated` = '". ($file_ra['rated']+1) ."', `user_id` = '". $user['id'] ."', `file_id` = '". $file_id."'");
  21. header('location: /downloads/file/'.$file['id']);
  22. exit;
  23. }
  24. $root_dir = $db->query("SELECT server_path FROM `downloads` WHERE `id` = '". abs(intval($file['ref_id'])) ."'")->fetchColumn();
  25. $title = $file['name'].' | '.$lang->word('downloads');
  26. require_once(SYS.'/view/header.php');
  27. $tpl->div('title', $file['name']);
  28. echo '<div class="post">';
  29. if(preg_match('/png|jpg|gif|jpeg/i', $file['ext']))
  30. {
  31. if(file_exists(ROOT.'/cache/downloads_images/cache_'.$file['server_name']).'.png')
  32. {
  33. echo '<img src="/cache/downloads_images/cache_'.$file['server_name'].'.png" alt="Screen" /><br/>';
  34. }
  35. else
  36. {
  37. echo '<img src="/files/downloads/'.$root_dir.'/'.$file['server_dir'].'/'.$file['server_name'].'" alt="Image" weight="150" width="95"/><br/>';
  38. }
  39. $dl_image_info = getimagesize(ROOT.'/files/downloads/'.$root_dir.'/'.$file['server_dir'].'/'.$file['server_name']);
  40. $type = $dl_image_info['mime'];
  41. $width = $dl_image_info[0];
  42. $height = $dl_image_info[1];
  43. echo '<b>'.$lang->word('dl_image_size').'</b>: '.$width.'x'.$height.'<br/>';
  44. }
  45. elseif(preg_match('/mp3/i', $file['ext']))
  46. {
  47. import_lib('audio.class');
  48. $mp3Info = new AudioFile;
  49. $mp3Info->loadFile(ROOT.'/files/downloads/'.$root_dir.'/'.$file['server_dir'].'/'.$file['server_name']);
  50. $mp3Info->printSampleInfo();
  51. }
  52. elseif(!preg_match('/png|jpg|gif|jpeg|mp3|avi|3gp|mp4/i', $file['ext']))
  53. {
  54. if (file_exists(ROOT.'/files/downloads_screens/screen_1_'.$file['server_name'].'.png') && !isset($_GET['screen'])) {
  55. echo '<a href="/files/downloads_screens/screen_1_'.$file['server_name'].'.png"><img src="/files/downloads_screens/screen_1_'.$file['server_name'].'.png" alt="Screen" /></a><br />[1]'
  56. . (file_exists(ROOT.'/files/downloads_screens/screen_2_'.$file['server_name'].'.png') ? ', <a href="/downloads/file/'. $file['id'] .'?screen=2">2</a>' : NULL)
  57. . (file_exists(ROOT.'/files/downloads_screens/screen_3_'.$file['server_name'].'.png') ? ', <a href="/downloads/file/'. $file['id'] .'?screen=3">3</a>' : NULL)
  58. . (file_exists(ROOT.'/files/downloads_screens/screen_4_'.$file['server_name'].'.png') ? ', <a href="/downloads/file/'. $file['id'] .'?screen=4">4</a>' : NULL)
  59. . (file_exists(ROOT.'/files/downloads_screens/screen_5_'.$file['server_name'].'.png') ? ', <a href="/downloads/file/'. $file['id'] .'?screen=5">5</a><br />' : NULL);
  60. }
  61. elseif (isset($_GET['screen']) && $_GET['screen'] == 2 && file_exists(ROOT.'/files/downloads_screens/screen_2_'.$file['server_name'].'.png')) {
  62. echo '<a href="/files/downloads_screens/screen_2_'.$file['server_name'].'.png"><img src="/files/downloads_screens/screen_2_'.$file['server_name'].'.png" alt="" /></a><br />
  63. <a href="/downloads/file/'. $file['id'] .'">1</a>, [2]'
  64. . (file_exists(ROOT.'/files/downloads_screens/screen_3_'.$file['server_name'].'.png') ? ', <a href="/downloads/file/'. $file['id'] .'?screen=3">3</a>' : NULL)
  65. . (file_exists(ROOT.'/files/downloads_screens/screen_4_'.$file['server_name'].'.png') ? ', <a href="/downloads/file/'. $file['id'] .'?screen=4">4</a>' : NULL)
  66. . (file_exists(ROOT.'/files/downloads_screens/screen_5_'.$file['server_name'].'.png') ? ', <a href="/downloads/file/'. $file['id'] .'?screen=5">5</a><br />' : NULL);
  67. }
  68. elseif (isset($_GET['screen']) && $_GET['screen'] == 3 && (file_exists(ROOT.'/files/downloads_screens/screen_3_'.$file['server_name'].'.png'))) {
  69. echo '<a href="/files/downloads_screens/screen_3_'.$file['server_name'].'.png"><img src="/files/downloads_screens/screen_3_'.$file['server_name'].'.png" alt="" /></a><br />
  70. <a href="/downloads/file/'. $file['id'] .'">1</a>, <a href="/downloads/file/'. $file['id'] .'?screen=2">2</a>, [3]'
  71. . (file_exists(ROOT.'/files/downloads_screens/screen_4_'.$file['server_name'].'.png') ? ', <a href="/downloads/file/'. $file['id'] .'?screen=4">4</a>' : NULL)
  72. . (file_exists(ROOT.'/files/downloads_screens/screen_5_'.$file['server_name'].'.png') ? ', <a href="/downloads/file/'. $file['id'] .'?screen=5">5</a><br />' : NULL);
  73. }
  74. elseif (isset($_GET['screen']) && $_GET['screen'] == 4 && (file_exists(ROOT.'/files/downloads_screens/screen_4_'.$file['server_name'].'.png'))) {
  75. echo '<a href="/files/downloads_screens/screen_4_'.$file['server_name'].'.png"><img src="/files/downloads_screens/screen_4_'.$file['server_name'].'.png" alt="" /></a><br />
  76. <a href="/downloads/file/'. $file['id'] .'">1</a>, <a href="/downloads/file/'. $file['id'] .'?screen=2">2</a>, <a href="/downloads/file/'. $file['id'] .'?screen=3">3</a> [4]'
  77. . (file_exists(ROOT.'/files/downloads_screens/screen_5_'.$file['server_name'].'.png') ? ', <a href="/downloads/file/'. $file['id'] .'?screen=5">5</a><br />' : NULL);
  78. }
  79. elseif (isset($_GET['screen']) && $_GET['screen'] == 5 && (file_exists(ROOT.'/files/downloads_screens/screen_5_'.$file['server_name'].'.png'))) {
  80. echo '<a href="/files/downloads_screens/screen_5_'.$file['server_name'].'.png"><img src="/files/downloads_screens/screen_5_'.$file['server_name'].'.png" alt="" /></a><br />
  81. <a href="/downloads/file/'. $file['id'] .'">1</a>, <a href="/downloads/file/'. $file['id'] .'?screen=2">2</a>, <a href="/downloads/file/'. $file['id'] .'?screen=3">3</a>, <a href="/downloads/file/'. $file['id'] .'?screen=4">4</a> [5]<br />';
  82. }
  83. }
  84. if($file_ra['rating'] != 0) {
  85. $rating = ($file_ra['rating']/$file_ra['rated']);
  86. }
  87. else {
  88. $rating = 0;
  89. }
  90. echo '<b>'.$lang->word('dl_description').'</b>:
  91. '.output($file['description']).'<br/>
  92. <b>'.$lang->word('rating').': </b>'. round($rating, 1) .'<br/>
  93. '.(isset($user) && $db->query("SELECT * FROM `downloads_rating` WHERE `user_id` = '". $user['id'] ."' AND `file_id` = '". $file['id'] ."'")->rowCount() == 0 ?
  94. '<form action="/downloads/file/'.$file['id'].'/?act=rate" method="post">
  95. <select name="rate">
  96. <option value="1">1</option>
  97. <option value="2">2</option>
  98. <option value="3">3</option>
  99. <option value="4">4</option>
  100. <option value="5">5</option>
  101. </select>
  102. <input type="submit" value="'.$lang->word('vote').'" />
  103. </form>' : NULL).'
  104. </div>';
  105. echo '<div class="post">
  106. '.img('globe.png').' <b>'.$lang->word('dl_file_user').'</b>: '.rtime($file['time']).' (<a href="/user/'.$file['user_id'].'">'.tnick($file['user_id']).'</a>)<br/>
  107. '.img('info.png').' <b>'.$lang->word('dl_file_downloaded').'</b>: '.$file['dl_times'].'<br/>
  108. '.dlext($file['ext']).' <a href="/downloads/get_file/'.$file['id'].'">'.(preg_match('/jar|sis|apk|exe|zip|ipa|sisx/i', $file['ext']) ? $file['name'] : $lang->word('dl_download_file')).' ('.strtoupper($file['ext']).')</a> ['.size($file['size']).'] '.($file['ext'] == 'jar' ? '[<a href="/downloads/jad/'.$file['id'].'">jad</a>]' : NULL).'<br/>';
  109. if($db->query("SELECT * FROM `downloads_archive` WHERE `file_id` = '". $file['id'] ."'")->rowCount() != 0)
  110. {
  111. $farch_q = $db->query("SELECT * FROM `downloads_archive` WHERE `file_id` = '". $file['id'] ."'");
  112. while($farch = $farch_q->fetch())
  113. {
  114. echo dlext($farch['ext']).' <a href="/downloads/get_file/attachment/'.$farch['id'].'">'.$farch['name'].' ('.strtoupper($farch['ext']).')</a> ('.size($farch['size']).') [<a href="/downloads/delete_attachment/'.$farch['id'].'">x</a>] '.($farch['ext'] == 'jar' ? '[<a href="/downloads/jad/attachment/'.$farch['id'].'">jad</a>]' : NULL).'<br/>';
  115. }
  116. }
  117. echo '</div>';
  118. echo '
  119. '.($user['level'] >= 4 ? '<div class="menu">'.
  120. img('edit.png') .' <a href="/downloads/file_edit/'.$file['id'].'">'. $lang->word('dl_edit_file') .'</a><br/>'.
  121. img('delete.png') .' <a href="/downloads/delete_file/'.$file['id'].'">'. $lang->word('dl_delete_file') .'</a><br/>'.
  122. (!preg_match('/png|jpg|gif|jpeg|mp3|avi|3gp|mp4/i', $file['ext']) ? img('plus.png') .' <a href="/downloads/attach_files/'.$file['id'].'">'. $lang->word('dl_attach_files') .'</a><br/>'.
  123. img('image.png') .' <a href="/downloads/attach_screen/'.$file['id'].'">'. $lang->word('dl_attach_screenshot') .'</a><br/>' : NULL).'</div>' : NULL);
  124. $tpl->div('block', img('nav.png').' <a href="/downloads/'.$file['id'].'/comments?">'.$lang->word('comments').'</a> ('.$db->query("SELECT * FROM `downloads_comms` WHERE `downloads_id` = '". $file['id'] ."'")->rowCount().')<br/>' .($file['ref_id'] != 0 ? img('folder.png') .' <a href="/downloads/dir/'. $file['ref_id'].'">'.$db->query("SELECT name FROM `downloads` WHERE `id` = '". abs(intval($file['ref_id'])) ."'")->fetchColumn().'</a><br/>' : img('folder.png') . ' <a href="/downloads/">'. $lang->word('back') .'</a><br/>').' '
  125. . img('download.png') . ' <a href="/downloads/">'. $lang->word('downloads') .'</a><br/>'
  126. . HICO .' <a href="/">'. $lang->word('home') .'</a>');
  127. require_once(SYS.'/view/footer.php');
  128. ?>