X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FDAO.php;h=697a671fa857d0c3bdbec4ea4e3e55c27f34555f;hb=af28befddd8f5e9c91a0560138fbba2654c0acc2;hp=f37b8d3e1675c948ce092b343876a33bb010c37e;hpb=c303b657acc6d8f88c0950ea9c958ff3db72aeca;p=civicrm-core.git diff --git a/CRM/Core/DAO.php b/CRM/Core/DAO.php index f37b8d3e16..697a671fa8 100644 --- a/CRM/Core/DAO.php +++ b/CRM/Core/DAO.php @@ -1275,12 +1275,10 @@ SELECT contact_id 'CRM_Core_DAO_Domain', ); - require_once (str_replace('_', DIRECTORY_SEPARATOR, $daoName) . ".php"); - for ($i = 0; $i < $numObjects; ++$i) { ++$counter; - $object = new $daoName ( ); + $object = new $daoName(); $fields = &$object->fields(); foreach ($fields as $name => $value) { @@ -1323,24 +1321,13 @@ SELECT contact_id continue; } - $constant = CRM_Utils_Array::value('pseudoconstant', $value); - if (!empty($constant)) { - if (empty($constant['name'])) { - throw new CRM_Core_Exception("Failed to choose value for $daoName ($name) -- missing pseudo-constant name"); - } - $constantValues = CRM_Utils_PseudoConstant::getConstant($constant['name']); - if (!empty($constantValues)) { - $constantOptions = array_keys($constantValues); - $object->$dbName = $constantOptions[0]; - } - continue; - } - $enum = CRM_Utils_Array::value('enumValues', $value); - if (!empty($enum)) { - $options = explode(',', $enum); - $object->$dbName = $options[0]; + // Pick an option value if needed + $options = $daoName::buildOptions($dbName); + if ($options) { + $object->$dbName = key($options); continue; } + switch ($value['type']) { case CRM_Utils_Type::T_INT: case CRM_Utils_Type::T_FLOAT: