include_once $dir . '/extlib/base_facebook.php';
include_once $dir . '/extlib/facebook.php';
return false;
- case 'FacebookloginAction':
- case 'FacebookfinishloginAction':
- case 'FacebookadminpanelAction':
- case 'FacebooksettingsAction':
- case 'FacebookdeauthorizeAction':
- include_once $dir . '/actions/' . strtolower(mb_substr($cls, 0, -6)) . '.php';
- return false;
- case 'Facebookclient':
- case 'FacebookQueueHandler':
- include_once $dir . '/lib/' . strtolower($cls) . '.php';
- return false;
- case 'Notice_to_item':
- include_once $dir . '/classes/' . $cls . '.php';
- return false;
- default:
- return true;
}
+
+ return parent::onAutoload($cls);
}
/**
/**
* Map URLs to actions
*
- * @param Net_URL_Mapper $m path-to-action mapper
+ * @param URLMapper $m path-to-action mapper
*
* @return boolean hook value; true means continue processing, false means stop.
*/
- function onRouterInitialized($m)
+ public function onRouterInitialized(URLMapper $m)
{
// Always add the admin panel route
$m->connect('panel/facebook', array('action' => 'facebookadminpanel'));
$action->logout();
common_redirect($logoutUrl, 303);
- return false; // probably never get here, but hey
}
return true;
return true;
}
+ /**
+ * Add links in the user's profile block to their Facebook profile URL.
+ *
+ * @param Profile $profile The profile being shown
+ * @param Array &$links Writeable array of arrays (href, text, image).
+ *
+ * @return boolean hook value (true)
+ */
+
+ function onOtherAccountProfiles($profile, &$links)
+ {
+ $fuser = null;
+
+ $flink = Foreign_link::getByUserID($profile->id, FACEBOOK_SERVICE);
+
+ if (!empty($flink)) {
+
+ $fuser = $this->getFacebookUser($flink->foreign_id);
+
+ if (!empty($fuser)) {
+ $links[] = array("href" => $fuser->link,
+ "text" => sprintf(_("%s on Facebook"), $fuser->name),
+ "image" => $this->path("images/f_logo.png"));
+ }
+ }
+
+ return true;
+ }
+
+ function getFacebookUser($id) {
+
+ $key = Cache::key(sprintf("FacebookBridgePlugin:userdata:%s", $id));
+
+ $c = Cache::instance();
+
+ if ($c) {
+ $obj = $c->get($key);
+ if ($obj) {
+ return $obj;
+ }
+ }
+
+ $url = sprintf("https://graph.facebook.com/%s", $id);
+ $client = new HTTPClient();
+ $resp = $client->get($url);
+
+ if (!$resp->isOK()) {
+ return null;
+ }
+
+ $user = json_decode($resp->getBody());
+
+ if ($user->error) {
+ return null;
+ }
+
+ if ($c) {
+ $c->set($key, $user);
+ }
+
+ return $user;
+ }
+
/*
* Add version info for this plugin
*
* @param array &$versions plugin version descriptions
*/
- function onPluginVersion(&$versions)
+ function onPluginVersion(array &$versions)
{
$versions[] = array(
'name' => 'Facebook Bridge',
- 'version' => STATUSNET_VERSION,
+ 'version' => GNUSOCIAL_VERSION,
'author' => 'Craig Andrews, Zach Copley',
'homepage' => 'http://status.net/wiki/Plugin:FacebookBridge',
'rawdescription' =>