Merge pull request #16353 from pradpnayak/functionFix
[civicrm-core.git] / CRM / Utils / System.php
index 1dcf1227ec69390f9fe9b7b6a55990603a5c2361..29b043f1568eff6d62002f278ac4c0fdba52e5f6 100644 (file)
@@ -298,6 +298,8 @@ class CRM_Utils_System {
    *   URI-scheme such as 'http:').
    * @param bool $isSSL
    *   NULL to autodetect. TRUE to force to SSL.
+   *
+   * @return string rawencoded URL.
    */
   public static function externUrl($path = NULL, $query = NULL, $fragment = NULL, $absolute = TRUE, $isSSL = NULL) {
     $query = self::makeQueryString($query);
@@ -316,7 +318,7 @@ class CRM_Utils_System {
       'isSSL' => $isSSL,
     ]);
     Civi::service('dispatcher')->dispatch('hook_civicrm_alterExternUrl', $event);
-    return CRM_Utils_Url::unparseUrl($event->url);
+    return urldecode(CRM_Utils_Url::unparseUrl($event->url));
   }
 
   /**
@@ -1478,6 +1480,9 @@ class CRM_Utils_System {
     // reset ACL cache
     CRM_ACL_BAO_Cache::resetCache();
 
+    // clear asset builder folder
+    \Civi::service('asset_builder')->clear(FALSE);
+
     // reset various static arrays used here
     CRM_Contact_BAO_Contact::$_importableFields = CRM_Contact_BAO_Contact::$_exportableFields
       = CRM_Contribute_BAO_Contribution::$_importableFields
@@ -1781,13 +1786,14 @@ class CRM_Utils_System {
     }
     else {
       $config = CRM_Core_Config::singleton();
+      $tsLocale = CRM_Core_I18n::getLocale();
       $vars = [
         '{ver}' => CRM_Utils_System::version(),
         '{uf}' => $config->userFramework,
         '{php}' => phpversion(),
         '{sid}' => self::getSiteID(),
         '{baseUrl}' => $config->userFrameworkBaseURL,
-        '{lang}' => $config->lcMessages,
+        '{lang}' => $tsLocale,
         '{co}' => $config->defaultContactCountry,
       ];
       return strtr($url, array_map('urlencode', $vars));