[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>&nbsp;&nbsp;</td>
 													</tr>