--- fir_views.module 2010-07-13 12:55:44.000000000 -0500 +++ fir_views.module.new 2010-07-15 18:29:10.000000000 -0500 @@ -941,8 +941,7 @@ function fir_views_get_hot_fishing_indic $fname = "hot_fishing_" . $type . "_" . $delta; - $sql = "SELECT fid FROM {flags} WHERE name='%s'" ; - $flag = db_result( db_query( $sql, $fname ) ); + $flag = _fir_views_fid($fname); global $user; @@ -966,9 +965,7 @@ function fir_views_get_hot_fishing_indic function fir_views_get_hot_fishing_forecast_indicator($nid){ $fname = "hot_fishing_forecast";//_" . $delta;//$result['fid']; - $sql = "SELECT fid FROM {flags} WHERE name='%s'" ; - - $flag = db_result( db_query( $sql, $fname ) ); + $flag = _fir_views_fid($fname); global $user; @@ -993,8 +990,7 @@ function fir_views_get_hot_fishing_indic //hot $fname = "hot_fishing_hot_" . $delta; - $sql = "SELECT fid FROM {flags} WHERE name='%s'" ; - $flag = db_result( db_query( $sql, $fname ) ); + $flag = _fir_views_fid($fname); global $user; @@ -1004,8 +1000,7 @@ function fir_views_get_hot_fishing_indic //cold $fname = "hot_fishing_cold_" . $delta; - $sql = "SELECT fid FROM {flags} WHERE name='%s'" ; - $flag = db_result( db_query( $sql, $fname ) ); + $flag = _fir_views_fid($fname); global $user; @@ -1141,3 +1136,16 @@ function fir_views_views_query_alter(&$v */ +/** + * Cache flags and return fids on demand. + */ +function _fir_views_fid($fname) { + static $flags = array(); + if (!$flags) { + $result = db_query('SELECT fid, name FROM {flags}'); + while ($row = db_fetch_object($result)) { + $flags[$row->name] = $row->fid; + } + } + return isset($flags[$fname]) ? $flags[$fname] : FALSE; +}