aboutsummaryrefslogtreecommitdiff
path: root/mod/twitterservice/start.php
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-02-12 02:37:06 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-02-12 02:37:06 +0000
commit3e7adbf8198d1bd5e0ad4e97ae5643d7dc8c61ab (patch)
tree979e67f756975a68679231c990bc68832bb43dd8 /mod/twitterservice/start.php
parent48b2e618f7c5729a3aab85a600c3e133f8a62faa (diff)
downloadelgg-3e7adbf8198d1bd5e0ad4e97ae5643d7dc8c61ab.tar.gz
elgg-3e7adbf8198d1bd5e0ad4e97ae5643d7dc8c61ab.tar.bz2
Twitter services now allows login with twitter properly for a single user.
git-svn-id: http://code.elgg.org/elgg/trunk@8137 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/twitterservice/start.php')
-rw-r--r--mod/twitterservice/start.php82
1 files changed, 55 insertions, 27 deletions
diff --git a/mod/twitterservice/start.php b/mod/twitterservice/start.php
index b5f4c2d21..ed5022359 100644
--- a/mod/twitterservice/start.php
+++ b/mod/twitterservice/start.php
@@ -2,22 +2,23 @@
/**
* Elgg Twitter Service
* This service plugin allows users to authenticate their Elgg account with Twitter.
- *
+ *
* @package TwitterService
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
* @copyright Curverider Ltd 2008-2010
*/
-register_elgg_event_handler('init', 'system', 'twitterservice_init');
+elgg_register_event_handler('init', 'system', 'twitterservice_init');
function twitterservice_init() {
$notice_id = 'twitter_services_disable';
-
+
+ // @todo there's a better way to do this with requires.
if (!elgg_is_active_plugin('oauth_lib')) {
// disable the plugin
disable_plugin('twitterservice');
-
+
// alert the admin
if (!elgg_admin_notice_exists($notice_id)) {
elgg_add_admin_notice($notice_id, elgg_echo('twitterservice:requires_oauth'));
@@ -25,37 +26,42 @@ function twitterservice_init() {
} else {
// cleanup notices
elgg_delete_admin_notice($notice_id);
-
+
// require libraries
$base = elgg_get_plugins_path() . 'twitterservice';
require_once "$base/vendors/twitteroauth/twitterOAuth.php";
require_once "$base/twitterservice_lib.php";
-
+
// extend site views
elgg_extend_view('metatags', 'twitterservice/metatags');
elgg_extend_view('css', 'twitterservice/css');
-
+
// sign on with twitter
if (twitterservice_allow_sign_on_with_twitter()) {
elgg_extend_view('login/extend', 'twitterservice/login');
}
-
+
// register page handler
register_page_handler('twitterservice', 'twitterservice_pagehandler');
-
+
// register Walled Garden public pages
- register_plugin_hook('public_pages', 'walled_garden', 'twitterservice_public_pages');
-
+ elgg_register_plugin_hook_handler('public_pages', 'walled_garden', 'twitterservice_public_pages');
+
// allow plugin authors to hook into this service
- register_plugin_hook('tweet', 'twitter_service', 'twitterservice_tweet');
+ elgg_register_plugin_hook_handler('tweet', 'twitter_service', 'twitterservice_tweet');
}
}
+/**
+ * Serves pages for twitter.
+ *
+ * @param array$page
+ */
function twitterservice_pagehandler($page) {
if (!isset($page[0])) {
forward();
}
-
+
switch ($page[0]) {
case 'authorize':
twitterservice_authorize();
@@ -75,62 +81,84 @@ function twitterservice_pagehandler($page) {
}
}
+/**
+ * Push a tweet to twitter.
+ *
+ * @param unknown_type $hook
+ * @param unknown_type $entity_type
+ * @param unknown_type $returnvalue
+ * @param unknown_type $params
+ */
function twitterservice_tweet($hook, $entity_type, $returnvalue, $params) {
static $plugins;
if (!$plugins) {
- $plugins = trigger_plugin_hook('plugin_list', 'twitter_service', NULL, array());
+ $plugins = elgg_trigger_plugin_hook('plugin_list', 'twitter_service', NULL, array());
}
-
+
// ensure valid plugin
if (!in_array($params['plugin'], $plugins)) {
return NULL;
}
-
+
// check admin settings
$consumer_key = elgg_get_plugin_setting('consumer_key', 'twitterservice');
$consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitterservice');
if (!($consumer_key && $consumer_secret)) {
return NULL;
}
-
+
// check user settings
$user_id = elgg_get_logged_in_user_guid();
- $access_key = get_plugin_usersetting('access_key', $user_id, 'twitterservice');
- $access_secret = get_plugin_usersetting('access_secret', $user_id, 'twitterservice');
+ $access_key = elgg_get_plugin_user_setting('access_key', $user_id, 'twitterservice');
+ $access_secret = elgg_get_plugin_user_setting('access_secret', $user_id, 'twitterservice');
if (!($access_key && $access_secret)) {
return NULL;
}
-
+
// send tweet
$api = new TwitterOAuth($consumer_key, $consumer_secret, $access_key, $access_secret);
$response = $api->post('statuses/update', array('status' => $params['message']));
-
+
return TRUE;
}
-function twitterservice_fetch_tweets($user_id, $options=array()) {
+/**
+ * Return tweets for a user.
+ *
+ * @param int $user_id The Elgg user GUID
+ * @param array $options
+ */
+function twitterservice_fetch_tweets($user_guid, $options=array()) {
// check admin settings
$consumer_key = elgg_get_plugin_setting('consumer_key', 'twitterservice');
$consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitterservice');
if (!($consumer_key && $consumer_secret)) {
return FALSE;
}
-
+
// check user settings
- $access_key = get_plugin_usersetting('access_key', $user_id, 'twitterservice');
- $access_secret = get_plugin_usersetting('access_secret', $user_id, 'twitterservice');
+ $access_key = elgg_get_plugin_user_setting('access_key', $user_guid, 'twitterservice');
+ $access_secret = elgg_get_plugin_user_setting('access_secret', $user_guid, 'twitterservice');
if (!($access_key && $access_secret)) {
return FALSE;
}
-
+
// fetch tweets
$api = new TwitterOAuth($consumer_key, $consumer_secret, $access_key, $access_secret);
return $api->get('statuses/user_timeline', $options);
}
+/**
+ * Register as public pages for walled garden.
+ *
+ * @param unknown_type $hook
+ * @param unknown_type $type
+ * @param unknown_type $return_value
+ * @param unknown_type $params
+ */
function twitterservice_public_pages($hook, $type, $return_value, $params) {
$return_value[] = 'pg/twitterservice/forward';
$return_value[] = 'pg/twitterservice/login';
-
+
return $return_value;
}