Ejemplo n.º 1
0
 * Setup
 */
require_once '../kernel/setup_inc.php';
require_once LIBERTY_PKG_PATH . 'LibertyMime.php';
// fetch the attachment details
if (@(!BitBase::verifyId($_REQUEST['attachment_id'])) || !($attachment = LibertyMime::loadAttachment($_REQUEST['attachment_id'], $_REQUEST))) {
    $gBitSystem->fatalError(tra("The Attachment ID given is not valid"));
}
$gBitSmarty->assign('attachment', $attachment);
// first we need to check the permissions of the content the attachment belongs to since they inherit them
if ($gContent = LibertyBase::getLibertyObject($attachment['content_id'])) {
    $gContent->verifyViewPermission();
    $gBitSmarty->assign('gContent', $gContent);
    if ($download_function = $gLibertySystem->getPluginFunction($attachment['attachment_plugin_guid'], 'download_function', 'mime')) {
        if ($download_function($attachment)) {
            LibertyMime::addDownloadHit($attachment['attachment_id']);
            die;
        } else {
            if (!empty($attachment['errors'])) {
                $msg = '';
                foreach ($attachment['errors'] as $error) {
                    $msg .= $error . '<br />';
                }
                $gBitSystem->fatalError(tra($msg));
            } else {
                $gBitSystem->fatalError(tra('There was an undetermined problem trying to prepare the file for download.'));
            }
        }
    } else {
        $gBitSystem->fatalError(tra("No suitable download function found."));
    }