You are here

function template_preprocess_contactinfo in Contact Info 7

Theme preprocess function for the contact information block.

Parameters

array $variables: Template variables as defined by contactinfo_theme(). $variable['contactinfo'] is equivalent to contactinfo_get_contactinfo().

See also

contactinfo_theme()

contactinfo_get_contactinfo()

File

./contactinfo.module, line 93
Collects contact information and displays it in an hCard block.

Code

function template_preprocess_contactinfo(array &$variables) {
  drupal_add_css(drupal_get_path('module', 'contactinfo') . '/css/contactinfo.css');

  // Build $variables from scratch.
  $contactinfo = $variables['contactinfo'];
  $variables['type'] = $contactinfo['type'];
  $variables['given_name'] = check_plain($contactinfo['fn_n']['given-name']);
  $variables['family_name'] = check_plain($contactinfo['fn_n']['family-name']);
  $variables['org'] = $contactinfo['use_site_name'] ? check_plain(variable_get('site_name', '')) : check_plain($contactinfo['org']);
  $variables['street_address'] = check_plain($contactinfo['adr']['street-address']);
  $variables['extended_address'] = check_plain($contactinfo['adr']['extended-address']);
  $variables['locality'] = check_plain($contactinfo['adr']['locality']);
  $variables['region'] = check_plain($contactinfo['adr']['region']);
  $variables['postal_code'] = check_plain($contactinfo['adr']['postal-code']);
  $variables['country'] = check_plain($contactinfo['adr']['country-name']);
  $variables['longitude'] = check_plain($contactinfo['location']['longitude']);
  $variables['latitude'] = check_plain($contactinfo['location']['latitude']);
  $variables['tagline'] = $contactinfo['use_site_slogan'] ? check_plain(variable_get('site_slogan', '')) : check_plain($contactinfo['tagline']);

  // Generate formatted longitude and latitude.
  $variables['longitude_formatted'] = contactinfo_coord_convert($variables['longitude'], 'longitude');
  $variables['latitude_formatted'] = contactinfo_coord_convert($variables['latitude'], 'latitude');

  // Generates the output for the 'phones' variable.
  if ($contactinfo['phone']['voice']) {
    $phone_text = check_plain($contactinfo['phone']['voice']);
    $phones = explode(',', $phone_text);
    $variables['phones'] = array_map('trim', $phones);
  }

  // Generates the output for the 'faxes' variable.
  if ($contactinfo['phone']['fax']) {
    $fax_text = check_plain($contactinfo['phone']['fax']);
    $faxes = explode(',', $fax_text);
    $variables['faxes'] = array_map('trim', $faxes);
  }

  // Generate the output for the 'email' variable.
  if ($contactinfo['email']) {
    $email = check_plain($contactinfo['email']);

    // Use obfuscation provided by invisimail module.
    if (function_exists('invisimail_encode_html')) {
      $variables['email'] = invisimail_encode_html($email);
      $variables['email_url'] = INVISIMAIL_MAILTO_ASCII . $variables['email'];
    }
    else {
      $variables['email'] = $email;
      $variables['email_url'] = 'mailto:' . $email;
    }
  }

  // Generate ID.
  $id = 'contactinfo';
  if ($contactinfo['type'] == 'personal') {
    $id .= !empty($contactinfo['fn_n']['given-name']) ? '-' . check_plain($contactinfo['fn_n']['given-name']) : '';
    $id .= !empty($contactinfo['fn_n']['family-name']) ? '-' . check_plain($contactinfo['fn_n']['family-name']) : '';
  }
  else {
    $id .= !empty($contactinfo['org']) ? '-' . check_plain($contactinfo['org']) : '';
  }
  $variables['id'] = drupal_html_id($id);
}