- Added keyword tagging to Wiki.

This commit is contained in:
JT Smith 2007-07-07 21:09:39 +00:00
parent 23fa0283b3
commit f36ba1b268
17 changed files with 323 additions and 213 deletions

View file

@ -158,7 +158,7 @@ sub getEditForm {
formKeywords => WebGUI::Form::text($session, {
name => "keywords",
value => WebGUI::Keyword->new($session)->getKeywordsForAsset({asset=>$self}),
});
}),
allowsAttachments => $wiki->get("maxAttachments"),
formFooter => WebGUI::Form::formFooter($session),
isNew => ($self->getId eq "new"),
@ -319,7 +319,20 @@ sub update {
sub view {
my $self = shift;
my $i18n = WebGUI::International->new($self->session, "Asset_WikiPage");
my $keywords = WebGUI::Keyword->new($self->session)->getKeywordsForAsset({
asset=>$self,
asArrayRef=>1,
});
my $wiki = $self->getWiki;
my @keywordsLoop = ();
foreach my $word (@{$keywords}) {
push(@keywordsLoop, {
keyword=>$word,
url=>$wiki->getUrl("func=byKeyword;keyword=".$word),
});
}
my $var = {
keywordsLoop => \@keywordsLoop,
viewLabel => $i18n->get("viewLabel"),
editLabel => $i18n->get("editLabel"),
historyLabel => $i18n->get("historyLabel"),

View file

@ -233,6 +233,13 @@ sub definition {
hoverHelp => $i18n->get('recentChangesTemplateId hoverHelp'),
label => $i18n->get('recentChangesTemplateId label') },
byKeywordTemplateId => { fieldType => 'template',
namespace => 'WikiMaster_byKeyword',
defaultValue => 'WikiKeyword00000000001',
tab => 'display',
hoverHelp => $i18n->get('byKeywordTemplateId hoverHelp'),
label => $i18n->get('byKeywordTemplateId label') },
searchTemplateId => { fieldType => 'template',
namespace => 'WikiMaster_search',
defaultValue => 'WikiSearchTmpl00000001',
@ -361,6 +368,10 @@ sub view {
recentChangesLabel=>$i18n->get("recentChangesLabel"),
restoreLabel => $i18n->get("restoreLabel"),
canAdminister => $self->canAdminister,
keywordCloud => WebGUI::Keyword->new($self->session)->generateCloud({
startAsset=>$self,
displayFunc=>"byKeyword",
}),
};
my $template = $self->{_frontPageTemplate};
$self->appendSearchBoxVars($var);
@ -370,6 +381,35 @@ sub view {
}
#-------------------------------------------------------------------
sub www_byKeyword {
my $self = shift;
my $keyword = $self->session->form->process("keyword");
my @pages = ();
my $p = WebGUI::Keyword->new($self->session)->getMatchingAssets({
startAsset => $self,
keyword => $keyword,
usePaginator => 1,
});
$p->setBaseUrl($self->getUrl("func=byKeyword"));
foreach my $assetData (@{$p->getPageData}) {
$self->session->errorHandler->warn($assetData->{assetId});
my $asset = WebGUI::Asset->newByDynamicClass($self->session, $assetData->{assetId});
next unless defined $asset;
push(@pages, {
title => $asset->getTitle,
url => $asset->getUrl,
});
}
my $var = {
keyword => $keyword,
pagesLoop => \@pages,
};
$p->appendTemplateVars($var);
return $self->processStyle($self->processTemplate($var, $self->get('byKeywordTemplateId')));
}
#-------------------------------------------------------------------
sub www_mostPopular {
my $self = shift;