fixed #12029: issue with keywords
This commit is contained in:
parent
48c834eb75
commit
48bbec5c6f
3 changed files with 28 additions and 9 deletions
|
|
@ -1,5 +1,6 @@
|
|||
7.10.8
|
||||
- rfe #12016 for the top story as well
|
||||
- fixed #12029: issue with keywords
|
||||
- fixed #11965: Friend Manager only shows 15 people
|
||||
- fixed #12023: International URLs of aattachments & files in folder
|
||||
- fixed #12024: Copied Collaboration System re-sends subscription mail
|
||||
|
|
|
|||
|
|
@ -211,11 +211,20 @@ sub generateCloud {
|
|||
[ $options->{startAsset}->get("lineage").'%', @extraPlaceholders, $maxKeywords ]);
|
||||
my $cloud = HTML::TagCloud->new(levels=>$options->{cloudLevels} || 24);
|
||||
while (my ($count, $keyword) = $sth->array) {
|
||||
my $url
|
||||
= $urlCallback ? $display->$urlCallback($keyword)
|
||||
: $options->{displayFunc} ? $display->getUrl("func=".$options->{displayFunc}.";keyword=".$keyword)
|
||||
: $display->getUrl("keyword=".$keyword)
|
||||
;
|
||||
my $url;
|
||||
if ($urlCallback) {
|
||||
$url = $display->$urlCallback($keyword);
|
||||
}
|
||||
else {
|
||||
my %q = ( keyword => $keyword );
|
||||
my $e = $self->session->url;
|
||||
if (my $func = $options->{displayFunc}) {
|
||||
$q{displayFunc} = $func;
|
||||
}
|
||||
$url = $display->getUrl(
|
||||
join(';', map { join '=', $_, $e->escape($q{$_}) } keys %q)
|
||||
);
|
||||
}
|
||||
$cloud->add($keyword, $url, $count);
|
||||
}
|
||||
return $cloud->html_and_css($maxKeywords);
|
||||
|
|
|
|||
17
t/Keyword.t
17
t/Keyword.t
|
|
@ -17,7 +17,7 @@ use WebGUI::Keyword;
|
|||
use WebGUI::Asset;
|
||||
# load your modules here
|
||||
|
||||
use Test::More tests => 16; # increment this value for each test you create
|
||||
use Test::More tests => 17; # increment this value for each test you create
|
||||
use Test::Deep;
|
||||
use Data::Dumper;
|
||||
|
||||
|
|
@ -30,12 +30,12 @@ isa_ok($home, "WebGUI::Asset");
|
|||
my $keyword = WebGUI::Keyword->new($session);
|
||||
isa_ok($keyword, "WebGUI::Keyword");
|
||||
|
||||
$keyword->setKeywordsForAsset({ asset=>$home, keywords=>"test key, word, foo bar"});
|
||||
$keyword->setKeywordsForAsset({ asset=>$home, keywords=>"test key, word, foo & bar"});
|
||||
my ($count) = $session->db->quickArray("select count(*) from assetKeyword where assetId=?", [$home->getId]);
|
||||
is($count, 3, "setKeywordsForAsset() create");
|
||||
cmp_bag(
|
||||
$keyword->getKeywordsForAsset({ asset => $home, asArrayRef => 1}),
|
||||
['test key', 'word', 'foo bar'],
|
||||
['test key', 'word', 'foo & bar'],
|
||||
'... check correct keywords set, returns array ref'
|
||||
);
|
||||
|
||||
|
|
@ -43,10 +43,19 @@ my $keywords = $keyword->getKeywordsForAsset({ asset => $home, });
|
|||
my @keywords = split ',\s*', $keywords;
|
||||
cmp_bag(
|
||||
\@keywords,
|
||||
['test key', 'word', 'foo bar'],
|
||||
['test key', 'word', 'foo & bar'],
|
||||
'... check correct keywords set, returns string'
|
||||
);
|
||||
|
||||
my $cloud = $keyword->generateCloud(
|
||||
{
|
||||
startAsset => $home,
|
||||
displayFunc => 'view',
|
||||
}
|
||||
);
|
||||
my $url = $session->url->escape('foo & bar');
|
||||
like($cloud, qr/\Q$url\E/, 'escaped urls in generateCloud');
|
||||
|
||||
$keyword->setKeywordsForAsset({ asset=>$home, keywords=>"webgui, rules"});
|
||||
my ($count) = $session->db->quickArray("select count(*) from assetKeyword where assetId=?", [$home->getId]);
|
||||
is($count, 2, "setKeywordsForAsset() update");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue