/\n\n/gi;
- $data =~ s/
/\n/gi;
- $data =~ s/<[^>]+>//g;
- if ($data =~ /\Q$re\E/i) {
+ ($title, $help) = &help_file_match("$helpdir/$f");
+ if ($title) {
@cgis = &find_cgi_text(
[ "hlink\\(.*'$page'",
"hlink\\(.*\"$page\"",
], $m, 1);
- if ($page =~ /^config_(\S+)$/) {
- # Special config.info page link
- # XXX where?
- }
- elsif (@cgis == 0) {
+ # XXX delete this block
+ if (@cgis == 0) {
$link = "";
}
else {
@@ -122,14 +121,13 @@ foreach $m (@mods) {
$link =~ s/
//;
$link = &text('wsearch_on', $link);
}
- &match_row(
- $m,
- &hlink($title, $page, $m->{'dir'}).
- " ".$link,
- $text{'wsearch_help'},
- $data,
- 1,
- );
+ push(@rv, { 'mod' => $m,
+ 'rank' => 6,
+ 'type' => 'help',
+ 'link' => "help.cgi/$m->{'dir'}/config_$c",
+ 'desc' => $title,
+ 'text' => $help,
+ 'cgis' => \@cgis });
}
}
}
@@ -145,6 +143,7 @@ MODULE: foreach $m (@mods) {
[ "\$text{'$k'}",
"\$text{\"$k\"}",
"\$text{$k}" ], $m);
+ # XXX delete this block
if (@cgis == 0) {
$link = "$m->{'desc'}";
}
@@ -155,19 +154,32 @@ MODULE: foreach $m (@mods) {
"$s" } @cgis ]);
$link =~ s/
//;
}
- &match_row(
- $m,
- $link,
- $text{'wsearch_text'},
- $mtext{$k},
- @cgis ? 1 : 0,
- );
- #next MODULE;
+ push(@rv, { 'mod' => $m,
+ 'rank' => 4,
+ 'type' => 'text',
+ 'desc' => $pagetitle, # XXX
+ 'text' => $mtext{$k},
+ 'cgis' => \@cgis });
}
}
}
-if (!$count) {
+# Sort results by relevancy
+# XXX
+@rv = sort { $a->{'rank'} <=> $b->{'rank'} } @rv;
+
+# Show in table
+if (@rv) {
+ # XXX next page link?
+ print &ui_columns_start(
+ [ $text{'wsearch_htext'}, $text{'wsearch_htype'},
+ $text{'wsearch_hcgis'} ], 100);
+ foreach my $r (@rv) {
+ # XXX
+ }
+ print &ui_columns_end();
+ }
+else {
print "",&text('wsearch_enone',
"".&html_escape($re).""),"
\n";
}
@@ -240,3 +252,25 @@ foreach my $f (glob("$mdir/*.cgi")) {
return @rv;
}
+# help_file_match(file)
+# Returns the title if some help file matches the current search
+sub help_file_match
+{
+local ($f) = @_;
+local $data = &read_file_contents($f);
+local $title;
+if ($data =~ / /\n\n/gi;
+$data =~ s/
/\n/gi;
+$data =~ s/<[^>]+>//g;
+if ($data =~ /\Q$re\E/i) {
+ return $title;
+ }
+return undef;
+}