/** * Build the form object. */ public function buildQuickForm() { $config = CRM_Core_Config::singleton(); $this->_uf = $config->userFramework; if ($this->_uf == 'WordPress') { $this->_settings['wpBasePage'] = CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME; } CRM_Utils_System::setTitle(ts('Settings - %1 Integration', array(1 => $this->_uf))); if ($config->userSystem->is_drupal) { $this->_settings['userFrameworkUsersTableName'] = CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME; } // 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::getTableNames(); $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) { $tablePrefixes .= "\n '" . str_pad($tableName . "'", 41) . " => '{$prefix}',"; } $tablePrefixes .= "\n);"; $this->assign('tablePrefixes', $tablePrefixes); } parent::buildQuickForm(); }