getMapper(); if (!$ext->isExtensionKey($customSearchClass)) { $customSearchFile = str_replace('_', DIRECTORY_SEPARATOR, $customSearchClass ) . '.php'; } else { $customSearchFile = $ext->keyToPath($customSearchClass); $customSearchClass = $ext->keyToClass($customSearchClass); } $error = include_once $customSearchFile; if ($error == FALSE) { CRM_Core_Error::fatal('Custom search file: ' . $customSearchFile . ' does not exist. Please verify your custom search settings in CiviCRM administrative panel.'); } return array($customSearchID, $customSearchClass, $formValues); } /** * @param int $csID * @param int $ssID * * @return mixed * @throws Exception */ public static function customClass($csID, $ssID) { list($customSearchID, $customSearchClass, $formValues) = self::details($csID, $ssID); if (!$customSearchID) { CRM_Core_Error::fatal('Could not resolve custom search ID'); } // instantiate the new class $customClass = new $customSearchClass($formValues); return $customClass; } /** * @param int $csID * @param int $ssID * * @return mixed */ public static function contactIDSQL($csID, $ssID) { $customClass = self::customClass($csID, $ssID); return $customClass->contactIDs(); } /** * @param $args * * @return array */ public static function &buildFormValues($args) { $args = trim($args); $values = explode("\n", $args); $formValues = array(); foreach ($values as $value) { list($n, $v) = CRM_Utils_System::explode('=', $value, 2); if (!empty($v)) { $formValues[$n] = $v; } } return $formValues; } /** * @param int $csID * @param int $ssID * * @return array */ public static function fromWhereEmail($csID, $ssID) { $customClass = self::customClass($csID, $ssID); $from = $customClass->from(); $where = $customClass->where(); return array($from, $where); } }