function _twitter_profile_widget_prepare_tweets in Twitter Profile Widget 8
Helper to parse Twitter's JSON and return a normalized array of tweets.
Parameters
string[] $tweets: An array of tweets, in Twitter class format.
int $count: How many tweets should be displayed.
Return value
string[] Non-keyed array of tweet elements.
1 call to _twitter_profile_widget_prepare_tweets()
File
- ./
twitter_profile_widget.module, line 188 - Contains twitter_profile_widget.module.
Code
function _twitter_profile_widget_prepare_tweets(array $tweets, $count = 5) {
$inc = 0;
$tweets_filtered = [];
foreach ($tweets as $tweet) {
$inc++;
$tweet_actions = '';
$tweet->retweet_eyebrow = FALSE;
// If this is a retweet, use the API-provided sub-element.
if (isset($tweet->retweeted_status)) {
$id = $tweet->retweeted_status->id;
$retweet_user = $tweet->retweeted_status->user->screen_name;
$original_user = $tweet->user->name;
$original_screen_name = $tweet->user->screen_name;
$retweet_link = Url::fromUri('//twitter.com/' . $retweet_user . '/status/' . $id);
$user_text = $original_user . ' Retweeted';
$user_url = Url::fromUri('//twitter.com/' . $original_screen_name);
$user_link = Link::fromTextAndUrl($user_text, $user_url);
// Switch $tweet object to its sub-element.
$tweet = $tweet->retweeted_status;
// Add the retweet eyebrow.
$tweet->retweet_link = $retweet_link;
$tweet->retweet_user = $user_link;
}
// Prepare the Tweet Action links, based on $tweet->id.
$timestamp = strtotime($tweet->created_at);
$tweets_filtered[$inc] = [
'id' => (int) $tweet->id,
'image' => _twitter_profile_widget_schema_free_link($tweet->user->profile_image_url),
'image_user' => $tweet->user->name,
'author' => $tweet->user->name,
'username' => $tweet->user->screen_name,
'text' => _twitter_profile_widget_parse_twitter_links($tweet->text),
'timestamp' => $timestamp,
'time_ago' => t('@time ago', [
'@time' => \Drupal::service('date.formatter')
->formatInterval(REQUEST_TIME - $timestamp),
]),
'tweet_reply2' => Url::fromUri('//twitter.com/intent/tweet?in_reply_to=' . $tweet->id),
'tweet_retweet' => Url::fromUri('//twitter.com/intent/retweet?tweet_id=' . $tweet->id),
'tweet_star' => Url::fromUri('//twitter.com/intent/favorite?tweet_id=' . $tweet->id),
];
if (isset($tweet->retweet_link)) {
$tweets_filtered[$inc]['retweet_link'] = $tweet->retweet_link;
$tweets_filtered[$inc]['retweet_user'] = $tweet->retweet_user;
}
if ($inc >= $count) {
break;
}
}
return $tweets_filtered;
}