X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fattachment.php;h=3f2ae5c1ce0f89aa7081653b850d8090480aafb6;hb=9e89a177c76741f7e696f09d778bd8b151f84d3f;hp=090ad56f7a09792d89cfffab61251674c5ae213d;hpb=f0d86cdb64341f937ff16e69a7ca6fc250921c66;p=quix0rs-gnu-social.git diff --git a/actions/attachment.php b/actions/attachment.php index 090ad56f7a..3f2ae5c1ce 100644 --- a/actions/attachment.php +++ b/actions/attachment.php @@ -27,11 +27,7 @@ * @link http://status.net/ */ -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} - -require_once INSTALLDIR.'/lib/attachmentlist.php'; +if (!defined('GNUSOCIAL')) { exit(1); } /** * Show notice attachments @@ -42,7 +38,7 @@ require_once INSTALLDIR.'/lib/attachmentlist.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ -class AttachmentAction extends Action +class AttachmentAction extends ManagedAction { /** * Attachment object to show @@ -60,7 +56,7 @@ class AttachmentAction extends Action * @return success flag */ - function prepare($args) + protected function prepare(array $args=array()) { parent::prepare($args); @@ -68,10 +64,9 @@ class AttachmentAction extends Action $this->attachment = File::getKV($id); } - if (empty($this->attachment)) { + if (!$this->attachment instanceof File) { // TRANS: Client error displayed trying to get a non-existing attachment. $this->clientError(_('No such attachment.'), 404); - return false; } return true; } @@ -97,91 +92,14 @@ class AttachmentAction extends Action return $a->title(); } - function extraHead() + public function showPage() { - $this->element('link',array('rel'=>'alternate', - 'type'=>'application/json+oembed', - 'href'=>common_local_url( - 'oembed', - array(), - array('format'=>'json', 'url'=> - common_local_url('attachment', - array('attachment' => $this->attachment->id)))), - 'title'=>'oEmbed'),null); - $this->element('link',array('rel'=>'alternate', - 'type'=>'text/xml+oembed', - 'href'=>common_local_url( - 'oembed', - array(), - array('format'=>'xml','url'=> - common_local_url('attachment', - array('attachment' => $this->attachment->id)))), - 'title'=>'oEmbed'),null); - /* Twitter card support. See https://dev.twitter.com/docs/cards */ - /* @fixme: should we display twitter cards only for attachments posted - * by local users ? Seems mandatory to display twitter:creator - */ - switch ($this->attachment->mimetype) { - case 'image/pjpeg': - case 'image/jpeg': - case 'image/jpg': - case 'image/png': - case 'image/gif': - $this->element('meta', array('name' => 'twitter:card', - 'content' => 'photo'), - null); - $this->element('meta', array('name' => 'twitter:url', - 'content' => common_local_url('attachment', - array('attachment' => $this->attachment->id))), - null ); - $this->element('meta', array('name' => 'twitter:image', - 'content' => $this->attachment->url)); - $this->element('meta', array('name' => 'twitter:title', - 'content' => $this->attachment->title)); - - $ns = new AttachmentNoticeSection($this); - $notices = $ns->getNotices(); - $noticeArray = $notices->fetchAll(); - - // Should not have more than 1 notice for this attachment. - if( count($noticeArray) != 1 ) { break; } - $post = $noticeArray[0]; - - $flink = Foreign_link::getByUserID($post->profile_id, TWITTER_SERVICE); - if( $flink ) { // Our local user has registered Twitter Gateway - $fuser = Foreign_user::getForeignUser($flink->foreign_id, TWITTER_SERVICE); - if( $fuser ) { // Got nickname for local user's Twitter account - $this->element('meta', array('name' => 'twitter:creator', - 'content' => '@'.$fuser->nickname)); - } - } - break; - default: break; - } - } - - /** - * Handle input - * - * Only handles get, so just show the page. - * - * @param array $args $_REQUEST data (unused) - * - * @return void - */ - function handle($args) - { - parent::handle($args); - if (empty($this->attachment->filename)) { - // if it's not a local file, gtfo - - common_redirect($this->attachment->url, 303); - - } else { - $this->showPage(); + common_redirect($this->attachment->getUrl(), 303); } + + parent::showPage(); } /** @@ -214,9 +132,5 @@ class AttachmentAction extends Action function showSections() { $ns = new AttachmentNoticeSection($this); $ns->show(); - if (!common_config('performance', 'high')) { - $atcs = new AttachmentTagCloudSection($this); - $atcs->show(); - } } }