* @copyright Copyright © 2006 Peter Adams * @license http://www.gnu.org/copyleft/gpl.html GPL v2.0 * @category owa * @package owa * @version $Revision$ * @since owa 1.0.0 */ class owa_installConfigController extends owa_installController { function __construct($params) { parent::__construct($params); // require nonce $this->setNonceRequired(); //required params $v1 = owa_coreAPI::validationFactory('required'); $v1->setValues($this->getParam('db_host')); $v1->setErrorMessage("Database host is required."); $this->setValidation('db_host', $v1); $v2 = owa_coreAPI::validationFactory('required'); $v2->setValues($this->getParam('db_name')); $v2->setErrorMessage("Database name is required."); $this->setValidation('db_name', $v2); $v3 = owa_coreAPI::validationFactory('required'); $v3->setValues($this->getParam('db_user')); $v3->setErrorMessage("Database user is required."); $this->setValidation('db_user', $v3); $v4 = owa_coreAPI::validationFactory('required'); $v4->setValues($this->getParam('db_password')); $v4->setErrorMessage("Database password is required."); $this->setValidation('db_password', $v4); $v7 = owa_coreAPI::validationFactory('required'); $v7->setValues($this->getParam('db_type')); $v7->setErrorMessage("Database type is required."); $this->setValidation('db_type', $v7); // Config for the public_url validation $v5 = owa_coreAPI::validationFactory('subStringMatch'); $v5->setConfig('match', '/'); $v5->setConfig('length', 1); $v5->setValues($this->getParam('public_url')); $v5->setConfig('position', -1); $v5->setConfig('operator', '='); $v5->setErrorMessage("Your URL of OWA's base directory must end with a slash."); $this->setValidation('public_url', $v5); // Config for the domain validation $v6 = owa_coreAPI::validationFactory('subStringPosition'); $v6->setConfig('subString', 'http'); $v6->setValues($this->getParam('public_url')); $v6->setConfig('position', 0); $v6->setConfig('operator', '='); $v6->setErrorMessage("Please add http:// or https:// to the beginning of your public url."); $this->setValidation('public_url', $v6); } function action() { // define db connection constants using values submitted if ( ! defined( 'OWA_DB_TYPE' ) ) { define( 'OWA_DB_TYPE', $this->getParam( 'db_type' ) ); } if ( ! defined( 'OWA_DB_HOST' ) ) { define('OWA_DB_HOST', $this->getParam( 'db_host' ) ); } if ( ! defined( 'OWA_DB_NAME' ) ) { define('OWA_DB_NAME', $this->getParam( 'db_name' ) ); } if ( ! defined( 'OWA_DB_USER' ) ) { define('OWA_DB_USER', $this->getParam( 'db_user' ) ); } if ( ! defined( 'OWA_DB_PASSWORD' ) ) { define('OWA_DB_PASSWORD', $this->getParam( 'db_password' ) ); } owa_coreAPI::setSetting('base', 'db_type', OWA_DB_TYPE); owa_coreAPI::setSetting('base', 'db_host', OWA_DB_HOST); owa_coreAPI::setSetting('base', 'db_name', OWA_DB_NAME); owa_coreAPI::setSetting('base', 'db_user', OWA_DB_USER); owa_coreAPI::setSetting('base', 'db_password', OWA_DB_PASSWORD); // Check DB connection status $db = &owa_coreAPI::dbSingleton(); $db->connect(); if ($db->connection_status != true) { $this->set('error_msg', $this->getMsg(3012)); $this->set('config', $this->params); $this->setView('base.install'); $this->setSubview('base.installConfigEntry'); } else { //create config file $this->c->createConfigFile($this->params); $this->setRedirectAction('base.installDefaultsEntry'); } // Check socket connection // Check permissions on log directory return; } function errorAction() { $this->set('config', $this->params); $this->setView('base.install'); $this->setSubview('base.installConfigEntry'); } } ?>