function twitter_last_tweet_field_field_formatter_view in Twitter 7.6
Same name and namespace in other branches
- 7.5 twitter_last_tweet_field/twitter_last_tweet_field.module \twitter_last_tweet_field_field_formatter_view()
Implements hook_field_formatter_view().
File
- twitter_last_tweet_field/
twitter_last_tweet_field.module, line 112 - Hook implementations for the twitter_last_tweet module.
Code
function twitter_last_tweet_field_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
if ($display['type'] == 'twitter_last_tweet_formatter') {
module_load_include('inc', 'twitter');
foreach ($items as $delta => $item) {
// Load the author.
$author = twitter_account_load($item['twitter_uid']);
if (!empty($author)) {
// Load the tweet.
$tweet = db_query("SELECT t.*\n FROM {twitter} AS t\n WHERE screen_name=:screen_name\n ORDER BY created_time DESC\n LIMIT 1", array(
':screen_name' => $author->screen_name,
))
->fetchObject();
// Found a tweet!
if (!empty($tweet)) {
// Need a time_ago.
$time_diff = REQUEST_TIME - $tweet->created_time;
$tweet->time_ago = t('%time ago', array(
'%time' => format_interval($time_diff, 2),
));
// Build the field.
$element[$delta] = array(
'#theme' => 'twitter_status',
'#status' => $tweet,
'#author' => $author,
);
// Load the standard JS and CSS by default.
if (empty($item['hide_extras'])) {
$element[$delta]['#attached'] = array(
'js' => array(
'//platform.twitter.com/widgets.js' => array(
'type' => 'external',
),
),
'css' => array(
drupal_get_path('module', 'twitter') . '/twitter.css',
),
);
}
}
elseif (!empty($item['empty_message'])) {
$element = array(
'#markup' => $item['empty_message'],
);
}
}
}
}
return $element;
}