Changeset 11912
- Timestamp:
- 2006-06-02T15:53:25+12:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/cic-hcap/perllib/plugins/CICPlug.pm
r11908 r11912 231 231 232 232 # Create a document object for each institution 233 my %institution_ state_to_names_mapping;234 my %institution_ name_to_id_mapping;233 my %institution_id_to_name_mapping; 234 my %institution_state_to_ids_mapping; 235 235 while (my $row_hashref = $institution_sql_handle->fetchrow_hashref) { 236 236 # Skip any institutions that didn't respond … … 353 353 # Build mappings for creating the static macrofiles 354 354 my $institution_name = $row_hashref->{"Institution_Name"}; 355 $institution_ name_to_id_mapping{$institution_name} = $institution_doc_obj->get_OID();355 $institution_id_to_name_mapping{$institution_doc_obj->get_OID()} = $institution_name; 356 356 my $institution_state = $row_hashref->{"State"}; 357 push(@{$institution_state_to_ names_mapping{$institution_state}}, $institution_name);357 push(@{$institution_state_to_ids_mapping{$institution_state}}, $institution_doc_obj->get_OID()); 358 358 } 359 359 360 360 # Write the institutions.dm macrofile 361 &write_static_browser_macrofile("institutions", \%institution_ name_to_id_mapping);361 &write_static_browser_macrofile("institutions", \%institution_id_to_name_mapping); 362 362 363 363 # Write the states.dm macrofile 364 &write_state_browser_macrofile("states", \%institution_state_to_ names_mapping, \%institution_name_to_id_mapping);364 &write_state_browser_macrofile("states", \%institution_state_to_ids_mapping, \%institution_id_to_name_mapping); 365 365 } 366 366 … … 427 427 428 428 # Create a document object for each place 429 my %place_type_to_ names_mapping;430 my %place_style_to_ names_mapping;431 my %place_date_to_ names_mapping;432 my %place_function_to_ names_mapping;433 my %place_ name_to_id_mapping;429 my %place_type_to_ids_mapping; 430 my %place_style_to_ids_mapping; 431 my %place_date_to_ids_mapping; 432 my %place_function_to_ids_mapping; 433 my %place_id_to_name_mapping; 434 434 my %place_id_to_institution_name_mapping; 435 435 while (my $row_hashref = $place_sql_handle->fetchrow_hashref) { … … 491 491 while (my $place_styles_match_hashref = $place_styles_sql_handle->fetchrow_hashref()) { 492 492 my $place_style = $place_styles_match_hashref->{"Architectural_Classification"}; 493 push(@{$place_style_to_ names_mapping{$place_style}}, $place_name);493 push(@{$place_style_to_ids_mapping{$place_style}}, $place_doc_obj->get_OID()); 494 494 &new_metadata_entry($place_doc_obj, "Style", $place_style); 495 495 } … … 516 516 elsif ($place_construction_date_value < 1995) { $place_time_period = "1945-1995"; } 517 517 else { $place_time_period = "post-1995"; } 518 push(@{$place_date_to_ names_mapping{$place_time_period}}, $place_name);518 push(@{$place_date_to_ids_mapping{$place_time_period}}, $place_doc_obj->get_OID()); 519 519 } 520 520 &new_metadata_entry($place_doc_obj, "Time_period", $place_time_period); … … 557 557 $place_function =~ s/\s*$//; 558 558 next if ($place_function eq ""); 559 push(@{$place_function_to_ names_mapping{$place_function}}, $place_name);559 push(@{$place_function_to_ids_mapping{$place_function}}, $place_doc_obj->get_OID()); 560 560 } 561 561 &new_metadata_entry($place_doc_obj, "Functions", $place_functions); … … 615 615 616 616 # Build mappings for creating the static macrofiles 617 $place_ name_to_id_mapping{$place_name} = $place_doc_obj->get_OID();618 push(@{$place_type_to_ names_mapping{$place_type}}, $place_name);619 } 620 621 &write_bilevel_static_browser_macrofile("types", \%place_type_to_ names_mapping, \%place_name_to_id_mapping, \%place_id_to_institution_name_mapping);622 &write_bilevel_static_browser_macrofile("styles", \%place_style_to_ names_mapping, \%place_name_to_id_mapping, \%place_id_to_institution_name_mapping);623 &write_bilevel_static_browser_macrofile("dates", \%place_date_to_ names_mapping, \%place_name_to_id_mapping, \%place_id_to_institution_name_mapping);624 &write_bilevel_static_browser_macrofile("functions", \%place_function_to_ names_mapping, \%place_name_to_id_mapping, \%place_id_to_institution_name_mapping);617 $place_id_to_name_mapping{$place_doc_obj->get_OID()} = $place_name; 618 push(@{$place_type_to_ids_mapping{$place_type}}, $place_doc_obj->get_OID()); 619 } 620 621 &write_bilevel_static_browser_macrofile("types", \%place_type_to_ids_mapping, \%place_id_to_name_mapping, \%place_id_to_institution_name_mapping); 622 &write_bilevel_static_browser_macrofile("styles", \%place_style_to_ids_mapping, \%place_id_to_name_mapping, \%place_id_to_institution_name_mapping); 623 &write_bilevel_static_browser_macrofile("dates", \%place_date_to_ids_mapping, \%place_id_to_name_mapping, \%place_id_to_institution_name_mapping); 624 &write_bilevel_static_browser_macrofile("functions", \%place_function_to_ids_mapping, \%place_id_to_name_mapping, \%place_id_to_institution_name_mapping); 625 625 } 626 626 … … 897 897 { 898 898 my $static_browser_package_name = shift(@_); 899 my $ name_to_id_mapping = shift(@_);899 my $id_to_name_mapping = shift(@_); 900 900 901 901 my $static_browser_macrofile_path = "$ENV{'GSDLHOME'}\\collect\\cic-hcap\\macros\\$static_browser_package_name.dm"; 902 902 print STDERR "Writing $static_browser_macrofile_path...\n"; 903 903 open(BROWSER_MACROFILE, ">$static_browser_macrofile_path") or die "Error: Could not write to $static_browser_macrofile_path.\n"; 904 &write_static_browser_macros($static_browser_package_name, $ name_to_id_mapping);904 &write_static_browser_macros($static_browser_package_name, $id_to_name_mapping); 905 905 close(BROWSER_MACROFILE); 906 906 } … … 910 910 { 911 911 my $static_browser_package_name = shift(@_); 912 my $ name_to_id_mapping = shift(@_);912 my $id_to_name_mapping = shift(@_); 913 913 my $id_to_extra_mapping = shift(@_); 914 914 … … 916 916 print BROWSER_MACROFILE "_cicstaticbrowser_ {\n"; 917 917 918 my %letter_to_names_mapping; 919 foreach my $name (keys %$name_to_id_mapping) { 918 my %letter_to_ids_mapping; 919 foreach my $id (keys %$id_to_name_mapping) { 920 my $name = $id_to_name_mapping->{$id}; 920 921 my ($letter) = ($name =~ /([A-Za-z0-9])/); 921 push(@{$letter_to_ names_mapping{$letter}}, $name);922 push(@{$letter_to_ids_mapping{$letter}}, $id); 922 923 } 923 924 924 925 print BROWSER_MACROFILE "<center><b>"; 925 926 foreach my $letter (split(//, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")) { 926 if (defined($letter_to_ names_mapping{$letter})) {927 if (defined($letter_to_ids_mapping{$letter})) { 927 928 print BROWSER_MACROFILE "<a href=\"#$letter\">$letter</a> "; 928 929 } … … 934 935 935 936 print BROWSER_MACROFILE "<table cellpadding=\"0\" cellspacing=\"0\" width=\"_pagewidth_\">\n"; 936 foreach my $letter (sort(keys %letter_to_ names_mapping)) {937 my @letter_ names = sort(@{$letter_to_names_mapping{$letter}});938 &write_static_browser_macros_chunk($letter, \@letter_ names, $name_to_id_mapping, $id_to_extra_mapping);937 foreach my $letter (sort(keys %letter_to_ids_mapping)) { 938 my @letter_ids = @{$letter_to_ids_mapping{$letter}}; 939 &write_static_browser_macros_chunk($letter, \@letter_ids, $id_to_name_mapping, $id_to_extra_mapping); 939 940 } 940 941 print BROWSER_MACROFILE "</table>\n"; … … 947 948 { 948 949 my $chunk_title = shift(@_); 949 my $chunk_ names_ref = shift(@_);950 my $ name_to_id_mapping = shift(@_);950 my $chunk_ids_ref = shift(@_); 951 my $id_to_name_mapping = shift(@_); 951 952 my $id_to_extra_mapping = shift(@_); 952 953 953 954 print BROWSER_MACROFILE "<tr><td width=\"50%\"><br /><a name=\"$chunk_title\"/><span style=\"color: black;\"><b>$chunk_title</b></span></td><td width=\"50%\"></td></tr>\n"; 954 955 955 my @chunk_ names = @{$chunk_names_ref};956 my $half_point = ((scalar(@chunk_ names) % 2 == 0) ? scalar(@chunk_names) / 2 : (scalar(@chunk_names) + 1) / 2);956 my @chunk_ids = @{$chunk_ids_ref}; 957 my $half_point = ((scalar(@chunk_ids) % 2 == 0) ? scalar(@chunk_ids) / 2 : (scalar(@chunk_ids) + 1) / 2); 957 958 for (my $i = 0; $i < $half_point; $i++) { 958 959 print BROWSER_MACROFILE "<tr>"; 959 960 960 my $ name = $chunk_names[$i];961 my $ id = $name_to_id_mapping->{$name};961 my $id = $chunk_ids[$i]; 962 my $name = $id_to_name_mapping->{$id}; 962 963 my $extra = ""; 963 964 if (defined($id_to_extra_mapping)) { … … 966 967 print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a>$extra</td>"; 967 968 968 $ name = $chunk_names[$i+$half_point];969 if (defined($ name)) {970 $ id = $name_to_id_mapping->{$name};969 $id = $chunk_ids[$i+$half_point]; 970 if (defined($id)) { 971 $name = $id_to_name_mapping->{$id}; 971 972 $extra = ""; 972 973 if (defined($id_to_extra_mapping)) { … … 987 988 { 988 989 my $static_browser_package_root = shift(@_); 989 my $category_to_ names_mapping = shift(@_);990 my $ name_to_id_mapping = shift(@_);990 my $category_to_ids_mapping = shift(@_); 991 my $id_to_name_mapping = shift(@_); 991 992 my $id_to_extra_mapping = shift(@_); 992 993 … … 995 996 open(BROWSER_MACROFILE, ">$static_browser_macrofile_path") or die "Error: Could not write to $static_browser_macrofile_path.\n"; 996 997 997 foreach my $category (keys(%{$category_to_ names_mapping})) {998 foreach my $category (keys(%{$category_to_ids_mapping})) { 998 999 my $static_browser_package_name = $static_browser_package_root . $category; 999 1000 $static_browser_package_name =~ s/\W//g; 1000 1001 1001 my % name_to_id_mapping_for_category = ();1002 foreach my $ name (sort(@{$category_to_names_mapping->{$category}})) {1003 $ name_to_id_mapping_for_category{$name} = $name_to_id_mapping->{$name};1004 } 1005 &write_static_browser_macros($static_browser_package_name, \% name_to_id_mapping_for_category, $id_to_extra_mapping);1002 my %id_to_name_mapping_for_category = (); 1003 foreach my $id (@{$category_to_ids_mapping->{$category}}) { 1004 $id_to_name_mapping_for_category{$id} = $id_to_name_mapping->{$id}; 1005 } 1006 &write_static_browser_macros($static_browser_package_name, \%id_to_name_mapping_for_category, $id_to_extra_mapping); 1006 1007 } 1007 1008 … … 1013 1014 { 1014 1015 my $static_browser_package_name = shift(@_); 1015 my $state_to_ names_mapping = shift(@_);1016 my $ name_to_id_mapping = shift(@_);1016 my $state_to_ids_mapping = shift(@_); 1017 my $id_to_name_mapping = shift(@_); 1017 1018 1018 1019 my $static_browser_macrofile_path = "$ENV{'GSDLHOME'}\\collect\\cic-hcap\\macros\\$static_browser_package_name.dm"; … … 1023 1024 1024 1025 print BROWSER_MACROFILE "<table cellpadding=\"0\" cellspacing=\"0\" width=\"_pagewidth_\">\n"; 1025 foreach my $state (sort(keys(%{$state_to_ names_mapping}))) {1026 my @state_ names = sort(@{$state_to_names_mapping->{$state}});1027 &write_static_browser_macros_chunk($state, \@state_ names, $name_to_id_mapping, undef);1026 foreach my $state (sort(keys(%{$state_to_ids_mapping}))) { 1027 my @state_ids = @{$state_to_ids_mapping->{$state}}; 1028 &write_static_browser_macros_chunk($state, \@state_ids, $id_to_name_mapping, undef); 1028 1029 } 1029 1030 print BROWSER_MACROFILE "</table>\n";
Note:
See TracChangeset
for help on using the changeset viewer.