X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FBAO%2FWordReplacement.php;h=3becc858d1de8c99e8e7bf9a3250028606d5c9a8;hb=fd96067165316831b50e48972059930ad1785444;hp=5cab289efe7b05f0ec1e722dedfa4d6563bec739;hpb=0f65e8343ca2b8dbcf4beb675c0880a2fbb61b53;p=civicrm-core.git diff --git a/CRM/Core/BAO/WordReplacement.php b/CRM/Core/BAO/WordReplacement.php index 5cab289efe..3becc858d1 100644 --- a/CRM/Core/BAO/WordReplacement.php +++ b/CRM/Core/BAO/WordReplacement.php @@ -40,10 +40,10 @@ class CRM_Core_BAO_WordReplacement extends CRM_Core_DAO_WordReplacement { function __construct() { parent::__construct(); - } + } /** * Takes a bunch of params that are needed to match certain criteria and - * retrieves the relevant objects. + * retrieves the relevant objects. * * @param array $params (reference ) an assoc array of name/value pairs * @param array $defaults (reference ) an assoc array to hold the flattened values @@ -52,7 +52,7 @@ class CRM_Core_BAO_WordReplacement extends CRM_Core_DAO_WordReplacement { * @access public * @static */ - + static function retrieve(&$params, &$defaults) { return CRM_Core_DAO::commonRetrieve('CRM_Core_DAO_WordRepalcement', $params, $defaults); } @@ -67,7 +67,7 @@ class CRM_Core_BAO_WordReplacement extends CRM_Core_DAO_WordReplacement { static function getWordReplacement($reset = NULL) { static $wordReplacement = NULL; if (!$wordReplacement || $reset) { - $wordReplacement = new CRM_Core_BAO_WordRepalcement(); + $wordReplacement = new CRM_Core_BAO_WordReplacement(); $wordReplacement->id = CRM_Core_Config::wordReplacementID(); if (!$wordReplacement->find(TRUE)) { CRM_Core_Error::fatal(); @@ -102,8 +102,8 @@ class CRM_Core_BAO_WordReplacement extends CRM_Core_DAO_WordReplacement { */ static function create($params) { if(array_key_exists("domain_id",$params) === FALSE) { - $params["domain_id"] = CRM_Core_Config::domainID(); - } + $params["domain_id"] = CRM_Core_Config::domainID(); + } $wordReplacement = new CRM_Core_DAO_WordReplacement(); $wordReplacement->copyValues($params); $wordReplacement->save(); @@ -112,7 +112,7 @@ class CRM_Core_BAO_WordReplacement extends CRM_Core_DAO_WordReplacement { } return $wordReplacement; } - + /** * Delete website * @@ -139,16 +139,25 @@ class CRM_Core_BAO_WordReplacement extends CRM_Core_DAO_WordReplacement { * @see civicrm_domain.locale_custom_strings */ public static function getAllAsConfigArray($id) { - $query = "SELECT find_word,replace_word FROM civicrm_word_replacement WHERE is_active = 1 AND domain_id = ".CRM_Utils_Type::escape($id, 'Integer'); - $dao = CRM_Core_DAO::executeQuery($query); - $wordReplacement = array(); + $query = " +SELECT find_word,replace_word,is_active,match_type +FROM civicrm_word_replacement +WHERE domain_id = %1 +"; + $params = array( 1 => array($id, 'Integer')); - while ($dao->fetch()) { - $wordReplacement[$dao->find_word] = $dao->replace_word; - } + $dao = CRM_Core_DAO::executeQuery($query, $params); - $overrides['enabled']['wildcardMatch'] = $wordReplacement; + $overrides = array(); + while ($dao->fetch()) { + if ($dao->is_active==1) { + $overrides['enabled'][$dao->match_type][$dao->find_word] = $dao->replace_word; + } + else { + $overrides['disabled'][$dao->match_type][$dao->find_word] = $dao->replace_word; + } + } $config = CRM_Core_Config::singleton(); $domain = new CRM_Core_DAO_Domain(); $domain->find(TRUE); @@ -175,7 +184,6 @@ class CRM_Core_BAO_WordReplacement extends CRM_Core_DAO_WordReplacement { $stringOverride = self::getAllAsConfigArray($id); $params = array('locale_custom_strings' => serialize($stringOverride)); $wordReplacementSettings = CRM_Core_BAO_Domain::edit($params, $id); - if ($wordReplacementSettings) { CRM_Core_Config::singleton()->localeCustomStrings = $stringOverride; @@ -208,27 +216,31 @@ class CRM_Core_BAO_WordReplacement extends CRM_Core_DAO_WordReplacement { $wordReplacementCreateParams = array(); // get all domains $result = civicrm_api3('domain', 'get', array( - 'return' => array('locale_custom_strings'), - )); + 'return' => array('locale_custom_strings'), + )); if (!empty($result["values"])) { foreach ($result["values"] as $value) { $params = array(); - $params["is_active"] = TRUE; $params["domain_id"] = $value["id"]; $params["options"] = array('wp-rebuild' => $rebuildEach); // unserialize word match string $localeCustomArray = unserialize($value["locale_custom_strings"]); if (!empty($localeCustomArray)) { $wordMatchArray = array(); + // Traverse Language array foreach ($localeCustomArray as $localCustomData) { - $wordMatchArray = $localCustomData["enabled"]["wildcardMatch"]; - } - - if (!empty($wordMatchArray)) { - foreach ($wordMatchArray as $word => $replace) { - $params["find_word"] = $word; - $params["replace_word"] = $replace; - $wordReplacementCreateParams[] = $params; + // Traverse status array "enabled" "disabled" + foreach ($localCustomData as $status => $matchTypes) { + $params["is_active"] = ($status == "enabled")?TRUE:FALSE; + // Traverse Match Type array "wildcardMatch" "exactMatch" + foreach ($matchTypes as $matchType => $words) { + $params["match_type"] = $matchType; + foreach ($words as $word => $replace) { + $params["find_word"] = $word; + $params["replace_word"] = $replace; + $wordReplacementCreateParams[] = $params; + } + } } } }