diff --git a/docs/changelog/6.x.x.txt b/docs/changelog/6.x.x.txt
index ddeb19bc5..fc65a063e 100644
--- a/docs/changelog/6.x.x.txt
+++ b/docs/changelog/6.x.x.txt
@@ -83,5 +83,6 @@ webgui.
- Added an override in the user profile for toolbar icon set.
- Migrated the navigation items (Thanks to Leendert Bottelberghs, Len
Kranendonk).
+ - Removed all old navigation macros. See gotcha's for details.
diff --git a/docs/gotcha.txt b/docs/gotcha.txt
index e4cb5a15b..1ebf53e5c 100644
--- a/docs/gotcha.txt
+++ b/docs/gotcha.txt
@@ -38,6 +38,18 @@ save you many hours of grief.
so that you can migrate them manually to the new template
variables.
+ * The Synopsis macro no longer exists. If you were using it to
+ retrieve the current page's synopsis, then please use the
+ ^Page("synopsis"); macro. If you were using it to build a
+ synopsis style navigation please use the new ^Navigation();
+ macro.
+
+ * The old navigation system has been entirely replaced. If you've
+ built or are using any navigation components that did not
+ come with WebGUI then you'll need to remove them and use
+ the new configurable navigation system. See migration.txt
+ for additional details.
+
5.5.0
diff --git a/docs/migration.txt b/docs/migration.txt
index 46de2dd84..b9864a0d4 100644
--- a/docs/migration.txt
+++ b/docs/migration.txt
@@ -26,9 +26,17 @@ There have currently been no changes to the Wobject API.
2. Macro Migration
-------------------
-2.1 Nothing Yet
+2.1 Navigation Macros
-There have currently been no changes to the macro API.
+As of WebGUI 6.0 there is no longer a need to develop custom navigation macros. WebGUI
+has an entirely new navigation system that is 100% configurable and templated. The
+legacy navigation system has been removed. Any nav macros that you've written
+will need to be removed from the system. Then just create a navigation
+configuration to do what your old nav once did.
+
+If you absolutely must write a navigation macro for some reason that our nav
+system does not accomodate you, then please check out the new API in
+WebGUI::Navigation.
diff --git a/docs/upgrades/upgrade_5.9.9-6.0.0.pl b/docs/upgrades/upgrade_5.9.9-6.0.0.pl
index ac8f1887a..440856e92 100644
--- a/docs/upgrades/upgrade_5.9.9-6.0.0.pl
+++ b/docs/upgrades/upgrade_5.9.9-6.0.0.pl
@@ -491,7 +491,30 @@ my $macros = $conf->get("macros");
delete $macros->{"\\"};
$macros->{"\\\\"} = "Backslash_pageUrl";
$macros->{"Navigation"} = "Navigation";
-$conf->set("macros"=>$macros);
+my %newMacros;
+foreach my $macro (keys %{$macros}) {
+ unless (
+ $macros->{$macro} eq "m_currentMenuHorizontal"
+ || $macros->{$macro} eq "M_currentMenuVertical"
+ || $macros->{$macro} eq "s_specificMenuHorizontal"
+ || $macros->{$macro} eq "S_specificMenuVertical"
+ || $macros->{$macro} eq "t_topMenuHorizontal"
+ || $macros->{$macro} eq "T_topMenuVertical"
+ || $macros->{$macro} eq "p_previousMenuHorizontal"
+ || $macros->{$macro} eq "P_previousMenuVertical"
+ || $macros->{$macro} eq "C_crumbTrail"
+ || $macros->{$macro} eq "FlexMenu"
+ || $macros->{$macro} eq "PreviousDropMenu"
+ || $macros->{$macro} eq "rootmenuHorizontal"
+ || $macros->{$macro} eq "RootTab"
+ || $macros->{$macro} eq "SpecificDropMenu"
+ || $macros->{$macro} eq "TopDropMenu"
+ || $macros->{$macro} eq "Synopsis"
+ ) {
+ $newMacros{$macro} = $macros->{$macro};
+ }
+}
+$conf->set("macros"=>\%newMacros);
my $wobjects = $conf->get("wobjects");
my @newWobjects;
foreach my $wobject (@{$wobjects}) {
@@ -531,6 +554,22 @@ unlink("../../lib/WebGUI/Wobject/FAQ.pm");
unlink("../../lib/WebGUI/Wobject/ExtraColumn.pm");
unlink("../../lib/WebGUI/Authentication.pm");
unlink("../../lib/WebGUI/Operation/Account.pm");
+unlink("../../lib/WebGUI/Macro/m_currentMenuHorizontal.pm");
+unlink("../../lib/WebGUI/Macro/M_currentMenuVertical.pm");
+unlink("../../lib/WebGUI/Macro/s_specificMenuHorizontal.pm");
+unlink("../../lib/WebGUI/Macro/S_specificMenuVertical.pm");
+unlink("../../lib/WebGUI/Macro/t_topMenuHorizontal.pm");
+unlink("../../lib/WebGUI/Macro/T_topMenuVertical.pm");
+unlink("../../lib/WebGUI/Macro/p_previousMenuHorizontal.pm");
+unlink("../../lib/WebGUI/Macro/P_previousMenuVertical.pm");
+unlink("../../lib/WebGUI/Macro/C_crumbTrail.pm");
+unlink("../../lib/WebGUI/Macro/FlexMenu.pm");
+unlink("../../lib/WebGUI/Macro/PreviousDropMenu.pm");
+unlink("../../lib/WebGUI/Macro/Synopsis.pm");
+unlink("../../lib/WebGUI/Macro/rootmenuHorizontal.pm");
+unlink("../../lib/WebGUI/Macro/RootTab.pm");
+unlink("../../lib/WebGUI/Macro/SpecificDropMenu.pm");
+unlink("../../lib/WebGUI/Macro/TopDropMenu.pm");
rmtree("../../lib/WebGUI/Authentication");
rmtree("../../www/extras/toolbar/default");
diff --git a/etc/WebGUI.conf.original b/etc/WebGUI.conf.original
index 7658dabf4..344c2e5c6 100644
--- a/etc/WebGUI.conf.original
+++ b/etc/WebGUI.conf.original
@@ -31,14 +31,12 @@ macros = a => a_account, \
@ => At_username, \
\\ => Backslash_pageUrl, \
c => c_companyName, \
- C => C_crumbTrail, \
CanEditText => CanEditText, \
D => D_date, \
e => e_companyEmail, \
EditableToggle => EditableToggle, \
Extras => Extras, \
File => File, \
- FlexMenu => FlexMenu, \
GroupAdd => GroupAdd, \
GroupDelete => GroupDelete, \
GroupText => GroupText, \
@@ -49,32 +47,18 @@ macros = a => a_account, \
L => L_loginBox, \
LastModified => LastModified, \
LoginToggle => LoginToggle, \
- m => m_currentMenuHorizontal, \
- M => M_currentMenuVertical, \
Navigation => Navigation, \
PageTitle => PageTitle, \
- PreviousDropMenu => PreviousDropMenu, \
- p => p_previousMenuHorizontal, \
- P => P_previousMenuVertical, \
? => Question_search, \
- rootmenu => rootmenuHorizontal, \
RandomImage => RandomImage, \
RandomSnippet => RandomSnippet, \
- RootTab => RootTab, \
RootTitle => RootTitle, \
r => r_printable, \
/ => Slash_gatewayUrl, \
Snippet => Snippet, \
- s => s_specificMenuHorizontal, \
- S => S_specificMenuVertical, \
Spacer => Spacer, \
- SpecificDropMenu => SpecificDropMenu, \
SI => SI_scaledImage, \
- Synopsis => Synopsis, \
ThumbnailLinker => ThumbnailLinker, \
Thumbnail => Thumbnail, \
- TopDropMenu => TopDropMenu, \
- t => t_topMenuHorizontal, \
- T => T_topMenuVertical, \
u => u_companyUrl
diff --git a/lib/WebGUI/Macro/C_crumbTrail.pm b/lib/WebGUI/Macro/C_crumbTrail.pm
deleted file mode 100644
index 19f754220..000000000
--- a/lib/WebGUI/Macro/C_crumbTrail.pm
+++ /dev/null
@@ -1,51 +0,0 @@
-package WebGUI::Macro::C_crumbTrail;
-
-#-------------------------------------------------------------------
-# WebGUI is Copyright 2001-2003 Plain Black LLC.
-#-------------------------------------------------------------------
-# Please read the legal notices (docs/legal.txt) and the license
-# (docs/license.txt) that came with this distribution before using
-# this software.
-#-------------------------------------------------------------------
-# http://www.plainblack.com info@plainblack.com
-#-------------------------------------------------------------------
-
-use strict;
-use Tie::CPHash;
-use WebGUI::Macro;
-use WebGUI::Session;
-use WebGUI::SQL;
-use WebGUI::URL;
-
-#-------------------------------------------------------------------
-sub _recurseCrumbTrail {
- my ($sth, %data, $output);
- tie %data, 'Tie::CPHash';
- %data = WebGUI::SQL->quickHash("select pageId,parentId,menuTitle,urlizedTitle from page where pageId=$_[0]");
- if ($data{pageId} > 1) {
- $output .= _recurseCrumbTrail($data{parentId},$_[1]);
- }
- if ($data{menuTitle} ne "") {
- $output .= ''.$data{menuTitle}.''.$_[1];
- }
- return $output;
-}
-
-#-------------------------------------------------------------------
-sub process {
- my (@param, $temp, $delimeter);
- @param = WebGUI::Macro::getParams($_[0]);
- if ($param[0] eq "") {
- $delimeter = " > ";
- } else {
- $delimeter = " ".$param[0]." ";
- }
- $temp = ''._recurseCrumbTrail($session{page}{parentId},$delimeter).
- ''.$session{page}{menuTitle}.'';
- return $temp;
-}
-
-
-1;
-
diff --git a/lib/WebGUI/Macro/FlexMenu.pm b/lib/WebGUI/Macro/FlexMenu.pm
deleted file mode 100644
index 995550fa0..000000000
--- a/lib/WebGUI/Macro/FlexMenu.pm
+++ /dev/null
@@ -1,59 +0,0 @@
-package WebGUI::Macro::FlexMenu;
-
-#-------------------------------------------------------------------
-# WebGUI is Copyright 2001-2003 Plain Black LLC.
-#-------------------------------------------------------------------
-# Please read the legal notices (docs/legal.txt) and the license
-# (docs/license.txt) that came with this distribution before using
-# this software.
-#-------------------------------------------------------------------
-# http://www.plainblack.com info@plainblack.com
-#-------------------------------------------------------------------
-
-use strict;
-use WebGUI::Macro;
-use WebGUI::Privilege;
-use WebGUI::Session;
-use WebGUI::URL;
-
-#-------------------------------------------------------------------
-sub process {
- my ($temp, @param);
- @param = WebGUI::Macro::getParams($_[0]);
- $temp = '';
- $temp .= _reversePageTree($session{page}{pageId});
- $temp .= '';
- return $temp;
-}
-
-#-------------------------------------------------------------------
-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,newWindow from page where parentId=$_[0] order by sequenceNumber");
- while (@data = $sth->array) {
- if (!($data[4]) && WebGUI::Privilege::canViewPage($data[0])) {
- $output .= '';
- if ($session{page}{pageId} == $data[0]) {
- $output .= ''.$data[2].'';
- } else {
- $output .= $data[2];
- }
- $output .= ' ';
- if ($_[1] == $data[0] && $_[2] ne "") {
- $output .= '
'.$_[2].'
';
- }
- }
- }
- $sth->finish;
- if ($parentId > 0) {
- $output = _reversePageTree($parentId,$_[0],$output);
- }
- return $output;
-}
-
-
-1;
-
diff --git a/lib/WebGUI/Macro/M_currentMenuVertical.pm b/lib/WebGUI/Macro/M_currentMenuVertical.pm
deleted file mode 100644
index 550557cca..000000000
--- a/lib/WebGUI/Macro/M_currentMenuVertical.pm
+++ /dev/null
@@ -1,35 +0,0 @@
-package WebGUI::Macro::M_currentMenuVertical;
-
-#-------------------------------------------------------------------
-# WebGUI is Copyright 2001-2003 Plain Black LLC.
-#-------------------------------------------------------------------
-# Please read the legal notices (docs/legal.txt) and the license
-# (docs/license.txt) that came with this distribution before using
-# this software.
-#-------------------------------------------------------------------
-# http://www.plainblack.com info@plainblack.com
-#-------------------------------------------------------------------
-
-use strict;
-use WebGUI::Macro;
-use WebGUI::Navigation;
-use WebGUI::Session;
-
-#-------------------------------------------------------------------
-sub process {
- my ($tree, $temp, @param);
- @param = WebGUI::Macro::getParams($_[0]);
- $temp = '