cvsuser 05/08/09 11:48:45
Modified: App-Repository/lib/App/ValueDomain Repository.pm
Log:
add param value substitution
Revision Changes Path
1.3 +23 -5 p5ee/App-Repository/lib/App/ValueDomain/Repository.pm
Index: Repository.pm
===================================================================
RCS file: /cvs/public/p5ee/App-Repository/lib/App/ValueDomain/Repository.pm,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Repository.pm 7 Jan 2005 13:39:40 -0000 1.2
+++ Repository.pm 9 Aug 2005 18:48:45 -0000 1.3
@@ -105,20 +105,38 @@
my $table = $self->{table};
my $valuecolumn = $self->{valuecolumn};
my $labelcolumn = $self->{labelcolumn};
+ $labelcolumn = "" if ($labelcolumn eq $valuecolumn);
my $params = $self->{params} || {};
my %params = %$params;
+ my ($key, $keyvalue, $wname, $wvalue);
+ foreach my $key (keys %params) {
+ $keyvalue = $params{$key};
+ while ($keyvalue =~ /\{([A-Za-z0-9\._-]+)\}/) {
+ $wname = $1;
+ $wvalue = $context->so_get($wname);
+ if (defined $wvalue) {
+ $keyvalue =~ s/\{$wname\}/$wvalue/g;
+ }
+ else {
+ $keyvalue =~ s/\{$wname\}/NULL/g;
+ }
+ }
+ $params{$key} = $keyvalue;
+ }
$params{$valuecolumn} = $values_string if (defined $values_string &&
$values_string ne "");
- if ($rep && $table && $valuecolumn && $labelcolumn && $params) {
- $rows = $rep->get_rows($table, \%params, [ $valuecolumn,
$labelcolumn ]);
+ if ($rep && $table && $valuecolumn && $params) {
+ my @cols = ( $valuecolumn );
+ push(@cols, $labelcolumn) if ($labelcolumn);
+ $rows = $rep->get_rows($table, \%params, [EMAIL PROTECTED]);
$values = [];
$labels = {};
foreach $row (@$rows) {
push(@$values, $row->[0]);
- $labels->{$row->[0]} = $row->[1];
+ $labels->{$row->[0]} = $row->[1] if ($labelcolumn);
}
$self->{values} = $values;
- $self->{labels} = $labels;
+ $self->{labels} = $labels if ($labelcolumn);
$time = time();
$self->{time} = $time;
$self->{values_string} = $values_string;