Changeset 11875
- Timestamp:
- 2006-05-29T14:58:43+12:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/cic-hcap/perllib/plugins/CICPlug.pm
r11874 r11875 861 861 print STDERR "Writing $static_browser_macrofile_path...\n"; 862 862 open(BROWSER_MACROFILE, ">$static_browser_macrofile_path") or die "Error: Could not write to $static_browser_macrofile_path.\n"; 863 &write_static_browser_macros($static_browser_package_name, $name_to_id_mapping); 863 864 close(BROWSER_MACROFILE); 864 865 &write_static_browser_macros($static_browser_package_name, $name_to_id_mapping);866 865 } 867 866 … … 871 870 my $static_browser_package_name = shift(@_); 872 871 my $name_to_id_mapping = shift(@_); 872 my $id_to_extra_mapping = shift(@_); 873 873 my $table_columns = 2; 874 874 875 my $static_browser_macrofile_path = "$ENV{'GSDLHOME'}\\collect\\cic-hcap\\macros\\$static_browser_package_name.dm";876 open(BROWSER_MACROFILE, ">>$static_browser_macrofile_path") or die "Error: Could not write to $static_browser_macrofile_path.\n";877 875 print BROWSER_MACROFILE "package $static_browser_package_name\n\n"; 878 876 print BROWSER_MACROFILE "_cicstaticbrowser_ {\n"; … … 907 905 my $name = $letter_names[$i]; 908 906 my $id = $name_to_id_mapping->{$name}; 909 print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a></td>"; 907 my $extra = ""; 908 if (defined($id_to_extra_mapping)) { 909 $extra = $id_to_extra_mapping->{$id}; 910 } 911 print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a>$extra</td>"; 910 912 911 913 $name = $letter_names[$i+$half_point]; 912 914 if (defined($name)) { 913 915 $id = $name_to_id_mapping->{$name}; 914 print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a></td>"; 916 $extra = ""; 917 if (defined($id_to_extra_mapping)) { 918 $extra = $id_to_extra_mapping->{$id}; 919 } 920 print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a>$extra</td>"; 915 921 } 916 922 else { … … 923 929 924 930 print BROWSER_MACROFILE "}\n"; 925 close(BROWSER_MACROFILE);926 931 } 927 932 … … 945 950 $static_browser_package_name =~ s/\W//g; 946 951 947 print BROWSER_MACROFILE "package $static_browser_package_name\n\n"; 948 print BROWSER_MACROFILE "_cicstaticbrowser_ {\n"; 949 950 print BROWSER_MACROFILE "<center><b>"; 951 foreach my $letter (split(//, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")) { 952 print BROWSER_MACROFILE "<a href=\"#$letter\">$letter</a> "; 953 } 954 print BROWSER_MACROFILE "</b></center>\n"; 955 956 print BROWSER_MACROFILE "<table cellpadding=\"0\" cellspacing=\"0\" width=\"_pagewidth_\">\n"; 957 958 my $last_name = ""; 959 my $current_letter = ""; 960 my $current_position = 0; 952 my %name_to_id_mapping_for_category = (); 961 953 foreach my $name (sort(@{$category_to_names_mapping->{$category}})) { 962 # Ignore duplicates 963 next if ($name eq $last_name); 964 965 $name =~ /^(.)/; 966 if ($1 ne $current_letter) { 967 if ($current_position > 0) { 968 while ($current_position > 0) { 969 print BROWSER_MACROFILE "<td></td>"; 970 $current_position--; 971 } 972 print BROWSER_MACROFILE "</tr>\n"; 973 } 974 print BROWSER_MACROFILE "<tr><td width=\"50%\"><br /><a name=\"$1\"/><span style=\"color: black;\"><b>$1</b></span></td><td width=\"50%\"></td></tr>\n"; 975 $current_letter = $1; 976 } 977 978 my $id = $name_to_id_mapping->{$name}; 979 my $extra = ""; 980 if (defined($id_to_extra_mapping)) { 981 $extra = $id_to_extra_mapping->{$id}; 982 } 983 984 if ($current_position == 0) { 985 print BROWSER_MACROFILE "<tr>"; 986 } 987 print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a>$extra</td>"; 988 $current_position++; 989 if ($current_position == $table_columns) { 990 print BROWSER_MACROFILE "</tr>\n"; 991 $current_position = 0; 992 } 993 994 $last_name = $name; 995 } 996 997 print BROWSER_MACROFILE "}\n\n"; 998 } 999 1000 close(BROWSER_MACROFILE); 1001 } 1002 1003 1004 sub write_bilevel_static_browser_macrofile_new 1005 { 1006 my $static_browser_package_root = shift(@_); 1007 my $category_to_names_mapping = shift(@_); 1008 my $name_to_id_mapping = shift(@_); 1009 my $id_to_extra_mapping = shift(@_); 1010 my $table_columns = 2; 1011 1012 my $static_browser_macrofile_path = "$ENV{'GSDLHOME'}\\collect\\cic-hcap\\macros\\$static_browser_package_root.dm"; 1013 print STDERR "Writing $static_browser_macrofile_path...\n"; 1014 open(BROWSER_MACROFILE, ">$static_browser_macrofile_path") or die "Error: Could not write to $static_browser_macrofile_path.\n"; 1015 1016 foreach my $category (keys(%{$category_to_names_mapping})) { 1017 # print STDERR "Category: $category\n"; 1018 1019 my $static_browser_package_name = $static_browser_package_root . $category; 1020 $static_browser_package_name =~ s/\W//g; 1021 1022 print BROWSER_MACROFILE "package $static_browser_package_name\n\n"; 1023 print BROWSER_MACROFILE "_cicstaticbrowser_ {\n"; 1024 1025 my %letter_to_name_mapping; 1026 foreach my $name (@{$category_to_names_mapping->{$category}}) { 1027 my ($letter) = ($name =~ /^(.)/); 1028 push(@{$letter_to_name_mapping{$letter}}, $name); 1029 } 1030 1031 print BROWSER_MACROFILE "<center><b>"; 1032 foreach my $letter (split(//, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")) { 1033 if (defined($letter_to_name_mapping{$letter})) { 1034 print BROWSER_MACROFILE "<a href=\"#$letter\">$letter</a> "; 1035 } 1036 else { 1037 print BROWSER_MACROFILE "$letter "; 1038 } 1039 } 1040 print BROWSER_MACROFILE "</b></center>\n"; 1041 1042 print BROWSER_MACROFILE "<table cellpadding=\"0\" cellspacing=\"0\" width=\"_pagewidth_\">\n"; 1043 1044 foreach my $letter (sort(keys %letter_to_name_mapping)) { 1045 print BROWSER_MACROFILE "<tr><td width=\"50%\"><br /><a name=\"$letter\"/><span style=\"color: black;\"><b>$letter</b></span></td><td width=\"50%\"></td></tr>\n"; 1046 1047 my @letter_names = sort(@{$letter_to_name_mapping{$letter}}); 1048 my $half_point = ((scalar(@letter_names) % 2 == 0) ? scalar(@letter_names) / 2 : (scalar(@letter_names) + 1) / 2); 1049 for (my $i = 0; $i < $half_point; $i++) { 1050 print BROWSER_MACROFILE "<tr>"; 1051 1052 my $name = $letter_names[$i]; 1053 my $id = $name_to_id_mapping->{$name}; 1054 my $extra = $id_to_extra_mapping->{$id}; 1055 print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a>$extra</td>"; 1056 1057 $name = $letter_names[$i+$half_point]; 1058 if (defined($name)) { 1059 $id = $name_to_id_mapping->{$name}; 1060 $extra = $id_to_extra_mapping->{$id}; 1061 print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a>$extra</td>"; 1062 } 1063 else { 1064 print BROWSER_MACROFILE "<td></td>"; 1065 } 1066 1067 print BROWSER_MACROFILE "</tr>\n"; 1068 } 1069 } 1070 1071 # my $last_name = ""; 1072 # my $current_letter = ""; 1073 # my $current_position = 0; 1074 # foreach my $name (sort(@{$category_to_names_mapping->{$category}})) { 1075 # # Ignore duplicates 1076 # next if ($name eq $last_name); 1077 1078 # $name =~ /^(.)/; 1079 # if ($1 ne $current_letter) { 1080 # if ($current_position > 0) { 1081 # while ($current_position > 0) { 1082 # print BROWSER_MACROFILE "<td></td>"; 1083 # $current_position--; 1084 # } 1085 # print BROWSER_MACROFILE "</tr>\n"; 1086 # } 1087 # if ($table_columns == 2) { 1088 # print BROWSER_MACROFILE "<tr><td width=\"50%\"><br /><a name=\"$1\"/><span style=\"color: black;\"><b>$1</b></span></td><td width=\"50%\"></td></tr>\n"; 1089 # } 1090 # else { 1091 # print BROWSER_MACROFILE "<tr><td width=\"33%\"><br /><a name=\"$1\"/><span style=\"color: black;\"><b>$1</b></span></td><td style=\"padding-left: 3px; padding-right: 3px;\" width=\"34%\"></td><td width=\"33%\"></td></tr>\n"; 1092 # } 1093 # $current_letter = $1; 1094 # } 1095 1096 # my $id = $name_to_id_mapping->{$name}; 1097 # my $extra = ""; 1098 # if (defined($id_to_extra_mapping)) { 1099 # $extra = $id_to_extra_mapping->{$id}; 1100 # } 1101 1102 # if ($current_position == 0) { 1103 # print BROWSER_MACROFILE "<tr>"; 1104 # } 1105 # if (!defined($name) || !defined($id_prefix) || !defined($id) || !defined($extra)) { 1106 # print STDERR "Name: $name\n"; 1107 # print STDERR "ID prefix: $id_prefix\n"; 1108 # print STDERR "ID: $id\n"; 1109 # print STDERR "Extra: $extra\n"; 1110 # } 1111 # print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id_prefix$id\">$name</a>$extra</td>"; 1112 # $current_position++; 1113 # if ($current_position == $table_columns) { 1114 # print BROWSER_MACROFILE "</tr>\n"; 1115 # $current_position = 0; 1116 # } 1117 1118 # $last_name = $name; 1119 # } 1120 1121 print BROWSER_MACROFILE "}\n\n"; 954 $name_to_id_mapping_for_category{$name} = $name_to_id_mapping->{$name}; 955 } 956 &write_static_browser_macros($static_browser_package_name, \%name_to_id_mapping_for_category, $id_to_extra_mapping); 1122 957 } 1123 958
Note:
See TracChangeset
for help on using the changeset viewer.