diff options
Diffstat (limited to 'mod/twitter_api/start.php')
| -rw-r--r-- | mod/twitter_api/start.php | 76 | 
1 files changed, 43 insertions, 33 deletions
| diff --git a/mod/twitter_api/start.php b/mod/twitter_api/start.php index 8a49db719..b17643c8c 100644 --- a/mod/twitter_api/start.php +++ b/mod/twitter_api/start.php @@ -12,14 +12,14 @@ function twitter_api_init() {  	// require libraries  	$base = elgg_get_plugins_path() . 'twitter_api'; -	elgg_register_library('twitter_oauth', "$base/vendors/twitteroauth/twitterOAuth.php"); +	elgg_register_class('TwitterOAuth', "$base/vendors/twitteroauth/twitterOAuth.php");  	elgg_register_library('twitter_api', "$base/lib/twitter_api.php"); -  	elgg_load_library('twitter_api');  	// extend site views -	elgg_extend_view('metatags', 'twitter_api/metatags'); -	elgg_extend_view('css', 'twitter_api/css'); +	//elgg_extend_view('metatags', 'twitter_api/metatags'); +	elgg_extend_view('css/elgg', 'twitter_api/css'); +	elgg_extend_view('css/admin', 'twitter_api/css');  	// sign on with twitter  	if (twitter_api_allow_sign_on_with_twitter()) { @@ -34,14 +34,17 @@ function twitter_api_init() {  	// register Walled Garden public pages  	elgg_register_plugin_hook_handler('public_pages', 'walled_garden', 'twitter_api_public_pages'); -	// allow plugin authors to hook into this service -	elgg_register_plugin_hook_handler('tweet', 'twitter_service', 'twitter_api_tweet'); +	// push status messages to twitter +	elgg_register_plugin_hook_handler('status', 'user', 'twitter_api_tweet'); + +	$actions = dirname(__FILE__) . '/actions/twitter_api'; +	elgg_register_action('twitter_api/interstitial_settings', "$actions/interstitial_settings.php", 'logged_in');  }  /**   * Handles old pg/twitterservice/ handler   * - * @param array$page + * @param array $page   */  function twitter_api_pagehandler_deprecated($page) {  	$url = elgg_get_site_url() . 'pg/twitter_api/authorize'; @@ -55,7 +58,7 @@ function twitter_api_pagehandler_deprecated($page) {  /**   * Serves pages for twitter.   * - * @param array$page + * @param array $page   */  function twitter_api_pagehandler($page) {  	if (!isset($page[0])) { @@ -75,6 +78,18 @@ function twitter_api_pagehandler($page) {  		case 'login':  			twitter_api_login();  			break; +		case 'interstitial': +			gatekeeper(); +			// only let twitter users do this. +			$guid = elgg_get_logged_in_user_guid(); +			$twitter_name = elgg_get_plugin_user_setting('twitter_name', $guid, 'twitter_api'); +			if (!$twitter_name) { +				register_error(elgg_echo('twitter_api:invalid_page')); +				forward(); +			} +			$pages = dirname(__FILE__) . '/pages/twitter_api'; +			include "$pages/interstitial.php"; +			break;  		default:  			forward();  			break; @@ -82,53 +97,48 @@ function twitter_api_pagehandler($page) {  }  /** - * Push a tweet to twitter. + * Push a status update to twitter.   * - * @param unknown_type $hook - * @param unknown_type $entity_type - * @param unknown_type $returnvalue - * @param unknown_type $params + * @param string $hook + * @param string $type + * @param null   $returnvalue + * @param array  $params   */ -function twitter_api_tweet($hook, $entity_type, $returnvalue, $params) { -	static $plugins; -	if (!$plugins) { -		$plugins = elgg_trigger_plugin_hook('plugin_list', 'twitter_service', NULL, array()); -	} +function twitter_api_tweet($hook, $type, $returnvalue, $params) { -	// ensure valid plugin -	if (!in_array($params['plugin'], $plugins)) { -		return NULL; +	if (!elgg_instanceof($params['user'])) { +		return;  	} +	// @todo - allow admin to select origins? +  	// check admin settings  	$consumer_key = elgg_get_plugin_setting('consumer_key', 'twitter_api');  	$consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitter_api');  	if (!($consumer_key && $consumer_secret)) { -		return NULL; +		return;  	}  	// check user settings -	$user_id = elgg_get_logged_in_user_guid(); +	$user_id = $params['user']->getGUID();  	$access_key = elgg_get_plugin_user_setting('access_key', $user_id, 'twitter_api');  	$access_secret = elgg_get_plugin_user_setting('access_secret', $user_id, 'twitter_api');  	if (!($access_key && $access_secret)) { -		return NULL; +		return;  	}  	// send tweet  	$api = new TwitterOAuth($consumer_key, $consumer_secret, $access_key, $access_secret);  	$response = $api->post('statuses/update', array('status' => $params['message'])); - -	return TRUE;  }  /** - * Return tweets for a user. + * Get tweets for a user.   * - * @param int $user_id The Elgg user GUID + * @param int   $user_id The Elgg user GUID   * @param array $options   */ -function twitter_api_fetch_tweets($user_guid, $options=array()) { +function twitter_api_fetch_tweets($user_guid, $options = array()) {  	// check admin settings  	$consumer_key = elgg_get_plugin_setting('consumer_key', 'twitter_api');  	$consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitter_api'); @@ -151,10 +161,10 @@ function twitter_api_fetch_tweets($user_guid, $options=array()) {  /**   * Register as public pages for walled garden.   * - * @param unknown_type $hook - * @param unknown_type $type - * @param unknown_type $return_value - * @param unknown_type $params + * @param string $hook + * @param string $type + * @param array  $return_value + * @param array  $params   */  function twitter_api_public_pages($hook, $type, $return_value, $params) {  	$return_value[] = 'twitter_api/forward'; | 
