diff --git a/README.md b/README.md index 55a1b94..eb64039 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,16 @@ The profile image of the person who created the tweet, using the HTTP protocol. The profile image of the person who created the tweet, using the HTTPS protocol. +`{profile_image_url:mini}`, `{profile_image_url:bigger}`, `{profile_image_url:original}` + +The standard profile image is 48px by 48px. You can also use other size variations: + +* mini: 24px by 24px +* bigger: 73px by 73px +* original: [the dimensions of the originally uploaded image] + +Those same tag extensions will also work on the secure and retweeted image variants, e.g. `{image:bigger}`, `{retweeter:profile_image_url_https:mini}` + **Retweets**: `{if retweeted}`, `{retweeter}` If the tweet is a retweet, the _original_ tweet will be shown. Use `{if retweet}` to determine if the tweet being shown is a retweet. `{retweeter}` will then include the name of the person that retweeted the tweet. diff --git a/system/expressionengine/third_party/twitter/addon.setup.php b/system/expressionengine/third_party/twitter/addon.setup.php new file mode 100644 index 0000000..05c431c --- /dev/null +++ b/system/expressionengine/third_party/twitter/addon.setup.php @@ -0,0 +1,12 @@ + 'Derek Jones, Bryant Hughes, Bryan Burgers', + 'author_url' => 'http://clickrain.com', + 'name' => 'Twitter', + 'description' => 'Twitter plugin', + 'version' => '1.9.0', + 'namespace' => 'Twitter', + 'settings_exist' => TRUE, + 'docs_url' => 'https://github.com/tobystokes/EE_Twitter', +); diff --git a/system/expressionengine/third_party/twitter/css/twitter.css b/system/expressionengine/third_party/twitter/css/twitter.css deleted file mode 100644 index ebdc54c..0000000 --- a/system/expressionengine/third_party/twitter/css/twitter.css +++ /dev/null @@ -1,4 +0,0 @@ -#generate_request_token{ - display:block; - margin-top:10px; -} \ No newline at end of file diff --git a/system/expressionengine/third_party/twitter/language/english/lang.twitter.php b/system/expressionengine/third_party/twitter/language/english/lang.twitter.php index a07ee88..524fa71 100755 --- a/system/expressionengine/third_party/twitter/language/english/lang.twitter.php +++ b/system/expressionengine/third_party/twitter/language/english/lang.twitter.php @@ -12,5 +12,9 @@ 'twitter_settings_generate' => 'Generate new Request Token', 'twitter_settings_erase' => 'Erase Authentication Settings', +'settings' => 'Settings', +'btn_save_form' => 'Save settings', +'btn_saving' => 'Saving', + '' => '' ); diff --git a/system/expressionengine/third_party/twitter/mcp.twitter.php b/system/expressionengine/third_party/twitter/mcp.twitter.php index 7f4bf02..1ebcd0f 100755 --- a/system/expressionengine/third_party/twitter/mcp.twitter.php +++ b/system/expressionengine/third_party/twitter/mcp.twitter.php @@ -5,27 +5,12 @@ class Twitter_mcp { private $data = array(); - + public function __construct() { - $this->EE =& get_instance(); - $this->site_id = $this->EE->config->item('site_id'); - $this->base_url = BASE.AMP.'C=addons_modules'.AMP.'M=show_module_cp'.AMP.'module=twitter'; - - // load table lib for control panel - $this->EE->load->library('table'); - $this->EE->load->helper('form'); - - $this->EE->cp->load_package_css('twitter'); - - // Set page title - // $this->EE->cp->set_variable was deprecated in 2.6 - if (version_compare(APP_VER, '2.6', '>=')) { - $this->EE->view->cp_page_title = $this->EE->lang->line('twitter_module_name'); - } else { - $this->EE->cp->set_variable('cp_page_title', $this->EE->lang->line('twitter_module_name')); - } + ee()->load->model('twitter_model'); } + /** * Module CP index function * @@ -34,12 +19,164 @@ public function __construct() */ public function index() { - $this->EE->load->model('twitter_model'); + // check if we have a result + $rules = array( + 'consumer_key' => 'required|minLength[3]', + 'consumer_secret' => 'required|minLength[3]', + ); + $result = ee('Validation')->make($rules)->validate($_POST); + + if($result->isValid()) + { + // do save + $save = $this->submit_settings(); - $this->data['form_action'] = 'C=addons_modules'.AMP.'M=show_module_cp'.AMP.'module=twitter'.AMP.'method=submit_settings'; - $this->data['settings'] = $this->EE->twitter_model->get_settings(); + // handle errors + if($save == 'pin_success') + { + $message = lang('Success! You are now Authenticated.'); + ee('CP/Alert')->makeBanner('success-message')->asSuccess()->withTitle(lang('Form saved'))->addToBody($message)->defer(); + } + else if($save == 'pin_error') + { + $message = lang('Error authenticating with Twitter. Please verify Pin and re-submit'); + ee('CP/Alert')->makeBanner('error-message')->asError()->withTitle(lang('Error'))->addToBody($message)->defer(); + } + else if($save == TRUE) + { + $message = lang('Success!'); + ee('CP/Alert')->makeBanner('success-message')->asSuccess()->withTitle(lang('Form saved'))->addToBody($message)->defer(); + } + else + { + $message = lang('Error saving settings.'); + ee('CP/Alert')->makeBanner('error-message')->asError()->withTitle(lang('Error'))->addToBody($message)->defer(); + } - return $this->EE->load->view('index', $this->data, TRUE); + ee()->functions->redirect(ee('CP/URL', 'addons/settings/twitter/')->compile()); + exit; + } + else + { + // get the settings + $settings = ee()->twitter_model->get_settings(); + + $consumer_key = (isset($settings['consumer_key'])) ? $settings['consumer_key'] : ''; + $consumer_secret = (isset($settings['consumer_secret'])) ? $settings['consumer_secret'] : ''; + $pin = (isset($settings['pin'])) ? $settings['pin'] : ''; + $request_token = (isset($settings['request_token'])) ? $settings['request_token'] : FALSE; + $request_token_secret = (isset($settings['request_token_secret'])) ? $settings['request_token_secret'] : FALSE; + $access_token = (isset($settings['access_token'])) ? $settings['access_token'] : FALSE; + $access_token_secret = (isset($settings['access_token_secret'])) ? $settings['access_token_secret'] : FALSE; + + + // consumer key + $fields[] = array + ( + 'title' => 'twitter_settings_consumer_key', + 'fields' => array( + 'consumer_key' => array( + 'type' => 'text', + 'value' => $consumer_key, + 'required' => TRUE + ) + ), + ); + + // consumer secret + $fields[] = array + ( + 'title' => 'twitter_settings_consumer_secret', + 'fields' => array( + 'consumer_secret' => array( + 'type' => 'text', + 'value' => $consumer_secret, + 'required' => TRUE + ) + ), + ); + + // add the pin fields + if($request_token != FALSE && $request_token_secret != FALSE && ! empty($consumer_key) && ! empty($consumer_secret)) + { + + $fields[] = array + ( + 'title' => 'twitter_settings_pin', + 'fields' => array( + 'request_token' => array( + 'type' => 'hidden', + 'value' => $request_token, + ), + 'request_token_secret' => array( + 'type' => 'hidden', + 'value' => $request_token_secret, + ), + 'pin' => array( + 'type' => 'text', + 'value' => $pin, + ), + ), + ); + } + + // add the button + if(isset($settings['consumer_key'], $settings['consumer_secret']) && !empty($settings['consumer_key']) && !empty($settings['consumer_key']) && ! isset($settings['pin'])) + { + $fields[] = array + ( + 'title' => 'twitter_settings_generate', + 'fields' => array( + 'generate_settings' => array( + 'type' => 'html', + 'content' => ''.lang('twitter_settings_generate').'', + ) + ) + ); + } + + // add the access token fields + if($access_token != FALSE && $access_token_secret != FALSE) + { + $fields[] = array + ( + 'fields' => array( + 'access_token' => array( + 'type' => 'hidden', + 'value' => $access_token, + ), + 'access_token_secret' => array( + 'type' => 'hidden', + 'value' => $access_token_secret, + ), + ), + ); + } + + $form = array($fields); + + // final view variables we need to render the form + $vars = array('sections' => $form); + $vars += array + ( + 'base_url' => ee('CP/URL', 'addons/settings/twitter'), + 'cp_page_title' => lang('twitter_module_name'), + 'save_btn_text' => 'btn_save_form', + 'save_btn_text_working' => 'btn_saving', + 'settings' => $settings, + ); + + // add the error to the form + if($_POST) + $vars['errors'] = $result; + + return array + ( + 'body' => ee('View')->make('twitter:settings')->render($vars), + 'breadcrumb' => array(ee('CP/URL', 'addons/settings/twitter/')->compile() => lang('twitter_module_name')), + 'heading' => lang('settings') + ); + } } /** @@ -48,47 +185,36 @@ public function index() * @return void * @author Bryant Hughes */ - public function submit_settings() + private function submit_settings() { - - $this->EE->load->model('twitter_model'); - //loops through the post and adds all settings (deletes old settings first) - $success = $this->EE->twitter_model->insert_new_settings(); - - $settings = $this->EE->twitter_model->get_settings(); + $success = ee()->twitter_model->insert_new_settings(); + $settings = ee()->twitter_model->get_settings(); if($success && isset($settings['pin']) && ! isset($settings['access_token'], $settings['access_token_secret'])){ //if a pin has been submitted, we want to generate the access tokens for the app - if($this->generate_access_tokens($settings)){ - $this->EE->session->set_flashdata('message_success', $this->EE->lang->line('Success! You are now Authenticated.')); - }else{ - - //if the pin was not able to be created, delete the submitted pin and send the user back to the authenticate page. - /* - TODO : we could use some better UX here. Ideally sending the user back to this page happens after they create a request token, - and sending them back because of an invaid acess token authentication is somewhat confusing - */ - $this->EE->twitter_model->delete_setting('pin'); - $this->EE->session->set_flashdata('message_failure', $this->EE->lang->line('Error authenticating with Twitter. Please verify Pin and re-submit')); - $this->EE->functions->redirect(BASE.AMP.'C=addons_modules'.AMP.'M=show_module_cp'.AMP.'module=twitter'.AMP.'method=register_with_twitter'); + if($this->generate_access_tokens($settings)) + { + return 'pin_success'; } + else + { + //if the pin was not able to be created, delete the submitted pin and send the user back to the authenticate page. + ee()->twitter_model->delete_setting('pin'); - }else{ - - //else : sumission before pin as been submitted, or after all settings have been submitted - - if(! $success){ - $this->EE->session->set_flashdata('message_failure', $this->EE->lang->line('Error saving settings.')); - }else{ - $this->EE->session->set_flashdata('message_success', $this->EE->lang->line('Success!')); + return 'pin_error'; } } + else + { + //else : sumission before pin as been submitted, or after all settings have been submitted + if(!$success) + return FALSE; - $this->EE->functions->redirect(BASE.AMP.'C=addons_modules'.AMP.'M=show_module_cp'.AMP.'module=twitter'); - + return TRUE; + } } /** @@ -99,43 +225,55 @@ public function submit_settings() */ public function register_with_twitter() { - - $this->EE->load->model('twitter_model'); - $settings = $this->EE->twitter_model->get_settings(); + $settings = ee()->twitter_model->get_settings(); $oauth = new TwitterEETwitter_OAuth($settings['consumer_key'], $settings['consumer_secret']); $request = $oauth->getRequestToken(); - if($request != FALSE){ - + if($request != FALSE) + { $requestToken = $request['oauth_token']; $requestTokenSecret = $request['oauth_token_secret']; //save auth tokens into the db - $success = $this->EE->twitter_model->insert_secret_token($requestToken,$requestTokenSecret); + $success = ee()->twitter_model->insert_secret_token($requestToken, $requestTokenSecret); - if($success){ - - // get Twitter generated registration URL and load the authenticate view - $this->data['register_url'] = $oauth->getAuthorizeURL($request); - $this->EE->session->set_flashdata('message_success', $this->EE->lang->line('Success!')); - return $this->EE->load->view('authenticate', $this->data, TRUE); + if($success) + { + $message = lang('Success! You are now Authenticated.'); + ee('CP/Alert')->makeBanner('success-message')->asSuccess()->withTitle(lang('Succesfully authenticated'))->addToBody($message)->now(); + + // final view variables we need to render the form + $vars = array + ( + 'base_url' => ee('CP/URL', 'addons/settings/twitter'), + 'cp_page_title' => lang('twitter_module_name'), + 'register_url' => $oauth->getAuthorizeURL($request) + ); + return array + ( + 'body' => ee('View')->make('twitter:authenticate')->render($vars), + 'breadcrumb' => array(ee('CP/URL', 'addons/settings/twitter/')->compile() => lang('twitter_module_name')), + 'heading' => lang('settings') + ); } else { - $this->EE->session->set_flashdata('message_failure', $this->EE->lang->line('There was an error saving request tokens.')); - $this->EE->functions->redirect(BASE.AMP.'C=addons_modules'.AMP.'M=show_module_cp'.AMP.'module=twitter'); - } + $message = lang('There was an error saving request tokens.'); + ee('CP/Alert')->makeBanner('error-message')->asError()->withTitle(lang('Error'))->addToBody($message)->defer(); - }else{ - - //else : we were not able to create request tokens, probably becase the consumer key/secret were correct. lets erase those keys - // from the settings and send the user back to square one of the process. + ee()->functions->redirect(ee('CP/URL', 'addons/settings/twitter/')->compile()); + exit; + } - $this->EE->twitter_model->delete_all_settings(); - $this->EE->session->set_flashdata('message_failure', $this->EE->lang->line('There was an error generating request tokens. Please verify and re-submit your Consumer Key and Secret.')); - $this->EE->functions->redirect(BASE.AMP.'C=addons_modules'.AMP.'M=show_module_cp'.AMP.'module=twitter'); + } + else + { + $message = lang('There was an error generating request tokens. Please verify and re-submit your Consumer Key and Secret.'); + ee('CP/Alert')->makeBanner('error-message')->asError()->withTitle(lang('Error'))->addToBody($message)->defer(); + ee()->functions->redirect(ee('CP/URL', 'addons/settings/twitter/')->compile()); + exit; } } @@ -149,7 +287,7 @@ public function register_with_twitter() */ private function generate_access_tokens($settings) { - $this->EE->load->model('twitter_model'); + ee()->load->model('twitter_model'); //Retrieve our previously generated request token & secret $requestToken = $settings['request_token']; @@ -166,7 +304,7 @@ private function generate_access_tokens($settings) $access_token_secret = $request['oauth_token_secret']; // Save our access token/secret - return $this->EE->twitter_model->insert_access_token($access_token, $access_token_secret); + return ee()->twitter_model->insert_access_token($access_token, $access_token_secret); } else { @@ -183,10 +321,13 @@ private function generate_access_tokens($settings) */ public function erase_settings() { - $this->EE->load->model('twitter_model'); - $this->EE->twitter_model->delete_all_settings(); - $this->EE->session->set_flashdata('message_success', $this->EE->lang->line('Authentication Settings Erased.')); - $this->EE->functions->redirect(BASE.AMP.'C=addons_modules'.AMP.'M=show_module_cp'.AMP.'module=twitter'); + ee()->twitter_model->delete_all_settings(); + + $message = lang('Authentication Settings Erased.'); + ee('CP/Alert')->makeBanner('success-message')->asSuccess()->withTitle(lang('Succesfully authenticated'))->addToBody($message)->defer(); + + ee()->functions->redirect(ee('CP/URL', 'addons/settings/twitter/')->compile()); + exit; } } diff --git a/system/expressionengine/third_party/twitter/mod.twitter.php b/system/expressionengine/third_party/twitter/mod.twitter.php index 61fb68b..b31ae77 100755 --- a/system/expressionengine/third_party/twitter/mod.twitter.php +++ b/system/expressionengine/third_party/twitter/mod.twitter.php @@ -46,10 +46,8 @@ function Twitter() { */ function __construct() { - $this->EE =& get_instance(); - - if ($this->EE->config->item('twitter_cache_path')) { - $this->cache_path = $this->EE->config->item('twitter_cache_path'); + if (ee()->config->item('twitter_cache_path')) { + $this->cache_path = ee()->config->item('twitter_cache_path'); if (substr_compare($this->cache_path, '/', -1, 1) !== 0) { $this->cache_path = $this->cache_path . '/'; } @@ -62,22 +60,22 @@ function __construct() public function user() { // Fetch parameters - $this->refresh = $this->EE->TMPL->fetch_param('twitter_refresh', $this->refresh); - $this->limit = $this->EE->TMPL->fetch_param('limit', $this->limit); - $count = $this->EE->TMPL->fetch_param('count'); - $this->use_stale = $this->EE->TMPL->fetch_param('use_stale_cache', 'yes'); - $this->target = $this->EE->TMPL->fetch_param('target', ''); - $screen_name = $this->EE->TMPL->fetch_param('screen_name'); - $prefix = $this->EE->TMPL->fetch_param('prefix', ''); - $userprefix = $this->EE->TMPL->fetch_param('userprefix', NULL); - $include_rts = ($this->EE->TMPL->fetch_param('retweets', 'yes') == 'yes') ? TRUE : FALSE; - $exclude_replies = ($this->EE->TMPL->fetch_param('replies', 'yes') == 'yes') ? FALSE : TRUE; - $images_only = ($this->EE->TMPL->fetch_param('images_only', "no") == 'yes') ? TRUE : FALSE; - $links_only = ($this->EE->TMPL->fetch_param('links_only', "no") == 'yes') ? TRUE : FALSE; + $this->refresh = ee()->TMPL->fetch_param('twitter_refresh', $this->refresh); + $this->limit = ee()->TMPL->fetch_param('limit', $this->limit); + $count = ee()->TMPL->fetch_param('count'); + $this->use_stale = ee()->TMPL->fetch_param('use_stale_cache', 'yes'); + $this->target = ee()->TMPL->fetch_param('target', ''); + $screen_name = ee()->TMPL->fetch_param('screen_name'); + $prefix = ee()->TMPL->fetch_param('prefix', ''); + $userprefix = ee()->TMPL->fetch_param('userprefix', NULL); + $include_rts = (ee()->TMPL->fetch_param('retweets', 'yes') == 'yes') ? TRUE : FALSE; + $exclude_replies = (ee()->TMPL->fetch_param('replies', 'yes') == 'yes') ? FALSE : TRUE; + $images_only = (ee()->TMPL->fetch_param('images_only', "no") == 'yes') ? TRUE : FALSE; + $links_only = (ee()->TMPL->fetch_param('links_only', "no") == 'yes') ? TRUE : FALSE; if (!$screen_name) { - $this->EE->TMPL->log_item("Parameter screen_name was not provided"); + ee()->TMPL->log_item("Parameter screen_name was not provided"); return; } @@ -87,7 +85,7 @@ public function user() $timeline = 'user'; $log_extra = "For User {$screen_name}"; - $this->EE->TMPL->log_item("Using '{$timeline}' Twitter Timeline {$log_extra}"); + ee()->TMPL->log_item("Using '{$timeline}' Twitter Timeline {$log_extra}"); $statuses = array(); @@ -109,17 +107,17 @@ public function user() public function search() { // Fetch parameters - $this->refresh = $this->EE->TMPL->fetch_param('twitter_refresh', $this->refresh); - $this->limit = $this->EE->TMPL->fetch_param('limit', $this->limit); - $this->use_stale = $this->EE->TMPL->fetch_param('use_stale_cache', 'yes'); - $this->target = $this->EE->TMPL->fetch_param('target', ''); - $query = $this->EE->TMPL->fetch_param('query'); - $prefix = $this->EE->TMPL->fetch_param('prefix', ''); - $userprefix = $this->EE->TMPL->fetch_param('userprefix', NULL); + $this->refresh = ee()->TMPL->fetch_param('twitter_refresh', $this->refresh); + $this->limit = ee()->TMPL->fetch_param('limit', $this->limit); + $this->use_stale = ee()->TMPL->fetch_param('use_stale_cache', 'yes'); + $this->target = ee()->TMPL->fetch_param('target', ''); + $query = ee()->TMPL->fetch_param('query'); + $prefix = ee()->TMPL->fetch_param('prefix', ''); + $userprefix = ee()->TMPL->fetch_param('userprefix', NULL); if (!$query) { - $this->EE->TMPL->log_item("Parameter query was not provided"); + ee()->TMPL->log_item("Parameter query was not provided"); return; } @@ -127,7 +125,7 @@ public function search() $timeline = 'search'; $log_extra = "For search {$query}"; - $this->EE->TMPL->log_item("Using '{$timeline}' Twitter Timeline {$log_extra}"); + ee()->TMPL->log_item("Using '{$timeline}' Twitter Timeline {$log_extra}"); $url = "search/tweets"; $params = array('q' => $query, 'include_rts' =>'true'); @@ -142,25 +140,25 @@ public function search() public function get_list() { // Fetch parameters - $this->refresh = $this->EE->TMPL->fetch_param('twitter_refresh', $this->refresh); - $this->limit = $this->EE->TMPL->fetch_param('limit', $this->limit); - $count = $this->EE->TMPL->fetch_param('count'); - $this->use_stale = $this->EE->TMPL->fetch_param('use_stale_cache', 'yes'); - $this->target = $this->EE->TMPL->fetch_param('target', ''); - $screen_name = $this->EE->TMPL->fetch_param('screen_name', ''); - $list = $this->EE->TMPL->fetch_param('list', ''); - $prefix = $this->EE->TMPL->fetch_param('prefix', ''); - $userprefix = $this->EE->TMPL->fetch_param('userprefix', NULL); - $include_rts = ($this->EE->TMPL->fetch_param('retweets', 'yes') == 'yes') ? TRUE : FALSE; + $this->refresh = ee()->TMPL->fetch_param('twitter_refresh', $this->refresh); + $this->limit = ee()->TMPL->fetch_param('limit', $this->limit); + $count = ee()->TMPL->fetch_param('count'); + $this->use_stale = ee()->TMPL->fetch_param('use_stale_cache', 'yes'); + $this->target = ee()->TMPL->fetch_param('target', ''); + $screen_name = ee()->TMPL->fetch_param('screen_name', ''); + $list = ee()->TMPL->fetch_param('list', ''); + $prefix = ee()->TMPL->fetch_param('prefix', ''); + $userprefix = ee()->TMPL->fetch_param('userprefix', NULL); + $include_rts = (ee()->TMPL->fetch_param('retweets', 'yes') == 'yes') ? TRUE : FALSE; if (!$screen_name) { - $this->EE->TMPL->log_item("Parameter screen_name was not provided"); + ee()->TMPL->log_item("Parameter screen_name was not provided"); return; } if (!$list) { - $this->EE->TMPL->log_item("Parameter list was not provided"); + ee()->TMPL->log_item("Parameter list was not provided"); return; } @@ -168,7 +166,7 @@ public function get_list() $timeline = 'list'; $log_extra = "For User {$screen_name}, list {$list}"; - $this->EE->TMPL->log_item("Using '{$timeline}' Twitter Timeline {$log_extra}"); + ee()->TMPL->log_item("Using '{$timeline}' Twitter Timeline {$log_extra}"); $url = "lists/statuses"; $params = array('owner_screen_name' => $screen_name, 'slug' => $list, 'include_rts' => $include_rts); @@ -233,7 +231,7 @@ private function render_tweets($statuses, $prefix, $userprefix, $images_only = F $val['retweeter'] = $retweeter; } - $tagdata = $this->EE->TMPL->tagdata; + $tagdata = ee()->TMPL->tagdata; $images = array(); @@ -326,17 +324,17 @@ private function render_tweets($statuses, $prefix, $userprefix, $images_only = F // Clean the tweet - $val['text'] = $this->EE->security->xss_clean($val['text']); - $val['text'] = $this->EE->functions->encode_ee_tags($val['text'], TRUE); + $val['text'] = ee('Security/XSS')->clean($val['text']); + $val['text'] = ee()->functions->encode_ee_tags($val['text'], TRUE); // Prep conditionals $cond = $val; - $tagdata = $this->EE->functions->prep_conditionals($tagdata, $cond['user']); + $tagdata = ee()->functions->prep_conditionals($tagdata, $cond['user']); unset($cond['user']); $cond['retweeted'] = $retweeted; - $tagdata = $this->EE->functions->prep_conditionals($tagdata, $cond); + $tagdata = ee()->functions->prep_conditionals($tagdata, $cond); $variables[$prefix . 'permalink'] = $this->_build_permalink($val); @@ -379,10 +377,10 @@ private function render_tweets($statuses, $prefix, $userprefix, $images_only = F } if (empty($loopvars)) { - return $this->EE->TMPL->no_results(); + return ee()->TMPL->no_results(); } - return $this->EE->TMPL->parse_variables($this->EE->TMPL->tagdata, $loopvars); + return ee()->TMPL->parse_variables(ee()->TMPL->tagdata, $loopvars); } /** @@ -418,7 +416,7 @@ function _fetch_data($url, $params) if ($this->cache_expired OR ! $cached_json) { - $this->EE->TMPL->log_item("Fetching Twitter timeline remotely"); + ee()->TMPL->log_item("Fetching Twitter timeline remotely"); if ( function_exists('curl_init')) { @@ -438,7 +436,7 @@ function _fetch_data($url, $params) // Did we try to grab new data? Tell them that it failed. if ( ! $cached_json OR $this->cache_expired) { - $this->EE->TMPL->log_item("Twitter Timeline Error: Unable to retrieve statuses from Twitter.com"); + ee()->TMPL->log_item("Twitter Timeline Error: Unable to retrieve statuses from Twitter.com"); // Rate limit hit and no cached data? // We definitely need to write a cache file so we don't continue @@ -455,11 +453,11 @@ function _fetch_data($url, $params) return FALSE; } - $this->EE->TMPL->log_item("Twitter Timeline Using Stale Cache: ".$uniqueid); + ee()->TMPL->log_item("Twitter Timeline Using Stale Cache: ".$uniqueid); } else { - $this->EE->TMPL->log_item("Twitter Timeline Retrieved From Cache."); + ee()->TMPL->log_item("Twitter Timeline Retrieved From Cache."); } @@ -478,7 +476,7 @@ function _fetch_data($url, $params) if ( ! $json_obj) { - $this->EE->TMPL->log_item("Twitter Timeline Error: Invalid Cache File"); + ee()->TMPL->log_item("Twitter Timeline Error: Invalid Cache File"); return FALSE; } } @@ -532,7 +530,7 @@ function _check_json($rawjson) if ($error['code'] === 88) { $this->rate_limit_hit = TRUE; } - $this->EE->TMPL->log_item("Twitter Timeline error: " . $error['message']); + ee()->TMPL->log_item("Twitter Timeline error: " . $error['message']); return FALSE; } @@ -554,13 +552,13 @@ function _check_json($rawjson) function _check_cache($hash) { if (version_compare(APP_VER, '2.8', '>=')) { - $cache = $this->EE->cache->get("/twitter/{$hash}/content"); + $cache = ee()->cache->get("/twitter/{$hash}/content"); if (!$cache) { return FALSE; } - $timestamp = $this->EE->cache->get("/twitter/{$hash}/timestamp"); + $timestamp = ee()->cache->get("/twitter/{$hash}/timestamp"); if (time() > ($timestamp + ($this->refresh * 60))) { $this->cache_expired = TRUE; @@ -621,8 +619,8 @@ function _check_cache($hash) function _write_cache($data, $hash) { if (version_compare(APP_VER, '2.8', '>=')) { - $this->EE->cache->save("/twitter/{$hash}/content", $data); - $this->EE->cache->save("/twitter/{$hash}/timestamp", time()); + ee()->cache->save("/twitter/{$hash}/content", $data); + ee()->cache->save("/twitter/{$hash}/timestamp", time()); } else { // Check for cache directory @@ -673,8 +671,8 @@ function _curl_fetch($url, $params) //this is where we have modified the plugin to fetch our data via oauth - $this->EE->load->model('twitter_model'); - $settings = $this->EE->twitter_model->get_settings(); + ee()->load->model('twitter_model'); + $settings = ee()->twitter_model->get_settings(); // Read in our saved access token/secret $access_token = isset($settings['access_token']) ? $settings['access_token'] : FALSE; diff --git a/system/expressionengine/third_party/twitter/models/twitter_model.php b/system/expressionengine/third_party/twitter/models/twitter_model.php index 7d5d54b..d701590 100644 --- a/system/expressionengine/third_party/twitter/models/twitter_model.php +++ b/system/expressionengine/third_party/twitter/models/twitter_model.php @@ -20,15 +20,14 @@ function __construct() { parent::__construct(); - $this->_ee =& get_instance(); - $this->site_id = $this->_ee->config->item('site_id'); + $this->site_id = ee()->config->item('site_id'); //prep-cache - if (! isset($this->_ee->session->cache['twitter'])) + if (! isset(ee()->session->cache['twitter'])) { - $this->_ee->session->cache['twitter'] = array(); + ee()->session->cache['twitter'] = array(); } - $this->cache =& $this->_ee->session->cache['twitter']; + $this->cache =& ee()->session->cache['twitter']; } diff --git a/system/expressionengine/third_party/twitter/upd.twitter.php b/system/expressionengine/third_party/twitter/upd.twitter.php index dbeb6c5..b47ce3a 100755 --- a/system/expressionengine/third_party/twitter/upd.twitter.php +++ b/system/expressionengine/third_party/twitter/upd.twitter.php @@ -1,26 +1,25 @@ EE =& get_instance(); - $this->site_id = $this->EE->config->item('site_id'); + ee()->load->dbforge(); + $this->site_id = ee()->config->item('site_id'); } public function install() { - $this->EE->db->insert('modules', array( + ee()->db->insert('modules', array( 'module_name' => 'Twitter', 'module_version' => $this->version, 'has_cp_backend' => 'y', 'has_publish_fields' => 'n' )); - $this->EE->load->dbforge(); + ee()->load->dbforge(); //create twitter module settings table $fields = array( @@ -30,12 +29,12 @@ public function install() 'var_value' => array('type' => 'varchar', 'constraint' => '100', 'null' => FALSE) ); - $this->EE->dbforge->add_field($fields); - $this->EE->dbforge->add_key('id', TRUE); - $this->EE->dbforge->create_table($this->db_settings_table); + ee()->dbforge->add_field($fields); + ee()->dbforge->add_key('id', TRUE); + ee()->dbforge->create_table($this->db_settings_table); // get the module id - $results = $this->EE->db->query("SELECT * FROM exp_modules WHERE module_name = 'Twitter'"); + $results = ee()->db->query("SELECT * FROM exp_modules WHERE module_name = 'Twitter'"); $module_id = $results->row('module_id'); $sql = array(); @@ -51,18 +50,18 @@ public function update( $current = '' ) { if($current == $this->version) { return FALSE; } if($current != $this->version && $this->version == '1.4.2') { - $this->EE->db->query("RENAME TABLE exp_twitter_settings TO exp_cr_twitter_settings"); + ee()->db->query("RENAME TABLE exp_twitter_settings TO exp_cr_twitter_settings"); } return TRUE; } public function uninstall() { - $this->EE->load->dbforge(); + ee()->load->dbforge(); - $this->EE->db->query("DELETE FROM exp_modules WHERE module_name = 'Twitter'"); + ee()->db->query("DELETE FROM exp_modules WHERE module_name = 'Twitter'"); - $this->EE->dbforge->drop_table($this->db_settings_table); + ee()->dbforge->drop_table($this->db_settings_table); return TRUE; } diff --git a/system/expressionengine/third_party/twitter/views/authenticate.php b/system/expressionengine/third_party/twitter/views/authenticate.php index 14c7c93..51fd463 100644 --- a/system/expressionengine/third_party/twitter/views/authenticate.php +++ b/system/expressionengine/third_party/twitter/views/authenticate.php @@ -1,20 +1,28 @@ +
- + + - if(isset($register_url)){ +

+ Your request token has been saved. +

+

+ Please read the entire directions before proceeding +

+

+ First, click here to be taken to Twitter, where you can authenticate this site. Copy the Pin number Twitter provides. + Then, come back to this page and click here to be taken back to the settings form, where you will submit your Pin. +

+ - echo "
-

Your request token has been saved.

-

Please read the entire directions before proceeding

"; +

+ There was an error generating your request tokens +

- echo "

First, click here to be taken to Twitter, where you can authenticate this site. Copy the Pin number Twitter provides. Then, come back to this page and click here to be taken back to the settings form, where you will submit your Pin.

"; + - }else{ - - echo "
-

There was an error generating your request tokens

"; - } - -?> +
+
diff --git a/system/expressionengine/third_party/twitter/views/index.php b/system/expressionengine/third_party/twitter/views/index.php deleted file mode 100755 index fd90319..0000000 --- a/system/expressionengine/third_party/twitter/views/index.php +++ /dev/null @@ -1,72 +0,0 @@ -table->set_template($cp_table_template); - $this->table->set_heading('Twitter Settings', ''); - - //consumer keys - $consumer_key = isset($settings['consumer_key']) ? $settings['consumer_key'] : ''; - $consumer_secret = isset($settings['consumer_secret']) ? $settings['consumer_secret'] : ''; - - $consumer_key_input_data = array('name' => 'consumer_key','value' => $consumer_key ,'maxlength' => '100' ,'style' => 'width:50%'); - $consumer_secret_input_data = array('name' => 'consumer_secret','value' => $consumer_secret ,'maxlength' => '100' ,'style' => 'width:50%'); - - $this->table->add_row('' . lang('twitter_settings_consumer_key') . '', form_input($consumer_key_input_data)); - $this->table->add_row('' . lang('twitter_settings_consumer_secret') . '', form_input($consumer_secret_input_data)); - - - //request tokens - $request_token = isset($settings['request_token']) ? $settings['request_token'] : FALSE; - $request_token_secret = isset($settings['request_token_secret']) ? $settings['request_token_secret'] : FALSE; - - if($request_token != FALSE && $request_token_secret != FALSE && ! empty($consumer_key) && ! empty($consumer_secret)){ - echo form_hidden('request_token', $request_token); - echo form_hidden('request_token_secret', $request_token_secret); - - //pin - $pin = isset($settings['pin']) ? $settings['pin'] : ''; - - $pin_input_data = array('name' => 'pin','value' => $pin ,'maxlength' => '10' ,'style' => 'width:50%'); - $this->table->add_row('' . lang('twitter_settings_pin') . '', form_input($pin_input_data)); - } - - if(isset($settings['consumer_key'], $settings['consumer_secret']) && !empty($settings['consumer_key']) && !empty($settings['consumer_key']) && ! isset($settings['pin'])){ - $this->table->add_row(lang('twitter_settings_generate_warning'),"

" . lang('twitter_settings_generate') . "

"); - } - - //access tokens - $access_token = isset($settings['access_token']) ? $settings['access_token'] : FALSE; - $access_token_secret = isset($settings['access_token_secret']) ? $settings['access_token_secret'] : FALSE; - - if($access_token != FALSE && $access_token_secret != FALSE){ - echo form_hidden('access_token', $access_token); - echo form_hidden('access_token_secret', $access_token_secret); - } - - if(isset($settings['consumer_key'], $settings['consumer_secret'], $settings['request_token'], $settings['request_token_secret'], $settings['pin'], $settings['access_token'], $settings['access_token_secret'])) - { - echo '

' . lang('twitter_settings_success') .'

'; - $this->table->add_row("","

" . lang('twitter_settings_erase') . "

"); - echo $this->table->generate(); - - }else{ - - echo $this->table->generate(); - echo form_submit(array('name' => 'Submit', 'id' => 'submit', 'value' => 'Update', 'class' => 'submit')); - - } - - - - - - - - - diff --git a/system/expressionengine/third_party/twitter/views/settings.php b/system/expressionengine/third_party/twitter/views/settings.php new file mode 100644 index 0000000..0294a0d --- /dev/null +++ b/system/expressionengine/third_party/twitter/views/settings.php @@ -0,0 +1,17 @@ +
+ +
+ + + +
+ + embed('ee:_shared/form')?> + +
\ No newline at end of file