public function __construct($scenario = 'database')
 {
     $drivers = array();
     if (extension_loaded('pdo')) {
         $drivers = CDbConnection::getAvailableDrivers();
     }
     foreach ($drivers as $driver) {
         if (isset($this->db_names[$driver])) {
             $this->supported_db_types[$driver] = $this->db_names[$driver];
         }
     }
     asort($this->supported_db_types);
     parent::__construct();
     // Default is database
     $this->setScenario($scenario);
 }
 public function rules()
 {
     return array(array('dbtype, dblocation, dbname, dbuser', 'required', 'on' => 'database'), array('dbpwd, dbprefix', 'safe', 'on' => 'database'), array('dbtype', 'in', 'range' => array_keys(CDbConnection::getAvailableDrivers()), 'on' => 'database'), array('adminLoginName, adminName, siteName, confirmPwd', 'safe', 'on' => 'optional'), array('adminEmail', 'email', 'on' => 'optional'), array('surveylang', 'in', 'range' => array_keys(getLanguageData(true, Yii::app()->session['installerLang'])), 'on' => 'optional'), array('adminLoginPwd', 'compare', 'compareAttribute' => 'confirmPwd', 'message' => Yii::app()->getController()->lang->gT('Passwords do not match!'), 'strict' => true, 'on' => 'optional'));
 }