_uf = $config->userFramework; if ($this->_uf == 'WordPress') { $this->_settings = array('wpBasePage' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME); } CRM_Utils_System::setTitle( ts('Settings - %1 Integration', array(1 => $this->_uf)) ); $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 || !empty($drupal_prefix) ) ) { $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) . " => '{$prefix}',"; } $tablePrefixes .= "\n);"; $this->assign('tablePrefixes', $tablePrefixes); } parent::buildQuickForm(); } }