You are here

regcode.rules.inc in Registration codes 6

Same filename and directory in other branches
  1. 6.2 regcode.rules.inc
  2. 7.2 regcode.rules.inc
  3. 7 regcode.rules.inc

Rules integration for the regcode module.

File

regcode.rules.inc
View source
<?php

/**
 * @file
 * Rules integration for the regcode module.
 */

/**
 * Implementation of module_rules_event_info()
 *
 * @ingroup rules
 */
function regcode_rules_event_info() {
  return array(
    'regcode_used' => array(
      'label' => t('User has used a registration code'),
      'module' => 'Regcode',
      'arguments' => array(
        'user' => array(
          'type' => 'user',
          'label' => t('The user using the code'),
        ),
        'regcode' => array(
          'type' => 'regcode',
          'label' => t('The regcode which was used'),
        ),
      ),
    ),
  );
}

/**
 * Implement module_rules_condition_info()
 *
 * @ingroup rules
 */
function regcode_rules_condition_info() {
  return array(
    'rules_condition_regcode_category_compare' => array(
      'label' => t('Registration code category is ...'),
      'arguments' => array(
        'regcode' => array(
          'type' => 'regcode',
          'label' => t('Regcode'),
        ),
      ),
      'module' => 'Regcode',
    ),
  );
}

/**
 * Condition Implementation for Condition Regcode category
 *
 * @ingroup rules
 */
function rules_condition_regcode_category_compare($regcode, $settings) {
  return in_array($regcode['category'], $settings['regcode_categories']);
}

/**
 * Condition Regcode category: Form to select categories to match against
 *
 * @param array $settings
 * @param array $form
 * @ingroup rules
 */
function rules_condition_regcode_category_compare_form($settings, &$form) {
  $categories = regcode_categories();
  $form['settings']['regcode_categories'] = array(
    '#type' => 'checkboxes',
    '#options' => array_combine($categories, $categories),
    '#title' => t('Registration code category'),
    '#description' => t('Condition evaluates to true if registration code used is of one of the selected categories'),
    '#default_value' => $settings['regcode_categories'],
  );
}

/**
 * Compare a submitted form
 *
 * @ingroup rules
 */
function rules_condition_regcode_category_compare_submit(&$settings, $form, $form_state) {
  $settings['regcode_categories'] = array_filter($settings['regcode_categories']);
}

Functions

Namesort descending Description
regcode_rules_condition_info Implement module_rules_condition_info()
regcode_rules_event_info Implementation of module_rules_event_info()
rules_condition_regcode_category_compare Condition Implementation for Condition Regcode category
rules_condition_regcode_category_compare_form Condition Regcode category: Form to select categories to match against
rules_condition_regcode_category_compare_submit Compare a submitted form