? 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 add a fieldmap 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.