return true;
}
+ public function onEndShowStylesheets(Action $action) {
+ $action->cssLink($this->path('css/oembed.css'));
+ return true;
+ }
+
/**
* Save embedding information for a File, if applicable.
*
}
return true;
}
+
+ public function onStartShowAttachmentRepresentation(HTMLOutputter $out, File $file)
+ {
+ try {
+ $oembed = File_oembed::getByFile($file);
+ } catch (NoResultException $e) {
+ return true;
+ }
+
+ $out->elementStart('article', ['class'=>'oembed-item']);
+ $out->elementStart('header');
+ try {
+ $thumb = $file->getThumbnail(128, 128);
+ $out->element('img', $thumb->getHtmlAttrs(['class'=>'oembed-thumb']));
+ unset($thumb);
+ } catch (Exception $e) {
+ $out->element('div', ['class'=>'error'], $e->getMessage());
+ }
+ $out->elementStart('h5', ['class'=>'oembed-title']);
+ $out->element('a', ['href'=>$file->getUrl()], $oembed->title);
+ $out->elementEnd('h5');
+ $out->elementStart('div', ['class'=>'oembed-source']);
+ if (!empty($oembed->author_name)) {
+ // TRANS: text before the author name of oEmbed attachment representation
+ // FIXME: The whole "By x from y" should be i18n because of different language constructions.
+ $out->text(_('By '));
+ $attrs = ['class'=>'h-card'];
+ if (!empty($oembed->author_url)) {
+ $attrs['href'] = $oembed->author_url;
+ $tag = 'a';
+ } else {
+ $tag = 'span';
+ }
+ $out->element($tag, $attrs, $oembed->author_name);
+ }
+ if (!empty($oembed->provider)) {
+ // TRANS: text between the oEmbed author name and provider url
+ // FIXME: The whole "By x from y" should be i18n because of different language constructions.
+ $out->text(_(' from '));
+ $attrs = ['class'=>'h-card'];
+ if (!empty($oembed->provider_url)) {
+ $attrs['href'] = $oembed->provider_url;
+ $tag = 'a';
+ } else {
+ $tag = 'span';
+ }
+ $out->element($tag, $attrs, $oembed->provider);
+ }
+ $out->elementEnd('div');
+ $out->elementEnd('header');
+ $out->element('div', ['class'=>'oembed-item-body'], common_purify($oembed->html));
+ $out->elementStart('footer');
+ $out->elementEnd('footer');
+ $out->elementEnd('article');
+
+ return false;
+ }
public function onShowUnsupportedAttachmentRepresentation(HTMLOutputter $out, File $file)
{