diff -ur salesforce_api/salesforce_api.admin.inc salesforce_api/salesforce_api.admin.inc --- salesforce_api/salesforce_api.admin.inc 2009-09-21 10:16:25.000000000 -0500 +++ salesforce_api/salesforce_api.admin.inc 2009-09-21 16:44:06.000000000 -0500 @@ -390,7 +390,20 @@ // Loop through all the fields on the object. foreach (array_keys($object['fields']) as $field) { if ($form_state['values'][$field] == 'fixed') { - if(!empty($form_state['values'][$field .'_fixed'])) $map['fields'][$field] = array("type" => 'fixed', "value" => $form_state['values'][$field .'_fixed']); + if(!empty($form_state['values'][$field .'_fixed'])) { + if(substr($form_state['values'][$field .'_fixed'], 0, SALESFORCE_FIXED_VALUE_PHP_PREFIXLEN) == SALESFORCE_FIXED_VALUE_PHP_PREFIX) { + if( user_access('use php for salesforce fixed values') ) { + $map['fields'][$field] = array("type" => 'fixed', "value" => $form_state['values'][$field .'_fixed']); + } else { + // don't keep the field if php not allowed + + // print a warning message + drupal_set_message(t('field @field ignored: permission denied ("use php for salesforce fixed values")', array('@field' => $field)), 'error'); + } + } else { + $map['fields'][$field] = array("type" => 'fixed', "value" => $form_state['values'][$field .'_fixed']); + } + } } // If a field has been mapped to this field on the form... elseif (!empty($form_state['values'][$field])) { diff -ur salesforce_api/salesforce_api.module salesforce_api/salesforce_api.module --- salesforce_api/salesforce_api.module 2009-09-21 10:16:26.000000000 -0500 +++ salesforce_api/salesforce_api.module 2009-09-21 16:44:20.000000000 -0500 @@ -34,6 +34,10 @@ define('SALESFORCE_LOG_SOME', 5); define('SALESFORCE_LOG_ALL', 10); +// Define PHP prefix for fixed-value fields +define('SALESFORCE_FIXED_VALUE_PHP_PREFIX', ' $value) { // allow fixed values if (is_array($map['fields'][$key]) && $map['fields'][$key]['type'] == 'fixed' && !empty($map['fields'][$key]['value'])) { - $object->$key = $map['fields'][$key]['value']; + if(substr($map['fields'][$key]['value'], 0, SALESFORCE_FIXED_VALUE_PHP_PREFIXLEN) == SALESFORCE_FIXED_VALUE_PHP_PREFIX) { + $code = substr($map['fields'][$key]['value'], SALESFORCE_FIXED_VALUE_PHP_PREFIXLEN); + $object->$key = eval($code); + } else { + $object->$key = $map['fields'][$key]['value']; + } } // If a handler is specified for retrieving a value for the source field... elseif (isset($source_object['fields'][$value]['export'])) {