From d49b7a7077f4012b5499c2fba46b1da56f16f220 Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Fri, 7 Mar 2008 20:53:23 +0000 Subject: [PATCH] fixed: fatal error duplicate keywords added to a wiki page --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Keyword.pm | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) 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}); - } }