Example #1
2
function displayTwextra($screen_name = '')
{
    //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'];
    $banner = banner('', 'banner');
    //(user, banner_class)
    $footer = $config_params['footer'];
    //
    $docroot = $config_params['docroot'];
    $godaddy_analytics = $config_params['godaddy_analytics'];
    $debug = $config_params['debug'];
    $enable_stats = $config_params['enable_stats'];
    $show_maintenance_page = $config_params['show_maintenance_page'];
    $print_full_message_list = $config_params['print_full_message_list'];
    $search_len_max = $config_params['search_len_max'];
    $search_len_size = $config_params['search_len_size'];
    $search_count_offset = $config_params['search_count_offset'];
    if ($show_maintenance_page == 1) {
        maintenance_page();
    }
    $script_path = __FUNCTION__;
    //save logs
    if ($enable_stats) {
        $model = new TwextraModel();
        //
        $model->saveStat();
    }
    if (isset($_REQUEST['message_from'])) {
        $message_from = $_REQUEST['message_from'];
        //validate data..
    } else {
        $message_from = 0;
    }
    if (isset($_REQUEST['order'])) {
        $order = $_REQUEST['order'];
        //validate data..
    }
    if (isset($_REQUEST['toggle'])) {
        if ($_REQUEST['asc_desc'] == 'asc') {
            $asc_desc = 'desc';
        } else {
            $asc_desc = 'asc';
        }
    } else {
        $asc_desc = $_REQUEST['asc_desc'];
    }
    //if not set, define the default values
    if (empty($order)) {
        $order = 'created';
    }
    if (empty($asc_desc)) {
        $asc_desc = 'desc';
    }
    if (isset($_REQUEST['less'])) {
        $next = 'less';
    } else {
        $next = 'more';
    }
    $search = $_REQUEST['search'];
    $model = new TwextraModel();
    //
    //$message_id, $created, $view_count, $last_viewed, $prefix
    $length = 20;
    //number of messages to get
    $message_history = $model->get_twextra_search($screen_name, $message_from, $next, $order, $asc_desc, $length, $search);
    $msg_cnt = $message_history[0]['msg_cnt'];
    $msg_pages = ceil($msg_cnt / 20);
    $msg_current = ceil($message_from / 20) + 1;
    $msg_page_of_pages = "Page {$msg_current} of {$msg_pages}";
    $model = new TwextraModel();
    $user_info = $model->get_user_info($message_history[0]['message_id']);
    $display_remote_ip = trim($_SERVER['REMOTE_ADDR']);
    logger($script_path . "  display_remote_ip: ", $display_remote_ip);
    //don't count twitter bot access for correct view count..
    if ($_SERVER['REMOTE_ADDR'] == '128.242.241.134') {
        //$view_inc = false;
        return;
    }
    $screen_name = 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_totals = $model->get_message_totals();
    //round to nearest thousand:
    $message_totals = $message_totals - $message_totals % 1000;
    //$message_totals = $message_totals - $search_count_offset;
    $message_totals = number_format($message_totals);
    //format into human readable form
    if (isset($_SESSION['profile_image_url'])) {
        $message_created_by = "";
        //redundant, was used to concatenate profile_image_url
    }
    $message_created_by = " <span style='float:left'>&nbsp;&nbsp;Search results (Total: {$msg_cnt})</span>";
    $message_created_by .= "&nbsp;&nbsp;&nbsp;&nbsp;<span style='float:right'>\n\t\t<input type='text' name='search' size='{$search_len_size}' maxlength='{$search_len_max}' value='{$search}' id='search' ></input>\n\t\t<input class='button_del' type='submit' value='Search Twextra' name='submit'  />\n\t\t<input type='hidden' name='screen_name' value='{$screen_name}' />\n\t\t</span>";
    $message_created_by .= "<br style='clear:both; width:100%' />";
    //test
    $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} >\n";
    $message .= $header;
    $message .= "<body>\n";
    $message .= "<div class='p5_wrapper'>\n";
    $message .= "<div class='p5_page'>\n";
    $message .= $banner;
    $message .= "<div class='p5_main'>\n";
    //p5_main
    $message .= "<div class='p5_main_inner'>\n";
    //p5_main_inner
    $message .= "<div class='p5_tweet'>";
    //p5_tweet
    $message .= "<h4>&nbsp;&nbsp;Search over {$message_totals} messages</h4>";
    $message .= "<form method='post' action='/searchTwextra.php'>";
    $message .= "<p style='text-align:center;font-weight:bold;' >{$message_created_by}</p>";
    $message .= "</form>";
    if ($msg_cnt > 0) {
        $message .= "<table class='p5_message_history' >";
        $message .= "\n\t<tr>\n\t<th class='p5_th'>ID</th>\n\t<th class='p5_th'><a href='{$hostname}/searchTwextra.php?order=prefix&message_from=0&more&asc_desc={$asc_desc}&toggle&screen_name={$screen_name}&search={$search}'>\n\tMessage</a></th>\n\t<th class='p5_th'><a href='{$hostname}/searchTwextra.php?order=created&message_from=0&more&asc_desc={$asc_desc}&toggle&screen_name={$screen_name}&search={$search}'>\n\tCreated</a></th>\n\t<th class='p5_th'><a href='{$hostname}/searchTwextra.php?order=last_viewed&message_from=0&more&asc_desc={$asc_desc}&toggle&screen_name={$screen_name}&search={$search}'>\n\tLast Viewed</a></th>\n\t<th class='p5_th'><a href='{$hostname}/searchTwextra.php?order=views&message_from=0&more&asc_desc={$asc_desc}&toggle&screen_name={$screen_name}&search={$search}'>\n\tViews</a></th>\n\t</tr>\n\t";
        $message_history_row = 'p5_message_history_row_odd';
        $message_from_more = $message_from + 20;
        $message_from_less = $message_from - 20;
        if ($message_from_less < 0) {
            $message_from_less = 0;
        }
        $more = "<a href='{$hostname}/searchTwextra.php?message_from={$message_from_more}&more&order={$order}&asc_desc={$asc_desc}&screen_name={$screen_name}&search={$search}'\n\t                    >Next ></a>";
        $less = "<a href='{$hostname}/searchTwextra.php?message_from={$message_from_less}&less&order={$order}&asc_desc={$asc_desc}&screen_name={$screen_name}&search={$search}'\n\t                   >&lt; Previous</a>";
        foreach ($message_history as $id => $message_entry) {
            if (!empty($message_entry['last_viewed'])) {
                //$message_last_viewed = date ( "Y-m-d", $message_entry ['last_viewed'] );
                $message_last_viewed = last_viewed($message_entry['last_viewed']);
            } else {
                $message_last_viewed = '';
            }
            $message_id = $message_entry['message_id'];
            $prefix_size_max = 130;
            $message_prefix = substr($message_entry['prefix'], 0, $prefix_size_max);
            if (strlen($message_prefix) == $prefix_size_max) {
                $message_prefix = $message_prefix . '...';
            }
            $message_id_link = "<a href='{$hostname}/{$message_id}' target='_blank' >{$message_id}</a>";
            $message .= "<tr class='{$message_history_row}' >\n\t\t                 <td class='p5_tc1' >" . $message_id_link . "</td>\n\t\t                 <td class='p5_tc2' >" . $message_prefix . "</td>\n\t\t                 <td class='p5_tc3' >" . $message_entry['created_date'] . "</td>\n\t\t                 <td class='p5_tc4' >" . $message_last_viewed . "</td>\n\t\t                 <td class='p5_tc5' >" . $message_entry['view_count'] . "</td>\n\t\t            </tr>";
            if ($message_history_row == 'p5_message_history_row_even') {
                $message_history_row = 'p5_message_history_row_odd';
            } else {
                $message_history_row = 'p5_message_history_row_even';
            }
        }
        if ($message_from == 0) {
            $less = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
        }
        if (count($message_history) != 20) {
            $more = '';
        }
        $message .= "</table>";
        //		$message .= "<div style='float:right;margin-top:10px;' >
        //		<input class='button' type='submit' value='Delete' name='submit' onclick='return _delete()' /></div>";
    } else {
        if ($search == '') {
            $message .= "";
        } else {
            $message .= "<div style='text-align:center;'>No messages found with the phrase: {$search} \n\t\t                   </div>";
        }
    }
    $message .= "<div style='margin-top:20px; font-weight:bold;'>";
    //marker a
    if ($msg_cnt > 0) {
        $message .= "<div  class='p5_pofp1' >{$less}&nbsp;&nbsp;{$more}</div>";
        $message .= "<div class='p5_pofp2' >{$msg_page_of_pages}</div>";
    }
    $message .= "<br style='clear:both;' />";
    $message .= "</div>";
    //marker a
    $message .= "</div>\n";
    //p5_tweet
    echo $message;
    $message = "";
    $message .= "<br style='clear:both;'>\n";
    $message .= "</div>\n";
    //p5_main_inner
    $message .= "<br style='clear:both;' />";
    $message .= "</div>\n";
    //p5_main
    $message .= $footer;
    $message .= "</div>\n";
    //page
    $message .= "</div>\n";
    //wrapper
    $message .= $godaddy_analytics;
    $message .= "</body>\n</html>\n";
    echo $message;
}
 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 . "&nbsp;";
     //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;' >
     //	   		&nbsp;&nbsp;<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;
 }