You are here

function _webform_render_mailchimp in Webform Mailchimp 6

Same name and namespace in other branches
  1. 7.4 webform_mailchimp.inc \_webform_render_mailchimp()
  2. 7 webform_mailchimp.inc \_webform_render_mailchimp()
  3. 7.2 webform_mailchimp.inc \_webform_render_mailchimp()

Implementation of _webform_render_component().

File

./webform_mailchimp.inc, line 179
Webform module Mailchimp component.

Code

function _webform_render_mailchimp($component, $value = NULL, $filter = TRUE) {
  if ($value[0]) {
    $default_value = $value[0];
  }
  else {
    $default_value = _webform_filter_values($component['value']);
  }
  $element = array(
    '#title' => htmlspecialchars($component['name'], ENT_QUOTES),
    '#title_display' => $component['extra']['title_display'] ? $component['extra']['title_display'] : 'before',
    '#required' => $component['mandatory'],
    '#weight' => $component['weight'],
    '#prefix' => '<div class="webform-component-' . $component['type'] . '" id="webform-component-' . $component['form_key'] . '">',
    '#suffix' => '</div>',
    '#webform_component' => $component,
    '#theme' => 'webform_mailchimp_email',
    '#pre_render' => array(
      'webform_element_title_display',
    ),
    '#element_validate' => array(
      '_webform_validate_mailchimp_email',
    ),
  );

  // Creates a field if the user hasn't chosen another email field.
  if ($component['extra']['use_existing_email_field'] == 'mailchimp_field') {
    $element['mailchimp_email_address'] = array(
      '#type' => 'textfield',
      '#description' => $component['extra']['description'],
      '#default_value' => _webform_filter_values($component['value']),
      '#attributes' => $component['extra']['attributes'],
      '#size' => $size,
    );
  }
  else {

    // Creates a checkbox to subscribe, or a hidden form element if configured
    if ($component['extra']['checkbox_hidden'] == 1) {
      $element['mailchimp_signup'] = array(
        '#type' => 'hidden',
        '#default_value' => !empty($component['extra']['checkbox_checked_by_default']) ? $component['extra']['checkbox_checked_by_default'] : 0,
      );
    }
    else {
      $element['mailchimp_signup'] = array(
        '#type' => 'checkbox',
        '#title' => !empty($component['extra']['checkbox_label']) ? htmlspecialchars($component['extra']['checkbox_label'], ENT_QUOTES) : t('Subscribe to newsletter'),
        '#default_value' => !empty($component['extra']['checkbox_checked_by_default']) ? $component['extra']['checkbox_checked_by_default'] : 0,
        '#attributes' => $component['extra']['attributes'],
      );
    }
  }
  $mailchimp_list = $component['extra']['mailchimp_list'];
  $element['mailchimp_list'] = array(
    '#prefix' => '',
    '#type' => 'value',
    '#value' => $mailchimp_list,
  );
  return $element;
}