- elseif (!empty($spec['pseudoconstant']['optionGroupName'])) {
- $keyColumn = \CRM_Utils_Array::value('keyColumn', $spec['pseudoconstant'], 'value');
- $spec['options'] = \CRM_Core_OptionGroup::values($spec['pseudoconstant']['optionGroupName'], FALSE, FALSE, TRUE, NULL, 'label', TRUE, FALSE, $keyColumn);
+ elseif (!empty($pseudoconstant['optionGroupName'])) {
+ $keyColumn = \CRM_Utils_Array::value('keyColumn', $pseudoconstant, 'value');
+ $spec['options'] = \CRM_Core_OptionGroup::values($pseudoconstant['optionGroupName'], FALSE, FALSE, TRUE, NULL, 'label', TRUE, FALSE, $keyColumn);
+ }
+ if (!empty($pseudoconstant['table'])) {
+ $params = [
+ 'condition' => $pseudoconstant['condition'] ?? [],
+ 'keyColumn' => $pseudoconstant['keyColumn'] ?? NULL,
+ 'labelColumn' => $pseudoconstant['labelColumn'] ?? NULL,
+ ];
+ $spec['options'] = \CRM_Core_PseudoConstant::renderOptionsFromTablePseudoconstant($pseudoconstant, $params, ($spec['localize_context'] ?? NULL), 'get');