case 'tweet_show': $twextra->showTweet($data); break; case 'tweet_translate': $twextra->translateTweet($data); break; case 'update_twitter': $twextra->updateTwitter($data); break; case 'api_update_json': $twextra->apiUpdateJson($data); break; case 'signout': header("Location: " . $hostname . "?signout=true"); exit; break; case 'delete_msg': $twextra->delete_message($data); break; case 'signin_twitter': $_SESSION['signin_with_twitter'] = 'yes'; $prefix = ''; $message = ''; tw_page1($prefix, $message); break; case 'default': //error exit(1); } /////////////// //require_once $docroot . "/models/twextra_model.php";
function postTweet($data) { //configuration parameters: $config_params = Config::getConfigParams(); $hostname = $config_params['hostname']; $tweet_size_max = $config_params['tweet_size_max']; $prefix_size_max = $config_params['prefix_size_max']; $docroot = $config_params['docroot']; $debug = $config_params['debug']; $enable_stats = $config_params['enable_stats']; $cookie_name = $config_params['cookie_name']; $script_path = __FUNCTION__; //save logs if ($enable_stats) { $model = new TwextraModel(); $model->saveStat(); } //save the tweet if the submitted form is not empty //logger ( $script_path." Topx: ", "", false ); //start with the same log file logger($script_path . " Topx: ", "", true); //start with a new log file logger("//..............................................START A NEW TRANSACTION..........................\n ............................................//"); logger($script_path . " IP Address: ", $_SERVER['REMOTE_ADDR']); logger($script_path . " userAgent: ", $_SERVER['HTTP_USER_AGENT']); logger($script_path . " request array: ", $data); logger($script_path . " get memory usage: ", memory_get_usage(true)); $_SESSION['controller_remote_ip'] = $_SERVER['REMOTE_ADDR']; $twitter_access_token = ''; $twitter_access_token_secret = ''; $twextra_key = ''; $twitter_user_id = ''; $twitter_user_id_hash = ''; $result_t = ''; // if (isset($data)) { if (isset($data['editor1'])) { $tweet_raw = $data['editor1']; } elseif (isset($data['editorI'])) { $tweet_raw = $data['editorI']; } elseif (isset($data['editor'])) { $tweet_raw = $data['editor']; } //for api access if (isset($data['twextra_key'])) { $twextra_key = $data['twextra_key']; } //for api access if (isset($data['twitter_user_id'])) { $twitter_user_id = $data['twitter_user_id']; } //for api access if (isset($data['twitter_access_token'])) { $twitter_access_token = $data['twitter_access_token']; } //for api access if (isset($data['twitter_access_token_secret'])) { $twitter_access_token_secret = $data['twitter_access_token_secret']; } $tweet = str_replace("<br>", "<br />", $tweet_raw); $tweet_size = strlen($tweet); $tweet = stripslashes($tweet); } if (isset($data['message_id_reply'])) { $message_id_reply = $data['message_id_reply']; } else { $message_id_reply = ''; } if (isset($data['message_id'])) { $message_id = $data['message_id']; } else { $message_id = ''; } //print_r($data); /* //embed @replies for all cases $pattern_to_embed = 'at_reply'; $embed = new EmbedInLink ( $tweet, $pattern_to_embed ); $tweet = $embed->embedPattern (); //embed links for all cases (Twitter, LinkedIn, Twextra) $pattern_to_embed = 'link'; $embed = new EmbedInLink ( $tweet, $pattern_to_embed ); $tweet = $embed->embedPattern (); */ //validate and update twextra key if ($twextra_key != '') { $model = new TwextraModel(); $success = $model->apiKeyMatchUpdate($twextra_key); if ($success == 'error') { $err_message = array('error' => 'Error: Your Twextra key did not match or the daily limit is exceeded.'); print_r(json_encode($err_message)); exit; } } if ($tweet_size < $tweet_size_max) { if ($message_id == '412641') { //have one fixed message_id for admin work... $message_id_reply = $message_id; } else { //generate a random url $message_id = $this->random_message_id(); } //echo 'message_id:', $message_id; exit; $url = $hostname . "tweet_display.php?message_id={$message_id}&mthd=displayTweet"; $url_rewrite = "{$hostname}/{$message_id}"; //save in database logger($script_path . " before model save:"); if (isset($data['social']) && $data['social'] == 'twitter') { if (isset($_COOKIE[$cookie_name])) { $twitter_user_id_hash = $_COOKIE[$cookie_name]; } else { if ($twitter_user_id != '') { logger($script_path . " twitter_user_id2: ", $twitter_user_id); $twitter_user_id_hash = sha1($twitter_user_id, false); logger($script_path . " twitter_user_id_hash2: ", $twitter_user_id_hash); } } logger($script_path . " twitter_user_id_hash", $twitter_user_id_hash); if ($twitter_user_id_hash != '') { $result_t = $this->getTwCredentials($twitter_user_id_hash); // logger($script_path . " result_t/tw credentials: ", $result_t); //$tid = $result_t ['tid']; } else { //$tid = null; $result_t = 'error'; } } else { //$tid = null; } $url_ln2 = $this->getPrefix($tweet, $message_id); //prefix $model = new TwextraModel(); $success = $model->saveTweet($tweet, $message_id, $message_id_reply, $url_ln2); logger($script_path . " after model save:"); //........................................................................... //if twitter request then generate prefix and message and redirect to page 1 or 2 if (isset($data['social'])) { logger($script_path . " final prefix:", $url_ln2); $url_ln1 = "{$hostname}/linkedin/page1.php?prefix="; $url_tw1 = "{$hostname}/twitter/page1.php?prefix="; $url_ln3 = "&message="; $url_ln4 = rawurlencode($url_rewrite); $url_ln = $url_ln1 . $url_ln2 . $url_ln3 . $url_ln4; $url_tw = $url_tw1 . $url_ln2 . $url_ln3 . $url_ln4; $_SESSION['prefix'] = $url_ln2; $_SESSION['message'] = $url_ln4; $_SESSION['message_id'] = $message_id; //logic: if cookie is set and a hit in the table, go to page 2; else go to page 1. //$_COOKIE['tw_tok'] if ($twextra_key != '' && $twitter_access_token != '' && $twitter_access_token_secret != '') { //validate and update twextra key; $api_result = $this->apiUpdateJson($data); logger($script_path . " api_result: ", $api_result); if ($api_result != false) { //echo $api_result; } else { echo "Error: Please check your data and try again."; } } if (isset($data['social']) && $data['social'] == 'twitter') { logger($script_path . " postTweet/test1:"); if (isset($twitter_user_id_hash)) { logger($script_path . " test2"); if ($result_t != 'error') { //go to page 2 tw_page2_cookie($url_ln2, $url_ln4, $twitter_access_token, $twitter_access_token_secret); } else { //go to page 1 tw_page1($url_ln2, $url_ln4); } } else { //go to page 1 tw_page1($url_ln2, $url_ln4); } } if (isset($data['social']) && $data['social'] == 'linkedin') { //go to page 1 logger($script_path . " Linkedin/Cookie not set2: "); logger($script_path . " Linkedin/url_ln2", $url_ln2); logger($script_path . " Linkedin/url_ln4", $url_ln4); ln_page1($url_ln2, $url_ln4); } } //............................................................................ //finally if neither twitter or linkedin request redirect to view page logger($script_path . " RD url: ", $url_rewrite); header("Location:{$url_rewrite}"); // exit; } else { //require_once $docroot . "/tw.lib.php"; $error_size = "Your message size exceeds the max size limit of {$tweet_size_max} (incl. formatting).<br> Your message size: {$tweet_size}. Please try again."; $_SESSION['error_size'] = $error_size; $_SESSION['tweet'] = $tweet; //index ( $tweet, $error_size ); header("Location:{$hostname}"); // exit; } }