<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.3 |
+ | CiviCRM version 4.4 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2013 |
+--------------------------------------------------------------------+
$admin = user_access('administer users');
if (!variable_get('user_email_verification', TRUE) || $admin) {
- $form_state['input']['pass'] = array('pass1'=>$params['cms_pass'],'pass2'=>$params['cms_pass']);
+ $form_state['input']['pass'] = array('pass1'=>$params['cms_pass'],'pass2'=>$params['cms_pass']);
}
if(!empty($params['notify'])){
if (form_get_errors()) {
return FALSE;
}
- else {
- return $form_state['user']->uid;
- }
+ return $form_state['user']->uid;
}
/*
return FALSE;
}
// If the path is within the drupal directory we can use the more efficient 'file' setting
- $params['type'] = self::formatResourceUrl($url) ? 'file' : 'external';
+ $params['type'] = $this->formatResourceUrl($url) ? 'file' : 'external';
drupal_add_js($url, $params);
return TRUE;
}
}
$params = array();
// If the path is within the drupal directory we can use the more efficient 'file' setting
- $params['type'] = self::formatResourceUrl($url) ? 'file' : 'external';
+ $params['type'] = $this->formatResourceUrl($url) ? 'file' : 'external';
drupal_add_css($url, $params);
return TRUE;
}
return TRUE;
}
- /**
- * Check if a resource url is within the drupal directory and format appropriately
- *
- * @param url (reference)
- *
- * @return bool: TRUE for internal paths, FALSE for external
- */
- static function formatResourceUrl(&$url) {
- $internal = FALSE;
- $base = CRM_Core_Config::singleton()->resourceBase;
- global $base_url;
- // Handle absolute urls
- if (strpos($url, $base_url) === 0) {
- $internal = TRUE;
- $url = trim(str_replace($base_url, '', $url), '/');
- }
- // Handle relative urls
- elseif (strpos($url, $base) === 0) {
- $internal = TRUE;
- $url = substr(drupal_get_path('module', 'civicrm'), 0, -6) . trim(substr($url, strlen($base)), '/');
- }
- // Strip query string
- $q = strpos($url, '?');
- if ($q && $internal) {
- $url = substr($url, 0, $q);
- }
- return $internal;
- }
-
/**
* rewrite various system urls to https
*
*
* @param string $name the user name
* @param string $password the password for the above user name
- * @param $loadCMSBootstrap boolean load cms bootstrap?
+ * @param boolean $loadCMSBootstrap load cms bootstrap?
+ * @param NULL|string $realPath filename of script
*
* @return mixed false if no auth
* array(
CRM_Core_Error::fatal("Cannot connect to drupal db via $config->userFrameworkDSN, " . $dbDrupal->getMessage());
}
-
-
$account = $userUid = $userMail = NULL;
if ($loadCMSBootstrap) {
$bootStrapParams = array();
/**
* load drupal bootstrap
*
- * @param $params array with uid or name and password
- * @param $loadUser boolean load cms user?
- * @param $throwError throw error on failure?
+ * @param array $params Either uid, or name & pass.
+ * @param boolean $loadUser boolean Require CMS user load.
+ * @param boolean $throwError If true, print error on failure and exit.
+ * @param boolean|string $realPath path to script
*/
-
function loadBootStrap($params = array(), $loadUser = TRUE, $throwError = TRUE, $realPath = NULL) {
//take the cms root path.
$cmsPath = $this->cmsRootPath($realPath);
}
}
require_once 'includes/bootstrap.inc';
- drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
+ // @ to suppress notices eg 'DRUPALFOO already defined'.
+ @drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
// explicitly setting error reporting, since we cannot handle drupal related notices
error_reporting(1);
return FALSE;
}
+ /**
+ *
+ */
function cmsRootPath($scriptFilename = NULL) {
-
$cmsRoot = $valid = NULL;
if (!is_null($scriptFilename)) {
* @return string $url, formatted url.
* @static
*/
- function languageNegotiationURL(
- $url,
- $addLanguagePart = TRUE,
- $removeLanguagePart = FALSE
- ) {
+ function languageNegotiationURL($url, $addLanguagePart = TRUE, $removeLanguagePart = FALSE) {
if (empty($url)) {
return $url;
}
if ($urlType == LOCALE_LANGUAGE_NEGOTIATION_URL_DOMAIN) {
if (isset($language->domain) && $language->domain) {
if ($addLanguagePart) {
- $url = CRM_Utils_File::addTrailingSlash($language->domain, '/');
+ $url = (CRM_Utils_System::isSSL() ? 'https' : 'http') . '://' . $language->domain . base_path();
}
if ($removeLanguagePart && defined('CIVICRM_UF_BASEURL')) {
$url = str_replace('\\', '/', $url);
/**
* Wrapper for og_membership creation
+ *
+ * @param integer $ogID Organic Group ID
+ * @param integer $drupalID drupal User ID
*/
function og_membership_create($ogID, $drupalID){
if (function_exists('og_entity_query_alter')) {
- // sort-of-randomly chose a function that only exists in the 7.x-2.x branch
- // TODO: Find a more solid way to make this test
- // Also, since we don't know how to get the entity type of the group, we'll assume it's 'node'
+ // sort-of-randomly chose a function that only exists in the // 7.x-2.x branch
+ //
+ // @TODO Find more solid way to check - try system_get_info('module', 'og').
+ //
+ // Also, since we don't know how to get the entity type of the // group, we'll assume it's 'node'
og_group('node', $ogID, array('entity' => user_load($drupalID)));
}
else {
/**
* Wrapper for og_membership deletion
+ *
+ * @param integer $ogID Organic Group ID
+ * @param integer $drupalID drupal User ID
*/
function og_membership_delete($ogID, $drupalID) {
if (function_exists('og_entity_query_alter')) {
}
}
+ /**
+ * Get timezone from Drupal
+ * @return boolean|string
+ */
+ function getTimeZoneOffset(){
+ global $user;
+ if (variable_get('configurable_timezones', 1) && $user->uid && strlen($user->timezone)) {
+ $timezone = $user->timezone;
+ } else {
+ $timezone = variable_get('date_default_timezone', null);
+ }
+ $tzObj = new DateTimeZone($timezone);
+ $dateTime = new DateTime("now", $tzObj);
+ $tz = $tzObj->getOffset($dateTime);
+
+ if(empty($tz)){
+ return false;
+ }
+
+ $timeZoneOffset = sprintf("%02d:%02d", $tz / 3600, ($tz/60)%60 );
+
+ if($timeZoneOffset > 0){
+ $timeZoneOffset = '+' . $timeZoneOffset;
+ }
+ return $timeZoneOffset;
+ }
/**
* Reset any system caches that may be required for proper CiviCRM
* integration.