| 1 |
<?php // $Id: geo_field.module,v 1.22 2009/06/18 01:24:11 vauxia Exp $ |
<?php // $Id: geo_field.module,v 1.23 2009/06/26 03:55:51 vauxia Exp $ |
| 2 |
|
|
| 3 |
/** |
/** |
| 4 |
* @file |
* @file |
| 55 |
$table = content_views_tablename($field); |
$table = content_views_tablename($field); |
| 56 |
|
|
| 57 |
// Copy the wkt item to geo, and add handlers for the geospatial field. |
// Copy the wkt item to geo, and add handlers for the geospatial field. |
|
$wkt = $field['field_name'] .'_wkt'; |
|
| 58 |
$geo = $field['field_name'] .'_geo'; |
$geo = $field['field_name'] .'_geo'; |
| 59 |
$dst = $field['field_name'] .'_dst'; |
$dst = $field['field_name'] .'_dst'; |
| 60 |
|
|
| 61 |
$data[$table][$geo] = $data[$table][$dst] = $data[$table][$wkt]; |
$data[$table][$dst] = $data[$table][$geo]; |
|
unset($data[$table][$wkt]); |
|
| 62 |
|
|
| 63 |
// Set field handler to our own. |
// Set field handler to our own. |
| 64 |
$data[$table][$geo]['field']['field'] = $geo; |
$data[$table][$geo]['field']['field'] = $geo; |
| 71 |
$data[$table][$dst]['field']['handler'] = 'views_handler_field_geo_distance'; |
$data[$table][$dst]['field']['handler'] = 'views_handler_field_geo_distance'; |
| 72 |
$data[$table][$dst]['field']['float'] = TRUE; |
$data[$table][$dst]['field']['float'] = TRUE; |
| 73 |
$data[$table][$dst]['field']['click sortable'] = TRUE; |
$data[$table][$dst]['field']['click sortable'] = TRUE; |
| 74 |
$data[$table][$dst]['filter']['title'] .= ' - '. t('Distance'); |
$data[$table][$dst]['filter']['title'] = $data[$table][$dst]['field']['title']; |
| 75 |
$data[$table][$dst]['filter']['handler'] = 'views_handler_filter_geo_distance'; |
$data[$table][$dst]['filter']['handler'] = 'views_handler_filter_geo_distance'; |
| 76 |
$data[$table][$dst]['filter']['field'] = $geo; |
$data[$table][$dst]['filter']['field'] = $geo; |
| 77 |
|
|
| 119 |
if (!isset($node->geo_fields)) $node->geo_fields = array(); |
if (!isset($node->geo_fields)) $node->geo_fields = array(); |
| 120 |
$node->geo_fields[$field['field_name']] = 'geo'; |
$node->geo_fields[$field['field_name']] = 'geo'; |
| 121 |
|
|
| 122 |
return array($field['field_name'] => $ret, 'geo_fields' => $node->geo_fields); |
return array( |
| 123 |
|
$field['field_name'] => $ret, |
| 124 |
|
'geo_fields' => $node->geo_fields, |
| 125 |
|
); |
| 126 |
|
|
| 127 |
case 'validate': |
case 'validate': |
| 128 |
foreach ($items as $k => $item) { |
foreach ($items as $k => $item) { |
| 147 |
$items[$k] = $item; |
$items[$k] = $item; |
| 148 |
} |
} |
| 149 |
return; |
return; |
| 150 |
|
|
| 151 |
|
case 'sanitize': |
| 152 |
|
geo_set_pre_render($node->content); |
| 153 |
|
return; |
| 154 |
|
/* |
| 155 |
|
case 'sanitize': |
| 156 |
|
$types = _content_type_info(); |
| 157 |
|
echo '<pre>';print_r($field); die; |
| 158 |
|
if ($input = $types[$type]['formatters'][$formatter]['gis input']) { |
| 159 |
|
} |
| 160 |
|
return; |
| 161 |
|
*/ |
| 162 |
} |
} |
| 163 |
} |
} |
| 164 |
|
|