added search engine asset

This commit is contained in:
JT Smith 2006-01-31 03:56:46 +00:00
parent bb263b4777
commit 88b23ad798
3 changed files with 37 additions and 3 deletions

View file

@ -197,6 +197,14 @@ SQL6
#-------------------------------------------------
sub addSearchEngine {
print "\tUpgrading search engine.\n" unless ($quiet);
$session->db->write("create table search (
assetId varchar(22) binary not null,
revisionDate bigint not null default 0,
classLimiter text,
searchRoot varchar(22) binary not null default 'PBasset000000000000001',
templateId varchar(22) binary not null default 'PBtmpl0000000000000200',
primary key (assetId,revisionDate)
)");
$session->db->write("create table assetIndex (
assetId varchar(22) binary not null primary key,
title varchar(255),

View file

@ -145,6 +145,7 @@ assets = WebGUI::Asset::Snippet, \
WebGUI::Asset::Wobject::Poll, \
WebGUI::Asset::Wobject::Product, \
WebGUI::Asset::Wobject::SQLReport, \
WebGUI::Asset::Wobject::Search, \
WebGUI::Asset::Wobject::Survey, \
WebGUI::Asset::Wobject::WeatherData, \
WebGUI::Asset::Wobject::MultiSearch, \

View file

@ -71,14 +71,16 @@ sub definition {
tab=>"properties",
hoverHelp=>$i18n->get("search root description"),
label=>$i18n->get('search root')
}
},
classLimiter => {
fieldType => "checkList",
defaultValue => [],
defaultValue => undef,
vertical=>1,
tab=>"properties",
hoverHelp=>$i18n->get("class limiter description"),
label=>$i18n->get("class limiter"),
options=>$session->db->buildHashRef("select distinct(className) from asset")
}
);
push(@{$definition}, {
assetName=>$i18n->get('assetName'),
@ -126,7 +128,30 @@ sub view {
$var{'form_footer'} = WebGUI::Form::formFooter($self->session);
$var{'form_submit'} = WebGUI::Form::submit($self->session, {value=>$i18n->get("search")});
$var{'form_keywords'} = WebGUI::Form::text($self->session, {name=>"keywords", value=>$self->session->form->get("keywords")});
if ($self->session->form->get("doit")) {
my $search = WebGUI::Search->new($self->session);
my %rules = (
keywords=>$self->session->form->get("keywords"),
# lineage=>[$self->getValue("searchRoot")]
);
my @classes = split("\n",$self->get("classLimiter"));
# $rules{classes} = \@classes if (scalar(@classes));
$search->search(\%rules);
my @results = ();
my $rs = $search->getResultSet;
while (my $data = $rs->hashRef) {
next unless ($self->session->user->userId eq $data->{ownerUserId} || $self->session->user->isInGroup($data->{groupIdView}) || $self->session->user->isInGroup($data->{groupIdEdit}));
push(@results, {
url=>$data->{url},
title=>$data->{title},
synposis=>$data->{synopsis},
});
}
my $p = WebGUI::Paginator->new($self->session,$self->getUrl);
$p->setDataByArrayRef(\@results);
$p->appendTemplateVars(\%var);
$var{result_set} = $p->getPageData;
}
return $self->processTemplate(\%var, undef, $self->{_viewTemplate});
}