You are here

function twitter_last_tweet_field_field_formatter_view in Twitter 7.6

Same name and namespace in other branches
  1. 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;
}