From 53ca58fbd93b361c024d52e342678c0efef1d74c Mon Sep 17 00:00:00 2001 From: dkinzer Date: Sun, 13 Mar 2011 15:10:39 -0400 Subject: [PATCH] Issue #324331-28: Makes addresses fields sortable in views. --- addresses_cck/addresses_cck.module | 26 +++++++++++++++++++++++++- 1 files changed, 25 insertions(+), 1 deletions(-) mode change 100644 => 100755 addresses_cck/addresses_cck.module diff --git a/addresses_cck/addresses_cck.module b/addresses_cck/addresses_cck.module old mode 100644 new mode 100755 index 9c9538c..88bec66 --- a/addresses_cck/addresses_cck.module +++ b/addresses_cck/addresses_cck.module @@ -157,7 +157,13 @@ function addresses_cck_field_settings($op, $field) { case 'database columns': // Return the table similar to those set on hook_schema. // It describes each database field that will be stored. - return module_invoke_all('addressesfieldapi', 'fields'); + $columns = module_invoke_all('addressesfieldapi', 'fields'); + + //Make columns sortable; + foreach ($columns as $key => $column) { + $columns[$key]['sortable'] = TRUE; + } + return $columns; case 'views data': // Rerebuild the Views integration, since the address field is, @@ -175,6 +181,7 @@ function addresses_cck_field_settings($op, $field) { $field_cck = $cck_default; if (isset($field_data['title'])) { $field_cck['title'] .= ' '. $field_data['title']; + $field_cck['title short'] = $field_data['title']; } $field_cck['filter']['field'] = $field['field_name'] .'_'. $ftype; // $field_cck['filter']['title'] .= ' '. $field_data['title']; @@ -182,6 +189,23 @@ function addresses_cck_field_settings($op, $field) { // unset($field_cck['field']['additional fields']); $data[$table_alias][$field['field_name'] .'_'. $ftype] = $field_cck; + + //Move fields to Addresses Group to make it easier to find them in the Viewws GUI. + $data[$table_alias][$field['field_name'] .'_'. $ftype]['group'] = 'Addresses'; + + //Make sortable; + $data[$table_alias][$field['field_name'] .'_'. $ftype]['sort'] = array( + 'field' => $field['field_name'] .'_'. $ftype, + 'tablename' => $db_info['table'], + 'handler' => 'content_handler_sort', + 'content_field_name' => $field['field_name'] .'_'. $ftype, + 'allow_empty' => TRUE, + ); + + //If you are making a column sortable then you'll want to know what you are sorting by. + $data[$table_alias][$field['field_name'] .'_'. $ftype]['field']['title'] = $db_info['columns'][$ftype]['title']; + + unset($data[$table_alias][$field['field_name'] .'_'. $ftype]['argument']['additional fields']); } return $data; -- 1.7.3