X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Foembed.php;h=e293e4d27d0ed802edc6233a50a809dd25450848;hb=865c1bc27838a1b7ee41ff513d30d2c8c6f4cd10;hp=1503aa9c2b93718f182686fbca8710714449c559;hpb=3da50c19dfff7645dc46f1b836ebf4ecda726129;p=quix0rs-gnu-social.git diff --git a/actions/oembed.php b/actions/oembed.php index 1503aa9c2b..e293e4d27d 100644 --- a/actions/oembed.php +++ b/actions/oembed.php @@ -23,6 +23,7 @@ * @package StatusNet * @author Evan Prodromou * @copyright 2008 StatusNet, Inc. + * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ @@ -60,7 +61,9 @@ class OembedAction extends Action $proxy_args = $r->map($path); if (!$proxy_args) { - $this->serverError(_("$path not found."), 404); + // TRANS: Server error displayed in oEmbed action when path not found. + // TRANS: %s is a path. + $this->serverError(sprintf(_('"%s" not found.'),$path), 404); } $oembed=array(); $oembed['version']='1.0'; @@ -72,17 +75,17 @@ class OembedAction extends Action $id = $proxy_args['notice']; $notice = Notice::staticGet($id); if(empty($notice)){ - $this->serverError(_("Notice $id not found."), 404); + // TRANS: Server error displayed in oEmbed action when notice not found. + // TRANS: %s is a notice. + $this->serverError(sprintf(_("Notice %s not found."),$id), 404); } $profile = $notice->getProfile(); if (empty($profile)) { + // TRANS: Server error displayed in oEmbed action when notice has not profile. $this->serverError(_('Notice has no profile.'), 500); } - if (!empty($profile->fullname)) { - $authorname = $profile->fullname . ' (' . $profile->nickname . ')'; - } else { - $authorname = $profile->nickname; - } + $authorname = $profile->getFancyName(); + // TRANS: oEmbed title. %1$s is the author name, %2$s is the creation date. $oembed['title'] = sprintf(_('%1$s\'s status on %2$s'), $authorname, common_exact_date($notice->created)); @@ -95,7 +98,9 @@ class OembedAction extends Action $id = $proxy_args['attachment']; $attachment = File::staticGet($id); if(empty($attachment)){ - $this->serverError(_("Attachment $id not found."), 404); + // TRANS: Server error displayed in oEmbed action when attachment not found. + // TRANS: %d is an attachment ID. + $this->serverError(sprintf(_('Attachment %s not found.'),$id), 404); } if(empty($attachment->filename) && $file_oembed = File_oembed::staticGet('file_id', $attachment->id)){ // Proxy the existing oembed information @@ -111,10 +116,23 @@ class OembedAction extends Action $oembed['url']=$file_oembed->url; }else if(substr($attachment->mimetype,0,strlen('image/'))=='image/'){ $oembed['type']='photo'; - //TODO set width and height - //$oembed['width']= - //$oembed['height']= + if ($attachment->filename) { + $filepath = File::path($attachment->filename); + $gis = @getimagesize($filepath); + if ($gis) { + $oembed['width'] = $gis[0]; + $oembed['height'] = $gis[1]; + } else { + // TODO Either throw an error or find a fallback? + } + } $oembed['url']=$attachment->url; + $thumb = $attachment->getThumbnail(); + if ($thumb) { + $oembed['thumbnail_url'] = $thumb->url; + $oembed['thumbnail_width'] = $thumb->width; + $oembed['thumbnail_height'] = $thumb->height; + } }else{ $oembed['type']='link'; $oembed['url']=common_local_url('attachment', @@ -123,7 +141,9 @@ class OembedAction extends Action if($attachment->title) $oembed['title']=$attachment->title; break; default: - $this->serverError(_("$path not supported for oembed requests."), 501); + // TRANS: Server error displayed in oEmbed request when a path is not supported. + // TRANS: %s is a path. + $this->serverError(sprintf(_('"%s" not supported for oembed requests.'),$path), 501); } switch($args['format']){ case 'xml': @@ -180,6 +200,7 @@ class OembedAction extends Action } break; default: + // TRANS: Server error displayed in oEmbed action when request specifies an unsupported data format. $this->serverError(_('Not a supported data format.'), 501); break; } @@ -199,10 +220,22 @@ class OembedAction extends Action } break; default: + // TRANS: Server error displayed in oEmbed action when request specifies an unsupported data format. $this->serverError(_('Not a supported data format.'), 501); break; } return; } + /** + * Is this action read-only? + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + function isReadOnly($args) + { + return true; + } }