Changeset 12231
- Timestamp:
- 2006-07-14T14:06:28+12:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/cic-hcap/perllib/plugins/CICPlug.pm
r12224 r12231 287 287 288 288 289 my %designer_name_to_id_mapping; 290 my %designer_name_to_place_ids_mapping; 291 292 289 293 sub read 290 294 { … … 503 507 504 508 # Prepare SQL statement for getting the Place construction dates 505 my $place_construction_dates_sql_statement = "SELECT Prefix,Date,Note FROM tblConstruction_and_Dates WHERE Entry_ID=?";509 my $place_construction_dates_sql_statement = "SELECT Prefix,Date,Note,Architect_Name FROM tblConstruction_and_Dates WHERE Entry_ID=?"; 506 510 my $place_construction_dates_sql_handle = $dbh->prepare($place_construction_dates_sql_statement); 507 511 … … 634 638 # Convert the construction date to a time period (for searching and browsing) 635 639 if ($place_construction_date =~ /^(\d{1,4}).*$/) { 636 $place_construction_date= $1;640 my $place_construction_year = $1; 637 641 638 642 my $place_time_period; 639 if ($place_construction_ date< 1800) { $place_time_period = "pre-1800"; }640 elsif ($place_construction_ date< 1850) { $place_time_period = "1800-1850"; }641 elsif ($place_construction_ date< 1900) { $place_time_period = "1850-1900"; }642 elsif ($place_construction_ date< 1945) { $place_time_period = "1900-1945"; }643 elsif ($place_construction_ date<= 1995) { $place_time_period = "1945-1995"; }644 elsif ($place_construction_ date> 1995) { $place_time_period = "post-1995"; }643 if ($place_construction_year < 1800) { $place_time_period = "pre-1800"; } 644 elsif ($place_construction_year < 1850) { $place_time_period = "1800-1850"; } 645 elsif ($place_construction_year < 1900) { $place_time_period = "1850-1900"; } 646 elsif ($place_construction_year < 1945) { $place_time_period = "1900-1945"; } 647 elsif ($place_construction_year <= 1995) { $place_time_period = "1945-1995"; } 648 elsif ($place_construction_year > 1995) { $place_time_period = "post-1995"; } 645 649 push(@{$place_date_to_ids_mapping{$place_time_period}}, $place_doc_obj->get_OID()); 646 650 &new_metadata_entry($place_doc_obj, "Time_period", $place_time_period); … … 662 666 next; 663 667 } 668 669 # Get the architects for this construction and remember them for later for the designer objects 670 my $place_construction_architect = $place_construction_dates_match_hashref->{"Architect_Name"} || ""; 671 my $place_construction_architect_links = ""; 672 foreach my $designer_name (split(/;/, $place_construction_architect)) { 673 $designer_name =~ s/\(.*?\)//g; 674 $designer_name =~ s/^\s*//; 675 $designer_name =~ s/\s*$//; 676 677 my $designer_id = $designer_name_to_id_mapping{$designer_name}; 678 if (!defined($designer_id)) { 679 $designer_id = scalar(keys(%designer_name_to_id_mapping)) + 1; 680 $designer_name_to_id_mapping{$designer_name} = $designer_id; 681 } 682 $place_construction_architect_links .= "<a href=\"_gwcgi_?a=d&d=d$designer_id\">$designer_name</a> "; 683 push(@{$designer_name_to_place_ids_mapping{$designer_name}}, $place_id); 684 } 685 664 686 my $place_construction_date_prefix = $place_construction_dates_match_hashref->{"Prefix"} || ""; 665 $place_construction_dates_table_html .= "<tr><td valign=\"top\"><nobr>$place_construction_date_prefix $place_construction_date</nobr> </td><td valign=\"top\">$place_construction_note </td></tr>";687 $place_construction_dates_table_html .= "<tr><td valign=\"top\"><nobr>$place_construction_date_prefix $place_construction_date</nobr> </td><td valign=\"top\">$place_construction_note $place_construction_architect_links</td></tr>"; 666 688 } 667 689 &new_metadata_entry($place_doc_obj, "PlaceConstructionDatesTableHTML", "<table cellpadding=\"0\" cellspacing=\"0\">" . $place_construction_dates_table_html . "</table>"); … … 732 754 # Check it is one of the valid function values 733 755 if (!defined($place_functions_mapping->{$place_function_to_index})) { 734 #print STDERR "<ProcessingError n='Place $place_id' p='CICPlug' r='Warning: Unknown function: $place_function_to_index'>\n" if ($self->{'gli'});756 print STDERR "<ProcessingError n='Place $place_id' p='CICPlug' r='Warning: Unknown function: $place_function_to_index'>\n" if ($self->{'gli'}); 735 757 print STDERR "Warning: Place $place_id -- Unknown function: $place_function_to_index.\n"; 736 758 print $fail_log_handle "Warning: Place $place_id -- Unknown function: $place_function_to_index.\n"; … … 853 875 my $fail_log_handle = $self->{'failhandle'}; 854 876 855 # Prepare SQL statement for getting all the Architects from the Place table856 my $designer_sql_statement = "SELECT Architect_Name,Entry_ID FROM tblConstruction_and_dates";857 my $designer_sql_handle = $dbh->prepare($designer_sql_statement);858 $designer_sql_handle->{LongReadLen} = 65536;859 $designer_sql_handle->execute() or die "Could not execute SQL statement.";860 861 877 # Prepare SQL statement for getting the Place name 862 878 my $place_name_sql_statement = "SELECT Current_name FROM tblPlace WHERE Entry_ID=?"; … … 876 892 $place_images_sql_handle->{LongReadLen} = 65536; 877 893 878 # Get a list of all the designers, and the places they worked on 879 my %designer_name_to_place_ids_mapping; 880 my %designer_name_to_id_mapping; 894 # Create a document object for each designer 881 895 my %designer_id_to_name_mapping; 882 my $designer_count = 0; 883 while (my $designer_hashref = $designer_sql_handle->fetchrow_hashref) { 884 my $designer_names_string = $designer_hashref->{"Architect_Name"}; 885 next if !defined($designer_names_string); 886 foreach my $designer_name (split(/;/, $designer_names_string)) { 887 $designer_name =~ s/\(.*?\)//g; 888 $designer_name =~ s/^\s*//; 889 $designer_name =~ s/\s*$//; 890 891 if (!defined($designer_name_to_id_mapping{$designer_name})) { 892 $designer_count++; 893 $designer_name_to_id_mapping{$designer_name} = "d" . $designer_count; 894 } 895 896 $designer_id_to_name_mapping{$designer_name_to_id_mapping{$designer_name}} = $designer_name; 897 push(@{$designer_name_to_place_ids_mapping{$designer_name}}, $designer_hashref->{"Entry_ID"}); 898 } 899 } 900 901 # Create a document object for each designer 902 foreach my $designer_name (keys %designer_name_to_place_ids_mapping) { 896 foreach my $designer_name (keys %designer_name_to_id_mapping) { 903 897 my $designer_id = $designer_name_to_id_mapping{$designer_name}; 904 898 # print STDERR " Designer $designer_id\n"; 905 899 my $designer_doc_obj = new doc($self->{'filename'} . "-", "indexed_doc"); 906 $designer_doc_obj->set_OID( $designer_id);900 $designer_doc_obj->set_OID("d$designer_id"); 907 901 &new_metadata_entry($designer_doc_obj, "DocumentType", "Designer"); 908 902 909 903 &new_metadata_entry($designer_doc_obj, "Designer_name", $designer_name); 910 904 911 my $designer_places_list_html = ""; 912 foreach my $designer_place_id (@{$designer_name_to_place_ids_mapping{$designer_name}}) { 905 # Get designer places 906 my $designer_places_list_html = ""; 907 foreach my $designer_place_id (@{$designer_name_to_place_ids_mapping{$designer_name}}) { 913 908 # Get place name 914 909 $place_name_sql_handle->execute($designer_place_id) or die "Could not execute SQL statement."; … … 943 938 $self->{'processor'}->process($designer_doc_obj); 944 939 $self->{'num_processed'}++; 940 941 $designer_id_to_name_mapping{$designer_doc_obj->get_OID()} = $designer_name; 945 942 } 946 943 … … 1001 998 else { 1002 999 print STDERR "<ProcessingError n='Place $place_id' p='CICPlug' r='Could not parse reference: $place_reference'>\n" if ($self->{'gli'}); 1003 print STDERR "Warning: Place $place_id -- Could not parse reference: $place_reference\n";1000 # print STDERR "Warning: Place $place_id -- Could not parse reference: $place_reference\n"; 1004 1001 print $fail_log_handle "Warning: Place $place_id -- Could not parse reference: $place_reference\n"; 1005 1002 }
Note:
See TracChangeset
for help on using the changeset viewer.