git.gnu.io has moved to IP address 209.51.188.249 -- please double check where you are logging in.

Commit a38ed005 authored by mmn's avatar mmn

Moved jbfavre's Twitter card support to Twitter plugin

It was causing problems with an undefined TWITTER_SERVICE constant.
parent f54584c1
......@@ -117,47 +117,6 @@ class AttachmentAction extends Action
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;
}
}
/**
......
......@@ -528,4 +528,57 @@ class TwitterBridgePlugin extends Plugin
return true;
}
public function onEndShowHeadElements(Action $action)
{
if (!($action instanceof AttachmentAction)) {
return true;
}
/* 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
*
* Author: jbfavre
*/
switch ($action->attachment->mimetype) {
case 'image/pjpeg':
case 'image/jpeg':
case 'image/jpg':
case 'image/png':
case 'image/gif':
$action->element('meta', array('name' => 'twitter:card',
'content' => 'photo'),
null);
$action->element('meta', array('name' => 'twitter:url',
'content' => common_local_url('attachment',
array('attachment' => $action->attachment->id))),
null );
$action->element('meta', array('name' => 'twitter:image',
'content' => $action->attachment->url));
$action->element('meta', array('name' => 'twitter:title',
'content' => $action->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
$action->element('meta', array('name' => 'twitter:creator',
'content' => '@'.$fuser->nickname));
}
}
break;
default: break;
}
return true;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment