From 8ebfe3f788881bb7cc554c02a9de3d8b75a6db0a Mon Sep 17 00:00:00 2001 From: JT Smith Date: Tue, 18 Jun 2002 04:14:40 +0000 Subject: [PATCH] templatePosition is set to '0' on any wobject that belongs to a page where the templatePosition is higher than the number of positions available. --- lib/WebGUI/Operation/Page.pm | 2 ++ lib/WebGUI/Template.pm | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/WebGUI/Operation/Page.pm b/lib/WebGUI/Operation/Page.pm index b3002e7af..06d15e5ed 100644 --- a/lib/WebGUI/Operation/Page.pm +++ b/lib/WebGUI/Operation/Page.pm @@ -231,6 +231,8 @@ sub www_editPageSave { menuTitle=".quote($session{form}{menuTitle}).", synopsis=".quote($session{form}{synopsis})." where pageId=$session{form}{pageId}"); + WebGUI::SQL->write("update wobject set templatePosition=0 where pageId=$session{form}{pageId} + and templatePosition>".(WebGUI::Template::countPositions($session{form}{templateId})-1)); _recursivelyChangeStyle($session{page}{pageId}) if ($session{form}{recurseStyle}); _recursivelyChangePrivileges($session{page}{pageId}) if ($session{form}{recursePrivs}); WebGUI::Session::refreshPageInfo($session{page}{pageId}) if ($session{form}{pageId} == $session{page}{pageId}); diff --git a/lib/WebGUI/Template.pm b/lib/WebGUI/Template.pm index 988d90fc2..06c8a890a 100644 --- a/lib/WebGUI/Template.pm +++ b/lib/WebGUI/Template.pm @@ -17,6 +17,17 @@ use WebGUI::HTMLForm; use WebGUI::Session; use WebGUI::SQL; +#------------------------------------------------------------------- +sub countPositions { + my ($template, $i); + ($template) = WebGUI::SQL->quickArray("select template from template where templateId=".$_[0]); + $i = 0; + while ($template =~ m/\^$i\;/) { + $i++; + } + return $i; +} + #------------------------------------------------------------------- sub generate { my ($output, $content, %template); @@ -36,7 +47,7 @@ sub getList { #------------------------------------------------------------------- sub getPositions { - my ($cmd, %hash, $template, $i); + my (%hash, $template, $i); tie %hash, "Tie::IxHash"; ($template) = WebGUI::SQL->quickArray("select template from template where templateId=".$_[0]); $i = 0;