function displayTweet($message_id, $error = '') { $time1 = time(); //configuration parameters: $config_params = Config::getConfigParams(); $css = $config_params['css']; $tweet_size_max = $config_params['tweet_size_max']; $tweet_size_max_google = $config_params['tweet_size_max_google']; $hostname = $config_params['hostname']; $doctype = $config_params['doctype']; $html_attribute = $config_params['html_attribute']; $footer = $config_params['footer']; // $docroot = $config_params['docroot']; $godaddy_analytics = $config_params['godaddy_analytics']; $debug = $config_params['debug']; $enable_stats = $config_params['enable_stats']; $fb_app_id = $config_params['fb_app_id']; $show_maintenance_page = $config_params['show_maintenance_page']; if ($show_maintenance_page == 1) { maintenance_page(); } $script_path = __FUNCTION__; //save logs if ($enable_stats) { $model = new TwextraModel(); // $model->saveStat(); } $display_remote_ip = trim($_SERVER['REMOTE_ADDR']); logger($script_path . " display_remote_ip: ", $display_remote_ip); $view_inc = true; //don't count twitter bot access for correct view count.. if ($_SERVER['REMOTE_ADDR'] == '128.242.241.134') { //$view_inc = false; return; } if (isset($_SESSION['error_size'])) { $_SESSION['error_size'] = ''; } logger($script_path . " before model read1:"); $model = new TwextraModel(); $user_info = $model->get_user_info($message_id); logger($script_path . " user_info1: ", $user_info); $last_viewed_timestamp = $user_info['last_viewed']; $model->incViewCount($message_id); $last_viewed = last_viewed($last_viewed_timestamp); logger($script_path . " message_id1: ", $message_id); logger($script_path . " user_info1: ", $user_info); $screen_name_poster = trim($user_info['screen_name']); //screen name of poster $name = trim($user_info['name']); $location = trim($user_info['location']); $description = trim($user_info['description']); $user_image_url = trim($user_info['user_image_url']); $message_id_reply = trim($user_info['message_id_reply']); if (!empty($message_id_reply)) { $message_created_by2 = " (in reply to <a href='{$hostname}/{$message_id_reply}' target='_blank' >{$message_id_reply}</a>)"; } else { $message_created_by2 = ""; } $banner = banner('', 'banner'); //(user, banner_class) if (!empty($screen_name_poster)) { $message_created_by = "<a href='http://twitter.com/{$screen_name_poster}' \n\t\t\ttarget='_blank' >@{$screen_name_poster}</a> created this message"; } else { if (!empty($message_created_by2)) { $message_created_by = ' Message'; } else { $message_created_by = " Message"; } } $message_created_by .= $message_created_by2 . ''; logger($script_path . " message created by:", $message_created_by); if ($screen_name_poster == '' && $message_created_by2 == '') { //$message_created_by = "Message:"; } //logger("View page/displayTweet peak memory usage: ", memory_get_peak_usage(true)); logger($script_path . " get memory usage: ", memory_get_usage(true)); logger($script_path . " IP Address: ", $_SERVER['REMOTE_ADDR']); //logger("View page/displayTweet get memory limit: ", memory_limit); $tweet = $user_info['tweet']; $tweetlen = strlen($tweet); //this code snippet can slow down response time drastically!! if ($debug == 1 && $hostname == 'http://twetest.com') { for ($i = 0; $i < $tweetlen; $i++) { $hex = dechex(ord($tweet[$i])); logger($script_path . "tweet characters:", $i . "-" . $tweet[$i] . "-" . $hex . "\n"); } } //add non-breaking space at the end to fix embedded hashtags.. $tweet = $tweet . " "; //embed links for all cases (Twitter, LinkedIn, Twextra) //rule: must process links first, then at_replies, hash_tags, and emails $pattern_to_embed = 'link'; $embed = new EmbedInLink($tweet, $pattern_to_embed); $tweet = $embed->embedPattern(); //embed @replies for all cases $pattern_to_embed = 'at_reply'; $embed = new EmbedInLink($tweet, $pattern_to_embed); $tweet = $embed->embedPattern(); //embed #hashtags for all cases $pattern_to_embed = 'hash_tag'; $embed = new EmbedInLink($tweet, $pattern_to_embed); $tweet = $embed->embedPattern(); //embed links for all cases (Twitter, LinkedIn, Twextra) // $pattern_to_embed = 'email'; // $embed = new EmbedInLink ( $tweet, $pattern_to_embed ); // $tweet = $embed->embedPattern (); //$view_count = $result['view_count']; $view_count = $user_info['view_count'] + 1; //$created = $result['created']; $created = $user_info['created']; $url_page = $hostname . "tweet_display.php"; $query_string = "?message_id={$message_id}&mthd=displayTweet"; $url = $url_page . $query_string; $url_rewrite = "{$hostname}/{$message_id}"; $url_size = strlen($url_rewrite); $url_box_size = $url_size + 2; $tweet_size = strlen($tweet); $controller = new TwextraController(); $prefix = $controller->getPrefix($tweet, $message_id); $header = header_html($prefix); // //.......................................................... header("Pragma: no-cache"); header("cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past $message = ''; $message .= $doctype; $message .= "<html {$html_attribute} xmlns:fb=\"http://www.facebook.com/2008/fbml\" >\n"; $message .= $header; $message .= "<body>\n"; $message .= "<div class='p2_wrapper'>\n"; $message .= "<div class='p2_page'>\n"; $message .= $banner; $message .= "<div class='p2_main'>\n"; //p2_main //................................................. $message .= "<div class='p2_main_inner'>\n"; if (isset($_SESSION['update_li']) && $_SESSION['update_li'] == 1) { $message .= "<div style='text-align:center; margin-top:20px; margin-bottom:30px;\n\t\t\tborder:solid 2px #244f29;background-color:#bdf2c2;padding:10px;' id='message_status_l' >"; $message .= "Your message was posted successfully on LinkedIn."; $message .= "<a href='javascript: hide_message_status(\"message_status_l\")' style='float:right;font-size:0.8em;' >Close</a>"; $message .= "</div>"; $_SESSION['update_li'] = 0; } if (isset($_SESSION['update_tw']) && $_SESSION['update_tw'] == 1) { $message .= "<div style='text-align:center; margin-bottom:30px;\n\t\t\tborder:solid 1px #244f29;background-color:#bdf2c2;padding:10px;' id='message_status_t' >"; $message .= "Your message was posted successfully on Twitter."; $message .= "<a href='javascript: hide_message_status(\"message_status_t\")' style='float:right;font-size:0.8em;' >Close</a>"; $message .= "</div>"; $_SESSION['update_tw'] = 0; } if (!empty($error)) { $message .= "<div style='text-align:center; margin-bottom:30px;\n\t\t\tborder:solid 1px #244f29;background-color:#bdf2c2;padding:10px;' id='message_status_t' >"; $message .= $error; $message .= "<a href='javascript: hide_message_status(\"message_status_t\")' style='float:right;font-size:0.8em;' >Close</a>"; $message .= "</div>"; $_SESSION['update_tw'] = 0; } if ($screen_name_poster != '') { $message .= "<div class='p2_sidebar_image' style='float:left;margin-right:5px;' >\n\t\t\t<a href='http://twitter.com/{$screen_name_poster}' target='_blank' style='clear:both;float:left;' >\n\t\t\t<img src='" . $user_image_url . "' style='width:48px;height:48px;' /></a></div>"; // } $message .= "<div class='p2_actions' >"; //marker 3.1 $message .= "<a href='{$hostname}/index.php?screen_name_reply={$screen_name_poster}&message_id_reply={$message_id}' >Reply</a>"; $message .= " | <a href='{$hostname}/index.php?message_id={$message_id}'>Edit</a>"; $message .= " | <a href='{$hostname}' >New</a>"; if ($_SESSION['user'] != '' && $screen_name_poster == $_SESSION['user']) { //$message .= " | <a href='$hostname/router.php?route=delete_msg&message_id=$message_id&message_poster=$screen_name_poster' >Delete</a>"; $message .= " | <span id='delete' style='color:blue;' onclick=_delete('{$hostname}','{$message_id}','{$screen_name_poster}')>Delete</span>"; } $message .= "</div>"; //marker 3.1 $message .= "<div class='p2_createdby' >"; //p2_createdby $message .= "{$message_created_by}:"; $message .= "</div>"; //p2_createdby $message .= "<div class='p2_message_metadata' >"; //non-twitter div $message .= "<div class='p2_created'> <strong>Created:</strong><br /> " . $created . " (Pacific Time)</div>\n"; $message .= "<div class='p2_count'>\n"; $message .= "<strong>Views:</strong><br /> {$view_count}"; $message .= "</div>\n"; $message .= "<div class='p2_count'>\n"; $message .= "<strong>Last viewed:</strong><br /> {$last_viewed}"; $message .= "</div>\n"; $message .= "<div class='p2_tweet_url'><strong>URL:</strong><br /> "; $message .= $url_rewrite; $message .= "</div>\n"; //p2_tweet_url $message .= "</div>"; //non-twitter div // $message .= "<div class='p2_tweet_header'>\n"; // $message .= "<div style='float:right; width:400px;' >";//marker 1 // $message .= "<div class='p2_count'>Message size (incl. formatting): " . $tweet_size . "</div>\n"; // $message .= "</div>";//marker 1 // $message .= "<div style='float:left' >";//marker 2 // $message .= "</div>";//marker 2 // $message .= "<br style='clear:both' />"; // $message .= "</div>";//tweet_header $message .= "<div class='p2_tweet'>"; //decode four special entity characters inside object tags to be able to play videos $pattern_to_embed = 'link'; $embed = new EmbedInLink($tweet, $pattern_to_embed); $tweet = $embed->entityDecodeObject($tweet); $message .= "{$tweet}"; $message .= "</div>\n"; //p2_tweet $message .= "<div class='p2_buttons' >"; //tweet button $message .= "<div class='p2_twitter_button' style='float:left;' >"; //p2_twitter_button $message .= '<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>'; $message .= "</div>"; //p2_twitter_button //facebook like button $message .= "<div class='p2_facebook_button' style='float:left;' >"; //p2_facebook_button $message .= "\n <fb:like show_faces='false' font='arial' ></fb:like>\n\n <div id=\"fb-root\"></div>\n <script>\n window.fbAsyncInit = function() {\n FB.init({appId: '{$fb_app_id}', status: true, cookie: true,\n xfbml: true});\n };\n (function() {\n var e = document.createElement('script');\n e.type = 'text/javascript';\n e.src = document.location.protocol +\n '//connect.facebook.net/en_US/all.js';\n e.async = true;\n document.getElementById('fb-root').appendChild(e);\n }());\n </script>\n\t\t"; $message .= "</div>"; //p2_facebook_button $message .= "<br style='clear:both;' />"; $message .= "</div>"; //p2_buttons // if ($screen_name_poster != '') { // $message .= "<div class='p2_twitter_bio'>"; //p2_twitter_bio // $message .= "<div class='p2_sidebar_image' style='float:left; clear:both;margin-bottom:5px;' > // <a href='http://twitter.com/$screen_name_poster' target='_blank' style='clear:both;float:left;' > // <img src='" . $user_image_url . "' style='width:48px;height:48px;' /></a></div>"; //??? // // // $message .= "<div class='p2_names'>"; //p2_names // $message .= "<div class='p2_sidebar_screen_name' style='float:left; margin-bottom:10px;' > // <a href='http://twitter.com/$screen_name_poster' target='_blank'>$screen_name_poster</a> // </div>"; // // if ($name != '') { // $message .= "<div class='p2_twitter_name' ><strong>Name:</strong> $name</div>"; // } // $message .= "<br style='clear:both;' />"; // $message .= "</div>"; //p2_names // if ($location != '') { // $message .= "<div class='p2_location' ><strong>Location:</strong> $location </div>"; // } // // if ($description != '') { // $message .= "<div class='p2_bio' ><strong>Bio:</strong> $description</div>"; // } // $message .= "</div>"; //p2_twitter_bio // } //................................................. //$message .= "<div class='p2_main_sidebar'>"; //p2_main_sidebar //google adsense //$message_adsense2 = '<div style="width:728px; margin-left:auto; margin-right:auto;" > //<script type="text/javascript"><!-- //google_ad_client = "pub-6612446954643048"; ///* 728x90, created 8/23/10 */ //google_ad_slot = "6010217329"; //google_ad_width = 728; //google_ad_height = 90; //--> //</script> //<script type="text/javascript" //src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> //</script> //</div>'; //block out google ads and use direct/clean ads later.. //$message .= $message_adsense2; //$message .= "</div>"; //p2_main_sidebar echo $message; $message = ""; if ($tweet_size < $tweet_size_max_google) { $message .= "<div class='p2_main_form'>\n"; $message .= "<div class='p2_main_form_inner'>\n"; $message .= "<form method='post' action='router.php' >\n"; $message .= "<div class='p2_main_trans'>\n"; $message .= "Translate message: \n"; $message .= "</div>\n"; //main_trans $message .= "<div class='p2_src_tgt_tran'>"; $message .= "<div class='p2_src_lang'>\n"; $message .= "Source Language: "; $message .= "<select name='src_lang'>\n"; foreach ($this->language_list as $key => $val) { $option = "<option value='{$key}'>{$val}</option>\n"; $message .= $option; } $message .= "</select>"; $message .= "</div>\n"; //src_lang $message .= "<div class='p2_tgt_lang'>Target Language: \n"; $message .= "<select name='tgt_lang'>\n"; foreach ($this->language_list as $key => $val) { $option = "<option value='{$key}'>{$val}</option>\n"; $message .= $option; } $message .= "</select></div>\n"; //tgt_lang $message .= "<div class='p2_sub'>\n"; $message .= "<input class='button_translate' type='submit' name='submit' value='Translate' />\n"; $message .= "</div>\n"; //sub $message .= "<br style='clear:both;' />"; $message .= "</div>\n"; //p2_src_tgt_tran $message .= "<br style='clear:both;' />"; $message .= "<div>\n"; //hidden $message .= "<input type='hidden' name='route' value='tweet_translate' ></input>\n"; $message .= "<input type='hidden' name='url' value='{$url}' ></input>\n"; $message .= "<input type='hidden' name='message_id' value='{$message_id}' ></input>\n"; $message .= "</div>\n"; //hidden $message .= "</form>\n"; $message .= "<br style='clear:both;'>"; $message .= "</div>\n"; //main_form_inner $message .= "</div>\n"; //main_form } $message .= "<br style='clear:both;'>\n"; $message .= "</div>\n"; //main_inner $message .= "<br style='clear:both;' />"; $message .= "</div>\n"; //p2_main $message .= $footer; $message .= "</div>\n"; //page $message .= "</div>\n"; //wrapper //$message .= $google_analytics; $message .= $godaddy_analytics; $time2 = time(); //echo "diff:", ($time2 - $time1); $message .= "</body>\n</html>\n"; echo $message; }