Apache-TopicMaps
view release on metacpan or search on metacpan
lib/Apache/TopicMaps/text/html/search.pm view on Meta::CPAN
package Apache::TopicMaps::text::html::search;
use strict;
use URI::Escape;
use TM;
use LWP::UserAgent;
use Apache::Constants qw(:common :http :response);
my $ua = LWP::UserAgent->new();
my $SAM = "http://www.gooseworks.org/disclosures/SAM.xml";
sub hitlist_start_html {
my ($ud, $name, $topic) = @_;
print STDERR "3a\n";
my $r = $$ud->{request};
my $tm = $$ud->{topicmap};
print STDERR "4\n";
$r->print("<!-- start $name -->\n");
if( $name eq "hit" )
{
my $names = $tm->get_property($topic, $SAM ."::BaseNames");
my $name = $names->[0];
my $url = "topic?topic=" . uri_escape( $tm->get_sidp_string($topic) );
$r->print(qq{ <a href="$url">$name</a><br />\n});
}
}
sub hitlist_end_html
{
my ($ud,$name) = @_;
my $r = $$ud->{request};
if( $name eq "hit" )
{
#$r->print("</p>\n");
}
}
sub do
{
my ($r,$tm) = @_;
my %params = $r->args;
$r->send_http_header('text/html');
$r->print(qq{
<HTML>
<HEAD><TITLE>TMS </TITLE>
</HEAD>
<body>
<p>
<form>
New search: <input type="text" size="10" name="query" value="$params{query}"/>
</form>
</p>
<p>All matches for
<b>$params{query} </b>
</p>
});
print STDERR "1\n";
my $user_data = { 'request' => $r , 'topicmap' => $tm};
print STDERR "2\n";
if(exists $params{query} && $params{query})
{
print STDERR "3\n";
$tm->query2(\$user_data, \&hitlist_start_html, \&hitlist_end_html, "VIEW hitlist(query=$params{query})" );
}
$r->print(qq{
</body>
</html>
});
return OK;
}
( run in 0.528 second using v1.01-cache-2.11-cpan-39bf76dae61 )