version 1.172, 2003/03/17 18:35:51
|
version 1.177, 2003/06/14 00:15:01
|
Line 214 sub handler {
|
Line 214 sub handler {
|
## Initialize global variables |
## Initialize global variables |
## |
## |
my $domain = $r->dir_config('lonDefDomain'); |
my $domain = $r->dir_config('lonDefDomain'); |
$diropendb= "/home/httpd/perl/tmp/".&Apache::lonnet::escape($domain). |
$diropendb= "/home/httpd/perl/tmp/$ENV{'user.domain'}_$ENV{'user.name'}_searchcat.db"; |
"\_".&Apache::lonnet::escape($ENV{'user.name'})."_searchcat.db"; |
|
# |
# |
# set the name of the persistent database |
# set the name of the persistent database |
# $ENV{'form.persistent_db_id'} can only have digits in it. |
# $ENV{'form.persistent_db_id'} can only have digits in it. |
Line 720 ENDHEADER
|
Line 719 ENDHEADER
|
my $size = 4; |
my $size = 4; |
$size = (scalar @domains < ($size - 1) ? scalar @domains + 1 : $size); |
$size = (scalar @domains < ($size - 1) ? scalar @domains + 1 : $size); |
$scrout.="\n".'<font color="#800000" face="helvetica"><b>'. |
$scrout.="\n".'<font color="#800000" face="helvetica"><b>'. |
'DOMAINS</b></font><br />'. |
'DOMAINS TO BE SEARCHED</b></font><br />'. |
'<select name="domains" size="'.$size.'" multiple>'."\n". |
'<select name="domains" size="'.$size.'" multiple>'."\n". |
'<option name="any" value="any" '. |
'<option name="any" value="any" '. |
($domain_hash{'any'}? 'selected ' :''). |
($domain_hash{'any'}? 'selected ' :''). |
Line 1618 sub recursive_SQL_query_build {
|
Line 1617 sub recursive_SQL_query_build {
|
my @matches=($pattern=~/(\[[^\]|\[]*\])/g); |
my @matches=($pattern=~/(\[[^\]|\[]*\])/g); |
return $pattern unless @matches; |
return $pattern unless @matches; |
foreach my $match (@matches) { |
foreach my $match (@matches) { |
$match=~/\[ (\w+)\s(.*) \]/; |
$match=~/\[ (\w+)\s(.*) \]/; |
my ($key,$value)=($1,$2); |
my ($key,$value)=($1,$2); |
my $replacement=''; |
my $replacement=''; |
if ($key eq 'literal') { |
if ($key eq 'literal') { |
$replacement="($dkey like \"\%$value\%\")"; |
$replacement="($dkey like \"\%$value\%\")"; |
} |
} elsif ($key eq 'not') { |
elsif ($key eq 'not') { |
$value=~s/like/not like/; |
$value=~s/like/not like/; |
# $replacement="($dkey not like $value)"; |
# $replacement="($dkey not like $value)"; |
$replacement="$value"; |
$replacement="$value"; |
} elsif ($key eq 'and') { |
} |
$value=~/(.*[\"|\)]) ([|\(|\^].*)/; |
elsif ($key eq 'and') { |
$replacement="($1 AND $2)"; |
$value=~/(.*[\"|\)]) ([|\(|\^].*)/; |
} elsif ($key eq 'or') { |
$replacement="($1 AND $2)"; |
$value=~/(.*[\"|\)]) ([|\(|\^].*)/; |
} |
$replacement="($1 OR $2)"; |
elsif ($key eq 'or') { |
|
$value=~/(.*[\"|\)]) ([|\(|\^].*)/; |
|
$replacement="($1 OR $2)"; |
|
} |
} |
substr($pattern, |
substr($pattern, |
index($pattern,$match), |
index($pattern,$match), |
length($match), |
length($match), |
$replacement |
$replacement); |
); |
|
} |
} |
&recursive_SQL_query_build($dkey,$pattern); |
&recursive_SQL_query_build($dkey,$pattern); |
} |
} |