function testLoadDriver() { $r = DatabaseDriverManager::loadDriver('DB'); $this->assertTrue($r->is(new Error('INVALID_DATABASEDRIVER', 'DB'))); $r = DatabaseDriverManager::loadDriver('CantRun'); $this->assertTrue($r->is(new Error('INVALID_DATABASEDRIVER', 'CantRun'))); }
function setUp($moduleName) { //parent::__construct (); $this->_moduleName = $moduleName; $this->_module = DatabaseDriverManager::loadDriver($this->_moduleName); $a = $this->connect(); if ($a === false) { return; } }
function loadModuleFromConfig($module, $config) { $mod = DatabaseDriverManager::loadDriver($module); if (isError($mod)) { return $mod; } $mOpts = $config[$module]; $a = $mod->connect($mOpts['Host'], $mOpts['User'], $mOpts['Password'], $mOpts['DatabaseName']); if (isError($a)) { return $a; } $mod->setPrefix($mOpts['Prefix']); return $mod; }
function installConfigAndDatabase($siteName, $siteDefaultLanguage, $dbDriverName, $databaseHost, $databaseUser, $databasePassword, $databaseName, $databasePrefix, $adminLogin, $adminPassword, $adminMail) { DatabaseDriverManager::findAllDriversInDirectory('core/dbdrivers'); $dbDriver = DatabaseDriverManager::loadDriver($dbDriverName); if (!isError($dbDriver)) { $dbDriver->connect($databaseHost, $databaseUser, $databasePassword, $databaseName); $dbDriver->setPrefix($databasePrefix); $pluginManager = new pluginManager($this->_pluginAPI); $pluginManager->findAllPlugins('interface/core-plugins/'); // an hack for viewPage to be first $foundPlugins = array_reverse($pluginManager->getAllFoundPlugins()); foreach ($foundPlugins as $plugin) { if (is_a($plugin, 'InstallablePlugin')) { $a = $plugin->install($this->_pluginAPI, $dbDriver, $siteDefaultLanguage); if (isError($a)) { var_dump($a); die('Something went wrong'); } } } $userM = new userManager($dbDriver); $admin = $userM->newUser(); $a = $admin->initFromArray(array('login' => $adminLogin, 'password' => md5($adminPassword), 'email' => $adminMail)); $userM->addUserToDatabase($admin); $group = $userM->newGroup(); $group->initFromArray(array('generic_name' => 'administrator', 'generic_description' => 'The admin users')); $userM->addGroupToDatabase($group); $group->assignPermission('edit_admin', true); $admin->addToGroup($group); $group = $userM->newGroup(); $group->initFromArray(array('generic_name' => 'normaluser', 'generic_description' => 'All users')); $userM->addGroupToDatabase($group); $group->assignPermission('edit_admin', false); $admin->addToGroup($group); $group = $userM->newGroup(); $group->initFromArray(array('generic_name' => 'anonymous', 'generic_description' => 'Not logged in')); $userM->addGroupToDatabase($group); $group->assignPermission('edit_admin', false); $configContents = '<?php' . PHP_NL . PHP_NL; $configContents .= '$configItems[\'/databases/driver\']=\'' . $dbDriverName . '\';' . PHP_NL; $configContents .= '$configItems[\'/databases/host\']=\'' . $databaseHost . '\';' . PHP_NL; $configContents .= '$configItems[\'/databases/password\']=\'' . $databasePassword . '\';' . PHP_NL; $configContents .= '$configItems[\'/databases/user\']=\'' . $databaseUser . '\';' . PHP_NL; $configContents .= '$configItems[\'/databases/database\']=\'' . $databaseName . '\';' . PHP_NL; $configContents .= '$configItems[\'/databases/table_prefix\']=\'' . $databasePrefix . '\';' . PHP_NL . PHP_NL; $configContents .= '$configItems[\'/site/title\']=\'' . $siteName . '\';' . PHP_NL; $configContents .= '$configItems[\'/site/default_language\']=\'' . $siteDefaultLanguage . '\';' . PHP_NL; $configContents .= '$configItems[\'/site/enableUsers\']=true;' . PHP_NL; $configContents .= '$configItems[\'/languages/' . $siteDefaultLanguage . '\']=\'' . $siteDefaultLanguage . '\';' . PHP_NL; $configContents .= '?>'; $c = @fopen('config.php', 'w'); if ($c !== false) { fwrite($c, $configContents); fclose($c); header('Location: index.php'); } else { $sm =& $this->_pluginAPI->getSmarty(); $sm->assign('CONFIG_CONTENT', htmlspecialchars($configContents)); $sm->display('installer/save_config_manual.tpl'); } } else { var_dump($dbModule); } }
$allTables[] = $row[0]; } return $allTables; } else { return $q; } } function escapeString($value) { if (get_magic_quotes_gpc()) { $value = stripslashes($value); } return $this->_mysqli->escape_string($value); } function tableExists($tableName) { $allTables = $this->getAllTables(); if (in_array($this->getPrefix() . $tableName, $allTables)) { return true; } else { return in_array(strtolower($this->getPrefix() . $tableName), $allTables); } } function getSQLCreator() { return 'DataMySQLCompatLayer'; } } } DatabaseDriverManager::addDriver('MySQLI', 'MySQLIDatabaseDriver', class_exists('mysqli'));
$allTables[] = $row['Tables_in_' . $this->dbName]; } return $allTables; } else { return $q; } } function escapeString($value) { if (get_magic_quotes_gpc()) { $value = stripslashes($value); } return mysql_real_escape_string($value, $this->connection); } function tableExists($tableName) { $allTables = $this->getAllTables(); if (in_array($this->getPrefix() . $tableName, $allTables)) { return true; } else { return in_array(strtolower($this->getPrefix() . $tableName), $allTables); } } function getSQLCreator() { return 'DataMySQLCompatLayer'; } } } DatabaseDriverManager::AddDriver('MySQL', 'MySQLDatabaseDriver', function_exists('mysql_connect'));
/** * Init the system. * @public */ function init() { parent::init(); $this->_pluginAPI = new PluginAPI($this); DatabaseDriverManager::findAllDriversInDirectory('core/dbdrivers'); $this->_dbDriver = DatabaseDriverManager::loadDriver($this->_configManager->getStringItem('/databases/driver')); $e = $this->_dbDriver->connect($this->_configManager->getStringItem('/databases/host'), $this->_configManager->getStringItem('/databases/user'), $this->_configManager->getStringItem('/databases/password'), $this->_configManager->getStringItem('/databases/database')); if (isError($e)) { $this->_pageManager = new PageManager($this->_dbDriver); $this->_userManager = new UserManager($this->_dbDriver); $this->loadPluginAPI(); $this->loadUserSettings(); $this->error($e); } $this->_dbDriver->setPrefix($this->_configManager->getStringItem('/databases/table_prefix')); $this->_pageManager = new PageManager($this->_dbDriver); $this->_userManager = new UserManager($this->_dbDriver); $this->_pluginManager->findAllPlugins('interface/core-plugins'); $this->loadPluginAPI(); $this->loadUserSettings(); }
$_POST['action'] = 'installerInstall'; $_POST['siteName'] = $c->getStringItem('/site/title'); $_POST['siteDefaultLanguage'] = $c->getStringItem('/site/default_language'); $_POST['databaseDriver'] = $c->getStringItem('/databases/driver'); $_POST['databaseHost'] = $c->getStringItem('/databases/host'); $_POST['databaseUser'] = $c->getStringItem('/databases/user'); $_POST['databasePassword'] = $c->getStringItem('/databases/password'); $_POST['databaseName'] = $c->getStringItem('/databases/database'); $_POST['databasePrefix'] = $c->getStringItem('/databases/table_prefix'); $_POST['adminLogin'] = '******'; $_POST['adminPassword1'] = 'test'; $_POST['adminPassword2'] = 'test'; $_POST['adminMail'] = '*****@*****.**'; // lets hack some more $_SERVER['REQUEST_METHOD'] = 'POST'; DatabaseDriverManager::findAllDriversInDirectory('core/dbdrivers'); $dbDriver = DatabaseDriverManager::loadDriver($_POST['databaseDriver']); $dbDriver->connect($_POST['databaseHost'], $_POST['databaseUser'], $_POST['databasePassword'], $_POST['databaseName']); foreach ($dbDriver->getAllTables() as $t) { if (ereg('^' . $_POST['databasePrefix'], $t)) { $sql = "DROP TABLE {$t}"; $dbDriver->query($sql); } } $morgos = new BaseMorgos(); $morgos->run(); header('Location: index.php'); // header to index.php even if config.php is unwritable } else { die('config.php not found'); }
$q = $this->query("SELECT table_name FROM information_schema.tables WHERE table_schema='public'"); if (!isError($q)) { $allTables = array(); while ($row = pg_fetch_assoc($q)) { $allTables[] = $row['table_name']; } return $allTables; } else { return $q; } } function escapeString($value) { if (get_magic_quotes_gpc()) { $value = stripslashes($value); } return pg_escape_string($value); } function tableExists($tableName) { $allTables = $this->getAllTables(); if (in_array($this->getPrefix() . $tableName, $allTables)) { return true; } else { return in_array(strtolower($this->getPrefix() . $tableName), $allTables); } } } } DatabaseDriverManager::addDriver('PostgreSQL', 'PgSQLDatabaseDriver', function_exists('pg_connect'));
/** * Adds the driver with name $driverName to the driver list. * * @since 0.4 * @param $driverName (string) * @param $driverClass (string) the name of the class of the driver * @param $canRun (bool) */ function addDriver($driverName, $driverClass, $canRun) { global $_DBDriverList; if (!DatabaseDriverManager::isDriverInstalled($driverName)) { if (class_exists($driverClass)) { $_DBDriverList[$driverName] = array('className' => $driverClass, 'canRun' => $canRun); } else { return new Error('DBDRIVERCLASS_NOTFOUND', $driverName, $driverClass); } } else { return new Error('DBDRIVER_ALREADY_ADDED', $driverName); } }