Merge pull request #4635 from colemanw/comments
[civicrm-core.git] / CRM / Core / BAO / WordReplacement.php
index 9da2ebf36a6bcb2872d7553dbcc91c1564a7e4fe..1d933ec2eb4c6d5ad79cf344274d596f5734e371 100644 (file)
@@ -39,7 +39,7 @@
 class CRM_Core_BAO_WordReplacement extends CRM_Core_DAO_WordReplacement {
 
   /**
-   * class constructor
+   * Class constructor
    *
    * @access public
    * @return \CRM_Core_DAO_WordReplacement
@@ -57,7 +57,7 @@ class CRM_Core_BAO_WordReplacement extends CRM_Core_DAO_WordReplacement {
    * @param array $params   (reference ) an assoc array of name/value pairs
    * @param array $defaults (reference ) an assoc array to hold the flattened values
    *
-   * @return object CRM_Core_DAO_WordRepalcement object
+   * @return CRM_Core_DAO_WordRepalcement object
    * @access public
    * @static
    */
@@ -91,8 +91,8 @@ class CRM_Core_BAO_WordReplacement extends CRM_Core_DAO_WordReplacement {
   /**
    * Save the values of a WordReplacement
    *
-   * @param $params
-   * @param $id
+   * @param array $params
+   * @param int $id
    *
    * @return WordReplacement array
    * @access public
@@ -111,7 +111,7 @@ class CRM_Core_BAO_WordReplacement extends CRM_Core_DAO_WordReplacement {
   /**
    * Create a new WordReplacement
    *
-   * @param $params
+   * @param array $params
    *
    * @return WordReplacement array
    * @access public
@@ -195,7 +195,7 @@ WHERE  domain_id = %1
   /**
    * Rebuild
    */
-  static function rebuild() {
+  static function rebuild($clearCaches = TRUE) {
     $id = CRM_Core_Config::domainID();
     $stringOverride = self::getAllAsConfigArray($id);
     $params = array('locale_custom_strings' => serialize($stringOverride));
@@ -203,12 +203,13 @@ WHERE  domain_id = %1
     if ($wordReplacementSettings) {
       CRM_Core_Config::singleton()->localeCustomStrings = $stringOverride;
 
-      // Reset navigation
-      CRM_Core_BAO_Navigation::resetNavigation();
-      // Clear js string cache
-      CRM_Core_Resources::singleton()->flushStrings();
-      // Clear dynamic js files which may contain localization
-      CRM_Utils_File::flushDynamicResources();
+      // Partially mitigate the inefficiency introduced in CRM-13187 by doing this conditionally
+      if ($clearCaches) {
+        // Reset navigation
+        CRM_Core_BAO_Navigation::resetNavigation();
+        // Clear js localization
+        CRM_Core_Resources::singleton()->flushStrings()->resetCacheCode();
+      }
 
       return TRUE;
     }