--- loncom/lonsql 2001/03/27 02:22:02 1.19 +++ loncom/lonsql 2001/03/27 12:49:18 1.20 @@ -226,6 +226,7 @@ sub make_new_child { #prepare and execute the query my $sth = $dbh->prepare($query); my $result; + my @files; unless ($sth->execute()) { &logthis("WARNING: Could not retrieve from database: $@"); @@ -233,16 +234,26 @@ sub make_new_child { } else { my $r1=$sth->fetchall_arrayref; - my @r2; map {my $a=$_; my @b=map {escape($_)} @$a; push @r2,join(",", @b)} (@$r1); + my @r2; + map {my $a=$_; + my @b=map {escape($_)} @$a; + push @files,@{$a}[3]; + push @r2,join(",", @b) + } (@$r1); $result=join("&",@r2); } # do custom metadata searching here and build into result if ($custom) { &logthis("am going to do custom query for $custom"); - @metalist=(); pop @metalist; - &find("$perlvar{'lonDocRoot'}/res"); - &logthis("FILELIST:" . join(":::",@metalist)); + if (@files) { + @metalist=map {$perlvar{'lonDocRoot'}.$_.'meta'} @files; + } + else { + @metalist=(); pop @metalist; + &find("$perlvar{'lonDocRoot'}/res"); + } +# &logthis("FILELIST:" . join(":::",@metalist)); # if file is indicated in sql database and # not part of sql-relevant query, do not pattern match. # if file is not in sql database, output error. @@ -261,8 +272,8 @@ sub make_new_child { $stuff=~s/\n?\<$f[^\>]*\>.*?<\/$f[^\>]*\>\n?//; } my $m2=$m; my $docroot=$perlvar{'lonDocRoot'}; - $m2=~s/^$docroot//; - &logthis("found: $stuff"); + $m2=~s/^$docroot//; $m2=~s/\.meta$//; +# &logthis("found: $stuff"); $customresult.='&custom='.escape($m2).','.escape($stuff); } }