You are here

function commerce_registration_registration_page in Commerce Registration 7.2

Same name and namespace in other branches
  1. 7 commerce_registration.module \commerce_registration_registration_page()

Registration page callback for all registrations for a given product display.

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

File

./commerce_registration.module, line 177
Commerce Registration module code.

Code

function commerce_registration_registration_page($type, $node) {
  $out = "";
  $prodids = array();
  $fields = field_read_fields(array(
    'type' => 'commerce_product_reference',
  ));

  // Check we have a product reference field before looping through them.
  if (!empty($fields)) {
    foreach ($fields as $field) {
      if (!empty($node->{$field['field_name']})) {
        if ($field['translatable'] != 0) {
          $lang = $node->language;
        }
        else {
          $lang = LANGUAGE_NONE;
        }
        foreach ($node->{$field['field_name']}[$lang] as $product) {
          if (commerce_registration_product_has_registration_field($product['product_id'])) {
            $prodids[] = (int) $product['product_id'];
          }
        }
      }
    }
  }
  $hasRegField = FALSE;
  $fields = field_read_fields(array(
    'type' => 'registration',
  ));
  foreach ($fields as $field) {
    if (isset($node->{$field['field_name']})) {
      $hasRegField = TRUE;
    }
  }
  if (!empty($prodids)) {
    foreach ($prodids as $product_id) {
      $prod = commerce_product_load($product_id);
      $out .= "<div class='commerce-product commerce-product-{$product_id}'>" . registration_registrations_page('commerce_product', $prod) . "</div><hr>";
    }
  }
  if ($hasRegField) {
    $out .= "<div class='registration'>";
    $out .= registration_registrations_page($type, $node);
    $out .= "</div>";
  }
  return $out;
}