X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Ffile.php;h=c6f7b998a2ea6c8862451dbb6572bc1729ea1770;hb=cf824621b9a06d5245393f28fe529f2837a95416;hp=bb245c4a778abd73145db2b3006e061008a1fee9;hpb=65f784120b45dc187e28313fa2c2dca2c976c150;p=quix0rs-gnu-social.git diff --git a/actions/file.php b/actions/file.php index bb245c4a77..c6f7b998a2 100644 --- a/actions/file.php +++ b/actions/file.php @@ -1,7 +1,7 @@ . */ -if (!defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } require_once(INSTALLDIR.'/actions/shownotice.php'); -class FileAction extends ShowNoticeAction +class FileAction extends Action { - function showPage() { - $source_url = common_local_url('file', array('notice' => $this->notice->id)); - $query = "select file_redirection.url as url from file join file_redirection on file.id = file_redirection.file_id where file.url = '$source_url'"; - $file = new File_redirection; - $file->query($query); - $file->fetch(); - if (empty($file->url)) { - die('nothing attached here'); - } else { - header("Location: {$file->url}"); - die(); + var $id = null; + var $filerec = null; + + function prepare($args) + { + parent::prepare($args); + $this->id = $this->trimmed('notice'); + if (empty($this->id)) { + $this->clientError(_('No notice ID.')); + } + $notice = Notice::staticGet('id', $this->id); + if (empty($notice)) { + $this->clientError(_('No notice.')); + } + $atts = $notice->attachments(); + if (empty($atts)) { + $this->clientError(_('No attachments.')); } + foreach ($atts as $att) { + if (!empty($att->filename)) { + $this->filerec = $att; + break; + } + } + if (empty($this->filerec)) { + $this->clientError(_('No uploaded attachments.')); + } + return true; } + + function handle() { + common_redirect($this->filerec->url); + } + + /** + * Is this action read-only? + * + * @return boolean true + */ + + function isReadOnly($args) + { + return true; + } + }