function commerce_registration_node_registrations_settings_form in Commerce Registration 7.2
Registration settings form for product display nodes.
1 string reference to 'commerce_registration_node_registrations_settings_form'
- commerce_registration_menu_alter in ./
commerce_registration.module - Implements hook_menu_alter().
File
- includes/
commerce_registration.forms.inc, line 11 - Commerce Registration modified validation and submit handlers for registration settings for commerce products.
Code
function commerce_registration_node_registrations_settings_form($form, &$form_state, $type, $entity) {
// Loop through all products on the entity and add the settings form to a
// fieldset.
form_load_include($form_state, 'inc', 'registration', 'includes/registration.forms');
$form = array();
if ($type == 'node') {
$fields = field_read_fields(array(
'type' => 'registration',
));
foreach ($fields as $field) {
if (isset($entity->{$field['field_name']})) {
$form['settings'] = array(
'#type' => 'container',
'#tree' => TRUE,
);
$settings = registration_entity_settings('node', $entity->nid);
$fieldset = 'node-' . $entity->nid;
$form['settings'][$fieldset] = array(
'#type' => 'fieldset',
'#title' => t('Registration Settings for !node', array(
'!node' => '<em>Node: ' . $entity->title . '</em>',
)),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$addform = registration_entity_settings_form($form, $form_state, $settings, 'node', $entity);
unset($addform['save']);
$addform['status']['#weight'] = -10;
$addform['capacity']['#weight'] = -9;
$addform['reminder']['reminder_settings']['#states']['visible'] = array(
':input[name="settings[' . $fieldset . '][reminder][send_reminder]"]' => array(
'checked' => TRUE,
),
);
$form['settings'][$fieldset] += $addform;
$form['settings'][$fieldset]['reminder']['#parents'] = array(
'settings',
$fieldset,
'reminder',
);
}
}
}
$fields = field_read_fields(array(
'type' => 'commerce_product_reference',
));
foreach ($fields as $field) {
if (!empty($entity->{$field['field_name']})) {
$settings = array();
if (isset($form['settings'])) {
$settings = $form['settings'];
}
$form['settings'] = $settings + array(
'#type' => 'container',
'#tree' => TRUE,
);
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']);
$settings = registration_entity_settings('commerce_product', $product->product_id);
$prod = 'commerce_product-' . check_plain($product->product_id);
$form['settings'][$prod] = array(
'#type' => 'fieldset',
'#title' => t('Registration Settings for !product (@sku)', array(
'!product' => '<em>Commerce Product: ' . $product->title . '</em>',
'@sku' => $product->sku,
)),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#entity' => $product,
'#entity_type' => 'commerce_product',
);
if (!function_exists('registration_entity_settings_form')) {
module_load_include('inc', 'registration', 'includes/registration.forms');
}
$addform = registration_entity_settings_form($form, $form_state, $settings, 'commerce_product', $product);
unset($addform['save']);
$addform['status']['#weight'] = -10;
$addform['capacity']['#weight'] = -9;
$addform['reminder']['reminder_settings']['#states']['visible'] = array(
':input[name="settings[' . $prod . '][reminder][send_reminder]"]' => array(
'checked' => TRUE,
),
);
$form['settings'][$prod] += $addform;
$form['settings'][$prod]['reminder']['#parents'] = array(
'settings',
$prod,
'reminder',
);
}
}
}
}
if (empty($form)) {
list($entity_id) = entity_extract_ids($type, $entity);
$settings = registration_entity_settings($type, $entity_id);
$form = registration_entity_settings_form($form, $form_state, $settings, $type, $entity);
$form['#submit'] = array(
'registration_entity_settings_form_submit',
);
$form['#validate'] = array(
'registration_entity_settings_form_validate',
);
}
else {
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save Settings'),
'#validate' => array(
'commerce_registration_node_registrations_settings_form_validate',
),
'#submit' => array(
'commerce_registration_node_registrations_settings_form_submit',
),
);
}
return $form;
}