X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FUtils%2FSystem%2FWordPress.php;h=355b5bc535843ba3418110557475fd52742a883e;hb=7ca9cd52178be7029ac826d1fab30df027196798;hp=b3a4bd7a87bd9431e12d75c81f2d924b5e582f40;hpb=11a1ad01c57740352bf558e9ac326ef341fde5bb;p=civicrm-core.git diff --git a/CRM/Utils/System/WordPress.php b/CRM/Utils/System/WordPress.php index b3a4bd7a87..355b5bc535 100644 --- a/CRM/Utils/System/WordPress.php +++ b/CRM/Utils/System/WordPress.php @@ -76,29 +76,48 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base { * Moved from CRM_Utils_System_Base */ public function getDefaultFileStorage() { + $config = CRM_Core_Config::singleton(); + $cmsUrl = CRM_Utils_System::languageNegotiationURL($config->userFrameworkBaseURL, FALSE, TRUE); + $cmsPath = $this->cmsRootPath(); + $filesPath = CRM_Utils_File::baseFilePath(); + $filesRelPath = CRM_Utils_File::relativize($filesPath, $cmsPath); + $filesURL = rtrim($cmsUrl, '/') . '/' . ltrim($filesRelPath, ' /'); + return array( + 'url' => CRM_Utils_File::addTrailingSlash($filesURL, '/'), + 'path' => CRM_Utils_File::addTrailingSlash($filesPath), + ); + } + + /** + * Determine the location of the CiviCRM source tree. + * + * @return array + * - url: string. ex: "http://example.com/sites/all/modules/civicrm" + * - path: string. ex: "/var/www/sites/all/modules/civicrm" + */ + public function getCiviSourceStorage() { global $civicrm_root; - $config = CRM_Core_Config::singleton(); - $baseURL = CRM_Utils_System::languageNegotiationURL($config->userFrameworkBaseURL, FALSE, TRUE); - $filesURL = NULL; - $filesPath = NULL; - $upload_dir = wp_upload_dir(); - $settingsDir = $upload_dir['basedir'] . DIRECTORY_SEPARATOR . 'civicrm' . DIRECTORY_SEPARATOR; - $settingsURL = $upload_dir['baseurl'] . DIRECTORY_SEPARATOR . 'civicrm' . DIRECTORY_SEPARATOR; - if (is_dir(WP_PLUGIN_DIR . '/files/civicrm/')) { - //for legacy path - $filesURL = WP_PLUGIN_URL . "/files/civicrm/"; - } - elseif (is_dir($settingsDir)) { - $filesURL = $settingsURL; + // Don't use $config->userFrameworkBaseURL; it has garbage on it. + // More generally, we shouldn't be using $config here. + if (!defined('CIVICRM_UF_BASEURL')) { + throw new RuntimeException('Undefined constant: CIVICRM_UF_BASEURL'); } - else { - throw new CRM_Core_Exception("Failed to locate default file storage ($config->userFramework)"); + + $cmsPath = $this->cmsRootPath(); + + // $config = CRM_Core_Config::singleton(); + // overkill? // $cmsUrl = CRM_Utils_System::languageNegotiationURL($config->userFrameworkBaseURL, FALSE, TRUE); + $cmsUrl = CIVICRM_UF_BASEURL; + if (CRM_Utils_System::isSSL()) { + $cmsUrl = str_replace('http://', 'https://', $cmsUrl); } + $civiRelPath = CRM_Utils_File::relativize($civicrm_root, $cmsPath); + $civiUrl = rtrim($cmsUrl, '/') . '/' . ltrim($civiRelPath, ' /'); return array( - 'url' => $filesURL, - 'path' => CRM_Utils_File::baseFilePath(), + 'url' => CRM_Utils_File::addTrailingSlash($civiUrl, '/'), + 'path' => CRM_Utils_File::addTrailingSlash($civicrm_root), ); } @@ -180,13 +199,12 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base { $query = NULL, $absolute = FALSE, $fragment = NULL, - $htmlize = TRUE, $frontend = FALSE, $forceBackend = FALSE ) { $config = CRM_Core_Config::singleton(); $script = ''; - $separator = $htmlize ? '&' : '&'; + $separator = '&'; $wpPageParam = ''; $fragment = isset($fragment) ? ('#' . $fragment) : ''; @@ -308,13 +326,24 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base { } /** - * FIXME: Do something - * - * @param \obj $user + * @param \string $user * * @return bool */ public function loadUser($user) { + $userdata = get_user_by('login', $user); + if (!$userdata->data->ID) { + return FALSE; + } + + $uid = $userdata->data->ID; + wp_set_current_user($uid); + $contactID = CRM_Core_BAO_UFMatch::getContactId($uid); + + // lets store contact id and user id in session + $session = CRM_Core_Session::singleton(); + $session->set('ufID', $uid); + $session->set('userID', $contactID); return TRUE; } @@ -560,9 +589,8 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base { $errors[$emailName] = "Your email is invaid"; } elseif (email_exists($params['mail'])) { - $resetUrl = $config->userFrameworkBaseURL . 'wp-login.php?action=lostpassword'; $errors[$emailName] = ts('The email address %1 already has an account associated with it. Have you forgotten your password?', - array(1 => $params['mail'], 2 => $resetUrl) + array(1 => $params['mail'], 2 => wp_lostpassword_url()) ); } } @@ -632,8 +660,7 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base { */ public function getLoginURL($destination = '') { $config = CRM_Core_Config::singleton(); - $loginURL = $config->userFrameworkBaseURL; - $loginURL .= 'wp-login.php'; + $loginURL = wp_login_url(); return $loginURL; }