- Added keyword tagging to Wiki.
This commit is contained in:
parent
23fa0283b3
commit
f36ba1b268
17 changed files with 323 additions and 213 deletions
|
|
@ -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"),
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue