From 6da85b89a7323ca519bc98411e680beb8449f665 Mon Sep 17 00:00:00 2001 From: Doug Bell Date: Thu, 10 Sep 2009 15:57:59 -0500 Subject: [PATCH] add #455: Featured page in wiki --- .../default-wiki-front-page.wgpkg | Bin 1422 -> 1508 bytes .../default-wiki-page-edit.wgpkg | Bin 0 -> 1367 bytes .../packages-7.8.0/default-wiki-page.wgpkg | Bin 2394 -> 2389 bytes docs/upgrades/upgrade_7.7.19-7.8.0.pl | 14 ++++ lib/WebGUI/Asset/WikiPage.pm | 7 ++ lib/WebGUI/Asset/Wobject/WikiMaster.pm | 47 +++++++++++ lib/WebGUI/i18n/English/Asset_WikiPage.pm | 7 ++ t/Asset/Wobject/WikiMaster/featured.t | 77 ++++++++++++++++++ 8 files changed, 152 insertions(+) create mode 100644 docs/upgrades/packages-7.8.0/default-wiki-page-edit.wgpkg create mode 100644 t/Asset/Wobject/WikiMaster/featured.t diff --git a/docs/upgrades/packages-7.8.0/default-wiki-front-page.wgpkg b/docs/upgrades/packages-7.8.0/default-wiki-front-page.wgpkg index b868f20c4a277a5b358a991203a62f7c167ce948..55bb375f03b4248e5a331ccb5513ea3ab8d8f9c6 100644 GIT binary patch literal 1508 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 diff --git a/docs/upgrades/packages-7.8.0/default-wiki-page-edit.wgpkg b/docs/upgrades/packages-7.8.0/default-wiki-page-edit.wgpkg new file mode 100644 index 0000000000000000000000000000000000000000..988dd10f599e3a076155c6298bcf8c9ab19ebba6 GIT binary patch literal 1367 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 H04M+e-JYY- literal 2394 zcmV-g38nTQiwFP!00000|Lt0BQyV!F=JWmv9s2=8VUG>i>>0;Z*+7=m{Np8ON97zhAdB8qEx2paN{=t}>}&Y;~)<)!piTB&W6Z_)ojt-tTtT*6`iy znRk07&o7kU)KE<|Okt&dIR7w2{A_&POpqIY824fl~2BA_g zGL>u$BflS^DAicbc`%yuI0`f!U2?Vvs8UQT_q7GHHVA6*2zF5U4!a-MG8_a}(s1y#ib9bjEYw^if&bW?@#NuD zu$W=O2HCqgVwygz1{d+{y+SyqQz;TAkA^=k_ytd4_p~5|nhCvxtRe0*i8-NPMnXnR z_B-ikqD0Ii@*|YWgR9ju!Ic`8oK0+Mkya;LkA?#B$4ff7N zig^-2?!`j(M=^{X*w2e8*X*FAs=45ip7z@ZDUBkYObQm%F9?nI?kK4?UU34xMxt}m zjLHd5jGLO^J2|Kug z&5S8J^yO155+>g(CSTa20xMXs> z?2L)2_L(!#Vti}|Ahrd#<B>|tbwKY57X{Y}G30K{ zMF!hpDI@ci=;ajJ+Sm8SJiUA#ujr9AoY#6K^5i=zFCpIcEpL6PftKdEW{QKpp_(H> z)=WPD?0XAn-~?Jfz&ZPLJTHI*(^n%lrt??>aJt}4#EG7Tt79HTEU6xQxOyvv7I{w5g?(xIippec${#0pLW zFdSs_hPd)U#4m|K6>!QJ1ESG=B5`}d*}>4A60Y9ON7!jcEHac+J)rK0d{!{zj}Vz}a0Whud0b_x za2PJ=iB6OQ`M~Bwk#C2r)F6?~3P$6}_a*jAFdPZs=Rpv2vjSsC_9suTkS3Uncqp#Z z!+>^82@cjNDJP#(HwfmCDw+4pDlseFGSOpxF-5kVwdCy8ypF%%jf@#w;6m(-a&Op4 zmE^r(%LViqWwU7Wpiiu?VgUysM|=ri3hpZG5W6k%0bEcv$pnLBK0;|Qkd_>i8&!0W z%d$|+%)Jjr!)#l-_wC?{71poYPKVNx#~$^SyzIiBE5dD8XL}88@A9mhh|e- zB57=7Iq`S6d|Ga7uhi(Kz%d!5H|kV2N@&vQ!nZ-JeX`*LHRX6mx3s%vW4oH?ZgNC5 zeJ8`ZsaX70PYmH&kR8J8KGAZ{s`9Tky+f|DA`F>%wb`&=@{1&#Sn3)XsOXcQ;9y>= zMSgLLQ5jCN>RcUmg@O*re~7PSIU8!638mkPbRJWAO-g}wn<%(A#IyLbDNQC!RVAUK z62q0~`JF{zboU+Hb#ql3gErcD(I18g!Hi>3E8Q8@Ja&gZj{5hN@?v(9KWoq8(j0 zH`mMSG=(eg%i^`PL3{7`zwH`&-Tkh&Af*!SRgB&h&g%D%PhP#e?mDhs3cRnjSLmfn za;`E*Ro7FDw4rt2m$aYSyWRc5Ww~UR9FZREVry|-OaNK}$aZ;Abm>$qUL?%?Fc(7ZditOt~U;&Np5umCcTNe&tw z6fhc)XjWej46i%J13{#fFp;@@cQECV0iJ_|pbm4%20BM~r4>1Fau+0*<%v6=B-ZNTS3Dkvo8q7=#x4`gk7Kn!e|ZTDoCPmqP+oL#dwhE zuSQW0EnVlpt-7)8K@nmiz(7~<4-ikV_36`aE672QiIO`eKRVzc1w@mT6uY_5uLYV1 z7xlpDX0%hL-YUx>nrj9*f|p>E$hT6KgmRf`(=rTL@gz+r*=@`CZ+{%WR=t1iUK}01 z{OynPz2~F99!@+bRQe@c5X`Er$uvdRY>U5F1Gq51R@cD`^CNeulXiODy&cs zGV^}joBww9tlQnE@+9pYo}Dj#?wtSX&C6S8W*`3Qe)YrEH}l^Fz8mu01K&OHf9Qe# M0u~6(U;rop00fYq@c;k- diff --git a/docs/upgrades/upgrade_7.7.19-7.8.0.pl b/docs/upgrades/upgrade_7.7.19-7.8.0.pl index 9a8bfd454..5257bef4e 100644 --- a/docs/upgrades/upgrade_7.7.19-7.8.0.pl +++ b/docs/upgrades/upgrade_7.7.19-7.8.0.pl @@ -35,6 +35,7 @@ reorganizeAdSpaceProperties($session); fixTemplateSettingsFromShunt($session); addSubscribableAspect( $session ); addMatrixColumnDefaults($session); +addFeaturedPageWiki( $session ); finish($session); # this line required @@ -48,6 +49,19 @@ finish($session); # this line required # print "DONE!\n" unless $quiet; #} +#---------------------------------------------------------------------------- +# Add the column for featured wiki pages +sub exampleFunction { + my $session = shift; + print "\tAdding featured pages to the Wiki " unless $quiet; + + $session->db->write( + "ALTER TABLE WikiPage ADD COLUMN isFeatured INT(1)", + ); + + print "DONE!\n" unless $quiet; +} + #---------------------------------------------------------------------------- # Add tables for the subscribable aspect sub addSubscribableAspect { diff --git a/lib/WebGUI/Asset/WikiPage.pm b/lib/WebGUI/Asset/WikiPage.pm index fce1f881b..b46d335e7 100644 --- a/lib/WebGUI/Asset/WikiPage.pm +++ b/lib/WebGUI/Asset/WikiPage.pm @@ -125,6 +125,11 @@ sub definition { defaultValue => '', noFormPost => 1, }, + isFeatured => { + fieldType => "yesNo", + defaultValue => 0, + noFormPost => 1, + }, ); push @$definition, @@ -205,6 +210,7 @@ sub getEditForm { formContent => WebGUI::Form::HTMLArea($session, { name => 'content', richEditId => $wiki->get('richEditor'), value => $self->get('content') }) , formSubmit => WebGUI::Form::submit($session, { value => 'Save' }), formProtect => WebGUI::Form::yesNo($session, { name => "isProtected", value=>$self->getValue("isProtected")}), + formFeatured => WebGUI::Form::yesNo( $session, { name => 'isFeatured', value=>$self->getValue('isFeatured')}), formKeywords => WebGUI::Form::keywords($session, { name => "keywords", value => WebGUI::Keyword->new($session)->getKeywordsForAsset({asset=>$self}), @@ -404,6 +410,7 @@ sub processPropertiesFromFormPost { if ($wiki->canAdminister) { $properties->{isProtected} = $self->session->form->get("isProtected"); + $properties->{isFeatured} = $self->session->form->get("isFeatured"); } $self->update($properties); diff --git a/lib/WebGUI/Asset/Wobject/WikiMaster.pm b/lib/WebGUI/Asset/Wobject/WikiMaster.pm index fa4e9a409..1d4d8829d 100644 --- a/lib/WebGUI/Asset/Wobject/WikiMaster.pm +++ b/lib/WebGUI/Asset/Wobject/WikiMaster.pm @@ -25,6 +25,24 @@ use URI::Escape; #------------------------------------------------------------------- +=head2 appendFeaturedPageVars ( var, asset ) + +Append the template variables to C for the featured page C. Returns +the C for convenience. + +=cut + +sub appendFeaturedPageVars { + my ( $self, $var, $asset ) = @_; + my $assetVar = $asset->getTemplateVars; + for my $key ( keys %{$assetVar} ) { + $var->{ 'featured_' . $key } = $assetVar->{$key}; + } + return $var; +} + +#------------------------------------------------------------------- + =head2 appendMostPopular ($var, [ $limit ]) =head3 $var @@ -419,6 +437,25 @@ sub definition { #------------------------------------------------------------------- +=head2 getFeaturedPageIds ( ) + +Get the asset IDs of the pages that are marked as Featured. + +=cut + +sub getFeaturedPageIds { + my ( $self ) = @_; + + my $assetIds = $self->getLineage( ['children'], { + joinClass => 'WebGUI::Asset::WikiPage', + whereClause => 'isFeatured = 1', + } ); + + return $assetIds; +} + +#------------------------------------------------------------------- + =head2 getRssFeedItems () Returns an array reference of hash references. Each hash reference has a title, @@ -547,6 +584,7 @@ Render the front page of the wiki. sub view { my $self = shift; + my $session = $self->session; my $var = $self->getTemplateVars; $var->{ description } = $self->autolinkHtml( $var->{ description } ); $var->{ keywordCloud } @@ -555,6 +593,15 @@ sub view { displayFunc=>"byKeyword", }); my $template = $self->{_frontPageTemplate}; + + # Get a random featured page + my $featuredIds = $self->getFeaturedPageIds; + my $featuredId = $featuredIds->[ int( rand @$featuredIds ) - 1 ]; + my $featured = WebGUI::Asset->newByDynamicClass( $session, $featuredId ); + if ( $featured ) { + $self->appendFeaturedPageVars( $var, $featured ); + } + $self->appendSearchBoxVars($var); $self->appendRecentChanges($var, $self->get('recentChangesCountFront')); $self->appendMostPopular($var, $self->get('mostPopularCountFront')); diff --git a/lib/WebGUI/i18n/English/Asset_WikiPage.pm b/lib/WebGUI/i18n/English/Asset_WikiPage.pm index bd13bddf4..18e320002 100644 --- a/lib/WebGUI/i18n/English/Asset_WikiPage.pm +++ b/lib/WebGUI/i18n/English/Asset_WikiPage.pm @@ -303,6 +303,13 @@ our $I18N = lastUpdated => 0, context => 'Body text for help page', }, + + + 'isFeatured label' => { + message => q{Feature this on the front page}, + lastUpdated => 0, + context => 'Label for asset property', + }, }; 1; diff --git a/t/Asset/Wobject/WikiMaster/featured.t b/t/Asset/Wobject/WikiMaster/featured.t new file mode 100644 index 000000000..c070bfb44 --- /dev/null +++ b/t/Asset/Wobject/WikiMaster/featured.t @@ -0,0 +1,77 @@ +# vim:syntax=perl +#------------------------------------------------------------------- +# WebGUI is Copyright 2001-2009 Plain Black Corporation. +#------------------------------------------------------------------- +# Please read the legal notices (docs/legal.txt) and the license +# (docs/license.txt) that came with this distribution before using +# this software. +#------------------------------------------------------------------ +# http://www.plainblack.com info@plainblack.com +#------------------------------------------------------------------ + +# Test the featured page of the Wiki +# +# + +use FindBin; +use strict; +use lib "$FindBin::Bin/../../../lib"; +use Test::More; +use Test::Deep; +use WebGUI::Test; # Must use this before any other WebGUI modules +use WebGUI::Session; + +#---------------------------------------------------------------------------- +# Init +my $session = WebGUI::Test->session; +my $import = WebGUI::Asset->getImportNode( $session ); + +my $wiki + = $import->addChild( { + className => 'WebGUI::Asset::Wobject::WikiMaster', + } ); + +my $page + = $wiki->addChild( { + className => 'WebGUI::Asset::WikiPage', + }, undef, undef, { skipAutoCommitWorkflows => 1 } ); + +my $featuredPage + = $wiki->addChild( { + className => 'WebGUI::Asset::WikiPage', + isFeatured => 1, + title => "Escape From Shawshank!", + content => 'A how-to book', + }, undef, undef, { skipAutoCommitWorkflows => 1 } ); + +WebGUI::Test->tagsToRollback( WebGUI::VersionTag->getWorking( $session ) ); + +#---------------------------------------------------------------------------- +# Tests + +plan tests => 2; # Increment this number for each test you create + +#---------------------------------------------------------------------------- +# + +cmp_deeply( + $wiki->getFeaturedPageIds, + [ $featuredPage->getId ], + "getFeaturedPageIds contains only featured pages", +); + +cmp_deeply( + $wiki->appendFeaturedPageVars({}, $featuredPage), + superhashof( { + featured_title => $featuredPage->get('title'), + featured_content => $featuredPage->get('content'), + } ), + "appendFeaturedPageVars returns correct variables, prefixed with 'featured_'", +); + +#---------------------------------------------------------------------------- +# Cleanup +END { + +} +#vim:ft=perl