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); } }
/** * 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'); }