[interchange-cvs] interchange - racke modified lib/Vend/Table/Shadow.pm
interchange-core@icdevgroup.org
interchange-core@icdevgroup.org
Thu Sep 26 09:14:06 2002
User: racke
Date: 2002-09-26 13:13:18 GMT
Modified: lib/Vend/Table Shadow.pm
Log:
modified row_hash to support table::column mapping
Revision Changes Path
1.10 +16 -4 interchange/lib/Vend/Table/Shadow.pm
rev 1.10, prev_rev 1.9
Index: Shadow.pm
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/lib/Vend/Table/Shadow.pm,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- Shadow.pm 26 Sep 2002 11:51:06 -0000 1.9
+++ Shadow.pm 26 Sep 2002 13:13:16 -0000 1.10
@@ -1,6 +1,6 @@
# Vend::Table::Shadow - Access a virtual "Shadow" table
#
-# $Id: Shadow.pm,v 1.9 2002/09/26 11:51:06 racke Exp $
+# $Id: Shadow.pm,v 1.10 2002/09/26 13:13:16 racke Exp $
#
# Copyright (C) 2002 Stefan Hornburg (Racke) <racke@linuxia.de>
#
@@ -20,7 +20,7 @@
# MA 02111-1307 USA.
=20
package Vend::Table::Shadow;
-$VERSION =3D substr(q$Revision: 1.9 $, 10);
+$VERSION =3D substr(q$Revision: 1.10 $, 10);
=20
# TODO
#
@@ -177,7 +177,7 @@
=20
sub row_hash {
my ($s, $key) =3D @_;
- my ($ref, $column, $locale);
+ my ($ref, $map, $column, $locale, $db, $value);
=20=09
$s =3D $s->import_db() unless defined $s->[$OBJ];
$locale =3D $::Scratch->{mv_locale} || 'default';
@@ -187,7 +187,19 @@
for (my $i =3D 0; $i < @cols; $i++) {
$column =3D $cols[$i];
if (exists $s->[$CONFIG]->{MAP}->{$column}->{$locale}) {
- $ref->{$cols[$i]} =3D $s->field($key, $column);
+ $map =3D $s->[$CONFIG]->{MAP}->{$column}->{$locale};
+ if (exists $map->{table}) {
+ $db =3D Vend::Data::database_exists_ref($map->{table})
+ or die "unknown table $map->{table} in mapping for column $column of=
$s->[$TABLE] for locale $locale";
+ if ($db->record_exists($key)) {
+ $value =3D $db->field($key, $map->{column});
+ } else {
+ $value =3D '';
+ }
+ } else {
+ $value =3D $s->field($key, $map->{column});
+ }
+ $ref->{$cols[$i]} =3D $value;
}
}
}