You are here

function commerce_registration_registrations_broadcast_form in Commerce Registration 7.2

Registration broadcast form for product display nodes.

1 string reference to 'commerce_registration_registrations_broadcast_form'
commerce_registration_menu_alter in ./commerce_registration.module
Implements hook_menu_alter().

File

includes/commerce_registration.forms.inc, line 158
Commerce Registration modified validation and submit handlers for registration settings for commerce products.

Code

function commerce_registration_registrations_broadcast_form($form, &$form_state, $type, $entity) {

  // Loop through all products on the entity and add the broadcast form to a
  // fieldset.
  form_load_include($form_state, 'inc', 'registration', 'includes/registration.forms');
  $form = array();
  $all = array(
    'all' => 'All Registrants',
  );
  $products = array();
  if ($type == 'node') {
    $fields = field_read_fields(array(
      'type' => 'registration',
    ));
    foreach ($fields as $field) {
      if (isset($entity->{$field['field_name']})) {
        $products['node-' . $entity->nid] = t('Node: !title', array(
          '!title' => $entity->title,
        ));
      }
    }
  }
  $fields = field_read_fields(array(
    'type' => 'commerce_product_reference',
  ));
  foreach ($fields as $field) {
    if (isset($entity->{$field['field_name']})) {
      if ($field['translatable'] != 0) {
        $lang = entity_language($type, $entity);
      }
      if (!isset($lang)) {
        $lang = LANGUAGE_NONE;
      }
      foreach ($entity->{$field['field_name']}[$lang] as $product) {
        if (commerce_registration_product_has_registration_field($product['product_id'])) {
          $product = commerce_product_load($product['product_id']);
          $label = entity_label('commerce_product', $product);
          $products['commerce_product-' . $product->product_id] = t('Commerce Product: !title', array(
            '!title' => $label,
          ));
        }
      }
    }
  }
  if (empty($products)) {
    $form = registration_registrations_broadcast_form($form, $form_state, $type, $entity);
    $form['#submit'] = array(
      'registration_registrations_broadcast_form_submit',
    );
  }
  else {
    $form['product'] = array(
      '#type' => 'select',
      '#options' => $all + $products,
      '#title' => t('Select One'),
      '#description' => t('The email message will be sent to all registrants for this item.'),
      '#required' => TRUE,
    );
    $form += registration_registrations_broadcast_form($form, $form_state, $type, $entity);
    $form['#submit'] = array(
      'commerce_registration_registrations_broadcast_form_submit',
    );
  }
  return $form;
}