@@ -, +, @@ <> [%opac_news.content %] << opac_news.content>> [% opac_news.content %] --- installer/data/mysql/db_revs/210600016.pl | 33 +++++++++++++---------- 1 file changed, 19 insertions(+), 14 deletions(-) --- a/installer/data/mysql/db_revs/210600016.pl +++ a/installer/data/mysql/db_revs/210600016.pl @@ -38,14 +38,18 @@ return { |); } - $dbh->do(q| - UPDATE letter - SET content = REGEXP_REPLACE(content, '<<\\\\s*opac_news\.', '<do(q| - UPDATE letter - SET content = REGEXP_REPLACE(content, '\\\\[%\\\\s*opac_news\.', '[% additional_contents.') + my $contents = $dbh->selectall_arrayref(q|SELECT * FROM additional_contents|, { Slice => {} }); + my $sth_update = $dbh->prepare(q| + UPDATE additional_contents + SET content=? + WHERE idnew=? |); + for my $c ( @$contents ) { + my $content = $c->{content}; + $content =~ s|<<\s*opac_news\.|<execute($content, $c->{idnew}); + } $dbh->do(q| UPDATE systempreferences @@ -82,7 +86,14 @@ return { |); } - my $contents = $dbh->selectall_arrayref(q|SELECT * FROM additional_contents|, { Slice => {} }); + $sth_update = $dbh->prepare(q| + UPDATE additional_contents + SET category=?, location=?, lang=? + WHERE idnew=? + |); + + + $contents = $dbh->selectall_arrayref(q|SELECT * FROM additional_contents|, { Slice => {} }); for my $c ( @$contents ) { my ( $category, $location, $new_lang ); if ( $c->{lang} eq '' ) { @@ -113,12 +124,6 @@ return { $new_lang = "default" if $new_lang eq 'en'; # Assume that "en" is "default" - my $sth_update = $dbh->prepare(q| - UPDATE additional_contents - SET category=?, location=?, lang=? - WHERE idnew=? - |); - my $parent_idnew; if ( $new_lang ne 'default' ) { $dbh->do(q| --