From d94d05a52348e295c3bf2342ac3ada52092ae8b4 Mon Sep 17 00:00:00 2001 From: yashodha Date: Mon, 26 Aug 2013 12:55:11 +0530 Subject: [PATCH] CRM-13198 --- CRM/Admin/Form/Setting/UF.php | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/CRM/Admin/Form/Setting/UF.php b/CRM/Admin/Form/Setting/UF.php index 3f7d0a8eb1..3bb33145b7 100644 --- a/CRM/Admin/Form/Setting/UF.php +++ b/CRM/Admin/Form/Setting/UF.php @@ -41,7 +41,7 @@ class CRM_Admin_Form_Setting_UF extends CRM_Admin_Form_Setting { protected $_settings = array(); - protected $_uf = null; + protected $_uf = NULL; /** * Function to build the form @@ -62,16 +62,35 @@ class CRM_Admin_Form_Setting_UF extends CRM_Admin_Form_Setting { ); $this->addElement('text', 'userFrameworkUsersTableName', ts('%1 Users Table Name', array(1 => $this->_uf))); + // find out if drupal has its database prefixed + global $databases; + $drupal_prefix = ''; + if (isset($databases['default']['default']['prefix'])) { + if (is_array($databases['default']['default']['prefix'])) { + $drupal_prefix = $databases['default']['default']['prefix']['default']; + } + else { + $drupal_prefix = $databases['default']['default']['prefix']; + } + } + if ( function_exists('module_exists') && module_exists('views') && - $config->dsn != $config->userFrameworkDSN + ( + $config->dsn != $config->userFrameworkDSN || !empty($drupal_prefix) + ) ) { - $dsnArray = DB::parseDSN($config->dsn); - $tableNames = CRM_Core_DAO::GetStorageValues(NULL, 0, 'Name'); + $dsnArray = DB::parseDSN($config->dsn); + $tableNames = CRM_Core_DAO::GetStorageValues(NULL, 0, 'Name'); $tablePrefixes = '$databases[\'default\'][\'default\'][\'prefix\']= array('; + $tablePrefixes .= "\n 'default' => '$drupal_prefix',"; // add default prefix: the drupal database prefix + $prefix = ""; + if ($config->dsn != $config->userFrameworkDSN) { + $prefix = "`{$dsnArray['database']}`."; + } foreach ($tableNames as $tableName => $value) { - $tablePrefixes .= "\n '" . str_pad($tableName . "'", 41) . " => '`{$dsnArray['database']}`.',"; + $tablePrefixes .= "\n '" . str_pad($tableName . "'", 41) . " => '{$prefix}',"; } $tablePrefixes .= "\n);"; $this->assign('tablePrefixes', $tablePrefixes); -- 2.25.1