function fbf_facebook_messages($options) { // CHECK OPTIONS add_filter('wp_feed_cache_transient_lifetime', create_function('$a', 'return 60;')); // To reduce cache time if ($options['pageID'] == '') { return __('Facebook pageID not configured', 'fbf'); } if (!is_numeric($options['num']) or $options['num'] <= 0) { return __('Number of status not valid', 'fbf'); } $link_target = $options['link_target_blank'] ? ' target="_blank" ' : ''; // Checking Link target - Open new windo/tab or in same window $avatar_size = $options['avatar_size'] ? $options['avatar_size'] : 'small'; // avatar_size // Fetching feed using wordpress // Credits http://digwp.com/2011/09/feed-display-multiple-columns/ include_once ABSPATH . WPINC . '/feed.php'; $optionID = $options['pageID']; // Getting Facebook Page ID $rss_array = explode(',', $optionID); $feed_link_array = ""; foreach ($rss_array as $feed_link_id) { // Creating string of RSS links seperated by commas $feed_link_array .= ',http://www.facebook.com/feeds/page.php?id=' . $feed_link_id . '&format=rss20'; } if ($feed_link_array[0] == ",") { $feed_link_array = substr($feed_link_array, 1, strlen($feed_link_array)); } $feed_links = explode(",", $feed_link_array); // Array of RSS Feed links if (function_exists('fetch_feed')) { $feed = fetch_feed($feed_links); if (is_wp_error($feed)) { $error_string = $feed->get_error_message(); $err_msg = '<div id="message" class="error">'; $err_msg .= '<strong>Unable to fetch the feed</strong><br><span>Error :</span><ul>'; foreach ($error_string as $err) { if ($err == "file_get_contents could not read the file") { $error_detail = "SimplePie could not read the feed"; } else { $error_detail = $err; } $err_msg .= '<li>' . $error_detail . '</li>'; } $err_msg .= '</ul> </div>'; echo $err_msg; // Prints the error message } if (!is_wp_error($feed)) { $feed->init(); $feed->set_output_encoding('UTF-8'); // set encoding $feed->handle_content_type(); // ensure encoding $feed->enable_cache(false); // no cache $limit = $feed->get_item_quantity($options['num']); // get feed items $items = $feed->get_items(0, $limit); // set array } } if ($limit == 0) { echo '<p><strong>RSS Feed currently unavailable.</strong></p>'; } else { $returnMarkup = ''; $returnMarkup .= '<!--- page ID ' . $optionID . ' -->'; $returnMarkup .= '<div class="fbf_facebook_page_widget_container"> <ul class="fbf_facebook_page_widget">'; $blocks = array_slice($items, 0, $options['num']); foreach ($blocks as $block) { $returnMarkup .= '<li>'; # Shows avatar of Facebook page $returnMarkup .= '<div class="content_header">'; if ($options['show_avatar'] != '') { $returnMarkup .= "<div class=\"facebook_page-avatar\"><img src=\"http://graph.facebook.com/" . $options['pageID'] . "/picture?type=" . $avatar_size . "\" alt=" . $block->author . " /></div>"; } if ($options['feed_title'] == "true") { $feedtitle = "<h4><a href=" . $block->get_permalink() . " class='facebook_page-link' " . $link_target . ">" . substr($block->get_title(), 0, 200) . "</a></h4>"; // Title of the update } elseif ($options['feed_title'] == "") { $feedtitle = null; } $returnMarkup .= html_entity_decode($feedtitle, ENT_COMPAT, 'UTF-8'); if ($options['update'] != '') { $time = strtotime($block->get_date("j F Y, H:i:s")); $tval = timesince($time); $h_time = abs(time() - $time) < 86400 ? sprintf(__('%s ago', 'rstw'), human_time_diff($time)) : date(__('Y/m/d'), $time); $returnMarkup .= '' . sprintf(__('%s', 'rstw'), ' <span class="facebook_page-timestamp"><abbr title="' . $block->get_date("j F Y, H:i:s") . '">' . timesince($time) . '</abbr></span>'); } // Show Timestamp - if option enabled # Shows fb like button on bottom, below the feed description if ($options['like_button'] != '' && $options['like_button'] != false) { if ($options['like_button_position'] == "bottom") { $returnMarkup .= $like_button; } } $returnMarkup .= '</div>'; # Like button $like_button = '<iframe src="http://www.facebook.com/plugins/like.php?href=' . $block->get_permalink() . '&layout=standard&show_faces=true&width=450&action=like&colorscheme=light&height=30" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100%; height:30px;" allowTransparency="true"></iframe>'; if ($options['show_description'] != '') { $desc_feed = str_replace('href="http://www.facebook.com', 'href="', $block->get_description()); // Emptying all links $desc = html_entity_decode(str_replace('href="', 'href="http://www.facebook.com', $desc_feed), ENT_COMPAT, 'UTF-8'); // adding facebook link - to avoid facebook redirector l.php's broken link error $returnMarkup .= "<div class=\"fbf_desc\">" . $desc . "</div>"; // Full content } # Shows fb like button on top, below the feed title if ($options['like_button'] != '' && $options['like_button'] != false) { if ($options['like_button_position'] == "top") { $returnMarkup .= '<div class="like_btn">' . $like_button . '</div>'; } } $returnMarkup .= '</li>'; } // For Loop Ends here $returnMarkup .= '</ul> </div>'; } return $returnMarkup; }
function SB_comment($param) { $comments = Typecho_Widget::widget('Widget_Comments_Recent', 'ignoreAuthor=true&pageSize=' . (empty($param["max"]) ? "5" : $param["max"])); if (!$comments->have()) { return ''; } $text = '<aside class="widget widget_minty_recentcomments clearfix"><h3 class="widget-title"><span>近期评论</span></h3><ul id="minty_recentcomments">'; while ($comments->next()) { $url = !empty($comments->url) ? $comments->url : "#"; $text .= "<li><a href=\"" . $url . "\" target=\"_blank\" rel=\"external nofollow\" class=\"avatar\"><img alt=\"\" src=\"" . getAvatar(32, $comments->mail) . "\" class=\"avatar\" height=\"32\" width=\"32\" /></a><div class=\"bd\"><a href=\"" . $url . "\" rel=\"external nofollow\" class=\"url\">" . $comments->author . "</a><a href=\"" . $comments->permalink . "\" class=\"desc\" title=\"发表在 " . timesince($comments->created) . "\">" . Typecho_Common::subStr(strip_tags($comments->text), 0, 25, '...') . "</a></div></li>"; } return $text . '</ul></aside>'; }
$graph[$i] .= '<div class="optionsHeader" rel="twitter_' . $id . '"><span>' . $tweets . ' ' . JText::_('JM_TWEETS_AND_RETWEETS') . '</span><div id="toggler_twitter_' . $id . '" class="optionsHeader_r" onclick="toggleSlider(\'twitter_' . $id . '\', \'toggler_twitter_' . $id . '\')"></div></div>'; $graph[$i] .= '<div class="optionsContent" id="twitter_' . $id . '">'; if ($tweets) { foreach ($twitter['twitter']['statuses'] as $status) { $graph[$i] .= '<div class="tweet">'; $graph[$i] .= '<div class="twitterStatus">'; if ($status['is_retweet']) { $graph[$i] .= '<img style="position:relative;top:3px;" src="' . JURI::root() . 'administrator/components/com_joomailermailchimpintegration/assets/images/retweet.png" /> '; } $graph[$i] .= twitterit($status['status'], $status['screen_name']); $graph[$i] .= '</div>'; $graph[$i] .= '<span class="twitterInfo">'; $graph[$i] .= '<a href="http://twitter.com/' . $status['screen_name'] . '" target="_blank" style="text-decoration:none!important;">'; $graph[$i] .= $status['screen_name'] . '</a> | '; // $graph[$i] .= $status['datetime']; $graph[$i] .= timesince(strtotime($status['datetime']), substr($status['datetime'], 0, -3)); $graph[$i] .= '<span style="float:right;">'; $graph[$i] .= '<a href="http://twitter.com/home?status=' . urlencode($status['status']) . '" target="_blank">' . JText::_('JM_RETWEET') . '</a>'; $graph[$i] .= ' | '; $graph[$i] .= '<a href="http://twitter.com/home?status=@' . $status['screen_name'] . '+" target="_blank">' . JText::_('JM_REPLY') . '</a>'; $graph[$i] .= '<span style="clear:both;"</span>'; $graph[$i] .= '</span>'; $graph[$i] .= '</span>'; $graph[$i] .= '</div>'; } } $graph[$i] .= '</div>'; $graph[$i] .= '</div>'; // geo stats $countries = $row['geo']; $graph[$i] .= '<div class="countrystats">';
function threadedComments($comments, $singleCommentOptions) { global $smilies_from, $smilies_to; ?> <li class="comment depth-<?php echo $comments->levels + 1; if ($comments->authorId == $comments->ownerId) { echo " bypostauthor"; } ?> " id="<?php $comments->theId(); ?> "> <div id="div-<?php $comments->theId(); ?> " class="comment-body"> <div class="comment-author vcard"><?php if ($comments->levels == 0) { ?> <img alt="" src="<?php echo getAvatar(50, $comments->mail); ?> " class="avatar" height="50" width="50" /><?php } else { ?> <img alt="" src="<?php echo getAvatar(30, $comments->mail); ?> " class="avatar" height="30" width="30" /><?php } ?> <cite class="fn"><?php echo empty($comments->url) ? htmlspecialchars($comments->author) : "<a href=\"" . $comments->url . "\" rel=\"external nofollow\" class=\"url\" target=\"_blank\">" . htmlspecialchars($comments->author) . "</a>"; ?> </cite> <time><?php echo timesince($comments->created); ?> </time> </div> <div class="comment-content"><?php $output = ""; // HTML loop taken from texturize function, could possible be consolidated $textarr = preg_split("/(<.*>)/U", Typecho_Common::stripTags($comments->text, "<br><a href=\"\">"), -1, PREG_SPLIT_DELIM_CAPTURE); $stop = count($textarr); for ($i = 0; $i < $stop; $i++) { $content = $textarr[$i]; if (strlen($content) > 0 && '<' != $content[0]) { $content = str_replace($smilies_from, $smilies_to, $content); } $output .= $content; } echo $output; ?> </div> <footer class="comment-footer"> <?php $comments->reply("回复"); ?> <a href="#" class="com-at" data-name="@<?php echo htmlspecialchars($comments->author); ?> " data-id="#<?php $comments->theId(); ?> ">@TA</a> </footer> </div> <?php if ($comments->children) { ?> <ol class="children"><?php $comments->threadedComments($singleCommentOptions); ?> </ol><?php } ?> </li><?php }