Finish rework of hierarchial keywords/categories.

This commit is contained in:
Colin Kuskie 2010-05-04 20:43:10 -07:00
parent ac7ce44180
commit 491c302309
6 changed files with 100 additions and 32 deletions

View file

@ -53,7 +53,6 @@ Append the template variables to C<var> for keyword (category) pages.
sub appendKeywordPageVars {
my ( $self, $var ) = @_;
my $session = $self->session;
my $topKeywords = $self->getTopLevelKeywordsList;
my $keywordHierarchy = $self->getKeywordHierarchy( $topKeywords, );
$var->{keywords_loop} = $self->getKeywordVariables( $keywordHierarchy );
@ -612,6 +611,7 @@ sub getKeywordVariables {
KEYWORD: foreach my $member (@{ $hierarchy }) {
my $varBlock = clone $member;
$varBlock->{level} = $level;
$varBlock->{isTopLevel} = $level == 0;
$varBlock->{indent_loop} = [ map { { indent => $_ } } 1..$level ];
delete $varBlock->{children};
push @{$variables}, $varBlock;
@ -865,20 +865,30 @@ sub www_byKeyword {
}
@pages = sort { lc($a->{title}) cmp lc($b->{title}) } @pages;
my $var = {
keyword => $keyword,
pagesLoop => \@pages,
};
keyword => $keyword,
pagesLoop => \@pages,
canAdminister => $self->canAdminister,
recentChangesUrl => $self->getUrl("func=recentChanges"),
mostPopularUrl => $self->getUrl("func=mostPopular"),
wikiHomeUrl => $self->getUrl,
};
$p->appendTemplateVars($var);
if ($self->canAdminister) {
$var->{formHeader} = WebGUI::Form::formHeader($session, {action => $self->getUrl, method => 'GET'})
. WebGUI::Form::hidden($session, { name => 'func', value => 'subKeywordSave',})
. WebGUI::Form::hidden($session, { name => 'thisKeyword', value => $keyword,});
my $subKeywords = $self->getSubKeywords($keyword);
my $keywordHierarchy = $self->getKeywordHierarchy($subKeywords);
$var->{keywords_loop} = $self->getKeywordVariables($keywordHierarchy);
if ($var->{canAdminister}) {
$var->{formHeader} = WebGUI::Form::formHeader($session, {action => $self->getUrl})
. WebGUI::Form::hidden($session, { name => 'func', value => 'subKeywordSave',})
. WebGUI::Form::hidden($session, { name => 'keyword', value => $keyword,});
my $subKeywords = join ', ', @{ $self->getSubKeywords($keyword) };
$var->{keywordForm} = WebGUI::Form::keyword($session, {
$var->{keywordForm} = WebGUI::Form::keywords($session, {
name => 'subKeywords',
value => $session->form->get('subKeywords') || $subKeywords,
});
$var->{formFooter} = WebGU::Form::formHeader($session);
$var->{submitForm} = WebGUI::Form::submit($session, {});
$var->{formFooter} = WebGUI::Form::formFooter($session);
}
return $self->processStyle($self->processTemplate($var, $self->get('byKeywordTemplateId')));
}
@ -998,7 +1008,7 @@ sub www_subKeywordSave {
my $form = $self->session->form;
my $subKeywords = $form->process('subKeywords', 'keywords');
my $keyword = $form->process('thisKeyword');
my $keyword = $form->process('keyword');
my @subKeywords = @{ WebGUI::Keyword::string2list($subKeywords) };
$self->setSubKeywords($keyword, @subKeywords);

View file

@ -91,6 +91,9 @@ our $HELP = {
{ namespace => "Asset_WikiMaster",
tag => "wiki master asset variables"
},
{ namespace => "Asset_WikiMaster",
tag => "keyword page variables"
},
],
variables => [
{ 'name' => 'searchLabel',
@ -102,26 +105,6 @@ our $HELP = {
{ 'name' => 'recentChangesLabel variable', },
{ 'name' => 'addPageUrl', },
{ 'name' => 'addPageLabel', },
{ 'name' => 'keywords_loop',
'variables' => [
{ 'name' => 'title',
'description' => 'keyword title',
},
{ 'name' => 'url',
'description' => 'keyword url',
},
{ 'name' => 'level',
'description' => 'keyword level',
},
{ 'name' => 'indent_loop',
'variables' => [
{ 'name' => 'indent',
'description' => 'keyword indent',
},
],
},
],
},
],
fields => [],
related => [],
@ -282,11 +265,16 @@ our $HELP = {
title => 'by keyword template title',
body => '',
isa => [
{ namespace => "Asset_WikiMaster",
tag => "keyword page variables"
},
{ namespace => "WebGUI",
tag => "pagination template variables"
},
],
variables => [
{ 'name' => 'mostPopularUrl', },
{ 'name' => 'recentChangesUrl', },
{ name => 'keyword',
description => 'by keyword keyword',
},
@ -310,6 +298,9 @@ our $HELP = {
{ name => 'keywordForm',
description => 'by keyword keywordForm',
},
{ name => 'submitForm',
description => 'by keyword submitForm',
},
{ name => 'formFooter',
description => 'by keyword formFooter',
},
@ -318,6 +309,43 @@ our $HELP = {
related => [],
},
'keyword page variables' => {
title => 'keyword page variables',
body => '',
isa => [ ],
private => 1,
variables => [
{ 'name' => 'keywords_loop',
'variables' => [
{ 'name' => 'title',
'description' => 'keyword title',
},
{ 'name' => 'url',
'description' => 'keyword url',
},
{ 'name' => 'level',
'description' => 'keyword level',
},
{ 'name' => 'descendants',
'description' => 'keyword descendants',
},
{ 'name' => 'isTopLevel',
'description' => 'keyword isTopLevel',
},
{ 'name' => 'indent_loop',
'variables' => [
{ 'name' => 'indent',
'description' => 'keyword indent',
},
],
},
],
},
],
fields => [],
related => [],
},
};

View file

@ -537,7 +537,7 @@ listing of pages that are related to a specific keyword?| },
},
'keywords_loop' => {
message => q{A loop containing all the top level keywords, links to their keyword pages, and all sub pages below them.},
message => q{A loop containing all the top level keywords for this page, links to their keyword pages, and all sub pages below them.},
lastUpdated => 0,
context => q{Help for template variable},
},
@ -560,6 +560,12 @@ listing of pages that are related to a specific keyword?| },
context => q{Help for template variable},
},
'keyword descendants' => {
message => q{The number of wiki pages that are tagged with this keyword, and all sub-keywords of this keyword.},
lastUpdated => 0,
context => q{Help for template variable},
},
'indent_loop' => {
message => q{A loop that runs 1 time for each level.},
lastUpdated => 0,
@ -626,6 +632,30 @@ listing of pages that are related to a specific keyword?| },
context => q{Help for template variable},
},
'by keyword submitForm' => {
message => q{A button to submit the sub-keywords form.},
lastUpdated => 0,
context => q{Help for template variable},
},
'Related Pages' => {
message => q{Related Pages},
lastUpdated => 0,
context => q{template label},
},
'keyword page variables' => {
message => q{Keyword Page Variables},
lastUpdated => 0,
context => q{template variable help},
},
'keyword isTopLevel' => {
message => q{Whether or not the keyword is one of the keywords for the page that was called. For the Wiki Front Page, it will only include top level keywords. For a keyword page, it would be true for any sub-keywords of this page.},
lastUpdated => 0,
context => q{template variable help},
},
};
1;