--- views_alpha_pager.module.orig 2008-06-30 10:26:07.000000000 -0400 +++ views_alpha_pager.module 2008-06-30 10:35:33.000000000 -0400 @@ -147,7 +147,11 @@ function views_alpha_pager_views_query_a $myfield = "TRIM(LEADING '". strtoupper($trim) ."' FROM ($myfield))"; } } - $myfield = "LEFT($myfield, 1)"; + + //$myfield = "LEFT($myfield, 1)"; + $myfield_filter = "LEFT($myfield,1)"; + + // build the query to get the pages $pattern = array( @@ -156,20 +160,22 @@ function views_alpha_pager_views_query_a '/ GROUP BY [a-z_0-9]+(\.[a-z_0-9]+)?(\s*,\s*[a-z_0-9]+(\.[a-z_0-9]+)?)*/i', ); $replace = array( - "SELECT DISTINCT $myfield FROM ", - " ORDER BY $myfield", + "SELECT DISTINCT $myfield_filter FROM ", + " ORDER BY $myfield_filter", "", ); $countquery = preg_replace($pattern, $replace, $query->query(), 1); + + //drupal_set_message('COUNT QUERY: ' . $countquery); // execute the query to get the alpha pages in use $result = db_query($countquery, $query->where_args); $items = array(); while ($item = db_fetch_object($result)) { - if (ctype_alpha($item->$myfield)) { - $items[$item->$myfield] = $item->$myfield; + if (ctype_alpha($item->$myfield_filter)) { + $items[$item->$myfield_filter] = $item->$myfield_filter; } - elseif (ctype_digit($item->$myfield)) { + elseif (ctype_digit($item->$myfield_filter)) { $items['0'] = '#'; } else { @@ -198,13 +204,13 @@ function views_alpha_pager_views_query_a if ($apage != '*') { // modify the view and count queries for the alpha page we are on if (ctype_alpha($apage)) { - $where = "$myfield = '$apage'"; + $where = "$myfield_filter = '$apage'"; } elseif ($apage == '0') { - $where = "INSTR('0123456789', $myfield) > 0"; + $where = "INSTR('0123456789', $myfield_filter) > 0"; } else { - $where = "INSTR('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', $myfield) = 0"; + $where = "INSTR('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', $myfield_filter) = 0"; } $query->add_where($where); $query->orderby = array_merge(array($myfield), $query->orderby);