Вход Регистрация
Файл: contao-3.5.8/system/modules/core/elements/ContentDownload.php
Строк: 91
<?php

/**
 * Contao Open Source CMS
 *
 * Copyright (c) 2005-2016 Leo Feyer
 *
 * @license LGPL-3.0+
 */

namespace Contao;


/**
 * Front end content element "download".
 *
 * @author Leo Feyer <https://github.com/leofeyer>
 */
class ContentDownload extends ContentElement
{

    
/**
     * Template
     * @var string
     */
    
protected $strTemplate 'ce_download';


    
/**
     * Return if the file does not exist
     *
     * @return string
     */
    
public function generate()
    {
        
// Return if there is no file
        
if ($this->singleSRC == '')
        {
            return 
'';
        }

        
$objFile FilesModel::findByUuid($this->singleSRC);

        if (
$objFile === null)
        {
            if (!
Validator::isUuid($this->singleSRC))
            {
                return 
'<p class="error">'.$GLOBALS['TL_LANG']['ERR']['version2format'].'</p>';
            }

            return 
'';
        }

        
$allowedDownload trimsplit(','strtolower(Config::get('allowedDownload')));

        
// Return if the file type is not allowed
        
if (!in_array($objFile->extension$allowedDownload))
        {
            return 
'';
        }

        
$file Input::get('file'true);

        
// Send the file to the browser and do not send a 404 header (see #4632)
        
if ($file != '' && $file == $objFile->path)
        {
            
Controller::sendFileToBrowser($file);
        }

        
$this->singleSRC $objFile->path;

        return 
parent::generate();
    }


    
/**
     * Generate the content element
     */
    
protected function compile()
    {
        
$objFile = new File($this->singleSRCtrue);

        if (
$this->linkTitle == '')
        {
            
$this->linkTitle specialchars($objFile->basename);
        }

        
$strHref Environment::get('request');

        
// Remove an existing file parameter (see #5683)
        
if (preg_match('/(&(amp;)?|?)file=/'$strHref))
        {
            
$strHref preg_replace('/(&(amp;)?|?)file=[^&]+/'''$strHref);
        }

        
$strHref .= ((Config::get('disableAlias') || strpos($strHref'?') !== false) ? '&amp;' '?') . 'file=' System::urlEncode($objFile->value);

        
$this->Template->link $this->linkTitle;
        
$this->Template->title specialchars($this->titleText ?: sprintf($GLOBALS['TL_LANG']['MSC']['download'], $objFile->basename));
        
$this->Template->href $strHref;
        
$this->Template->filesize $this->getReadableSize($objFile->filesize1);
        
$this->Template->icon TL_ASSETS_URL 'assets/contao/images/' $objFile->icon;
        
$this->Template->mime $objFile->mime;
        
$this->Template->extension $objFile->extension;
        
$this->Template->path $objFile->dirname;
    }
}
Онлайн: 1
Реклама