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

/modules/files/details.php

http://acp3.googlecode.com/
PHP | 61 lines | 41 code | 10 blank | 10 comment | 13 complexity | 4a2d83282d3018a09a48e1923218931f MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, LGPL-2.1, GPL-2.0
  1. <?php
  2. /**
  3. * Files
  4. *
  5. * @author Tino Goratsch
  6. * @package ACP3
  7. * @subpackage Modules
  8. */
  9. if (defined('IN_ACP3') === false)
  10. exit;
  11. $period = ' AND (start = end AND start <= :time OR :time BETWEEN start AND end)';
  12. if (ACP3_Validate::isNumber(ACP3_CMS::$uri->id) === true &&
  13. ACP3_CMS::$db2->fetchColumn('SELECT COUNT(*) FROM ' . DB_PRE . 'files WHERE id = :id' . $period, array('id' => ACP3_CMS::$uri->id, 'time' => ACP3_CMS::$date->getCurrentDateTime())) == 1) {
  14. require_once MODULES_DIR . 'files/functions.php';
  15. $file = getFilesCache(ACP3_CMS::$uri->id);
  16. if (ACP3_CMS::$uri->action === 'download') {
  17. $path = UPLOADS_DIR . 'files/';
  18. if (is_file($path . $file['file'])) {
  19. // Sch??nen Dateinamen generieren
  20. $ext = strrchr($file['file'], '.');
  21. $filename = makeStringUrlSafe($file['title']) . $ext;
  22. header('Content-Type: application/force-download');
  23. header('Content-Transfer-Encoding: binary');
  24. header('Content-Length:' . filesize($path . $file['file']));
  25. header('Content-Disposition: attachment; filename="' . $filename . '"');
  26. readfile($path . $file['file']);
  27. exit;
  28. // Externe Datei
  29. } elseif (preg_match('/^([a-z]+):\/\//', $file['file'])) {
  30. ACP3_CMS::$uri->redirect(0, $file['file']);
  31. } else {
  32. ACP3_CMS::$uri->redirect('errors/404');
  33. }
  34. } else {
  35. // Brotkr??melspur
  36. ACP3_CMS::$breadcrumb->append(ACP3_CMS::$lang->t('files', 'files'), ACP3_CMS::$uri->route('files'))
  37. ->append($file['category_name'], ACP3_CMS::$uri->route('files/files/cat_' . $file['category_id']))
  38. ->append($file['title']);
  39. $settings = ACP3_Config::getSettings('files');
  40. $file['size'] = !empty($file['size']) ? $file['size'] : ACP3_CMS::$lang->t('files', 'unknown_filesize');
  41. $file['date'] = ACP3_CMS::$date->format($file['start'], $settings['dateformat']);
  42. ACP3_CMS::$view->assign('file', $file);
  43. if ($settings['comments'] == 1 && $file['comments'] == 1 && ACP3_Modules::check('comments', 'functions') === true) {
  44. require_once MODULES_DIR . 'comments/functions.php';
  45. ACP3_CMS::$view->assign('comments', commentsList('files', ACP3_CMS::$uri->id));
  46. }
  47. ACP3_CMS::setContent(ACP3_CMS::$view->fetchTemplate('files/details.tpl'));
  48. }
  49. } else {
  50. ACP3_CMS::$uri->redirect('errors/404');
  51. }