--- loncom/interface/lonsearchcat.pm 2003/03/17 18:35:51 1.172 +++ loncom/interface/lonsearchcat.pm 2003/05/21 14:43:46 1.173 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Search Catalog # -# $Id: lonsearchcat.pm,v 1.172 2003/03/17 18:35:51 matthew Exp $ +# $Id: lonsearchcat.pm,v 1.173 2003/05/21 14:43:46 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1618,30 +1618,26 @@ sub recursive_SQL_query_build { my @matches=($pattern=~/(\[[^\]|\[]*\])/g); return $pattern unless @matches; foreach my $match (@matches) { - $match=~/\[ (\w+)\s(.*) \]/; - my ($key,$value)=($1,$2); - my $replacement=''; - if ($key eq 'literal') { - $replacement="($dkey like \"\%$value\%\")"; - } - elsif ($key eq 'not') { - $value=~s/like/not like/; -# $replacement="($dkey not like $value)"; - $replacement="$value"; - } - elsif ($key eq 'and') { - $value=~/(.*[\"|\)]) ([|\(|\^].*)/; - $replacement="($1 AND $2)"; - } - elsif ($key eq 'or') { - $value=~/(.*[\"|\)]) ([|\(|\^].*)/; - $replacement="($1 OR $2)"; + $match=~/\[ (\w+)\s(.*) \]/; + my ($key,$value)=($1,$2); + my $replacement=''; + if ($key eq 'literal') { + $replacement="($dkey like \"\%$value\%\")"; + } elsif ($key eq 'not') { + $value=~s/like/not like/; +# $replacement="($dkey not like $value)"; + $replacement="$value"; + } elsif ($key eq 'and') { + $value=~/(.*[\"|\)]) ([|\(|\^].*)/; + $replacement="($1 AND $2)"; + } elsif ($key eq 'or') { + $value=~/(.*[\"|\)]) ([|\(|\^].*)/; + $replacement="($1 OR $2)"; } substr($pattern, - index($pattern,$match), - length($match), - $replacement - ); + index($pattern,$match), + length($match), + $replacement); } &recursive_SQL_query_build($dkey,$pattern); }