fixed a bug where the registration page didn't work if a custom profile field was of type select and was required.

This commit is contained in:
JT Smith 2003-06-01 19:21:39 +00:00
parent 2b794604e7
commit d7867d9507

View file

@ -131,23 +131,36 @@ sub www_createAccount {
$values = eval $data{dataValues}; $values = eval $data{dataValues};
$method = $data{dataType}; $method = $data{dataType};
$label = eval $data{fieldLabel}; $label = eval $data{fieldLabel};
if ($method eq "select") { if ($method eq "selectList") {
# note: this big if statement doesn't look elegant, but doing regular # note: this big if statement doesn't look elegant, but doing regular
# ORs caused problems with the array reference. # ORs caused problems with the array reference.
if ($session{form}{$data{fieldName}}) { if ($session{form}{$data{fieldName}}) {
$default = [$session{form}{$data{fieldName}}]; $default = [$session{form}{$data{fieldName}}];
} elsif ($session{user}{$data{fieldName}}) { } elsif ($session{user}{$data{fieldName}}) {
$default = [$session{user}{$data{fieldName}}]; $default = [$session{user}{$data{fieldName}}];
} else { } else {
$default = eval $data{dataDefault}; $default = eval $data{dataDefault};
} }
$f->select($data{fieldName},$values,$label,$default); $f->select(
} else { -name=>$data{fieldName},
$default = $session{form}{$data{fieldName}} -options=>$values,
|| $session{user}{$data{fieldName}} -label=>$label,
|| eval $data{dataDefault}; -value=>$default
$f->$method($data{fieldName},$label,$default); );
} } else {
if ($session{form}{$data{fieldName}}) {
$default = $session{form}{$data{fieldName}};
} elsif (exists $session{user}{$data{fieldName}}) {
$default = $session{user}{$data{fieldName}};
} else {
$default = eval $data{dataDefault};
}
$f->$method(
-name=>$data{fieldName},
-label=>$label,
-value=>$default
);
}
$previousCategory = $category; $previousCategory = $category;
} }
} }