Added an option to open menu links in a new window.

This commit is contained in:
JT Smith 2003-04-16 01:55:48 +00:00
parent e531f31665
commit 690864df45
5 changed files with 47 additions and 19 deletions

View file

@ -30,10 +30,12 @@ sub process {
sub _reversePageTree {
my ($sth, @data, $output, $parentId);
($parentId) = WebGUI::SQL->quickArray("select parentId from page where pageId='$_[0]'");
$sth = WebGUI::SQL->read("select pageId,parentId,menuTitle,urlizedTitle,hideFromNavigation from page where parentId=$_[0] order by sequenceNumber");
$sth = WebGUI::SQL->read("select pageId,parentId,menuTitle,urlizedTitle,hideFromNavigation,newWindow from page where parentId=$_[0] order by sequenceNumber");
while (@data = $sth->array) {
if (!($data[4]) && WebGUI::Privilege::canViewPage($data[0])) {
$output .= '<a class="verticalMenu" href="'.WebGUI::URL::gateway($data[3]).'">';
$output .= '<a class="verticalMenu" ';
$output .= ' target="_blank"' if ($data[5]);
$output .= 'href="'.WebGUI::URL::gateway($data[3]).'">';
if ($session{page}{pageId} == $data[0]) {
$output .= '<span class="selectedMenuItem">'.$data[2].'</span>';
} else {

View file

@ -81,7 +81,9 @@ sub drawHorizontal {
} else {
$output .= ' '.$seperator.' ';
}
$output .= '<a class="'.$class.'" href="'.$tree->{$pageId}{url}.'">';
$output .= '<a class="'.$class.'"';
$output .= ' target="_blank"' if ($tree->{$pageId}{newWindow});
$output .= ' href="'.$tree->{$pageId}{url}.'">';
if ($pageId == $session{page}{pageId}) {
$output .= '<span class="selectedMenuItem">'.$tree->{$pageId}{title}.'</span>';
} else {
@ -136,7 +138,9 @@ sub drawVertical {
$leading .= "<br>";
}
foreach $pageId (keys %{$tree}) {
$output .= $padding.$bullet.'<a class="'.$class.'" href="'.$tree->{$pageId}{url}.'">';
$output .= $padding.$bullet.'<a class="'.$class.'"';
$output .= ' target="_blank"' if ($tree->{$pageId}{newWindow});
$output .= ' href="'.$tree->{$pageId}{url}.'">';
if ($pageId == $session{page}{pageId}) {
$output .= '<span class="selectedMenuItem">'.$tree->{$pageId}{title}.'</span>';
} else {
@ -152,17 +156,21 @@ sub drawVertical {
=head2 tree ( parentId [, toLevel ] )
Generates and returns a hash reference containing a page tree with keys of "url", "title", and "sub" with orignating keys of page ids. The tree looks like this:
Generates and returns a hash reference containing a page tree with keys of "url", "title", "fullTitle", "synopsis", "newWindow" and "sub" with orignating keys of page ids. The tree looks like this:
root
|-pageId
| |-url
| |-title
| |-fullTitle
| |-synopsis
| |-newWindow
| `-sub (pageId)
| |-url
| |-title
| |-fullTitle
| |-synopsis
| |-newWindow
| `-sub (pageId)
| `-etc
`-pageId
@ -189,13 +197,16 @@ sub tree {
tie %tree, 'Tie::IxHash';
tie %data, 'Tie::CPHash';
if ($depth < $toLevel) {
$sth = WebGUI::SQL->read("select urlizedTitle, menuTitle, pageId, synopsis, hideFromNavigation from page
$sth = WebGUI::SQL->read("select urlizedTitle, menuTitle, pageId, synopsis, hideFromNavigation,
newWindow, title from page
where parentId='$parentId' order by sequenceNumber");
while (%data = $sth->hash) {
if (!($data{hideFromNavigation}) && WebGUI::Privilege::canViewPage($data{pageId})) {
$tree{$data{pageId}}{url} = WebGUI::URL::gateway($data{urlizedTitle});
$tree{$data{pageId}}{title} = $data{menuTitle};
$tree{$data{pageId}}{synopsis} = $data{synopsis};
$tree{$data{pageId}}{fullTitle} = $data{title};
$tree{$data{pageId}}{newWindow} = $data{newWindow};
$tree{$data{pageId}}{sub} = tree($data{pageId},$toLevel,($depth+1));
}
}

View file

@ -74,7 +74,8 @@ sub _recursePageTree {
userDefined3,
userDefined4,
userDefined5,
hideFromNavigation
hideFromNavigation,
newWindow
) values (
$newPageId,
$_[1],
@ -98,7 +99,8 @@ sub _recursePageTree {
".quote($newParent{userDefined3}).",
".quote($newParent{userDefined4}).",
".quote($newParent{userDefined5}).",
$package{hideFromNavigation}
$package{hideFromNavigation},
$package{newWindow}
)");
_recursePageTree($package{pageId},$newPageId);
}

View file

@ -266,17 +266,29 @@ sub www_editPage {
-value=>$page{menuTitle},
-uiLevel=>1
);
$f->getTab("properties")->text(
-name=>"urlizedTitle",
-label=>WebGUI::International::get(104),
-value=>$page{urlizedTitle},
-uiLevel=>3
);
$f->getTab("properties")->url(
-name=>"redirectURL",
-label=>WebGUI::International::get(715),
-value=>$page{redirectURL},
-uiLevel=>9
);
$f->getTab("properties")->yesNo(
-name=>"hideFromNavigation",
-value=>$page{hideFromNavigation},
-label=>WebGUI::International::get(886),
-uiLevel=>6
);
$f->getTab("properties")->text(
-name=>"urlizedTitle",
-label=>WebGUI::International::get(104),
-value=>$page{urlizedTitle},
-uiLevel=>3
$f->getTab("properties")->yesNo(
-name=>"newWindow",
-value=>$page{newWindow},
-label=>WebGUI::International::get(940),
-uiLevel=>6
);
$f->getTab("properties")->select(
-name=>"languageId",
@ -285,12 +297,6 @@ sub www_editPage {
-uiLevel=>1,
-options=>WebGUI::International::getLanguages()
);
$f->getTab("properties")->url(
-name=>"redirectURL",
-label=>WebGUI::International::get(715),
-value=>$page{redirectURL},
-uiLevel=>9
);
$f->getTab("properties")->textarea(
-name=>"synopsis",
-label=>WebGUI::International::get(412),
@ -444,6 +450,7 @@ sub www_editPageSave {
ownerId=$session{form}{ownerId},
groupIdView=$session{form}{groupIdView},
groupIdEdit=$session{form}{groupIdEdit},
newWindow=$session{form}{newWindow},
hideFromNavigation=$session{form}{hideFromNavigation},
startDate=$session{form}{startDate},
endDate=$session{form}{endDate},