[interchange-cvs] interchange - heins modified 2 files
interchange-core@icdevgroup.org
interchange-core@icdevgroup.org
Mon Aug 19 22:52:00 2002
User: heins
Date: 2002-08-20 02:51:01 GMT
Modified: dist/lib/UI/pages/admin menu_editor.html
Modified: dist/lib/UI/vars UI_STD_HEAD
Log:
* Add conversion routine that converts old area/cat menus into a
tree for flyout or a category_vertical-style list.
Revision Changes Path
2.14 +145 -4 interchange/dist/lib/UI/pages/admin/menu_editor.html
rev 2.14, prev_rev 2.13
Index: menu_editor.html
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/dist/lib/UI/pages/admin/menu_editor.html,v
retrieving revision 2.13
retrieving revision 2.14
diff -u -r2.13 -r2.14
--- menu_editor.html 18 Aug 2002 08:09:05 -0000 2.13
+++ menu_editor.html 20 Aug 2002 02:51:00 -0000 2.14
@@ -25,13 +25,19 @@
__MV_TREE_TABLE__
__ProductFiles_0__
tree
+cat
+area
[cgi qmenu_products]
__UI_META_TABLE__
[/seti]
=20
[perl tables=3D"[scratch medit_tables]"]
my $menupath =3D $Variable->{MV_MENU_DIRECTORY} || 'include/menus';
- @menufields =3D qw/code mgroup inactive msort page form name description =
extended/;
+ @menufields =3D qw/
+ code mgroup msort next_line indicator exclude_on depends_on page
+ form name super inactive description help_name img_dn img_up
+ img_sel img_icon url
+ /;
=20
$Tag->tmp('qmenu_fdata');
$Tag->tmp('qmenu_data');
@@ -162,7 +168,8 @@
my $db =3D $Db{$tab}
or do {
$Tag->error({ set =3D> errmsg(
- "Failed to open products table %s.",
+ "Failed to open %s table %s.",
+ 'products',
$tab,
),
});
@@ -189,7 +196,8 @@
or do {
$Tag->error({
set =3D> errmsg(
- "No results from products table %s.",
+ "No results from %s table %s.",
+ 'products',
$tab,
),
});
@@ -265,7 +273,140 @@
#Debug("qmenu_data=3D$Scratch->{qmenu_data}");
}
}
- @menufields =3D qw/code mgroup inactive msort page form name description =
extended/;
+ elsif ($CGI->{qmenu_cat}) {
+ AREABUILD: {
+ my $tab =3D $CGI->{qmenu_area} || 'area';
+ my $ctab =3D $CGI->{qmenu_cat} || 'cat';
+ my $db =3D $Db{$tab}
+ or do {
+ $Tag->error({ set =3D> errmsg(
+ "Failed to open %s table %s.",
+ 'area',
+ $tab,
+ ),
+ });
+ last AREABUILD;
+ };
+#Debug("LARGE=3D" . $db->config('LARGE'));
+ my $q =3D qq{ SELECT * FROM $tab ORDER BY sort };
+ my $ary =3D $db->query({ sql =3D> $q, hashref =3D> 1 } )
+ or do {
+ $Tag->error({
+ set =3D> errmsg(
+ "No results from %s table %s.",
+ 'area',
+ $tab,
+ ),
+ });
+ last AREABUILD;
+ };
+
+sub old_link {
+ my ($row, $nrow) =3D @_;
+#Debug("row link_type=3D'$row->{link_type}'");
+ if($row->{link_type} eq 'external') {
+ $first =3D $row->{url};
+ $first =3D~ s/\s+$//;
+ $first =3D~ s/^\s+//;
+ $nrow->{page} =3D $first;
+ }
+ elsif ($row->{link_type} eq 'internal') {
+ my ($page, $form) =3D split /\s+/, $row->{url}, 2;
+ $nrow->{page} =3D $page;
+ $nrow->{form} =3D $form;
+ }
+ elsif ($row->{link_type} eq 'simple') {
+ my (@items) =3D split /\s*[\n,]\s*/, $row->{selector};
+ my @out;
+ my $fi =3D $row->{tab};
+ my $sp =3D $row->{page};
+ my $arg =3D '';
+ $nrow->{page} =3D 'search';
+ push @out, "fi=3D$fi" if $fi;
+ push @out, "sp=3D$sp" if $sp;
+ push @out, "st=3Ddb";
+
+ if(! @items) {
+ push @out, "ra=3Dyes";
+ $nrow->{form} =3D join "\n", @out;
+ }
+ else {
+ push @out, "co=3Dyes";
+ for(@items) {
+ my ($col, $string) =3D split /\s*=3D\s*/;
+ push @out, "sf=3D$col";
+ push @out, "se=3D$string";
+ }
+ push @out, $row->{search}
+ if $row->{search} =3D~ /^\s*\w\w=3D/;
+
+ push @out, qq{va=3Dbanner_image=3D$row->{banner_image}};
+ push @out, qq{va=3Dbanner_text=3D$row->{banner_text}};
+ $arg =3D join "\n", @out;
+ $nrow->{form} =3D $arg;
+ }
+ }
+ elsif ($row->{link_type} eq 'complex') {
+ $row->{search} =3D~ s/[\r\n+]/\n/g;
+ $row->{search} .=3D qq{\nva=3Dbanner_text=3D$row->{banner_text}};
+ $row->{search} .=3D qq{\nva=3Dbanner_image=3D$row->{banner_image}};
+ $nrow->{form} =3D $row->{search};
+ }
+ else {
+ $url =3D "";
+ }
+ return $nrow;
+}
+
+ my @rows;
+ my $nc =3D '0000';
+ my $cdb =3D $Db{$ctab};
+ foreach my $row (@$ary) {
+ my $code =3D $row->{code};
+ my $nrow =3D {
+ code =3D> $nc++,
+ name =3D> $row->{name},
+ img_icon =3D> $row->{image},
+ msort =3D> 0,
+ mgroup =3D> $row->{set_selector},
+ };
+ old_link($row, $nrow);
+ my $sq =3D qq{
+ SELECT * FROM $ctab
+ WHERE sel =3D '$code'
+ OR sel like '$code %'
+ OR sel like '% $code'
+ OR sel like '% $code %'
+ ORDER BY sort
+ };
+#Debug("subquery=3D$sq");
+ push @rows, $nrow;
+ my $sary =3D $cdb->query({ sql =3D> $sq, hashref =3D> 1 });
+#Debug("subquery returned: " . uneval($sary));
+ for my $crow (@$sary) {
+ my $nsub =3D {
+ code =3D> $nc++,
+ name =3D> $crow->{name},
+ img_icon =3D> $crow->{image},
+ msort =3D> 1,
+ mgroup =3D> $crow->{sel},
+ };
+ old_link($crow, $nsub);
+ push @rows, $nsub;
+ }
+ }
+ for(@rows) {
+#Debug("pushing out --> " . $_->{name});
+ push @out, join "\t", @{$_}{@menufields};
+#Debug("pushing out --> row=3D" . uneval($_));
+ }
+ push @out, join
+ $Scratch->{qmenu_data} =3D join "\n", @out, '';
+ $CGI->{qmenu_name} =3D '';
+ $CGI->{qmenu_new} ||=3D 'Untitled';
+#Debug("qmenu_data=3D$Scratch->{qmenu_data}");
+ }
+ }
=20
if($CGI->{qmenu_html_create} and $CGI->{qmenu_create}) {
my $text =3D $CGI->{qmenu_html_create};
2.29 +0 -2 interchange/dist/lib/UI/vars/UI_STD_HEAD
rev 2.29, prev_rev 2.28
Index: UI_STD_HEAD
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/dist/lib/UI/vars/UI_STD_HEAD,v
retrieving revision 2.28
retrieving revision 2.29
diff -u -r2.28 -r2.29
--- UI_STD_HEAD 18 Aug 2002 08:33:04 -0000 2.28
+++ UI_STD_HEAD 20 Aug 2002 02:51:01 -0000 2.29
@@ -295,8 +295,6 @@
<td height=3D13 align=3Dleft valign=3Dtop><a
id=3D"{CODE}"
href=3D"{HREF}"
- onMouseOver=3D"mousein(this)"
- onMouseOut=3D"mouseout(this)"
title=3D"{DESCRIPTION}"
class=3Dmenufont>{NAME}</a> </td>
</tr>