/[webpac]/trunk/all2xml.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/all2xml.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 57 by dpavlin, Fri Jul 4 15:05:23 2003 UTC revision 59 by dpavlin, Fri Jul 4 17:57:11 2003 UTC
# Line 18  die "FATAL: can't find configuration fil Line 18  die "FATAL: can't find configuration fil
18    
19  my $config;  my $config;
20    
21  use index_DBI;  # there is no other, right now ;-)  #use index_DBI;         # default DBI module for index
22    use index_DBI_cache;    # faster DBI module using memory cache
23  my $index;  my $index;
24    
25  my %opts;  my %opts;
# Line 65  sub data2xml { Line 66  sub data2xml {
66          my $type = shift @_;          my $type = shift @_;
67          my $row = shift @_;          my $row = shift @_;
68          my $add_xml = shift @_;          my $add_xml = shift @_;
69            # needed to read values from configuration file
70            my $cfg = shift @_;
71            my $database = shift @_;
72    
73          my $xml;          my $xml;
74    
# Line 169  sub data2xml { Line 173  sub data2xml {
173                          }                          }
174                  }                  }
175    
176                    # now try to parse variables from configuration file
177                    foreach my $x (@{$config->{indexer}->{$field}->{'config'}}) {
178    
179                            my $val = $cfg->val($database, x($x->{content}));
180    
181                            my ($s,$d,$i) = (1,1,0);        # swish, display default
182                            $s = 0 if (lc($x->{type}) eq "display");
183                            $d = 0 if (lc($x->{type}) eq "swish");
184                            ($s,$d,$i) = (0,0,1) if (lc($x->{type}) eq "index");
185    
186                            if ($val) {
187                                    $display_data .= $val if ($d);
188                                    $swish_data .= $val if ($s);
189                                    $index->insert($field, $val, $path) if ($i);
190                            }
191    
192                    }
193    
194    
195                  if ($display_data) {                  if ($display_data) {
196    
# Line 240  foreach my $database ($cfg->Sections) { Line 262  foreach my $database ($cfg->Sections) {
262    
263  print STDERR "reading ./import_xml/$type.xml\n";  print STDERR "reading ./import_xml/$type.xml\n";
264    
265          $config=XMLin("./import_xml/$type.xml", forcearray => [ $type2tag{$type} ], forcecontent => 1);          # extract just type basic
266            my $type_base = $type;
267            $type_base =~ s/_.+$//g;
268    
269            $config=XMLin("./import_xml/$type.xml", forcearray => [ $type2tag{$type_base}, 'config' ], forcecontent => 1);
270    
271          # output current progress indicator          # output current progress indicator
272          my $last_p = 0;          my $last_p = 0;
# Line 258  print STDERR "reading ./import_xml/$type Line 284  print STDERR "reading ./import_xml/$type
284          # now read database          # now read database
285  print STDERR "using: $type...\n";  print STDERR "using: $type...\n";
286    
287          if ($type eq "isis") {          if ($type_base eq "isis") {
288    
289                  my $isis_db = $cfg -> val($database, 'isis_db') || die "$database doesn't have 'isis_db' defined!";                  my $isis_db = $cfg -> val($database, 'isis_db') || die "$database doesn't have 'isis_db' defined!";
290    
291                  $import2cp = Text::Iconv->new($config->{isis_codepage},$codepage);                  $import2cp = Text::Iconv->new($config->{isis_codepage},$codepage);
# Line 278  print STDERR "using: $type...\n"; Line 305  print STDERR "using: $type...\n";
305    
306                                  my $swishpath = $path."#".int($row->{mfn});                                  my $swishpath = $path."#".int($row->{mfn});
307    
308                                  if (my $xml = data2xml($type,$row,$add_xml)) {                                  if (my $xml = data2xml($type_base,$row,$add_xml,$cfg,$database)) {
309                                          $xml = $cp2utf->convert($xml);                                          $xml = $cp2utf->convert($xml);
310                                          use bytes;      # as opposed to chars                                          use bytes;      # as opposed to chars
311                                          print "Path-Name: $swishpath\n";                                          print "Path-Name: $swishpath\n";
# Line 289  print STDERR "using: $type...\n"; Line 316  print STDERR "using: $type...\n";
316                  }                  }
317                  print STDERR "\n";                  print STDERR "\n";
318    
319          } elsif ($type eq "excel") {          } elsif ($type_base eq "excel") {
320                  use Spreadsheet::ParseExcel;                  use Spreadsheet::ParseExcel;
321                  use Spreadsheet::ParseExcel::Utility qw(int2col);                  use Spreadsheet::ParseExcel::Utility qw(int2col);
322                                    
# Line 335  print STDERR "using: $type...\n"; Line 362  print STDERR "using: $type...\n";
362    
363                          next if (! $row);                          next if (! $row);
364    
365                          if (my $xml = data2xml($type,$row,$add_xml)) {                          if (my $xml = data2xml($type_base,$row,$add_xml,$cfg,$database)) {
366                                  $xml = $cp2utf->convert($xml);                                  $xml = $cp2utf->convert($xml);
367                                  use bytes;      # as opposed to chars                                  use bytes;      # as opposed to chars
368                                  print "Path-Name: $swishpath\n";                                  print "Path-Name: $swishpath\n";

Legend:
Removed from v.57  
changed lines
  Added in v.59

  ViewVC Help
Powered by ViewVC 1.1.26