/[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 188 by dpavlin, Sat Nov 29 19:07:00 2003 UTC revision 195 by dpavlin, Sun Dec 14 20:50:03 2003 UTC
# Line 72  my %lhash; Line 72  my %lhash;
72  # if you are tight on memory, turn this off  # if you are tight on memory, turn this off
73  my $use_lhash_cache = 1;  my $use_lhash_cache = 1;
74    
75    my $last_field_name;    # cache to prevent repeated fields
76    
77  sub data2xml {  sub data2xml {
78    
79          use xmlify;          use xmlify;
# Line 138  sub data2xml { Line 140  sub data2xml {
140                          print STDERR "WARNING: field '$field' doesn't have 'name' attribute!";                          print STDERR "WARNING: field '$field' doesn't have 'name' attribute!";
141                  }                  }
142                  if ($field_name) {                  if ($field_name) {
143                          return x($field_name);                          if (! $last_field_name) {
144                                    $last_field_name = x($field_name);
145                                    return $last_field_name;
146                            } elsif ($field_name ne $last_field_name) {
147                                    $last_field_name = x($field_name);
148                                    return $last_field_name;
149                            }
150                  }                  }
151          }          }
152    
# Line 167  sub data2xml { Line 175  sub data2xml {
175                  my $page_line_delimiter = $config->{indexer}->{$field}->{page_line_delimiter} || '<br/>';                  my $page_line_delimiter = $config->{indexer}->{$field}->{page_line_delimiter} || '<br/>';
176                  $cache->{index_delimiter}->{$field} = $config->{indexer}->{$field}->{index_delimiter};                  $cache->{index_delimiter}->{$field} = $config->{indexer}->{$field}->{index_delimiter};
177    
178                    my $format_name = $config->{indexer}->{$field}->{format_name};
179                    my $format_delimiter = $config->{indexer}->{$field}->{format_delimiter};
180                    if ($format_name && $format_delimiter) {
181                            $cache->{format}->{$field}->{format_name} = $format_name;
182                            $cache->{format}->{$field}->{format_delimiter} = $format_delimiter;
183                    }
184    
185                  foreach my $x (@{$config->{indexer}->{$field}->{$tag}}) {                  foreach my $x (@{$config->{indexer}->{$field}->{$tag}}) {
186    
187                          my $format = x($x->{content});                          my $format = x($x->{content});
# Line 195  sub data2xml { Line 210  sub data2xml {
210    
211                          # placeholder for all repeatable entries for index                          # placeholder for all repeatable entries for index
212    
213                          sub mkformat {                          sub mkformat($$) {
214                                  my $x = shift || die "mkformat needs tag reference";                                  my $x = shift || die "mkformat needs tag reference";
215                                  my $data = shift || return;                                  my $data = shift || return;
216                                  my $format_name = x($x->{format_name}) || return $data;                                  my $format_name = x($x->{format_name}) || return $data;
# Line 362  sub data2xml { Line 377  sub data2xml {
377                                                          @index_data = @{$cache->{index_data}->{$field}->[$page]};                                                          @index_data = @{$cache->{index_data}->{$field}->[$page]};
378                                                  }                                                  }
379                                                  if ($x->{append}) {                                                  if ($x->{append}) {
380                                                          $index_data[$#index_data] .= $idisplay;                                                          if (@index_data) {
381                                                                    $index_data[$#index_data] .= $idisplay;
382                                                            } else {
383                                                                    push @index_data, $idisplay;
384                                                            }
385                                                  } else {                                                  } else {
386                                                          push @index_data, $idisplay;                                                          push @index_data, $idisplay;
387                                                  }                                                  }
# Line 430  sub data2xml { Line 449  sub data2xml {
449  #print STDERR "field '$field' iterate over ",($nr_pages || 0)," pages...\n";  #print STDERR "field '$field' iterate over ",($nr_pages || 0)," pages...\n";
450  #print STDERR Dumper($cache->{display_data});  #print STDERR Dumper($cache->{display_data});
451                          for (my $page=0; $page <= $nr_pages; $page++) {                          for (my $page=0; $page <= $nr_pages; $page++) {
452                                    my $display_data;
453                                  my $display_data = $cache->{display_data}->{$field}->[$page];                                  if ($cache->{format}->{$field}) {
454                                            $display_data=mkformat($cache->{format}->{$field},$cache->{display_data}->{$field}->[$page]);
455                                    } else {
456                                            $display_data = $cache->{display_data}->{$field}->[$page];
457                                    }
458                                  if ($display_data) { # default                                  if ($display_data) { # default
459                                          if ($field eq "headline") {                                          if ($field eq "headline") {
460                                                  $xml .= xmlify("headline", $display_data);                                                  $xml .= xmlify("headline", $display_data);

Legend:
Removed from v.188  
changed lines
  Added in v.195

  ViewVC Help
Powered by ViewVC 1.1.26