You are here

function theme_salesforce_api_object_options in Salesforce Suite 7

Same name and namespace in other branches
  1. 6.2 salesforce_api/salesforce_api.admin.inc \theme_salesforce_api_object_options()
  2. 7.2 salesforce_api/salesforce_api.admin.inc \theme_salesforce_api_object_options()

Theming function for salesforce_api_admin_setup For locally-cached SF Objects, add a "configure" or "re-map" link next to the checkbox

1 theme call to theme_salesforce_api_object_options()
salesforce_api_admin_object in salesforce_api/salesforce_api.admin.inc
Ask salesforce for a list of objects and display a checklist for the user. Based on user selection, set up or tear down cached/synched Salesforce data. @TODO make this more user friendly. At the moment it's possible for an admin user to blow…

File

salesforce_api/salesforce_api.admin.inc, line 609
Contains the admin page callbacks for the Salesforce module, including forms for general settings and fieldmap administration.

Code

function theme_salesforce_api_object_options($element = NULL) {

  // Thank you, Drupal FAPI, for unnecessary indirection.
  $el = $element['element'];
  if (empty($el['objects']['#options'])) {
    return drupal_render($element['element']);
  }
  $objects = $el['objects'];
  $options = $objects['#options'];

  // Disable checkboxes for SF Types which are currently in use.
  foreach ($options as $key => $value) {
    if (empty($objects[$key]['#value'])) {
      $el['objects'][$key] = array(
        '#markup' => drupal_render($el['objects'][$key]),
      );
      continue;
    }
    if (!empty($el['disabled_types']['#value'][$key])) {
      $el['objects'][$key]['#attributes']['disabled'] = 'disabled';
      $el['objects'][$key]['#description'] = t('This object is in use by one or more fieldmaps and cannot be disabled.');
    }
    $link = l(t('configure'), SALESFORCE_PATH_OBJECT . '/' . $key);
    if (!empty($_SESSION['objects_error'][$key])) {
      $el['objects'][$key]['#prefix'] = '<div class="error">';
      $el['objects'][$key]['#suffix'] = '</div>';
      $link = l(t('re-map fields'), SALESFORCE_PATH_OBJECT . '/' . $key);
    }
    $el['objects'][$key]['#title'] .= ' | ' . $link;
    $el['objects'][$key] = array(
      '#markup' => drupal_render($el['objects'][$key]),
    );
  }
  $element['element'] = $el;
  unset($_SESSION['objects_error'], $element['element']['#theme'], $element['element']['disabled_types']);
  return drupal_render($element['element']);
}