X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FFile.php;h=da029e39b69b0641262faca5895971791ca1e593;hb=e611ec5dee112991490346e3cc8cdd24a746daec;hp=8297e5091046ec4debf714718ad9e850bcf7229d;hpb=e68d2c9015ca48890ba125e61c698160a1846a72;p=quix0rs-gnu-social.git diff --git a/classes/File.php b/classes/File.php index 8297e50910..da029e39b6 100644 --- a/classes/File.php +++ b/classes/File.php @@ -29,7 +29,6 @@ require_once INSTALLDIR.'/classes/File_to_post.php'; /** * Table Definition for file */ - class File extends Memcached_DataObject { ###START_AUTOCODE @@ -139,7 +138,8 @@ class File extends Memcached_DataObject $redir_url = $redir_data; $redir_data = array(); } else { - throw new ServerException("Can't process url '$given_url'"); + // TRANS: Server exception thrown when a URL cannot be processed. + throw new ServerException(sprintf(_("Cannot process URL '%s'"), $given_url)); } // TODO: max field length if ($redir_url === $given_url || strlen($redir_url) > 255 || !$followRedirects) { @@ -169,7 +169,9 @@ class File extends Memcached_DataObject if (empty($x)) { $x = File::staticGet($file_id); if (empty($x)) { - throw new ServerException("Robin thinks something is impossible."); + // FIXME: This could possibly be a clearer message :) + // TRANS: Server exception thrown when... Robin thinks something is impossible! + throw new ServerException(_("Robin thinks something is impossible.")); } } @@ -182,8 +184,10 @@ class File extends Memcached_DataObject function isRespectsQuota($user,$fileSize) { if ($fileSize > common_config('attachments', 'file_quota')) { - return sprintf(_('No file may be larger than %d bytes ' . - 'and the file you sent was %d bytes. Try to upload a smaller version.'), + // TRANS: Message given if an upload is larger than the configured maximum. + // TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. + return sprintf(_('No file may be larger than %1$d bytes ' . + 'and the file you sent was %2$d bytes. Try to upload a smaller version.'), common_config('attachments', 'file_quota'), $fileSize); } @@ -192,6 +196,8 @@ class File extends Memcached_DataObject $this->fetch(); $total = $this->total + $fileSize; if ($total > common_config('attachments', 'user_quota')) { + // TRANS: Message given if an upload would exceed user quota. + // TRANS: %d (number) is the user quota in bytes. return sprintf(_('A file this large would exceed your user quota of %d bytes.'), common_config('attachments', 'user_quota')); } $query .= ' AND EXTRACT(month FROM file.modified) = EXTRACT(month FROM now()) and EXTRACT(year FROM file.modified) = EXTRACT(year FROM now())'; @@ -199,6 +205,8 @@ class File extends Memcached_DataObject $this->fetch(); $total = $this->total + $fileSize; if ($total > common_config('attachments', 'monthly_quota')) { + // TRANS: Message given id an upload would exceed a user's monthly quota. + // TRANS: $d (number) is the monthly user quota in bytes. return sprintf(_('A file this large would exceed your monthly quota of %d bytes.'), common_config('attachments', 'monthly_quota')); } return true; @@ -235,7 +243,8 @@ class File extends Memcached_DataObject static function path($filename) { if (!self::validFilename($filename)) { - throw new ClientException("Invalid filename"); + // TRANS: Client exception thrown if a file upload does not have a valid name. + throw new ClientException(_("Invalid filename.")); } $dir = common_config('attachments', 'dir'); @@ -249,24 +258,44 @@ class File extends Memcached_DataObject static function url($filename) { if (!self::validFilename($filename)) { - throw new ClientException("Invalid filename"); + // TRANS: Client exception thrown if a file upload does not have a valid name. + throw new ClientException(_("Invalid filename.")); } - if(common_config('site','private')) { + + if (common_config('site','private')) { return common_local_url('getfile', array('filename' => $filename)); - } else { - $path = common_config('attachments', 'path'); + } - if ($path[strlen($path)-1] != '/') { - $path .= '/'; - } + if (StatusNet::isHTTPS()) { - if ($path[0] != '/') { - $path = '/'.$path; + $sslserver = common_config('attachments', 'sslserver'); + + if (empty($sslserver)) { + // XXX: this assumes that background dir == site dir + /file/ + // not true if there's another server + if (is_string(common_config('site', 'sslserver')) && + mb_strlen(common_config('site', 'sslserver')) > 0) { + $server = common_config('site', 'sslserver'); + } else if (common_config('site', 'server')) { + $server = common_config('site', 'server'); + } + $path = common_config('site', 'path') . '/file/'; + } else { + $server = $sslserver; + $path = common_config('attachments', 'sslpath'); + if (empty($path)) { + $path = common_config('attachments', 'path'); + } } + $protocol = 'https'; + + } else { + + $path = common_config('attachments', 'path'); $server = common_config('attachments', 'server'); if (empty($server)) { @@ -275,19 +304,18 @@ class File extends Memcached_DataObject $ssl = common_config('attachments', 'ssl'); - if (is_null($ssl)) { // null -> guess - if (common_config('site', 'ssl') == 'always' && - !common_config('attachments', 'server')) { - $ssl = true; - } else { - $ssl = false; - } - } - $protocol = ($ssl) ? 'https' : 'http'; + } + + if ($path[strlen($path)-1] != '/') { + $path .= '/'; + } - return $protocol.'://'.$server.$path.$filename; + if ($path[0] != '/') { + $path = '/'.$path; } + + return $protocol.'://'.$server.$path.$filename; } function getEnclosure(){ @@ -302,7 +330,10 @@ class File extends Memcached_DataObject if(! isset($this->filename)){ $notEnclosureMimeTypes = array(null,'text/html','application/xhtml+xml'); - $mimetype = strtolower($this->mimetype); + $mimetype = $this->mimetype; + if($mimetype != null){ + $mimetype = strtolower($this->mimetype); + } $semicolon = strpos($mimetype,';'); if($semicolon){ $mimetype = substr($mimetype,0,$semicolon); @@ -339,4 +370,3 @@ class File extends Memcached_DataObject return !empty($enclosure); } } -