/** * Returns the initial value for form field. */ public static function getFieldValue(afDomAccess $field, $object) { $value = $field->get("@value"); $selected = $field->get("@selected"); if (!$value) { if ($field->get("@type") == "checkbox" || $field->get("@type") == "radio") { $value = $field->get("@checked") ? "yes" : "no"; } else { $source = $field->wrapAll("value"); if (!empty($source)) { $method = $source[0]->get("source@name"); if ($method) { $value = $object->{$method}(); } else { $class = $source[0]->get("class"); $method = $source[0]->get("method@name"); $tmp = $source[0]->wrapAll("method/param"); $params = array(); foreach ($tmp as $t) { $params[] = $t->get(""); } $result = call_user_func_array(array($class, $method), $params); if ($field->get("@type") == "combo" || $field->get("@type") == "extendedCombo" || $field->get("@type") == "multicombo") { if (isset($result[$selected])) { $value = $result[$selected]; } } else { if ($field->get("@type") == "doublemulticombo" || $field->get("@type") == "doubletree") { foreach ($result[1] as $r) { $value .= $r . ","; } $value = trim($value, ","); } } } } } } return $value; }