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
|
7.10.8
|
||||||
- rfe #12016 for the top story as well
|
- rfe #12016 for the top story as well
|
||||||
|
- fixed #12029: issue with keywords
|
||||||
- fixed #11965: Friend Manager only shows 15 people
|
- fixed #11965: Friend Manager only shows 15 people
|
||||||
- fixed #12023: International URLs of aattachments & files in folder
|
- fixed #12023: International URLs of aattachments & files in folder
|
||||||
- fixed #12024: Copied Collaboration System re-sends subscription mail
|
- fixed #12024: Copied Collaboration System re-sends subscription mail
|
||||||
|
|
|
||||||
|
|
@ -211,11 +211,20 @@ sub generateCloud {
|
||||||
[ $options->{startAsset}->get("lineage").'%', @extraPlaceholders, $maxKeywords ]);
|
[ $options->{startAsset}->get("lineage").'%', @extraPlaceholders, $maxKeywords ]);
|
||||||
my $cloud = HTML::TagCloud->new(levels=>$options->{cloudLevels} || 24);
|
my $cloud = HTML::TagCloud->new(levels=>$options->{cloudLevels} || 24);
|
||||||
while (my ($count, $keyword) = $sth->array) {
|
while (my ($count, $keyword) = $sth->array) {
|
||||||
my $url
|
my $url;
|
||||||
= $urlCallback ? $display->$urlCallback($keyword)
|
if ($urlCallback) {
|
||||||
: $options->{displayFunc} ? $display->getUrl("func=".$options->{displayFunc}.";keyword=".$keyword)
|
$url = $display->$urlCallback($keyword);
|
||||||
: $display->getUrl("keyword=".$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);
|
$cloud->add($keyword, $url, $count);
|
||||||
}
|
}
|
||||||
return $cloud->html_and_css($maxKeywords);
|
return $cloud->html_and_css($maxKeywords);
|
||||||
|
|
|
||||||
17
t/Keyword.t
17
t/Keyword.t
|
|
@ -17,7 +17,7 @@ use WebGUI::Keyword;
|
||||||
use WebGUI::Asset;
|
use WebGUI::Asset;
|
||||||
# load your modules here
|
# 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 Test::Deep;
|
||||||
use Data::Dumper;
|
use Data::Dumper;
|
||||||
|
|
||||||
|
|
@ -30,12 +30,12 @@ isa_ok($home, "WebGUI::Asset");
|
||||||
my $keyword = WebGUI::Keyword->new($session);
|
my $keyword = WebGUI::Keyword->new($session);
|
||||||
isa_ok($keyword, "WebGUI::Keyword");
|
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]);
|
my ($count) = $session->db->quickArray("select count(*) from assetKeyword where assetId=?", [$home->getId]);
|
||||||
is($count, 3, "setKeywordsForAsset() create");
|
is($count, 3, "setKeywordsForAsset() create");
|
||||||
cmp_bag(
|
cmp_bag(
|
||||||
$keyword->getKeywordsForAsset({ asset => $home, asArrayRef => 1}),
|
$keyword->getKeywordsForAsset({ asset => $home, asArrayRef => 1}),
|
||||||
['test key', 'word', 'foo bar'],
|
['test key', 'word', 'foo & bar'],
|
||||||
'... check correct keywords set, returns array ref'
|
'... check correct keywords set, returns array ref'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -43,10 +43,19 @@ my $keywords = $keyword->getKeywordsForAsset({ asset => $home, });
|
||||||
my @keywords = split ',\s*', $keywords;
|
my @keywords = split ',\s*', $keywords;
|
||||||
cmp_bag(
|
cmp_bag(
|
||||||
\@keywords,
|
\@keywords,
|
||||||
['test key', 'word', 'foo bar'],
|
['test key', 'word', 'foo & bar'],
|
||||||
'... check correct keywords set, returns string'
|
'... 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"});
|
$keyword->setKeywordsForAsset({ asset=>$home, keywords=>"webgui, rules"});
|
||||||
my ($count) = $session->db->quickArray("select count(*) from assetKeyword where assetId=?", [$home->getId]);
|
my ($count) = $session->db->quickArray("select count(*) from assetKeyword where assetId=?", [$home->getId]);
|
||||||
is($count, 2, "setKeywordsForAsset() update");
|
is($count, 2, "setKeywordsForAsset() update");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue