You are here

function _webform_render_mailchimp in Webform Mailchimp 7.2

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

Implements _webform_render_component().

File

./webform_mailchimp.inc, line 183
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();

  // 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',
      '#title' => $filter ? _webform_filter_xss($component['name']) : $component['name'],
      '#title_display' => $component['extra']['title_display'] ? $component['extra']['title_display'] : 'before',
      '#required' => $component['required'],
      '#description' => $filter ? _webform_filter_descriptions($component['extra']['description']) : $component['extra']['description'],
      '#default_value' => _webform_filter_values($component['value']),
      '#theme_wrappers' => array(
        'webform_element',
      ),
      '#webform_component' => $component,
      '#weight' => $component['weight'],
    );
  }
  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']) ? _webform_filter_xss($component['extra']['checkbox_label']) : t('Subscribe to newsletter'),
        '#default_value' => !empty($component['extra']['checkbox_checked_by_default']) ? $component['extra']['checkbox_checked_by_default'] : 0,
        '#description' => $filter ? _webform_filter_descriptions($component['extra']['description']) : $component['extra']['description'],
        '#theme_wrappers' => array(
          'webform_element',
        ),
        '#webform_component' => $component,
        '#weight' => $component['weight'],
      );
    }
  }
  $mailchimp_list = $component['extra']['mailchimp_list'];
  $element['mailchimp_list'] = array(
    '#prefix' => '',
    '#type' => 'value',
    '#value' => $mailchimp_list,
  );
  $element['#weight'] = $component['weight'];
  return $element;
}