? salesforce_api/toolkit
Index: salesforce_api/salesforce_api.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/salesforce/salesforce_api/salesforce_api.admin.inc,v
retrieving revision 1.2.2.8
diff -u -p -r1.2.2.8 salesforce_api.admin.inc
--- salesforce_api/salesforce_api.admin.inc	31 Jul 2009 07:30:46 -0000	1.2.2.8
+++ salesforce_api/salesforce_api.admin.inc	31 Jul 2009 07:50:09 -0000
@@ -90,7 +90,7 @@ function salesforce_api_settings_form_va
 }
 
 // Settings form submit handler so that password doesn't get deleted.
-function salesforce_api_settings_form_submit($form, &$form_state) {
+function salesforce_api_settings_form_submit(&$form, &$form_state) {
   // If the user hit "Save Configuration" and the required field
   // salesforce_api_password is blank, try to get it from variables
   if ($form_state['values']['submit'] == $form_state['values']['op'] and empty($form_state['values']['salesforce_api_password'])) {
Index: sf_node/sf_node.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/salesforce/sf_node/sf_node.module,v
retrieving revision 1.2.2.10
diff -u -p -r1.2.2.10 sf_node.module
--- sf_node/sf_node.module	31 Jul 2009 04:25:00 -0000	1.2.2.10
+++ sf_node/sf_node.module	31 Jul 2009 07:50:09 -0000
@@ -12,11 +12,12 @@
  * Implementation of hook_menu().
  */
 function sf_node_menu() {
-  $items['node/%/salesforce'] = array(
+  $items['node/%node/salesforce'] = array(
     'title' => 'Salesforce',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('sf_node_salesforce_form', 1),
-    'access arguments' => array('sync nodes with salesforce'),
+    'access callback' => 'sf_node_salesforce_form_access',
+    'access arguments' => array(1),
     'type' => MENU_LOCAL_TASK,
   );
 
@@ -210,10 +211,13 @@ function _sf_node_import_cck_todate(&$no
   $node->$key = $data;
 }
 
-// Displays the Salesforce synchronization form.
-function sf_node_salesforce_form(&$form_state, $nid) {
-  $node = node_load($nid);
+// Access callback for the node/%node/salesforce menu item.
+function sf_node_salesforce_form_access($node) {
+  return user_access('sync nodes with salesforce') and salesforce_api_fieldmap_options('node_'. $node->type);
+}
 
+// Displays the Salesforce synchronization form.
+function sf_node_salesforce_form(&$form_state, $node) {
   // Fail out if the node didn't exist!
   if (!$node->nid) {
     drupal_not_found();
@@ -237,32 +241,17 @@ function sf_node_salesforce_form(&$form_
       '#description' => t('This node may be exported to Salesforce using any fieldmap listed below.'),
     );
 
-    // Get an array of fieldmaps that export nodes of this type to Salesforce.
-    $options = salesforce_api_fieldmap_options('node_'. $node->type);
-
-    // If no corresponding fieldmaps were found...
-    if (count($options) == 0) {
-      // Display a message appropriate to the user's permissions.
-      if (user_access('administer salesforce')) {
-        $form['export']['#description'] = t('To export this node you must first <a href="!url">add a fieldmap</a> that exports @type nodes.', array('!url' => url(SALESFORCE_PATH_FIELDMAPS .'/add'), '@type' => $node->type));
-      }
-      else {
-        $form['export']['#description'] = t('Please contact a site administrator to add a fieldmap that exports @type nodes.', array('@type' => $node->type));
-      }
-    }
-    else {
-      // Otherwise add the export form!
-      $form['export']['fieldmap'] = array(
-        '#type' => 'select',
-        '#title' => t('Export fieldmap'),
-        '#options' => $options,
-      );
+    // Add the export form.
+    $form['export']['fieldmap'] = array(
+      '#type' => 'select',
+      '#title' => t('Export fieldmap'),
+      '#options' => salesforce_api_fieldmap_options('node_'. $node->type),
+    );
 
-      $form['export']['export_node'] = array(
-        '#type' => 'submit',
-        '#value' => t('Export node'),
-      );
-    }
+    $form['export']['export_node'] = array(
+      '#type' => 'submit',
+      '#value' => t('Export node'),
+    );
   }
   else {
     // Otherwise add synchronization information.
