diff --git a/docs/upgrades/upgrade_4.8.0-4.9.0.sql b/docs/upgrades/upgrade_4.8.0-4.9.0.sql index 969106b8c..d555a4e49 100644 --- a/docs/upgrades/upgrade_4.8.0-4.9.0.sql +++ b/docs/upgrades/upgrade_4.8.0-4.9.0.sql @@ -976,6 +976,7 @@ alter table SiteMap drop column lineSpacing; INSERT INTO template VALUES (1,'Default Site Map','\r\n

\r\n
\r\n\r\n\r\n

\r\n\r\n\r\n\r\n ·\">
\r\n
','SiteMap'); INSERT INTO template VALUES (2,'Descriptive Site Map','\r\n

\r\n
\r\n\r\n\r\n

\r\n\r\n\r\n\r\n \"> \r\n \r\n - \r\n \r\n

\r\n','SiteMap'); alter table page add column languageId int not null default 1; +insert into international (internationalId,languageId,namespace,message,lastUpdated) values (823,1,'WebGUI','Go to the new page.', 1038706332); diff --git a/lib/WebGUI/Operation/Page.pm b/lib/WebGUI/Operation/Page.pm index 1062c43fa..d939e022d 100644 --- a/lib/WebGUI/Operation/Page.pm +++ b/lib/WebGUI/Operation/Page.pm @@ -318,6 +318,19 @@ sub www_editPage { -subtext=>'   '.WebGUI::International::get(116), -uiLevel=>9 ); + $f->raw( + -value=>'


', + -uiLevel=>5 + ); + if ($page{pageId} eq "new") { + $f->whatNext( + -options=>{ + gotoNewPage=>WebGUI::International::get(823), + backToPage=>WebGUI::International::get(745) + }, + -value=>"gotoNewPage" + ); + } $f->submit; $output .= $f->print; return $output; @@ -334,51 +347,51 @@ sub www_editPageSave { } else { $pageId = $session{form}{pageId}; } - if (WebGUI::Privilege::canEditPage($pageId)) { - if ($session{form}{pageId} eq "new") { - ($nextSeq) = WebGUI::SQL->quickArray("select max(sequenceNumber) from page where parentId=$session{form}{parentId}"); - $nextSeq++; - $session{form}{pageId} = getNextId("pageId"); - WebGUI::SQL->write("insert into page (pageId,sequenceNumber,parentId) - values ($session{form}{pageId},$nextSeq,$session{form}{parentId})"); - } - $session{form}{title} = "no title" if ($session{form}{title} eq ""); - $session{form}{menuTitle} = $session{form}{title} if ($session{form}{menuTitle} eq ""); - $session{form}{urlizedTitle} = $session{form}{menuTitle} if ($session{form}{urlizedTitle} eq ""); - $session{form}{urlizedTitle} = WebGUI::URL::makeUnique(WebGUI::URL::urlize($session{form}{urlizedTitle}),$session{form}{pageId}); - $session{form}{startDate} = setToEpoch($session{form}{startDate}) || setToEpoch(time()); - $session{form}{endDate} = setToEpoch($session{form}{endDate}) || setToEpoch(addToDate(time(),10)); - WebGUI::SQL->write("update page set - title=".quote($session{form}{title}).", - styleId=$session{form}{styleId}, - ownerId=$session{form}{ownerId}, - ownerView=$session{form}{ownerView}, - ownerEdit=$session{form}{ownerEdit}, - groupId='$session{form}{groupId}', - groupView=$session{form}{groupView}, - groupEdit=$session{form}{groupEdit}, - worldView=$session{form}{worldView}, - worldEdit=$session{form}{worldEdit}, - startDate=$session{form}{startDate}, - endDate=$session{form}{endDate}, - metaTags=".quote($session{form}{metaTags}).", - urlizedTitle='$session{form}{urlizedTitle}', - redirectURL='$session{form}{redirectURL}', - languageId='$session{form}{languageId}', - defaultMetaTags='$session{form}{defaultMetaTags}', - templateId='$session{form}{templateId}', - menuTitle=".quote($session{form}{menuTitle}).", - synopsis=".quote($session{form}{synopsis})." - where pageId=$session{form}{pageId}"); - WebGUI::SQL->write("update wobject set templatePosition=1 where pageId=$session{form}{pageId} - and templatePosition>".WebGUI::Template::countPositions($session{form}{templateId})); - _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}); - return ""; - } else { - return WebGUI::Privilege::insufficient(); - } + return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage($pageId)); + if ($session{form}{pageId} eq "new") { + ($nextSeq) = WebGUI::SQL->quickArray("select max(sequenceNumber) from page where parentId=$session{form}{parentId}"); + $nextSeq++; + $session{form}{pageId} = getNextId("pageId"); + WebGUI::SQL->write("insert into page (pageId,sequenceNumber,parentId) + values ($session{form}{pageId},$nextSeq,$session{form}{parentId})"); + } + $session{form}{title} = "no title" if ($session{form}{title} eq ""); + $session{form}{menuTitle} = $session{form}{title} if ($session{form}{menuTitle} eq ""); + $session{form}{urlizedTitle} = $session{form}{menuTitle} if ($session{form}{urlizedTitle} eq ""); + $session{form}{urlizedTitle} = WebGUI::URL::makeUnique(WebGUI::URL::urlize($session{form}{urlizedTitle}),$session{form}{pageId}); + $session{form}{startDate} = setToEpoch($session{form}{startDate}) || setToEpoch(time()); + $session{form}{endDate} = setToEpoch($session{form}{endDate}) || setToEpoch(addToDate(time(),10)); + WebGUI::SQL->write("update page set + title=".quote($session{form}{title}).", + styleId=$session{form}{styleId}, + ownerId=$session{form}{ownerId}, + ownerView=$session{form}{ownerView}, + ownerEdit=$session{form}{ownerEdit}, + groupId='$session{form}{groupId}', + groupView=$session{form}{groupView}, + groupEdit=$session{form}{groupEdit}, + worldView=$session{form}{worldView}, + worldEdit=$session{form}{worldEdit}, + startDate=$session{form}{startDate}, + endDate=$session{form}{endDate}, + metaTags=".quote($session{form}{metaTags}).", + urlizedTitle='$session{form}{urlizedTitle}', + redirectURL='$session{form}{redirectURL}', + languageId='$session{form}{languageId}', + defaultMetaTags='$session{form}{defaultMetaTags}', + templateId='$session{form}{templateId}', + menuTitle=".quote($session{form}{menuTitle}).", + synopsis=".quote($session{form}{synopsis})." + where pageId=$session{form}{pageId}"); + WebGUI::SQL->write("update wobject set templatePosition=1 where pageId=$session{form}{pageId} + and templatePosition>".WebGUI::Template::countPositions($session{form}{templateId})); + _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}); + if ($session{form}{proceed} eq "gotoNewPage") { + WebGUI::Session::refreshPageInfo($session{form}{pageId}); + } + return ""; } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Session.pm b/lib/WebGUI/Session.pm index 32925cf46..f73b88fe8 100644 --- a/lib/WebGUI/Session.pm +++ b/lib/WebGUI/Session.pm @@ -46,7 +46,7 @@ sub _setupPageInfo { if ($pageName ne "") { ($pageId) = WebGUI::SQL->quickArray("select pageId from page where urlizedTitle='".$pageName."'"); if ($pageId eq "") { - $pageId = $_[1]; + $pageId = $session{setting}{notFoundPage}; if($ENV{"MOD_PERL"}) { my $r = Apache->request; if(defined($r)) { @@ -62,7 +62,7 @@ sub _setupPageInfo { } } %page = WebGUI::SQL->quickHash("select * from page where pageId='".$pageId."'"); - $page{url} = $_[2]."/".$page{urlizedTitle}; + $page{url} = $session{config}{scripturl}."/".$page{urlizedTitle}; $session{page} = \%page; } @@ -334,7 +334,7 @@ sub open { } ###---------------------------- ### current page's properties (from page table) - _setupPageInfo("",$session{setting}{notFoundPage},$session{config}{scripturl}); + _setupPageInfo(""); ###---------------------------- ### current user's account and profile information (from users and userProfileData tables) _setupUserInfo($session{var}{userId}); @@ -356,7 +356,7 @@ sub refreshPageInfo { } else { $pageId = $_[0]; } - _setupPageInfo($pageId,$session{setting}{notFoundPage},$session{config}{scripturl}); + _setupPageInfo($pageId); } #-------------------------------------------------------------------