You are here

smart_ip.rules.inc in Smart IP 7

Same filename and directory in other branches
  1. 7.2 smart_ip.rules.inc

Rules integration for the Smart IP module.

File

smart_ip.rules.inc
View source
<?php

/**
 * @file
 * Rules integration for the Smart IP module.
 *
 * @addtogroup rules
 * @{
 */

/**
 * Implements hook_rules_condition_info().
 */
function smart_ip_rules_condition_info() {
  $items = array();
  $items['smart_ip_condition_in_country'] = array(
    'label' => t('IP address is in country'),
    'group' => t('Smart IP'),
    'parameter' => array(
      'country' => array(
        'type' => 'list<text>',
        'label' => t('Country'),
        'description' => t('The countries to check for.'),
        'options list' => 'smart_ip_country_list',
      ),
    ),
  );
  $items['smart_ip_condition_in_region'] = array(
    'label' => t('IP address is in region'),
    'group' => t('Smart IP'),
    'parameter' => array(
      'regid' => array(
        'type' => 'text',
        'label' => t('Region ID'),
        'description' => t('The region ID to check for.'),
      ),
    ),
  );
  $items['smart_ip_condition_in_city'] = array(
    'label' => t('IP address is in city'),
    'group' => t('Smart IP'),
    'parameter' => array(
      'city' => array(
        'type' => 'text',
        'label' => t('City'),
        'description' => t('The city to check for.'),
      ),
    ),
  );
  return $items;
}

/**
 * Returns a list of countires from locale module.
 */
function smart_ip_country_list() {
  include_once DRUPAL_ROOT . '/includes/locale.inc';
  return country_get_list();
}

/**
 * Condition implementation for IP address in country.
 */
function smart_ip_condition_in_country($countries) {
  $location = smart_ip_get_current_visitor_location_data();
  if (isset($countries[$location['country_code']])) {
    return TRUE;
  }
  return FALSE;
}

/**
 * Condition implementation for IP address in region.
 */
function smart_ip_condition_in_region($regid) {
  $location = smart_ip_get_current_visitor_location_data();
  if ($location['region_code'] == $regid) {
    return TRUE;
  }
  return FALSE;
}

/**
 * Condition implementation for IP address in city.
 */
function smart_ip_condition_in_city($city) {
  $location = smart_ip_get_current_visitor_location_data();
  if ($location['city'] == $city) {
    return TRUE;
  }
  return FALSE;
}

/**
 * @}
 */

Functions

Namesort descending Description
smart_ip_condition_in_city Condition implementation for IP address in city.
smart_ip_condition_in_country Condition implementation for IP address in country.
smart_ip_condition_in_region Condition implementation for IP address in region.
smart_ip_country_list Returns a list of countires from locale module.
smart_ip_rules_condition_info Implements hook_rules_condition_info().