optionGroupName = $optionGroup; $optionValueTable = 'civicrm_option_value'; // default join alias to option group name, e.g. activity_type if (!$alias && !is_numeric($optionGroup)) { $alias = $optionGroup; } parent::__construct($optionValueTable, $keyColumn, $alias); if (!is_numeric($optionGroup)) { $subSelect = 'SELECT id FROM civicrm_option_group WHERE name = "%s"'; $subQuery = sprintf($subSelect, $optionGroup); $condition = sprintf('%s.option_group_id = (%s)', $alias, $subQuery); } else { $condition = sprintf('%s.option_group_id = %d', $alias, $optionGroup); } $this->addCondition($condition); } /** * The existing condition must also be re-aliased * * @param string $alias * * @return $this */ public function setAlias($alias) { foreach ($this->conditions as $index => $condition) { $search = $this->alias . '.'; $replace = $alias . '.'; $this->conditions[$index] = str_replace($search, $replace, $condition); } parent::setAlias($alias); return $this; } }