? facebook-platform
Index: README.txt
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/fb/README.txt,v
retrieving revision 1.15
diff -u -p -r1.15 README.txt
--- README.txt 14 Jan 2009 22:56:33 -0000 1.15
+++ README.txt 16 Jan 2009 23:30:35 -0000
@@ -5,7 +5,7 @@ More information: http://www.drupalforfa
Primary author and maintainer: Dave Cohen (http://www.dave-cohen.com/contact)
-Version: HEAD (version 2.x for Drupal 5.x)
+Version: N/A (version 2.x for Drupal 6.x)
Please read http://drupal.org/node/288721#version and confirm that
you are using the correct version.
Index: fb.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/fb/fb.info,v
retrieving revision 1.1
diff -u -p -r1.1 fb.info
--- fb.info 26 Sep 2007 17:08:21 -0000 1.1
+++ fb.info 16 Jan 2009 23:30:35 -0000
@@ -1,3 +1,5 @@
name = Facebook API
description = Imports and uses the Facebook API.
package = Facebook
+core = 6.x
+php = 5
Index: fb.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/fb/fb.install,v
retrieving revision 1.2
diff -u -p -r1.2 fb.install
--- fb.install 7 Apr 2008 20:56:49 -0000 1.2
+++ fb.install 16 Jan 2009 23:30:35 -0000
@@ -7,18 +7,8 @@ function _fb_install_set_weight() {
function fb_install() {
_fb_install_set_weight();
}
-function fb_update_1() {
- _fb_install_set_weight();
-}
-/**
- * The callback URL has changed and this requires manual updates to App settings.
- */
-function fb_update_2() {
- $message = t('Warning! The Drupal for Facebook modules have changed. Manual intervention is required! See !url1 or !url2.',
- array('!url1' => l('http://apps.facebook.com/drupalforfacebook/node/1055', 'http://apps.facebook.com/drupalforfacebook/node/1055'),
- '!url2' => l('http://drupalforfacebook.org/node/1055','http://drupalforfacebook.org/node/1055')));
- drupal_set_message($message);
- watchdog('fb', $message);
+function fb_uninstall() {
+ _fb_install_set_weight();
}
-?>
\ No newline at end of file
+
Index: fb.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/fb/fb.module,v
retrieving revision 1.37
diff -u -p -r1.37 fb.module
--- fb.module 14 Jan 2009 22:56:33 -0000 1.37
+++ fb.module 16 Jan 2009 23:30:35 -0000
@@ -88,7 +88,7 @@ function fb_init() {
array('!drupal_for_facebook' => l(t('Drupal for Facebook'), 'http://drupal.org/project/fb'),
// This link should work with clean URLs
// disabled.
- '!readme' => 'README.txt')), 'error');
+ '!readme' => 'README.txt')), 'error');
}
// Ask other modules for app detail
@@ -178,18 +178,21 @@ function fb_api_init($fb_app, $fbu) {
$fbu_orig = $fbu;
// Determine the actual facebook user id to use.
- if ($GLOBALS['fb'] && $GLOBALS['fb']->validate_fb_params() &&
+ if ($GLOBALS['fb'] && $GLOBALS['fb']->api_key == $fb_app->apikey &&
+ $GLOBALS['fb']->validate_fb_params() &&
($fbu == FB_FBU_CURRENT || $fbu == FB_FBU_ANY ||
$fbu == $GLOBALS['fb']->get_loggedin_user())) {
return $GLOBALS['fb'];
}
- else if (($fbu == FB_FBU_CURRENT || $fbu == FB_FBU_ANY)
+ else if ($GLOBALS['fb']->api_key == $fb_app->apikey &&
+ ($fbu == FB_FBU_CURRENT || $fbu == FB_FBU_ANY)
&& isset($_SESSION['fb_frame_params']) && !$_REQUEST['fb_sig']) {
$params = $_SESSION['fb_frame_params'];
$fbu = $params['user'];
$session = $params['session_key'];
}
- else if ($fbu == FB_FBU_CURRENT && $GLOBALS['fb']) {
+ else if ($GLOBALS['fb'] && $GLOBALS['fb']->api_key == $fb_app->apikey &&
+ $fbu == FB_FBU_CURRENT) {
// No current user to use, probably anonymous canvas page.
return $GLOBALS['fb'];
}
@@ -250,9 +253,9 @@ function fb_api_init($fb_app, $fbu) {
if ($fbu_orig != FB_FBU_NO_SESSION &&
$fbu_orig != FB_FBU_CURRENT && !$fb->get_loggedin_user()) {
// An FBU other than CURRENT was specified, but we failed to log in.
- watchdog('fb', t('Failed to log into facebook app %app as user %user',
- array('%app' => $fb_app->title,
- '%user' => $fbu_orig)), WATCHDOG_ERROR);
+ watchdog('fb', 'Failed to log into facebook app %app as user %user',
+ array('%app' => $fb_app->title,
+ '%user' => $fbu_orig), WATCHDOG_ERROR);
}
}
@@ -354,7 +357,7 @@ function fb_get_app($search_data) {
* Convenience method to return a list of all known apps, suitable for form
* elements.
*/
-function fb_get_app_options($include_current) {
+function fb_get_app_options($include_current = FALSE) {
$apps = fb_get_all_apps();
$options = array();
if ($include_current)
@@ -463,15 +466,15 @@ function fb_user_load($fbu = NULL) {
if (!$account)
$account = user_load(array('uid' => variable_get('fb_facebook_user', 2)));
if (!$account)
- watchdog('fb', t('Failed to load user from facebook fbu=%fbu',
- array('%fbu' => $fbu)), 'error');
+ watchdog('fb', 'Failed to load user from facebook fbu=%fbu',
+ array('%fbu' => $fbu), 'error');
$account->fbu = $fbu;
return $account;
}
}
-function fb_form_alter($form_id, &$form) {
+function fb_form_alter(&$form, &$form_state, $form_id) {
// Because facebook users don't have email, it can't be required on user form
if ($form_id == 'user_register') {
if (user_access('administer users')) {
@@ -486,26 +489,21 @@ function fb_form_alter($form_id, &$form)
}
-function fb_menu($may_cache) {
+function fb_menu() {
$items = array();
- if (!$may_cache) {
- // Initialization moved to fb_init(), nothing to do here.
- }
- else {
// When forms are submitted directly to us, we cache the results,
// and show them later via this callback
- $items[] = array('path' => 'fb/form_cache',
- 'callback' => '_fb_form_cache_cb',
+ $items['fb/form_cache'] = array(
+ 'page callback' => '_fb_form_cache_cb',
'type' => MENU_CALLBACK,
- 'access' => TRUE);
+ 'access callback' => TRUE);
// A page to help determine infinite session keys
- $items[] = array('path' => 'fb/session',
- 'callback' => '_fb_session_cb',
+ $items['fb/session'] = array(
+ 'page callback' => '_fb_session_cb',
'type' => MENU_CALLBACK,
- 'access' => TRUE); // TODO: restrict access?
- }
+ 'access callback' => TRUE); // TODO: restrict access?
return $items;
}
@@ -745,14 +743,14 @@ function fb_add_js($filename, $type) {
static $cache;
if (!$cache) {
$cache = array();
-
+
// Add the most basic file we need.
$base_file = drupal_get_path('module', 'fb') . '/fb_fbml.js';
$base_file .= "?v=".filemtime($base_file);
drupal_add_js($base_file, 'module', 'fbml');
// Add some settings that FBJS code will often need.
- $baseUrl = url('', NULL, NULL, TRUE);
+ $baseUrl = url('', array('absolute' => TRUE));
drupal_add_js(array('fbjs' => array('baseUrlFb' => $baseUrl,
'baseUrl' => fb_scrub_urls($baseUrl),
),
@@ -780,4 +778,4 @@ function fb_verbose() {
return variable_get('fb_verbose', NULL);
}
-?>
\ No newline at end of file
+?>
Index: fb_app.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/fb/fb_app.info,v
retrieving revision 1.1
diff -u -p -r1.1 fb_app.info
--- fb_app.info 26 Sep 2007 17:08:21 -0000 1.1
+++ fb_app.info 16 Jan 2009 23:30:35 -0000
@@ -1,5 +1,6 @@
name = Facebook Application
description = Create one or more facebook applications.
package = Facebook
-dependencies = fb
+dependencies[] = fb
+core = 6.x
Index: fb_app.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/fb/fb_app.install,v
retrieving revision 1.6
diff -u -p -r1.6 fb_app.install
--- fb_app.install 5 Aug 2008 20:27:30 -0000 1.6
+++ fb_app.install 16 Jan 2009 23:30:35 -0000
@@ -6,36 +6,62 @@
*/
// TODO: some of these tables should be created by othe module install files.
+/**
+ * hook_install()
+ */
function fb_app_install() {
- switch ($GLOBALS['db_type']) {
- case 'mysql':
- case 'mysqli':
- db_query("
-CREATE TABLE IF NOT EXISTS {fb_app} (
-nid int(11) unsigned NOT NULL,
-label varchar(128) NOT NULL,
-apikey varchar(128) NOT NULL,
-id varchar(128) NOT NULL,
-secret varchar(128) NOT NULL,
-canvas varchar(128) NOT NULL,
-require_login int(4) NOT NULL,
-create_account int(4) NOT NULL,
-unique_account int(4) NOT NULL,
-data longtext,
-PRIMARY KEY (nid),
-UNIQUE KEY (apikey)
-) /*!40100 DEFAULT CHARACTER SET UTF8 */;
-");
-
- }
-
- drupal_set_message(t('Facebook Application module installed. Please grant yourself permissions and then browse to Create Content => Facebook Application to get started.', array('!perm' => url('admin/user/access'), '!create' => url('node/add/fb-app'))));
+ // Create tables.
+ drupal_install_schema('fb_app');
+ drupal_set_message(t('Facebook Application module installed. Please grant yourself permissions and then browse to Create Content => Facebook Application to get started.', array('!perm' => url('admin/user/permissions'), '!create' => url('node/add/fb-app'))));
}
-function fb_app_update_1() {
- // Add id field
- $ret[] = update_sql('ALTER TABLE {fb_app} ADD id varchar(128) NOT NULL');
- return $ret;
+/**
+ * hook_uninstall()
+ */
+function fb_app_uninstall() {
+ // Remove tables.
+ drupal_uninstall_schema('fb_app');
+}
+
+function fb_app_schema() {
+ $schema['fb_app'] = array(
+ 'description' => 'Main FB_APP table',
+ 'fields' => array(
+ 'nid' => array('type' => 'int', 'length' => 11, 'unsigned' => TRUE, 'not null' => TRUE, ),
+ 'label' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, ),
+ 'apikey' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, ),
+ 'id' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, ),
+ 'secret' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, ),
+ 'canvas' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, ),
+ 'require_login' => array('type' => 'int', 'length' => 4, 'not null' => TRUE, ),
+ 'create_account' => array('type' => 'int', 'length' => 4, 'not null' => TRUE, ),
+ 'unique_account' => array('type' => 'int', 'length' => 4, 'not null' => TRUE, ),
+ 'rid' => array('type' => 'int', 'length' => 10, 'unsigned' => TRUE, 'not null' => TRUE, ),
+ 'data' => array('type' => 'text', 'size' => 'big', ),
+ ),
+ 'unique keys' => array(
+ 'apikey' => array('apikey'),
+ ),
+ 'primary key' => array('nid'),
+ );
+ $schema['fb_app_block'] = array(
+ 'fields' => array(
+ 'nid' => array('type' => 'int', 'length' => 11, 'unsigned' => TRUE, 'not null' => TRUE, ),
+ 'delta' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, ),
+ 'format' => array('type' => 'int', 'length' => 11, 'default' => 0, ),
+ 'body' => array('type' => 'text', 'size' => 'big', 'not null' => TRUE, ),
+ ),
+ 'primary key' => array('nid', 'delta'),
+ );
+ $schema['fb_cache_filter'] = drupal_get_schema_unprocessed('system', 'cache');
+
+ return $schema;
}
-?>
\ No newline at end of file
+
+function fb_app_update_6100() {
+ // Add id field
+ $ret = array();
+ db_add_field($ret, 'fb_app', 'id', array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, ));
+ return $ret;
+}
\ No newline at end of file
Index: fb_app.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/fb/fb_app.module,v
retrieving revision 1.17
diff -u -p -r1.17 fb_app.module
--- fb_app.module 30 Oct 2008 17:49:18 -0000 1.17
+++ fb_app.module 16 Jan 2009 23:30:35 -0000
@@ -68,18 +68,26 @@ function fb_app_fb($op, $data, &$return)
}
/**
- * hook_menu
+ * Loader callback for drupal menu api.
*/
-function fb_app_menu($may_cache) {
+function fb_app_nid_load($nid) {
+ $node = node_load($nid);
+ if ($node->type == 'fb_app') {
+ return $node;
+ }
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function fb_app_menu() {
$items = array();
- if ($may_cache) {
- // Allow facebook to notify on various events, like adding or removing an app.
- $items[] = array('path' => FB_APP_PATH_EVENT,
- 'access' => TRUE,
- 'callback' => 'fb_app_event_cb',
- 'type' => MENU_CALLBACK,
+ // Allow facebook to notify on various events, like adding or removing an app.
+ $items[FB_APP_PATH_EVENT] =
+ array('access callback' => TRUE,
+ 'page callback' => 'fb_app_event_cb',
+ 'type' => MENU_CALLBACK,
);
- }
return $items;
}
@@ -111,7 +119,7 @@ function fb_app_node_info() {
);
}
-function fb_app_access($op, $node) {
+function fb_app_access($op, $node, $account) {
if (user_access('administer fb apps'))
return TRUE;
if ($op == 'create' && user_access('create fb apps'))
@@ -229,9 +237,24 @@ function fb_app_view($node, $teaser=FALS
return $node;
}
+function fb_app_theme() {
+ return array(
+ 'fb_app' => array(
+ 'arguments' => array('data' => NULL),
+ ),
+ 'dl' => array(
+ 'arguments' => array('items' => NULL),
+ ),
+ 'fb_app_user_info' => array(
+ 'arguments' => array('fb_app' => NULL, 'info' => NULL),
+ ),
+ );
+}
+
function fb_app_get_about_url($fb_app) {
if ($fb_app->id)
- return url("http://www.facebook.com/apps/application.php", "id=$fb_app->id");
+ return url("http://www.facebook.com/apps/application.php",
+ array('query' => array('id' => $fb_app->id)));
}
function theme_fb_app($data) {
@@ -243,7 +266,8 @@ function theme_fb_app($data) {
// TODO: edit and logout URLs
));
- $url = url(FB_SETTINGS_APP_NID . '/' . $data->nid . '/' . FB_APP_PATH_EVENT, NULL, NULL, TRUE) . '/';
+ $url = url(FB_SETTINGS_APP_NID . '/' . $data->nid . '/' . FB_APP_PATH_EVENT,
+ array('absolute' => TRUE)) . '/';
$output .= theme('dl', array(t('Post-Remove URL') => $url . FB_APP_EVENT_POST_REMOVE,
t('Post-Authorize URL') => $url . FB_APP_EVENT_POST_AUTHORIZE,
));
@@ -371,7 +395,7 @@ function fb_app_user($op, &$edit, &$acco
function theme_fb_app_user_info($fb_app, $info) {
if ($info['pic_big'])
$output .= '

';
- $fb_link = l($info['name'], 'http://www.facebook.com/profile.php', NULL, 'id='.$info['uid']);
+ $fb_link = l($info['name'], 'http://www.facebook.com/profile.php', array('query' => 'id=' . $info['uid']));
if ($info['is_app_user'])
$output .= '' . t('!fb_link uses %title',
array('!fb_link' => $fb_link,
@@ -402,5 +426,4 @@ function fb_app_token_values($type = 'al
}
return $values;
}
-
?>
\ No newline at end of file
Index: fb_canvas.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/fb/fb_canvas.info,v
retrieving revision 1.1
diff -u -p -r1.1 fb_canvas.info
--- fb_canvas.info 7 Apr 2008 20:56:49 -0000 1.1
+++ fb_canvas.info 16 Jan 2009 23:30:35 -0000
@@ -1,5 +1,8 @@
name=Facebook Application Canvas Pages
description=Support for Facebook Canvas Pages
package = Facebook
-dependencies = fb fb_app
+dependencies[] = fb
+dependencies[] = fb_app
+core = 6.x
+version = "6.x-1.x-dev"
Index: fb_canvas.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/fb/fb_canvas.module,v
retrieving revision 1.19
diff -u -p -r1.19 fb_canvas.module
--- fb_canvas.module 14 Jan 2009 22:56:33 -0000 1.19
+++ fb_canvas.module 16 Jan 2009 23:30:35 -0000
@@ -7,13 +7,14 @@
*
*/
-function fb_canvas_menu($may_cache) {
+function fb_canvas_menu() {
$items = array();
if ($may_cache) {
- $items[] = array('path' => 'fb/canvas/session',
- 'callback' => 'fb_canvas_session_cb',
- 'type' => MENU_CALLBACK,
- 'access' => TRUE);
+ $items['fb/canvas/session'] = array(
+ 'page callback' => 'fb_canvas_session_cb',
+ 'type' => MENU_CALLBACK,
+ 'access callback' => TRUE,
+ );
}
return $items;
}
@@ -75,11 +76,8 @@ function fb_canvas_fb($op, $data, &$retu
$custom_theme = $fb_canvas_data['theme_fbml'];
else if (fb_canvas_is_iframe())
$custom_theme = $fb_canvas_data['theme_iframe'];
-
- // This is for backward compatability (delete eventually)
- if (!$custom_theme)
- $custom_theme = variable_get('fb_theme', 'fb_fbml');
-
+
+ watchdog('fb_debug', "setting custom_theme to $custom_theme in fb_canvas_fb");
// Special handling for forms, as they are submitted directly to us, not
// to apps.facebook.com/canvas
@@ -107,6 +105,7 @@ function fb_canvas_fb($op, $data, &$retu
ob_end_clean();
if ($destination) {
+ watchdog('fb_debug', "FB_OP_EXIT, handling form, original destination: $destination");
// Fully qualified URLs need to be modified to point to facebook app.
// URLs are fully qualified when a form submit handler returns a path,
// or any call to drupal_goto.
@@ -116,6 +115,7 @@ function fb_canvas_fb($op, $data, &$retu
// canvas page, so we'll use Facebook's method.
// Will this preempt other hook_exits?
if ($fb) {
+ watchdog('fb_debug', "FB_OP_EXIT, handling form, redirecting to $destination");
$fb->redirect($destination);
}
}
@@ -124,7 +124,7 @@ function fb_canvas_fb($op, $data, &$retu
$token = uniqid('fb_');
$cid = session_id() . "_$token";
watchdog('fb', "Storing cached form page $cid, then redirecting");
- cache_set($cid, 'cache_page', $output, time() + (60 * 5), drupal_get_headers()); // (60 * 5) == 5 minutes
+ cache_set($cid, $output, 'cache_page', time() + (60 * 5), drupal_get_headers()); // (60 * 5) == 5 minutes
$dest = 'http://apps.facebook.com/' . $fb_app->canvas . "/fb/form_cache/$cid";
// $fb->redirect($url); // Does not work!
@@ -153,7 +153,7 @@ function fb_canvas_fb($op, $data, &$retu
/**
* Implementation of hook_form_alter.
*/
-function fb_canvas_form_alter($form_id, &$form) {
+function fb_canvas_form_alter(&$form, &$form_state, $form_id) {
// Add our settings to the fb_app edit form.
if (is_array($form['fb_app_data'])) {
$node = $form['#node'];
@@ -193,31 +193,34 @@ function fb_canvas_form_alter($form_id,
'#default_value' => $fb_canvas_data['front_added'],
);
+ /* XXX menu code here needs updating to D6
// Allow primary links to be different on facebook versus the rest of the
// site. Code from menu_configure() in menu.module.
- $root_menus = menu_get_root_menus();
-
- $primary_options = $root_menus;
- $primary_options[0] = t('