diff --git a/CRM/Utils/System/WordPress.php b/CRM/Utils/System/WordPress.php index 65d00d942828c701e546d00397d2d6a0c04b6f4b..6f08bfe92ecabd994e1f3500c461b78c6ff4933d 100644 --- a/CRM/Utils/System/WordPress.php +++ b/CRM/Utils/System/WordPress.php @@ -433,26 +433,42 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base { return true; } + function validInstallDir($dir) { + $includePath = "$dir/wp-includes"; + if ( + @opendir($includePath) && + file_exists("$includePath/version.php") + ) { + return TRUE; + } + return FALSE; + } + function cmsRootPath() { $cmsRoot = $valid = NULL; - $pathVars = explode('/', str_replace('\\', '/', $_SERVER['SCRIPT_FILENAME'])); - - //might be windows installation. - $firstVar = array_shift($pathVars); - if ($firstVar) { - $cmsRoot = $firstVar; + if (defined('CIVICRM_CMSDIR')) { + if ($this->validInstallDir(CIVICRM_CMSDIR)) { + $cmsRoot = CIVICRM_CMSDIR; + $valid = TRUE; + } } + else { + $pathVars = explode('/', str_replace('\\', '/', $_SERVER['SCRIPT_FILENAME'])); - //start w/ csm dir search. - foreach ($pathVars as $var) { - $cmsRoot .= "/$var"; - $cmsIncludePath = "$cmsRoot/wp-includes"; - //stop as we found bootstrap. - if (@opendir($cmsIncludePath) && - file_exists("$cmsIncludePath/version.php") - ) { - $valid = TRUE; - break; + //might be windows installation. + $firstVar = array_shift($pathVars); + if ($firstVar) { + $cmsRoot = $firstVar; + } + + //start w/ csm dir search. + foreach ($pathVars as $var) { + $cmsRoot .= "/$var"; + if ($this->validInstallDir($cmsRoot)) { + //stop as we found bootstrap. + $valid = TRUE; + break; + } } }