Contao\ContentDownloads::generate PHP Method

generate() public method

Return if there are no files
public generate ( ) : string
return string
    public function generate()
    {
        // Use the home directory of the current user as file source
        if ($this->useHomeDir && FE_USER_LOGGED_IN) {
            $this->import('FrontendUser', 'User');
            if ($this->User->assignDir && $this->User->homeDir) {
                $this->multiSRC = array($this->User->homeDir);
            }
        } else {
            $this->multiSRC = \StringUtil::deserialize($this->multiSRC);
        }
        // Return if there are no files
        if (!is_array($this->multiSRC) || empty($this->multiSRC)) {
            return '';
        }
        // Get the file entries from the database
        $this->objFiles = \FilesModel::findMultipleByUuids($this->multiSRC);
        if ($this->objFiles === null) {
            return '';
        }
        $file = \Input::get('file', true);
        // Send the file to the browser and do not send a 404 header (see #4632)
        if ($file != '' && !preg_match('/^meta(_[a-z]{2})?\\.txt$/', basename($file))) {
            while ($this->objFiles->next()) {
                if ($file == $this->objFiles->path || dirname($file) == $this->objFiles->path) {
                    \Controller::sendFileToBrowser($file);
                }
            }
            $this->objFiles->reset();
        }
        return parent::generate();
    }
ContentDownloads