Index: facebook_status.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/facebook_status/facebook_status.module,v
retrieving revision 1.5.6.94
diff -u -p -r1.5.6.94 facebook_status.module
--- facebook_status.module	24 Feb 2010 21:51:54 -0000	1.5.6.94
+++ facebook_status.module	25 Feb 2010 05:41:38 -0000
@@ -280,7 +280,7 @@ function facebook_status_user($op, &$edi
     //Remove abandoned statuses from the database on user account deletion.
     db_query('DELETE FROM {facebook_status} WHERE uid = %d OR pid = %d', $account->uid, $account->uid);
   }
-  if ($op == 'view' && !_facebook_status_exclude($account) && user_access('view all statuses') && (user_access('edit own status', $account) || user_access('edit all statuses', $account))) {
+  if ($op == 'view' && !_facebook_status_exclude($account) && user_access('view all statuses') && (user_access('edit own status', $account) || user_access('edit all statuses'))) {
     if (!isset($account->content['facebook_status'])) {
       $account->content['facebook_status'] = array();
     }
@@ -363,45 +363,6 @@ function facebook_status_twitter_submit(
 }
 
 /**
- * Implementation of hook_form_FORM_ID_alter().
- */
-function facebook_status_form_activity_form_alter(&$form, &$form_state) {
-  if ($form_state['storage']['values']['triggers']['module'] == 'facebook_status') {
-    $op = $form_state['storage']['values']['operations']['operation'];
-    if (!in_array($op, array('fbss_deleted', 'fbss_edited', 'fbss_submitted'))) {
-      return;
-    }
-    foreach (activity_enabled_languages() as $id => $language) {
-      $form["{$id}_fieldset"]['everyone-pattern-'. $id]['#title'] = t('Public message (one user to another)');
-      $form["{$id}_fieldset"]['everyone-pattern-'. $id]['#description'] = t('Using the available tokens, enter a message as how it should <strong>appear to anyone who is <em>not</em> the poster or owner</strong> of this particular status.');
-      $defaults = variable_get('facebook_status_activity_self_patterns', array());
-      $form["{$id}_fieldset"]['everyone-pattern-'. $id .'-self'] = array(
-        '#type' => 'textarea',
-        '#title' => t('Public message (self-update)'),
-        '#default_value' => isset($defaults[$op][$id]) ? $defaults[$op][$id] : '',
-        '#description' => t('Using the available tokens, enter a message as how it should <strong>appear to anyone who is <em>not</em> the author</strong> of this particular activity.'),
-      );
-    }
-    $form['facebook_status_extra'] = array('#type' => 'value', '#value' => TRUE);
-    $form['facebook_status_op'] = array('#type' => 'value', '#value' => $op);
-    $form['#submit'][] = 'facebook_status_activity_form_extra_submit';
-  }
-}
-
-/**
- * Submit function for the altered Activity publishing template.
- */
-function facebook_status_activity_form_extra_submit($form, &$form_state) {
-  if ($form_state['values']['facebook_status_extra']) {
-    $patterns = array();
-    foreach (activity_enabled_languages() as $id => $language) {
-      $patterns[$id] = $form_state['values']['everyone-pattern-'. $id .'-self'];
-    }
-    variable_set('facebook_status_activity_self_patterns', array($form_state['values']['facebook_status_op'] => $patterns));
-  }
-}
-
-/**
  * Implementation of hook_theme().
  */
 function facebook_status_theme($existing, $type, $theme, $path) {
@@ -907,7 +868,11 @@ function facebook_status_save_status($ac
   if ($save_alerts) {
     //Trigger integration. Don't call if the status is blank because that will save an undesirable Activity 2 record.
     if (module_exists('trigger') && $time) {
-      module_invoke_all('facebook_status', 'fbss_submitted', $account, $user, $object);
+      $op = 'fbss_submitted';
+      if ($account->uid != $user->uid) {
+        $op = 'fbss_wall_post';
+      }
+      module_invoke_all('facebook_status', $op, $account, $user, $object);
     }
     //Activity 1 integration.
     facebook_status_activity($account, $user, $object);
@@ -1422,7 +1387,7 @@ function facebook_status_hook_info() {
  * Implementation of hook_trigger_name().
  */
 function facebook_status_facebook_status($op, $a1, $poster = NULL, $status = NULL) {
-  if (!in_array($op, array('fbss_deleted', 'fbss_edited', 'fbss_submitted'))) {
+  if (!in_array($op, array('fbss_deleted', 'fbss_edited', 'fbss_submitted', 'fbss_wall_post'))) {
     return;
   }
   $aids = _trigger_get_hook_aids('facebook_status', $op);
@@ -1431,7 +1396,7 @@ function facebook_status_facebook_status
     $owner = user_load(array('uid' => $status->uid));
     $poster = user_load(array('uid' => $status->pid));
   }
-  elseif ($op == 'fbss_submitted') {
+  elseif ($op == 'fbss_submitted' || $op == 'fbss_wall_post') {
     $owner = $a1;
   }
   //Token (via Activity 2) won't know about the status when it sees the users unless we include it somewhere in the user objects.
@@ -1441,15 +1406,10 @@ function facebook_status_facebook_status
   $context = array(
     'hook' => 'facebook_status',
     'op' => $op,
-    'owner' => $owner,
+    'account' => $owner,
     'poster' => $poster,
+    'facebook_status' => $status,
   );
-  //In Activity 2, 'fbss-user' is for posting to one's own profile.
-  //Also check for self-posting or the poster will see the self message.
-  if (function_exists('activity_help') && $owner->uid == $poster->uid) {
-    $context['fbss-user'] = $poster;
-  }
-  $context['facebook_status'] = $status;
   actions_do(array_keys($aids), $poster, $context);
 }
 
@@ -1473,11 +1433,11 @@ function facebook_status_activity_info()
     $info = new stdClass();
     $info->api = 2;
     $info->name = 'facebook_status';
-    $info->object_type = 'facebook_status';
+    $info->object_type = 'poster';
     $info->eid_field = 'sid';
-    $info->objects = array('Owner' => 'owner', 'Poster' => 'poster', 'Self' => 'fbss-user');
-    $info->hooks = array('facebook_status' => array('fbss_deleted', 'fbss_edited', 'fbss_submitted'));
-    $info->realms = array('facebook_status_poster', 'facebook_status_owner');
+    $info->objects = array('Owner' => 'account', 'Poster' => 'poster');
+    $info->hooks = array('facebook_status' => array('fbss_deleted', 'fbss_edited', 'fbss_submitted', 'fbss_wall_post'));
+    $info->realms = array('facebook_status_poster' => 'Facebook Style Status Poster', 'facebook_status_owner' => 'Facebook Style Status Owner');
     return $info;
   }
   //We're using Activity 1.x.
@@ -1522,7 +1482,7 @@ function facebook_status_activity_grants
     //No need to save both if they are equal.
     $poster = db_fetch_array(db_query("SELECT pid FROM {facebook_status} WHERE sid = %d AND pid <> %d", $activity->eid, $activity->uid));
     if ($poster['pid']) {
-      $realms['facebook_status_poster'] = $poster;
+      $realms['facebook_status_poster'] = array($poster);
     }
   }
   return $realms;
@@ -1538,31 +1498,6 @@ function facebook_status_activity_access
   );
 }
 
-/**
- * Implementation of hook_activity_message_recorded().
- *
- * Activity 2.
- * Note that this approach is bad, but there didn't seem to be a better way of
- * doing it that is still intuitive to the end-user. It may be better to try to
- * use Activity types.
- * Code that makes this work is in facebook_status_form_activity_form_alter().
- */
-function facebook_status_activity_message_recorded($record, $context) {
-  if ($context['hook'] == 'facebook_status' && $context['owner']->uid == $context['poster']->uid) {
-    $patterns = variable_get('facebook_status_activity_self_patterns', array());
-    $types = array(
-      'owner' => $context['owner'],
-      'poster' => $context['poster'],
-      'fbss-user' => $context['fbss-user'],
-    );
-    $rows = db_query("SELECT language, amid FROM {activity_targets} WHERE uid = 0 AND aid = %d", $record->aid);
-    while ($row = db_fetch_object($rows)) {
-      $message = token_replace_multiple($patterns[$context['op']][$row->language], $types, '[', ']', array(), TRUE);
-      db_query("UPDATE {activity_messages} SET message = '%s' WHERE amid = %d", $message, $row->amid);
-    }
-  }
-}
-
 /** 
  * Implementation of hook_activityapi().
  * Activity 1.
