['', 'DISTINCT', 'ALL'], 'expr' => 1, 'must_be' => ['SqlField'], 'optional' => FALSE, ], [ 'prefix' => ['ORDER BY'], 'expr' => 1, 'suffix' => ['', 'ASC', 'DESC'], 'must_be' => ['SqlField'], 'optional' => TRUE, ], [ 'prefix' => ['SEPARATOR'], 'expr' => 1, 'must_be' => ['SqlString'], 'optional' => TRUE, // @see self::formatOutput() 'api_default' => [ 'expr' => ['"' . \CRM_Core_DAO::VALUE_SEPARATOR . '"'], ], ], ]; /** * Reformat result as array if using default separator * * @see \Civi\Api4\Utils\FormattingUtil::formatOutputValues * @param string $value * @return string|array */ public function formatOutputValue($value) { $exprArgs = $this->getArgs(); if (!$exprArgs[2]['prefix']) { $value = explode(\CRM_Core_DAO::VALUE_SEPARATOR, $value); } return $value; } /** * @return string */ public static function getTitle(): string { return ts('List'); } }