is_active = 1; } if ($filter && is_array($filter)) { foreach ($filter as $key => $value) { $dao->$key = $value; } } if ($selectArr && is_array($selectArr)) { $select = implode(',', $selectArr); $dao->selectAdd($select); } $dao->orderBy($orderBy); $dao->find(); while ($dao->fetch()) { CRM_Core_DAO::storeValues($dao, $temp); $providers[] = $temp; } return $providers; } /** * @param $values */ public static function saveRecord($values) { $dao = new CRM_SMS_DAO_Provider(); $dao->copyValues($values); $dao->save(); } /** * @param $values * @param int $providerId */ public static function updateRecord($values, $providerId) { $dao = new CRM_SMS_DAO_Provider(); $dao->id = $providerId; if ($dao->find(TRUE)) { $dao->copyValues($values); $dao->save(); } } /** * @param int $id * @param $is_active * * @return bool */ public static function setIsActive($id, $is_active) { return CRM_Core_DAO::setFieldValue('CRM_SMS_DAO_Provider', $id, 'is_active', $is_active); } /** * @param int $providerID * * @return null * @throws Exception */ public static function del($providerID) { if (!$providerID) { CRM_Core_Error::fatal(ts('Invalid value passed to delete function.')); } $dao = new CRM_SMS_DAO_Provider(); $dao->id = $providerID; if (!$dao->find(TRUE)) { return NULL; } $dao->delete(); } /** * @param int $providerID * @param null $returnParam * @param null $returnDefaultString * * @return mixed */ public static function getProviderInfo($providerID, $returnParam = NULL, $returnDefaultString = NULL) { static $providerInfo = array(); if (!array_key_exists($providerID, $providerInfo)) { $providerInfo[$providerID] = array(); $dao = new CRM_SMS_DAO_Provider(); $dao->id = $providerID; if ($dao->find(TRUE)) { CRM_Core_DAO::storeValues($dao, $providerInfo[$providerID]); $inputLines = explode("\n", $providerInfo[$providerID]['api_params']); $inputVals = array(); foreach ($inputLines as $value) { if ($value) { list($key, $val) = explode("=", $value); $inputVals[trim($key)] = trim($val); } } $providerInfo[$providerID]['api_params'] = $inputVals; // Replace the api_type ID with the string value $apiTypes = CRM_Core_OptionGroup::values('sms_api_type'); $apiTypeId = $providerInfo[$providerID]['api_type']; $providerInfo[$providerID]['api_type'] = CRM_Utils_Array::value($apiTypeId, $apiTypes, $apiTypeId); } } if ($returnParam) { return CRM_Utils_Array::value($returnParam, $providerInfo[$providerID], $returnDefaultString); } return $providerInfo[$providerID]; } }