function ip_geoloc_is_in_range in IP Geolocation Views & Maps 8
Same name and namespace in other branches
- 7 ip_geoloc.module \ip_geoloc_is_in_range()
Determines if a value is within the supplied numeric or alphabetical range. String comparison is based on the ASCII/UTF8 order, so is case-sensitive.
Parameters
string $value: The value to check in $range.
string $range: Of the form '1.5--4.5' (range is inclusive of end points)
Return value
bool TRUE if the value is in range
1 call to ip_geoloc_is_in_range()
- _ip_geoloc_plugin_style_set_marker_color in src/
Plugin/ views/ style/ ip_geoloc_plugin_style.inc - Set the marker color.
File
- ./
ip_geoloc.module, line 663 - IPGV&M is a mapping engine for Views that contain locations of entities and/or visitors. Google Maps, Leaflet and OpenLayers2 maps are all supported and available through this module. Using a number of optional sources IPGV&M also retrieves…
Code
function ip_geoloc_is_in_range($value, $range, $view_args = NULL) {
if (!isset($value) || !isset($range)) {
return FALSE;
}
// Defensive programming to make sure we have a string.
if (is_array($range)) {
$range = reset($range);
}
$from_to = explode(IP_GEOLOC_RANGE_SEPARATOR1, $range);
if (count($from_to) < 2) {
$from_to = explode(IP_GEOLOC_RANGE_SEPARATOR2, $range);
}
if (($from = _ip_geoloc_extract_value($from_to[0], $view_args)) === NULL) {
return FALSE;
}
if (count($from_to) == 1) {
// Single value.
return trim($value) == trim($from);
}
if (($to = _ip_geoloc_extract_value($from_to[1], $view_args)) === NULL) {
return FALSE;
}
if ($from == '' && $to == '') {
// Range separator without values.
return TRUE;
}
if ($from != '' && $to != '') {
return $value >= $from && $value <= $to;
}
if ($from != '') {
return $value >= $from;
}
return $value <= $to;
}