Пример #1
0
 /**
  * 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();
 }