diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index e115eb319..4bbbb8fd4 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -6,6 +6,7 @@ - fixed: changing image thumbnail size doesn't resize image - fixed: loadAddConfigs loads hidden files - ensure proper XML encoding for ITransact messages + - fixed: fatal error duplicate keywords added to a wiki page 7.5.5 - fixed: Several typos in the new Calendar help documentation. diff --git a/lib/WebGUI/Keyword.pm b/lib/WebGUI/Keyword.pm index ea393662b..72f93dcbb 100644 --- a/lib/WebGUI/Keyword.pm +++ b/lib/WebGUI/Keyword.pm @@ -268,18 +268,20 @@ sub setKeywordsForAsset { else { @{$keywords} = split(" ", $options->{keywords}); } + $self->deleteKeywordsForAsset($options->{asset}); my $assetId = $options->{asset}->getId; if (scalar(@{$keywords})) { my $sth = $self->session->db->prepare("insert into assetKeyword (assetId, keyword) values (?,?)"); + my %found_keywords; foreach my $keyword (@{$keywords}) { next if ($keyword eq ""); + next + if $found_keywords{$keyword}; + $found_keywords{$keyword}++; $sth->execute([$assetId, lc($keyword)]); } } - else { - $self->deleteKeywordsForAsset($options->{asset}); - } }