Add analytics
[bus.git] / busui / owa / modules / base / installConfig.php
blob:a/busui/owa/modules/base/installConfig.php -> blob:b/busui/owa/modules/base/installConfig.php
  <?php
   
  //
  // Open Web Analytics - An Open Source Web Analytics Framework
  //
  // Copyright 2006 Peter Adams. All rights reserved.
  //
  // Licensed under GPL v2.0 http://www.gnu.org/copyleft/gpl.html
  //
  // Unless required by applicable law or agreed to in writing, software
  // distributed under the License is distributed on an "AS IS" BASIS,
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  // See the License for the specific language governing permissions and
  // limitations under the License.
  //
  // $Id$
  //
   
  require_once(OWA_BASE_CLASS_DIR.'installController.php');
   
  /**
  * Install Configuration Controller
  *
  * @author Peter Adams <peter@openwebanalytics.com>
  * @copyright Copyright &copy; 2006 Peter Adams <peter@openwebanalytics.com>
  * @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');
  }
  }
   
  ?>